Autorité média et téléphonie
Appel, PBX, bridge, file, Media WS, VAD, barge-in, STT, TTS, playback, mark/ACK, WebRTC et handoff humain.
Pipeline conversationnel
Media WS, VAD, STT, orchestration, LLM, garde déterministe, TTS, playback ACK et commit CAS.
En une minute: cette page explique le voyage d'une phrase dans une conversation avec l'assistant vocal: le son arrive, le système repère quand la personne parle, transcrit ses mots, puis un modèle d'intelligence artificielle propose une réponse. Des règles strictes décident des points sensibles: identité, urgence, consentement, transfert vers un humain. La réponse validée est synthétisée en voix, et un tour n'est enregistré qu'après confirmation; une issue incertaine reste bloquée. Ce fonctionnement est prouvé en code et en essais locaux; aucune conversation humaine réelle n'existe, et la mise en service reste interdite.
Le LLM propose. Les politiques, l’état courant et la garde décident. Le transport audio ne prouve jamais l’audition humaine.
| Étape | Owner | Autorité | État / token | Preuve et limite |
|---|---|---|---|---|
| Media WS | Navy Phone | Frames slin16 consultatives | Session média et génération | Le même appel exact-edge local traverse WSS avec audio synthétique entrant/sortant, DTMF, MARK_MEDIA, FLUSH_MEDIA et nettoyage. Aucun cloud/PSTN, voix humaine ou pipeline IA n’est prouvé. |
| VAD / barge-in | Navy Phone | Début/fin de parole | Nouvelle génération + AbortSignal | Le produit ne ferme plus 1011 sur une annulation confirmée et le contexte d’interruption traverse toute la chaîne logicielle. Le lab média annule un ancien mark. VAD humain et arrêt acoustique restent non prouvés. |
| STT streaming cible | Navy Phone | Partiels consultatifs; final seulement après validation langue/re-décodage | Final corrélé au tour | Contrats/code; aucun endpoint souverain ou streaming runtime intégré |
| Session VoiceBot | VoiceBot | Révision et protocole métier | Prepared-turn, token opaque et settlement | committed, cancelled et failed sont explicites; cancelled+replayed adopte la révision sans valider l’ancien tour |
| Orchestration | VoiceBot | Choix dialogue, faits et outils allowlistés | Contexte minimal, interruption et provenance | L’attente répond sans question. Pendant heatwave-outreach, gas/flood/seveso/fire interrompt le questionnaire; hazard+vital choisit le protocole hazard univoque ou une guidance générique fail-safe. Runtime non déployé. |
| LLM | Provider piloté par VoiceBot | Proposition conversationnelle uniquement | Texte candidat + modèle/digest | Choix modèle non production |
| Validation déterministe | VoiceBot | Décision avant action et avant restitution | Autoriser, corriger, demander, refuser, handoff | Pas un simple filtre post-LLM |
| TTS | Navy Phone | Synthèse du texte validé | Frames liées à la génération | Voix/endpoint souverain à qualifier |
| Transport / mark | Navy Phone | Preuve de frontière transport | Mark/ACK corrélé courant | requestAck() renvoie un booléen; refus ou exception devient failed immédiatement. Mark ≠ audition par l’appelant. |
| Commit CAS | VoiceBot | État durable du tour | Commit seulement si révision et ACK sont courants | ACK indéterminé fail-closed. Prepare: 6 s par défaut, borne 0,5 à 15 s. ACK: 3 s par défaut, borne 0,25 à 10 s. |
Cette répartition empêche le produit conversationnel de prendre le contrôle implicite de la téléphonie ou de ses preuves de lecture.
Appel, PBX, bridge, file, Media WS, VAD, barge-in, STT, TTS, playback, mark/ACK, WebRTC et handoff humain.
Session, prepared-turn, révision, protocoles critiques, RAG, provenance, décisions, garde déterministe, token et audit métier.
La propagation logicielle est maintenant testée de bout en bout entre les deux produits. Elle ne prouve toujours pas qu’une vraie voix arrête assez vite le son sur un téléphone.
Parole détectée pendant la restitution.
Incrément et AbortSignal vers tâches actives.
clear / FLUSH_MEDIA et purge.
cancelled garde l’appel ouvert; failed reste fermé par prudence.
interrupted_previous_assistant=true arrive jusqu’au moteur.
Une annulation confirmée ne provoque plus de fermeture 1011. La readiness exige que le produit annonce interruption_context=true. Le prepare est annulable et les deux délais sont bornés.
Aucun appel PSTN, cloud, humain, arrêt acoustique, charge ou SLO conversationnel n’est prouvé.
Gate sécurité courante: 84 fichiers et 974 tests verts; 128 sources et 19 sources média verrouillées. Produit séparé: 31 pass + 1 skipped, puis 344 pass + 3 skipped sur 347 tests, typecheck vert. Les tests ignorés sont déclarés, pas présentés comme réussis.
Qualification séparée: budgets de tour, dette Twilio, providers et alternatives expérimentales sont maintenus dans Modèles et latence.
Aucune indisponibilité modèle ne doit produire une action critique inventée ou empêcher un transfert humain.
| Panne | Réaction | État durable | Expérience appelant |
|---|---|---|---|
| STT | Retirer le bot de l’admission | Aucun nouveau tour | Phrase sûre puis humain |
| LLM | Réponse déterministe bornée | Décision auditée | Clarification ou transfert |
| Prepare / TTS / ACK | Annulation du fetch, timeout borné ou échec immédiat si la demande de confirmation est refusée | Aucun commit sur cancelled, failed ou issue indéterminée | Retry borné ou humain; une annulation confirmée conserve la connexion |
| DB / CAS | Refus fail-closed | Aucun commit | Information sans engagement ou transfert |
| Worker | Session perdue/drain | Pas de reprise transparente prouvée | Handoff si encore contrôlable |
Le pipeline transporte le strict nécessaire: état, faits autorisés, sources et identifiants opaques, jamais un transcript généralisé dans les métriques.
Tenant, session, tour, protocole, faits autorisés, révision, langue validée et état de handoff.
Source, version, modèle/digest, garde/version et raison de décision restent corrélés au tour.