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, mTLS rôles carrier/cellule séparés. Exact-socket: public 8.8.8.8:5061, interne 5063, double Record-Route et BYE retour sur la connexion TLS. Les deux directions offer/answer PRACK et trois refus RAck ciblés sont prouvés en lab; forks, suites de 1xx fiables, teardown et RTP après renégociation restent absents. Pike 12 requêtes/2 s non dimensionné. 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.