Exploiter et dépanner PrismVox
Identifiez l’étape en échec : enregistrement SIP, transport audio, transcription, réponse modèle ou synthèse. Modifier tous les réglages à la fois complique l’isolation d’un problème intermittent.
État et logs
docker compose ps
docker compose logs --tail=100 agent ui
docker compose logs --tail=100 asterisk embeddingsGardez DEBUG et LOG_SENSITIVE_DATA à false en usage courant. Consultez les logs en privé et anonymisez clés, numéros, transcripts et hôtes privés avant une issue. Indiquez version, modèles/fournisseurs, symptôme et étapes de reproduction.
Le trunk ne s’enregistre pas
- Vérifiez avec l’opérateur identifiant/mot de passe, domaine, registrar et correspondance source. L’identifiant SIP peut différer du numéro public.
- Vérifiez transport UDP/TLS, port distant et certificat. Pour une CA privée, montez le fichier adapté plutôt que désactiver la vérification.
- Si .env semble ignoré, examinez le formulaire SIP : le trunk existant est persistant et n’est pas réécrit à chaque démarrage.
L’appel se connecte mais l’audio est muet
Vérifiez RTP, NAT, pare-feu et codecs de l’opérateur. La publication hôte fournie utilise UDP 10000–10100 pour RTP et UDP 5060 pour la signalisation. Gardez l’agent sur un seul réseau Docker ; un second peut résoudre son nom RTP vers la mauvaise interface. Distinguez une panne de reconnaissance entrante d’une panne de lecture sortante.
Erreurs de voix ou de modèle
Une erreur 401/403 demande de vérifier droits de la clé et URL. Une voix ou un modèle absent exige l’ID exact autorisé. Pour une voix externe, vérifiez le contrat API réel plutôt que la marque du modèle : STT reçoit un multipart file et retourne un texte JSON ; TTS reçoit input/model/voice facultative et retourne du WAV.
STT_PROVIDER=openai
STT_URL=http://host.docker.internal:8000/v1
STT_MODEL=your-transcription-model
TTS_PROVIDER=openai
TTS_URL=http://host.docker.internal:8880/v1
TTS_MODEL=your-speech-model
TTS_VOICE=your-voice-id
SPEECH_SERVICE_API_KEY=Cet exemple exige des serveurs compatibles déployés séparément. Vous pouvez changer un seul fournisseur et garder ElevenLabs pour l’autre. Modifiez le formulaire Speech providers si des réglages sauvegardés remplacent déjà .env.
Latence et continuité de voix
Mesurez l’étape lente : détection de fin de parole, premier texte du modèle, synthèse ou transport média/réseau. Utilisez un modèle compact capable d’outils et une personnalité concise. Réglez stabilité et interruption sur un vrai téléphone ; un test de chat textuel ne suffit pas. Plus de passages documentaires et des réponses longues ajoutent aussi du travail.
Sauvegarder données et clé de chiffrement ensemble
Conservez .env, pgdata, secrets et asterisk_dynamic. Le volume secrets contient la clé nécessaire pour déchiffrer les identifiants SIP et fournisseurs : la base seule ne suffit pas. ui_certs contient les certificats de console et sounds peut contenir de l’audio généré. Protégez toutes les sauvegardes et testez leur restauration sur un déploiement séparé.
Mettre à jour une installation
Attendez la fin des appels et missions sortantes, sauvegardez l’état persistant, gardez le même nom de projet Compose puis mettez à jour et reconstruisez. Mettre le dépôt à jour ne remplace pas l’image active. N’utilisez jamais down -v comme mise à jour : cela supprime les volumes.
git pull --ff-only
docker compose up -d --build
docker compose psLes anciennes installations PrismConnect doivent d’abord choisir ElevenLabs ou des services vocaux externes avant de retirer les moteurs intégrés. Gardez les anciens volumes jusqu’à validation des appels et conservez le nom de projet et le volume de clé existants.