Invariant:audio envoyé ≠ audio entendu ≠ tour commitéle socle Navy Phone ne dépend pas du VoiceBot

Séquence nominale

Chaque transition conserve un identifiant d’appel et, pour le produit conversationnel, un identifiant de session et de tour préparé.

Externe

1. Carrier

INVITE SIP mTLS 5061 vers A ou B, DID E.164 et média RTP/SRTP borné.

Edge

2. Cellule

Kamailio admet le peer/DID, RTPEngine réécrit le SDP, Asterisk entre en Stasis.

Navy Phone

3. Contrôle

ARI TLS et Media WS 8089 pilotent bridge, contexte, playback, file ou humain.

Optionnel

4. Conversation

STT puis VoiceBot préparent une réponse validée; TTS revient par contrat Navy Phone.

Preuve

5. ACK / commit

Le playback corrélé autorise l’ACK. VoiceBot commite ensuite le tour préparé.

Contrats de la séquence

Les frontières sont explicites pour éviter un lien caché entre PBX, conversation et persistance.

ÉtapeAutoritéSortieÉchec / repliPreuve
CarrierPeer mTLS, CIDR et DIDINVITE 5061 vers A/BAutre cible pour nouveaux appelsExterne, absent
Edge SIP/RTPKamailio + RTPEngineSIP loopback 5062 et SDP ancréFail-closed, actif perduAppel exact-socket local; RTP bidirectionnel prouvé dans un autre lab
Asterisk / ARIPBX et StasisBridge + contrôle 8089Aucune reprise transparenteTLS 127.0.0.1:5062 + cycle Stasis local
Média NavyGénération, VAD, playbackPCM et contextePurge/handoffCode; serveur Media WS non intégré
STTFinal validé langue/re-décodageTexte corréléRetirer botCode/benchmarks
VoiceBotSession/protocolePrepared-turnFile/SVI/humainContrats produit
LLMProposition uniquementTexte candidatRéponse déterministeModèle non production
GardeDécision critiqueAutoriser/corriger/refuserFail-closed/handoffCode/contrat
TTSNavy PhoneFrames corréléesTimeout, aucun commitEndpoint à qualifier
Transport / ACKMark courantPreuve transportACK ancien invalidéTransport ≠ audition
Ledger / CASRévision couranteCommit durableConflit = aucun commitContrats/tests

Interruption et barge-in

L’annulation se propage jusqu’au tour produit. Continuer avec la question suivante serait une violation conversationnelle.

Chemin attendu

L’appelant interrompt

  1. Le VAD détecte la parole pendant le playback.
  2. Navy Phone stoppe et purge l’audio obsolète.
  3. AbortSignal annule STT/LLM/TTS encore actifs.
  4. L’ancien token ACK devient invalide.
  5. Le nouveau tour réévalue « attends », une correction ou un nouvel ordre.
  6. Le bot répond, attend ou transfère sans commiter le tour interrompu.
Interdits

États impossibles

  1. Audio ancien rejoué après interruption.
  2. ACK d’un playback annulé accepté.
  3. Tour préparé marqué livré sans preuve corrélée.
  4. Question suivante posée malgré une commande d’attente.
  5. Handoff bloqué parce que VoiceBot est en panne.
  6. Audit Navy Phone fusionné avec l’audit décisionnel VoiceBot.

Modes dégradés

La téléphonie doit rester utile même si la couche conversationnelle ou ses modèles ne répondent plus.

Perte cellule

Appel actif à risque

Pas de migration RTP en cours. Le carrier doit envoyer seulement les nouveaux appels à la cellule survivante.

Perte STT/LLM/TTS

Phrase sûre puis humain

Timeout borné, message bref et transfert. Aucun texte inventé ni boucle de retry audible.

Perte VoiceBot

Socle maintenu

Navy Phone conserve file, appel, WebRTC et handoff. Le produit conversationnel est optionnel.

Perte données

Admission fermée

Un appel établi peut être drainé, mais de nouveaux engagements critiques sont refusés sans ledger fiable.

Chemin Twilio actuel

Final-only, non streaming production

Silence proche de 900 ms, double ffmpeg et upload complet. Le streaming reste shadow; ces limites ne doivent pas être confondues avec le chemin edge cible.