Image promouvable
Signature, SBOM, CVE, attestation externe et UUID zonaux.
Assurance architecture
Registre transversal des sources de vérité, preuves exécutées, limites connues et gates avant pilote.
Ces décisions évitent les mélanges de source de vérité, de produit et de domaine de panne.
| Décision | Conséquence | Source actuelle | Statut |
|---|---|---|---|
| Deux cellules complètes | Pas de load balancer RTP central; nouveaux appels basculés par carrier | telephony-edge-ha + edge-cell-image | Cible non déployée |
| Source carrier distincte | compute-planes STRIKE IT, ARI 8088 et IA 8000/9000 restent historiques | Dépôts IaC séparés | Décision documentée |
| VoiceBot optionnel | Sa panne ne coupe ni PBX, ni file, ni humain | Contrats produits séparés | Architecture/code partiel |
| Déterminisme aux frontières | LLM propose; garde, politique, ACK et CAS décident | Pipeline VoiceBot/Navy | Code et cible à qualifier |
| Souveraineté runtime | Cloudflare Pages héberge seulement cette documentation statique | Runbooks et mandat de publication | Documentation, jamais runtime |
Le niveau le plus élevé acquis est indiqué sans extrapolation.
| Domaine | Acquis | Niveau | Absent | Source dépôt |
|---|---|---|---|---|
| Edge supply chain | Versions/digests, attestation locale, policy image | Code + lab | Signature, SBOM, CVE, image cloud | infra/telephony/edge-cell-image |
| Runtimes edge | Kamailio 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ées | Labs locaux séparés | Dimensionnement, 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 edge | mTLS 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 TLS | Runtime-lab local, namespace partagé | RTP bidirectionnel sur ce même appel, port hôte, carrier/PSTN, cloud et action externe | runtime-lab/functional-runner.ts, runtime-lab/run.mjs |
| Robustesse SIP ciblée | tmx.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 2026 | Le 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édia | Pair sans certificat, tentative outbound et service inconnu refusés; perte RTPEngine refuse un nouvel appel | Lab SBC local | Attaque externe, carrier réel, failover A/B et appel actif | controller/run.mjs, runner.ts |
| Pare-feu | Interfaces, identités et dérives actives | Lab local | Instance réelle et scan externe | lab/run.mjs, health-lab/run.py |
| Santé edge | 14 checks, timer 15 s, fraîcheur 45 s, spool borné | Code + health-lab simulé | Exporter, backend, alerting, drain | health.py, tests observabilité |
| OpenTofu | 14 tests natifs provider mocké | Test IaC | Plan/apply API et rollback | telephony-edge-ha |
| Média applicatif | Sessions, générations, barge-in, ACK en code/tests | Code | Media WS importé et téléphone cloud E2E | lib/media-session.ts, tests NP019 |
| Voix IA | Contrats STT/TTS/LLM et scénarios séparés | Code/expériences | Endpoint souverain qualifié et SLO | lib/ai, expériences voix |
| Carrier / PSTN | Aucun appel PSTN et aucune action externe effectuée par les labs | Externe | DID, trunk, appel, SRTP, failover et support | Aucune preuve opérateur |
Les risques sont formulés comme des comportements observables à fermer, pas comme des composants à acheter.
| Risque | Impact | Preuve de fermeture | Owner |
|---|---|---|---|
| Couverture SIP encore partielle | Un 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ës | Interop 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/BYE | Edge téléphonie |
| Admission non dimensionnée | Le 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 appels | Seuil contractuel et configurable, charge CPS/burst mutualisé, faux positifs 429 et capacité média par palier | Edge téléphonie + SRE/carrier |
| Media WS non intégré | Chaîne Asterisk vers Navy Phone non exécutable | Import runtime + test audio bidirectionnel | Média Navy Phone |
| Readiness sans consommateur | Cellule malade continue à recevoir des appels | Drain et retrait carrier exercés | SRE/carrier |
| Barge-in E2E absent | Réponse obsolète, crash ou commit incorrect | Téléphone cloud avec annulation propagée et ACK invalidé | Navy média + VoiceBot |
| PKI et secrets non opérés | Impossible de démarrer ou renouveler sans interruption | Rotation, révocation et break-glass testés | Sécurité/SRE |
| Absence de SLO mesuré | Capacité, latence et qualité impossibles à garantir | Charge, burn-rate, MOS, TTFT et runbooks | SRE/produit |
Chaque gate doit produire une preuve reproductible et être approuvée par son owner.
Signature, SBOM, CVE, attestation externe et UUID zonaux.
PKI, secrets, VPN/BGP, NTP, observabilité, backup et rollback.
SIP/SDP/SRTP, DID, DTMF, timers, failover, causes, seuil CPS/burst configurable, charge par palier et faux positifs 429.
Latence, interruption, repli, transfert, qualité voix et tests par profils.