Installer PrismVox
PrismVox fonctionne indépendamment de Prism. La stack par défaut utilise ElevenLabs pour reconnaissance et synthèse, une API de modèle pour la conversation et Asterisk pour SIP. Elle n’installe aucun moteur STT ou TTS local.
Pour la téléphonie, PrismVox est un terminal Centrex avec une seule ligne SIP, comme un téléphone IP Yealink ou Grandstream. Il enregistre une ligne sur le réseau de votre opérateur, via un SBC publiquement accessible qui gère la traversée NAT. PrismVox n’a pas besoin d’être lui-même exposé sur Internet.
1. Rassembler les prérequis
- Git, Docker et Docker Compose ; aucun GPU n’est nécessaire si modèles et voix tournent ailleurs.
- Une ligne SIP Centrex de votre opérateur : adresse du registrar/SBC, IP de signalisation, domaine SIP, identifiant/mot de passe et transport pris en charge. Utilisez les paramètres de ligne fournis pour un téléphone IP.
- Un endpoint modèle compatible OpenAI avec streaming et appels d’outils structurés. Des réponses textuelles seules ne déclenchent ni transfert ni raccrochage.
- Une clé ElevenLabs autorisant reconnaissance/synthèse et une voix disponible. Models Read et Voices Read permettent de charger les catalogues. La consommation est facturée séparément par le fournisseur.
2. Télécharger et protéger la configuration
git clone https://github.com/blazux/PrismVox.git
cd PrismVox
cp .env.example .env
chmod 600 .env
openssl rand -hex 24Générez trois valeurs aléatoires distinctes pour ARI_PASS, DB_PASS et UI_PASSWORD. Gardez COMPOSE_PROJECT_NAME=prismvox et COMPOSE_FILE=docker-compose.yml pour une nouvelle installation standard. Ne publiez jamais le .env rempli.
3. Configurer la ligne SIP et le modèle
Dans .env, remplacez ces exemples par les paramètres de votre ligne opérateur et renseignez SIP_PASSWORD. SIP_DOMAIN est le domaine du service SIP, qui peut différer du nom du registrar. SIP_REGISTRAR_MATCH identifie les sources de signalisation entrante de l’opérateur ; gardez l’IP du registrar sauf si l’opérateur fournit une autre source.
SIP_REGISTRAR=sbc.example.com
SIP_REGISTRAR_IP=192.0.2.10
SIP_REGISTRAR_MATCH=192.0.2.10
SIP_DOMAIN=example.com
SIP_USERNAME=your-line-login
SIP_PASSWORD=
SIP_TRANSPORT_MODE=tls
SIP_TLS_PORT=5061
SIP_TLS_VERIFY_SERVER=yesChoisissez le transport pris en charge par votre opérateur. Le profil tls utilise une signalisation TLS et un média SDES-SRTP ; udp utilise SIP/RTP en clair et SIP_UDP_PORT (5060 par défaut). Ces paramètres initialisent la ligne au premier démarrage. Les changements suivants se font dans le formulaire SIP, puis sont appliqués à Asterisk.
Champs SIP et application des changements →Remplacez les exemples SIP_* par les véritables paramètres opérateur. Réglez OPENAI_BASE_URL sur la racine /v1 accessible et OPENAI_MODEL sur l’ID exact servi. Ajoutez OPENAI_API_KEY si le serveur l’exige. Ces champs ne déploient pas le serveur de modèles.
OPENAI_BASE_URL=http://host.docker.internal:4000/v1
OPENAI_MODEL=assistant
OPENAI_API_KEY=
STT_PROVIDER=elevenlabs
TTS_PROVIDER=elevenlabs
UI_BIND=127.0.0.1Cet exemple suppose une passerelle sur l’hôte Docker, accessible au port 4000 et servant assistant. Remplacez ces valeurs pour votre serveur. host.docker.internal correspond à la passerelle hôte sous Linux ; le serveur doit écouter sur une interface accessible.
4. Construire et démarrer
docker compose up -d --build
docker compose ps
docker compose logs --tail=50 agentOuvrez http://localhost:7860 et connectez-vous avec UI_USER / UI_PASSWORD. https://localhost:7861 utilise un certificat auto-signé. À distance, utilisez un proxy HTTPS approuvé et gardez l’authentification. L’écoute par défaut en boucle locale n’est pas accessible à distance.
Le premier démarrage télécharge le modèle d’embeddings CPU. Attendez les sondes de santé de la base et des embeddings avant de diagnostiquer l’agent. La stack de base compte cinq services : asterisk, agent, ui, embeddings et db.
5. Enregistrer la configuration vocale
Ouvrez Configuration → Agent puis Speech providers. Choisissez ElevenLabs pour reconnaissance et synthèse, saisissez la clé, cliquez Connect puis choisissez modèles et voix. Save voice settings les enregistre. Une clé laissée vide conserve le secret existant. Les changements s’appliquent aux nouveaux appels.
Vous pouvez aussi initialiser ELEVENLABS_API_KEY et ELEVENLABS_VOICE_ID dans .env. Les modèles par défaut sont scribe_v2_realtime et eleven_flash_v2_5, avec voix française. Adaptez ensemble langue, accueil, personnalité et phrases fixes pour une autre langue.
Valider votre premier appel →Référence complète de l’environnement PrismVox →