Hiérarchie:cible carrier =
telephony-edge-ha + edge-cell-imagecompute-planes historique, jamais fusionnéComposants et contrats
Les ports sans source stable sont marqués à figer. Les ownerships Navy Phone et VoiceBot restent séparés.
Frontière télécom et cellules carrier8 composants
Carrier UE, DID et publication A/BExterne
- Rôle / owner
- PSTN, DIDs E.164, trunk SIP et média. Owner opérateur contracté, gouvernance Navy Phone.
- Interfaces / confiance
- SIP mTLS 5061 et RTP/SRTP cible 10000-20000 vers deux IP; CN, CIDR, codecs et DTMF contractuels.
- État / dépendances
- Aucun DID, trunk, DNS/SRV, ACL ou interopérabilité provisionné.
- HA / panne
- Failover des nouveaux appels à fournir; aucun appel actif ne migre.
- Sécurité / preuve / source
- Caller-ID non fiable; SLA/fraude/support externes. Source:
docs/CARRIERS.md, outputstelephony-edge-ha.
Cellules carrier A et BCible
- Rôle / owner
- Deux domaines de panne fr-par-1/fr-par-2, chacun Kamailio + RTPEngine + Asterisk. Owner plateforme téléphonie.
- Interfaces / confiance
- NIC public carrier, Private Network edge 8089, Private Network management SSH 22.
- État / dépendances
- Images zonales et policy cloud-init; aucune image ou Instance produite.
- HA / panne
- Perte cellule coupe potentiellement actifs; nouveaux appels dépendent du carrier.
- Sécurité / preuve / source
- Gates image, firewall, PKI, NTP et VPN. Source:
infra/opentofu/scaleway/telephony-edge-ha/main.tf.
Kamailio SBC A/BLab local
- Rôle / owner
- SBC d’admission SIP par cellule. Owner plateforme téléphonie.
- Interfaces / confiance
- mTLS 5061 carrier, mTLS 5063 interne avec CA cellule, SIP TLS loopback 5062, NG UDP 22222.
- État / dépendances
- Transactions SIP, routes offre/réponse, DID/alias et peer strict; dépend PKI et nftables.
- HA / panne
- Fail-closed si RTPEngine ou politique invalide; aucune réplication cross-cell.
- Sécurité / preuve / source
- Kamailio 6.0.7, proxy stateful et mTLS à rôles séparés. Le lab prouve 7 PRACK: RAck mal formé refusé 400; unmatched et missing answer relayés sans mutation RTPEngine côté proxy. Les 200 Asterisk unmatched sont sans SDP, mais un contournement aval de l’ancrage reste possible et l’état UAS n’est pas prouvé. État exact avec tombstones, cleanup des deux orientations; forks, suites de 1xx fiables et continuité RTP après renégociation restent absents. Source:
kamailio.cfg.tpl, runtime-lab et lab SBC.
RTPEngine A/BLab local
- Rôle / owner
- Ancrage SDP/RTP local à chaque cellule. Owner plateforme média.
- Interfaces / confiance
- NG UDP 127.0.0.1:22222; média public borné vers carrier et Asterisk.
- État / dépendances
- Sessions éphémères; dépend IP publique exacte, plage nftables et SDP valide.
- HA / panne
- Perte process coupe média de la cellule; aucune migration active.
- Sécurité / preuve / source
- 26.0.1.13 userspace UID 1000, source verrouillée, ping
pong. NG 127.0.0.1:22222 et SDP 8.8.8.8:10000-11000 exercés exact-socket; aucun RTP émis par cet appel. RTP bidirectionnel >0 et 4 sessions appartiennent au lab média séparé. Source:component-lock.json, runtime-lab, lab SBC.
Asterisk A/BLab local
- Rôle / owner
- PBX, dialplan minimal, Stasis, bridges et média applicatif. Owner téléphonie Navy Phone.
- Interfaces / confiance
- SIP TLS loopback 5062, média via RTPEngine, ARI TLS et Media WS privé 8089.
- État / dépendances
- Canaux/bridges éphémères; 100rel et timers 90/1800 configurés; dépend secrets, Kamailio et contrôle Navy.
- HA / panne
- État local non répliqué; perte PBX coupe les appels de la cellule.
- Sécurité / preuve / source
- Asterisk 22.9.0 et TLS 127.0.0.1:5062 exercés dans le namespace partagé; ARI answer/hangup et cycle Stasis terminés. Aucune image cloud construite. Source: templates Asterisk, runtime-lab et lab SBC.
ARI TLS et Media WebSocketCode
- Rôle / owner
- Contrôle PBX et échange PCM slin16 avec Navy Phone. Owner contrôle téléphonique.
- Interfaces / confiance
- HTTPS/WSS 8089 sur réseau edge, credential ARI dédié et CA interne.
- État / dépendances
- Connexion, backpressure et génération média; serveur Media WS existe en code/tests mais n’est pas importé dans le runtime.
- HA / panne
- Perte contrôle sans reprise transparente; drain et reconnect à prouver.
- Sécurité / preuve / source
- TLS 1.2+, ACL privée. Source:
http.conf.tpl,ari.conf.tpl,chan_websocket.conf,server/ari-app.ts.
Admission DID vers alias opaqueCode
- Rôle / owner
- Transforme une destination E.164 allowlistée en alias dialplan non devinable.
- Interfaces / confiance
- Entrée To/R-URI validée; sortie locale vers contexte inbound.
- État / dépendances
- Table injectée par policy; aucun tenant secret ou route sortante.
- HA / panne
- DID inconnu = 404/refus; config divergente doit bloquer promotion.
- Sécurité / preuve / source
- Validation E.164 stricte et digest de policy. Source:
edge.py,extensions.conf.tpl, variableinbound_routes.
Pare-feu hôte et trois NICLab local
- Rôle / owner
- nftables fail-closed sur public, edge et management. Owner sécurité plateforme.
- Interfaces / confiance
- 5061/RTP public, 8089 edge, 22/123 management; input/output/forward drop.
- État / dépendances
- Identité lie policy canonique, modes, fichier rendu et règles actives.
- HA / panne
- Une ambiguïté NIC garde le runtime arrêté; politique locale sans dépendance centrale.
- Sécurité / preuve / source
- Mauvaise interface refusée; quatre dérives health-lab détectées. Source:
edge.py:render_nft,health.py.
Contrôle Navy Phone et média utilisateur6 composants
Ingress web, API et WSSCible
- Rôle / owner
- Terminaison HTTPS/WSS des consoles et API. Owner plateforme web.
- Interfaces / confiance
- 443 public ou privé selon rôle; app 3000 et signalisation 4010 en aval.
- État / dépendances
- Certificats, routes, quotas et identité client; ingress HA actuel non prouvé.
- HA / panne
- Panne bloque nouveaux softphones/admin, pas nécessairement un trunk déjà établi.
- Sécurité / preuve / source
- HSTS/CSP/rate limit à figer. Source:
infra/deploy/Caddyfile; compute-planes seulement historique.
Navy Phone app, API et control planeCode
- Rôle / owner
- Organisations, lignes, appels, carriers, files, softphones et contrôle PBX.
- Interfaces / confiance
- App 3000, API HTTPS via ingress, ARI/Media WS 8089 vers edge.
- État / dépendances
- Sessions, lignes et appels; dépend DB, PBX, identité et produits optionnels.
- HA / panne
- Réplicable si état externe; topologie cloud, drain et affinité non prouvés.
- Sécurité / preuve / source
- RBAC/tenant et livez/readyz. Source:
app/,server/ari-app.ts,lib/carrier/.
Service de signalisation softphoneCode
- Rôle / owner
- Présence, commandes temps réel et coordination navigateur. Owner temps réel Navy.
- Interfaces / confiance
- WSS via ingress vers port 4010 historique/documenté.
- État / dépendances
- Connexions éphémères, session appareil et présence.
- HA / panne
- Reconnect et affinité à qualifier; sortie PSTN directe refusée.
- Sécurité / preuve / source
- Bearer interne, origines bornées, quotas. Source:
server/pbx.ts, compose historique.
Media session et preuve de playbackCode
- Rôle / owner
- Buffers, générations, barge-in, playback et corrélation ACK. Owner média Navy Phone.
- Interfaces / confiance
- PCM/frames via PBX ou provider; contrôle local sans route cachée.
- État / dépendances
- Génération courante, mark, AbortSignal, queue bornée.
- HA / panne
- Timeout/worker perdu = aucun commit; pas de reprise transparente prouvée.
- Sécurité / preuve / source
- Mark prouve frontière transport, pas audition. Source:
lib/media-session.ts, external media.
Softphone WebRTCCode
- Rôle / owner
- Appels navigateur et contrôle agent humain.
- Interfaces / confiance
- HTTPS/WSS, ICE et TURN; plage relay cible à figer.
- État / dépendances
- PeerConnection, appareil, credential TURN éphémère.
- HA / panne
- Renégociation/reprise ICE réelle non prouvée.
- Sécurité / preuve / source
- Rôle appareil, tenant,
getStats()/MOS à opérer. Source:lib/softphone-ui.ts, rtc-config.
coturn A/BLab local
- Rôle / owner
- Relais TURN séparés du carrier. Owner plateforme temps réel.
- Interfaces / confiance
- 3478/5349 et plage UDP à figer; TLS/CA et credentials éphémères.
- État / dépendances
- Allocations locales, secret rotatif, DNS/config ICE.
- HA / panne
- Nouveaux clients peuvent choisir B; allocation A active ne migre pas.
- Sécurité / preuve / source
- Anti-pivot, quotas, invalides refusés. Source:
infra/turn/coturn-ha-lab/, preuve TURN HA.
VoiceBot Navy Crisis, produit optionnel9 composants
Ingress VoiceBot API v1 et SDKCode
- Rôle / owner
- Contrat headless entre Navy Phone et VoiceBot. Owner API VoiceBot.
- Interfaces / confiance
/api/v1/voicebot/*HTTPS privé; port cible à figer.
- État / dépendances
- Tenant, session, révision, scopes et idempotence.
- HA / panne
- Panne produit laisse téléphonie/file/humain disponibles.
- Sécurité / preuve / source
- JWT Ed25519 court, clé 0600, scopes. Source: README VoiceBot, intégration produit.
Sessions et tours préparésCode
- Rôle / owner
- Machine d’état prepared-turn/ACK/commit. Owner VoiceBot.
- Interfaces / confiance
- API produit avec token opaque et révision optimiste.
- État / dépendances
- Session, tour, protocole, décision, token, expiration.
- HA / panne
- Conflit CAS, ACK ancien ou timeout = aucun commit.
- Sécurité / preuve / source
- Audit de transition et idempotence. Source: contrats VoiceBot,
voice-turn.ts.
VAD, gestion de tour et barge-inCode
- Rôle / owner
- Début/fin de parole et annulation propagée. Owner média Navy Phone.
- Interfaces / confiance
- Frames PCM, VAD, génération, AbortSignal, clear/FLUSH_MEDIA.
- État / dépendances
- Génération courante, buffers, mark et token invalide.
- HA / panne
- Purge et aucun commit; nouveau final réévalue l’intention.
- Sécurité / preuve / source
- Aucun audio brut dans métriques. Source:
lib/media-session.ts, bridge Twilio, tests média.
STT streamingCible
- Rôle / owner
- Transcription partielle/finale possédée par Navy Phone.
- Interfaces / confiance
- Audio privé vers provider souverain; port à figer.
- État / dépendances
- Partiels consultatifs; final autoritaire après langue/re-décodage.
- HA / panne
- Timeout retire le bot et transfère; pas de transcript inventé.
- Sécurité / preuve / source
- Egress fermé, digest modèle, WER/latence BE à qualifier. Source:
lib/ai/transcribe.ts, registry providers.
Orchestrateur conversationnelCode
- Rôle / owner
- Choisit protocole, faits, outils, dialogue et handoff. Owner VoiceBot.
- Interfaces / confiance
- STT final, session, RAG, LLM et garde via contrats internes.
- État / dépendances
- Contexte minimal, révision, outils allowlistés et provenance.
- HA / panne
- Repli déterministe et humain; aucune boucle outil non bornée.
- Sécurité / preuve / source
- Isolation tenant et audit atomique. Source: moteur/contrats du dépôt VoiceBot.
LLM conversationnelCible qualifiée
- Rôle / owner
- Propose une réponse naturelle; ne décide aucune action critique.
- Interfaces / confiance
- Prompt/context privés vers endpoint souverain à figer.
- État / dépendances
- Modèle, release, digest, tokens et texte candidat.
- HA / panne
- Phrase déterministe, clarification ou handoff.
- Sécurité / preuve / source
- Sortie structurée, pas d’egress implicite; TTFT/qualité à mesurer. Source: runtime map et campagnes.
Garde déterministeCode / contrat
- Rôle / owner
- Décide autorisation, correction, question, refus ou handoff avant action et restitution.
- Interfaces / confiance
- Proposition LLM, protocole, faits, provenance et état courant.
- État / dépendances
- Version de policy, raison et décision; pas un filtre unique post-LLM.
- HA / panne
- Erreur ou fait manquant = fail-closed/handoff.
- Sécurité / preuve / source
- Décision auditée et déterministe aux zones critiques. Source: runtime map, gates produit.
Graph RAG, corpus et protocolesCode / contenu
- Rôle / owner
- Faits sourcés, navigation de protocole et réponses contrôlées. Owner contenu VoiceBot.
- Interfaces / confiance
- Retrieval interne; endpoint/vector store cible à figer.
- État / dépendances
- Documents, version, source, fraîcheur et embeddings.
- HA / panne
- Source absente = clarification/handoff, jamais fait inventé.
- Sécurité / preuve / source
- Isolation tenant, chiffrement et double revue. Source: README VoiceBot et corpus gouverné.
TTS et ACK de lectureCode + cible
- Rôle / owner
- Navy Phone synthétise le texte validé et corrèle transport/ACK.
- Interfaces / confiance
- Endpoint TTS souverain à figer, frames vers PBX/provider.
- État / dépendances
- Génération, frames, mark, ACK et token prepared-turn.
- HA / panne
- Timeout/interruption = aucun commit; retry borné ou humain.
- Sécurité / preuve / source
- Mark = transport, pas audition. Source:
lib/tts.ts, media session, contrat ACK produit.
Données, preuves et exploitation6 composants
PostgreSQL privéCible
- Rôle / owner
- État durable Navy Phone et VoiceBot avec bases/rôles séparés. Owner plateforme data.
- Interfaces / confiance
- TLS privé, port conventionnel 5432 à confirmer, aucun accès public.
- État / dépendances
- Sessions, ledger, révisions, migrations, sauvegardes.
- HA / panne
- Failover/PITR cibles; admission fermée si cohérence critique perdue.
- Sécurité / preuve / source
- RLS/NOLOGIN/IAM, mot de passe hors state; RPO/RTO non mesuré. Source:
data-foundation, stores PostgreSQL.
Stockage objet et audio vaultCible
- Rôle / owner
- Enregistrements autorisés, exports et artefacts. Owner conformité/data.
- Interfaces / confiance
- HTTPS 443/endpoints privés, ACL et clés dédiées.
- État / dépendances
- Objets, métadonnées, consentement, TTL/legal hold.
- HA / panne
- Upload idempotent; appel ne doit pas dépendre du bucket.
- Sécurité / preuve / source
- SSE/KMS/Object Lock cibles; aucun bucket. Source:
infra/scaleway/audio-vault/.
Ledger et audit append-onlyCode
- Rôle / owner
- Transitions téléphonie et preuve technique. Owner Navy Phone, séparé de l’audit VoiceBot.
- Interfaces / confiance
- Événements structurés internes, export cible privé.
- État / dépendances
- Hash chain, séquence, call ID opaque, clock.
- HA / panne
- Buffer borné ou admission fermée; pas de commit fictif.
- Sécurité / preuve / source
- RBAC/redaction, rupture de chaîne à alerter. Source:
lib/audit.ts, audit-center.
Enregistrement, rétention et restaurationCode / politique
- Rôle / owner
- Capture optionnelle, règles de rétention et purge. Owner conformité.
- Interfaces / confiance
- Audio vers vault seulement avec autorité; aucune capture par défaut.
- État / dépendances
- Consentement, objet, checksum, échéance, legal hold.
- HA / panne
- Échec stockage ne doit pas faire croire à un enregistrement réussi.
- Sécurité / preuve / source
- Double contrôle, dry-run purge, restore drill absent. Source:
lib/recording-*, politiques recording.
Liveness applicative et readiness edge localeCode + lab
- Rôle / owner
- livez/readyz applicatifs et collecteur edge 14 checks. Owners applicatif et edge séparés.
- Interfaces / confiance
- HTTP privé app; edge sans listener ni port, timer 15 s.
- État / dépendances
- Trois fichiers /run bornés: snapshot, Prometheus, dernière transition.
- HA / panne
- Snapshot >45 s refusé; panne collecteur ne coupe pas d’appel; aucune consommation/drain réel.
- Sécurité / preuve / source
- 0700/0640, aucune donnée d’appel/adresse/média/payload. Health-lab simulé, runtime-lab réel séparé. Source:
health.py,health-lab/run.py.
Métriques, logs, traces, SLO et alertesBackend absent
- Rôle / owner
- Supervision globale téléphonie, voix, données, sécurité, coût et qualité. Owner SRE/sécurité.
- Interfaces / confiance
- Exporter privé à concevoir; aucun port edge ajouté.
- État / dépendances
- Snapshot local en code/lab; backend, rétention et alert rules absents.
- HA / panne
- Export perte contrôlée; aucun failover carrier ou drain consommateur.
- Sécurité / preuve / source
- Labels fixes, métrique inconnue omise; SLO/burn-rate/astreinte non opérationnels. Source:
health.py, tests observabilité.
Réseau privé, sécurité et supply chain8 composants
VPN S2S, BGP, gateways client et bastionCible
- Rôle / owner
- Accès privé administration/client et routes redondantes. Owner réseau/SRE.
- Interfaces / confiance
- Deux gateways, préfixes bornés, management sans SSH public.
- État / dépendances
- Peers, routes, PSK/certificats et bastion JIT.
- HA / panne
- Deux chemins cibles; convergence BGP non mesurée.
- Sécurité / preuve / source
- Aucun PSK state/output, MFA et approbation. Source:
telephony-edge-ha.
PKI, secrets runtime et NTP privéCible
- Rôle / owner
- Identités carrier/cell/ARI, provisioning et temps fiable. Owner sécurité plateforme.
- Interfaces / confiance
- Management privé; sources root-only vers copies /run UID/GID exact.
- État / dépendances
- Certificats, clés, CA, mot de passe ARI, trust bundles et horloge.
- HA / panne
- Secret/temps invalide garde runtime arrêté; rotation/drain à opérer.
- Sécurité / preuve / source
- Permissions/hash/paires cert-clé vérifiés; PKI/NTP réels absents. Source: README edge,
edge.py.
IAM, KMS et Secret ManagerCible
- Rôle / owner
- Identités machine, chiffrement et secrets cloud. Owner sécurité/IAM.
- Interfaces / confiance
- Endpoints privés, rôles par service, aucune clé API en Terraform.
- État / dépendances
- Principals, policies, clés KMS et versions secrets.
- HA / panne
- Cache/rotation bornés; break-glass et révocation à concevoir.
- Sécurité / preuve / source
- Moindre privilège et audit requis. Source:
iam-foundation/README.md.
Packer et image immuable edgeBundle en code
- Rôle / owner
- Assemble Debian, Docker, systemd et trois runtimes edge. Owner supply chain.
- Interfaces / confiance
- Build contrôlé; runtime cloud sans egress général.
- État / dépendances
- Packer 1.16.0, plugin 1.5.0, Debian snapshot, OCI digests, RTPEngine source.
- HA / panne
- Images zonales A/B attendues; aucune image construite.
- Sécurité / preuve / source
- Hashes locaux; signature/SBOM/CVE/Secure Boot absents. Source:
infra/telephony/edge-cell-image/.
OpenTofu et gates de promotionTests mockés
- Rôle / owner
- Provisionne cible A/B et refuse promotion incomplète. Owner plateforme IaC.
- Interfaces / confiance
- API Scaleway lors d’un apply autorisé; aucun secret output.
- État / dépendances
- State dédié, image UUID, policy, réseaux et gates G0/G2.
- HA / panne
- Apply partiel doit rester fail-closed; rollback cloud non exercé.
- Sécurité / preuve / source
- 14 tests natifs passent avec provider mocké, pas l’API. Source:
telephony-edge-ha, vérificateur policy.
Compute et artefacts STT, LLM, embeddings, TTSÀ qualifier
- Rôle / owner
- Inference voix/texte et retrieval souverains. Owners plateforme IA + produits.
- Interfaces / confiance
- Réseau IA privé; ports fournisseurs à figer, jamais 8000/9000 par héritage.
- État / dépendances
- Modèles, digests, licences, GPU, registry et benchmarks.
- HA / panne
- Pools/circuit breakers/admission à qualifier; repli déterministe.
- Sécurité / preuve / source
- Provenance, egress, isolation; TTFT/TTFA/WER/MOS/capacité non cloud. Source: runtime map et campagnes.
Ancien module compute-planesHistorique
- Rôle / owner
- Profil STRIKE IT single-zone conservé pour traçabilité.
- Interfaces / confiance
- ARI 8088 en lab, ports IA historiques 8000/9000.
- État / dépendances
- Module non déployé, non source de vérité carrier.
- HA / panne
- Aucune HA réelle; trafic Private Network non filtré documenté.
- Sécurité / preuve / source
- Ne jamais fusionner ses claims/ports avec l’image edge actuelle. Source: README
compute-planes.
Conformité télécom, 112, RGPD et homologationExterne
- Rôle / owner
- Autorise mise en service légale. Owners direction, DPO, sécurité et opérateur.
- Interfaces / confiance
- Process humains, IBPT/BIPT, secours et autorités.
- État / dépendances
- Numérotation, portabilité, 112/localisation, RGPD/AIPD, lawful intercept.
- HA / panne
- Absence d’autorisation = NO-GO, indépendamment des tests techniques.
- Sécurité / preuve / source
- Double contrôle, minimisation, rétention et incident. Source:
docs/COMPLIANCE-BE.md, roadmap et sources officielles.