Invariant:fail-closedaucune migration activehandoff humainNO-GO

Modes de panne par domaine

Le comportement attendu est explicite; « non prouvé » signifie qu’aucune reprise transparente ne doit être annoncée.

PanneComportement bornéImpactPreuve / limite
Carrier non qualifié, drain ou absence de réponse ALa gate signée v1 refuse l’activation sans qualification courante. Après qualification terrain, le carrier cible devrait tenter A puis B pour le nouvel appel.Le nouvel appel reste fermé sans qualification; un dialogue établi reste sur sa cellule et peut être coupé avec elle.Contrôle interne présent et modèle fermé local; zéro qualification terrain, aucun chaos A/B, carrier ou PSTN réel. Production NO-GO.
RTPEngine indisponibleNouvelle admission refusée fail-closedPas de média non ancré acceptéRefus ciblé en lab; continuité d’un appel actif non qualifiée
TURN/coturn indisponible ou credential expiréRefuser le nouveau relais et conserver uniquement les chemins média directement joignables; ne jamais élargir le firewall en repliLes softphones hors LAN ou derrière un NAT strict peuvent devenir injoignables, même si le PBX reste sainUn lab local A/B exerce coturn, mais aucun broker de credentials, navigateur réel, certificat opéré, panne DNS/ACME ou SLO de production n’est qualifié. NO-GO
Asterisk ou bridge perduFin de session locale, cause technique et nettoyageAppel actif perduNettoyage local ciblé; aucune reprise cross-cell
Bridge public Twilio ou ingress perduLes nouvelles sessions sont refusées; signature, numéro, CallSid et socket unique restent obligatoiresLe VoiceBot Twilio devient inaccessible et l’appel actif peut être coupé; aucun appel n’est migréCode local sur 127.0.0.1; aucun ingress, webhook, numéro public, DDoS, HA, charge ou appel réel. Promotion NO-GO
Media WS / worker perduGénération annulée, aucun ACK courant et aucun commitBot retiré ou handoff humainFlush/cleanup local prouvés; reprise transparente absente
STT indisponibleLe bot ne fabrique pas de transcript; repli humainConversation IA suspendue, téléphonie maintenueContrat cible; STT streaming souverain E2E absent
LLM indisponible ou invalideRéponse sûre déterministe ou handoffNaturalité réduite, protocole critique conservéCode/contrats partiels, aucun SLO modèle cloud
Fournisseur IA externe indisponible ou refuséCouper l’egress concerné, refuser l’issue inconnue et utiliser un repli local, déterministe ou humainVoix ElevenLabs ou résumé Anthropic/OpenRouter indisponible; aucune action sensible ne progresseAdaptateurs présents et LOCAL_ONLY fail-closed; contrat, résidence, rétention, quotas, coût, qualité, sous-traitants et SLO non prouvés. NO-GO
Runtime STT/TTS local saturé ou arrêtéRetirer le moteur de la readiness, ne fabriquer ni transcript ni audio et transférer à un humainAssistant vocal suspendu; téléphonie indépendante maintenue si le parcours humain fonctionneAdaptateurs, sidecars et bancs partiels; modèle exact, images, capacité, crash/reprise, isolation et SLO non qualifiés. Production NO-GO
Prepare, TTS ou ACKPrepare annulable avec timeout 6 s par défaut, borne 0,5 à 15 s; ACK 3 s par défaut, borne 0,25 à 10 s. Refus, exception ou issue inconnue: failed immédiat ou fail-closed, aucun commit.Une annulation confirmée garde la connexion; les autres échecs produisent silence ou repli, jamais progression fictive.Contrats et tests logiciels; audition humaine, cloud et PSTN non prouvés.
VoiceBot absentNavy Phone conserve PBX, file, SVI et agent humainFonctions de crise indisponibles, appel maintenuFrontière produit décidée; scénario cloud non exercé
Sentinelle vocale indisponible ou ambiguëLa conversation continue; l’interface indique que le signal consultatif manque et laisse toute décision à l’humainPerte d’une aide de supervision, sans blocage automatique de l’appelantDivergence Whisper partielle; sidecar /analyze répond 503 faute d’adapter anti-spoof. Erreurs, biais, replay et revue humaine non qualifiés. NO-GO
Session ou identité VoiceBot invalide401 si session absente, expirée ou restreinte; panne du session store: 503 no-store sans fetch/token; identité machine absente: 503 sans fetchHeaders filtrés et réponse bornée à 1 MiB; téléphonie indépendante17/17 dans 4 fichiers, 11 chemins et 12 handlers; endpoint, rotation et scénario cloud non exercés
PostgreSQL / CAS indisponibleAucun commit décisionnel; admission ou action sensible ferméeÉtat conversationnel non avancéCible; aucune base cloud ni bascule DB
navy.db locale corrompue ou reprise interrompueLe strict v2 refuse l’archive hostile avant mutation ou restaure/annule via journal dans une cible isolée; un SIGKILL pendant l’initialisation abandonne sûrement puis accepte le retry; le finalizer committed-success refuse un succès avec journal résiduelLe mécanisme limite l’écriture partielle dans le lab; aucun délai réel de retour du service n’est connuSnapshot de 126 sources; 48/48 tests recovery dont 42 scénarios hostiles internes et 81/81 sur quatre suites. Archive réelle, RPO/RTO, processus complet, média et appel de contrôle absents
Email Resend refusé, lent ou non livréLa livraison reste inconnue; aucun lien n’est affiché comme repli et la procédure administrateur doit rester séparéeInvitation, vérification ou réinitialisation retardée; le compte ne doit pas être présenté comme activéAdaptateur présent; erreurs absorbées et stub qui journalise le message en développement. Domaine, délivrabilité, retry, webhook et contrat non prouvés. NO-GO
Messagerie ou stockage du message indisponibleArrêter la capture et terminer proprement sans annoncer qu’un message a été conservéL’appelant ne peut pas déposer son message; les fichiers existants doivent rester protégésParcours logiciel présent; consentement, stockage, quotas, notification, rétention, restauration, charge et PSTN non prouvés. NO-GO
Timer ou décision de non-réponse ambiguëRevérifier l’appel après chaque attente; relire deux fois une décision ambiguë; agir seulement après un claim durable; sortir l’IVR immédiatement après ses relances bornées; utiliser le prompt générique si seule sa métadonnée échoue après commitUn appel déjà terminé reste inerte. Une panne persistante peut fermer le parcours, mais ne crée ni messagerie ni transfert non autoriséTests locaux sur accusé perdu, réponse concurrente par action, raccrochage pendant le claim ou lookup, retry borné et épuisement IVR; crash PBX/DB réel, double worker, boucle de transfert, charge et SLO non prouvés. NO-GO
Poste opérateur hors ligne ou session inaccessiblePassage en lecture seule, brouillon borné et aucun rejeu automatique avant vérification de /api/connectivityLes nouvelles actions de crise sont bloquées pour éviter un faux enregistrementCode UI et tests; aucun second réseau, poste durci, réseau captif réel, longue coupure, multi-onglets ou exercice humain. NO-GO
Échec ACME ou certificat public proche de l’expirationGarder le dernier certificat valide, alerter et arrêter l’ingress avant expiration plutôt que d’ouvrir HTTP en clairNouveaux accès HTTPS/WSS refusés; la PKI mTLS privée reste séparéeConfiguration Caddy candidate seulement. L’edge ne peut joindre ni ACME ni DNS public; domaine, challenge, renouvellement, révocation et bascule non prouvés. NO-GO

