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, outputs telephony-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, variable inbound_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.