Règle:code ≠ lablab ≠ cloudcloud ≠ carrier/PSTNclaim sans preuve = cible

Décisions structurantes

Ces décisions évitent les mélanges de source de vérité, de produit et de domaine de panne.

DécisionConséquenceSource actuelleStatut
Deux cellules complètesPas de load balancer RTP central; nouveaux appels basculés par carriertelephony-edge-ha + edge-cell-imageCible non déployée
Source carrier distinctecompute-planes STRIKE IT, ARI 8088 et IA 8000/9000 restent historiquesDépôts IaC séparésDécision documentée
VoiceBot optionnelSa panne ne coupe ni PBX, ni file, ni humainContrats produits séparésArchitecture/code partiel
Déterminisme aux frontièresLLM propose; garde, politique, ACK et CAS décidentPipeline VoiceBot/NavyCode et cible à qualifier
Souveraineté runtimeCloudflare Pages héberge seulement cette documentation statiqueRunbooks et mandat de publicationDocumentation, jamais runtime

Matrice de preuve

Le niveau le plus élevé acquis est indiqué sans extrapolation.

DomaineAcquisNiveauAbsentSource dépôt
Edge supply chainVersions/digests, attestation locale, policy imageCode + labSignature, SBOM, CVE, image cloudinfra/telephony/edge-cell-image
Runtimes edgeKamailio 6.0.7, RTPEngine 26.0.1.13, Asterisk 22.9.0; SRTP deux legs, RTP bidirectionnel et 1203 paquets relayés au run SBC du 29 août 2026; 4/4 sessions concurrentes bornéesLabs locaux séparésDimensionnement, carrier/PSTN, cloud et slin16 Media WS E2E; 4 sessions ne constituent pas une preuve de capacitéruntime-lab/run.mjs, controller/run.mjs
Sockets exacts image edgemTLS 8.8.8.9:5061 → 8.8.8.8:5061 → TLS 127.0.0.1:5062; NG 127.0.0.1:22222; SDP 8.8.8.8:10000-11000; double Record-Route; Stasis et BYE sur la même connexion TLSRuntime-lab local, namespace partagéRTP bidirectionnel sur ce même appel, port hôte, carrier/PSTN, cloud et action externeruntime-lab/functional-runner.ts, runtime-lab/run.mjs
Robustesse SIP cibléetmx.so en production/lab; t_drop() bloque les réponses finales invalides ou non ancrables. Les deux late-offer reply routes vérifient ack-done avant RTPEngine. 7 PRACK isolés: malformed=1 refusé 400, unmatched=2 relayés sans média, missing answer=1 relayé, ack-only=1, answer=1, offer=1 avec answer 2xx. unexpectedAckSdp=0, réponse 2xx SDP manquante ou superflue=0, reset early unanswered=1. Le run observe 1203 paquets, 4/4 sessions bornées et chaque dialogue drainé à zéro. Les deux 200 unmatched sont sans corps SDP. Late offer, hold/reprise, UPDATE, 422/Min-SE et BYE restent verts.Labs runtime et SBC réels locaux, 29 août 2026Le SDP brut des unmatched peut être accepté par l’UAS aval malgré la réponse sans SDP: contournement possible de l’ancrage RTPEngine côté aval et état UAS inconnu. ACK late-offer sans SDP ou transformation RTPEngine échouée sans teardown contrôlé. Carrier/cloud réel, Forks runtime, plusieurs 1xx fiables séquentiels, RTP après chaque renégociation, ancien média sur rejet/glare, teardown ACK-SDP, rotation/refresher, expiration réelle et races restent ouverts.kamailio.cfg.tpl, runner.ts, controller/run.mjs
Admission et panne médiaPair sans certificat, tentative outbound et service inconnu refusés; perte RTPEngine refuse un nouvel appelLab SBC localAttaque externe, carrier réel, failover A/B et appel actifcontroller/run.mjs, runner.ts
Pare-feuInterfaces, identités et dérives activesLab localInstance réelle et scan externelab/run.mjs, health-lab/run.py
Santé edge14 checks, timer 15 s, fraîcheur 45 s, spool bornéCode + health-lab simuléExporter, backend, alerting, drainhealth.py, tests observabilité
OpenTofu14 tests natifs provider mockéTest IaCPlan/apply API et rollbacktelephony-edge-ha
Média applicatifSessions, générations, barge-in, ACK en code/testsCodeMedia WS importé et téléphone cloud E2Elib/media-session.ts, tests NP019
Voix IAContrats STT/TTS/LLM et scénarios séparésCode/expériencesEndpoint souverain qualifié et SLOlib/ai, expériences voix
Carrier / PSTNAucun appel PSTN et aucune action externe effectuée par les labsExterneDID, trunk, appel, SRTP, failover et supportAucune preuve opérateur

Risques ouverts prioritaires

Les risques sont formulés comme des comportements observables à fermer, pas comme des composants à acheter.

RisqueImpactPreuve de fermetureOwner
Couverture SIP encore partielleUn UAS aval peut accepter le SDP brut d’un PRACK unmatched et contourner l’ancrage média du proxy; les ACK late-offer défaillants restent sans teardown; branches multiples, renégociation et courses restent ambiguësInterop UAS/carrier avec vérification de l’état média aval sur erreurs PRACK, teardown ACK contrôlé, RTP après chaque renégociation, rejet/glare/timeout avec ancien média intact, reset re-INVITE sûr, forks, 1xx fiables séquentiels, timers réels et races CANCEL/200/BYEEdge téléphonie
Admission non dimensionnéeLe pike fixe à 12 requêtes par fenêtre de 2 s peut refuser un burst carrier légitime; 4 sessions lab ne dimensionnent ni 25, ni 500 appelsSeuil contractuel et configurable, charge CPS/burst mutualisé, faux positifs 429 et capacité média par palierEdge téléphonie + SRE/carrier
Media WS non intégréChaîne Asterisk vers Navy Phone non exécutableImport runtime + test audio bidirectionnelMédia Navy Phone
Readiness sans consommateurCellule malade continue à recevoir des appelsDrain et retrait carrier exercésSRE/carrier
Barge-in E2E absentRéponse obsolète, crash ou commit incorrectTéléphone cloud avec annulation propagée et ACK invalidéNavy média + VoiceBot
PKI et secrets non opérésImpossible de démarrer ou renouveler sans interruptionRotation, révocation et break-glass testésSécurité/SRE
Absence de SLO mesuréCapacité, latence et qualité impossibles à garantirCharge, burn-rate, MOS, TTFT et runbooksSRE/produit

Gates avant pilote

Chaque gate doit produire une preuve reproductible et être approuvée par son owner.

G1

Image promouvable

Signature, SBOM, CVE, attestation externe et UUID zonaux.

G2

Infra opérable

PKI, secrets, VPN/BGP, NTP, observabilité, backup et rollback.

G3

Interop et capacité carrier

SIP/SDP/SRTP, DID, DTMF, timers, failover, causes, seuil CPS/burst configurable, charge par palier et faux positifs 429.

G4

Expérience humaine

Latence, interruption, repli, transfert, qualité voix et tests par profils.