HA et comportement de panne

A et B sont deux domaines de panne complets sans état d’appel partagé ni bascule interne cross-cell.

Contrôle interne + modèle local

Qualification puis A/B

La gate signée v1 refuse en interne une qualification absente, expirée ou liée à une autre configuration. Le carrier cible non contracté posséderait ensuite la sélection A puis B. Zéro qualification terrain et aucun opérateur réel configuré ou testé.

Appels actifs

Pas de migration

La perte d’une cellule peut couper ses sessions. Aucun drain ou transfert à chaud n’est prouvé.

RTPEngine absent

Fail-closed exercé

La perte simulée refuse un nouvel appel en lab; aucune route RTP centrale ne contourne la cellule.

Interopérabilité

À contractualiser

Redirections SIP interdites; DNS/SRV, causes, codecs, DTMF, forks, suites de 1xx fiables, timers, SRTP et anti-fraude restent à qualifier avec le carrier.

Gates de résilience ouvertes

Ces preuves sont nécessaires avant toute promesse de disponibilité.

Carrier

Recette A/B réelle

Sur IP publiques: provoquer séparément 503, absence de réponse et récupération; mesurer l’ordre A puis B, le délai, TLS/SRTP, hold-down et absence de migration.

Cellules

Chaos A/B

Perte Instance, zone, réseau, RTPEngine et PBX avec appels actifs mesurés.

PARTIEL

Restauration, reboot et reaper

Le snapshot passe 48/48 et 81/81. Les drapeaux de test sont refusés hors harnais hermétique; trois SIGKILL sont causalement prouvés. Contre-revue sans P0/P1: essai payant borné GO sous Node 22.23.2, Project/profil dédiés et opérateur local de confiance. Inventaire limité à quatre familles/une zone, exclusivité IAM hypothétique, vérificateur lexical et TOCTOU local même UID P2. Vrai Job/provider cloud, perte du contrôleur, RPO/RTO, média et appel restent non prouvés. Production NO-GO. Voir les six gates P1.

Charge

Capacité et faux positifs

CPS/burst carrier, capacité par palier, pike qualifié et alertes sans flapping. La fourchette de travail 25 à 500 appels n’est ni une cible approuvée, ni une capacité prouvée.