États :Logiciel présentEssai localPrévu, non construitDépend d’un tiersaucun statut ne signifie « production »VoiceBot toujours optionnel

En une minute

Ce que cette carte montre, sans jargon, avant d’entrer dans le détail.

Résumé essentiel

Deux produits, pas un

Navy Phone est le produit de téléphonie autonome : il achemine les appels, transporte la voix, lit les réponses et transfère vers un humain. VoiceBot Navy Crisis est un produit séparé et optionnel, branché par un contrat versionné.

Qui décide

Le modèle de langage propose une réponse ; la garde déterministe décide de ce qui est dit ou fait. L’humain garde le repli et la remise en service.

Deux pièges de lecture

Un transport réseau confirmé ne prouve pas qu’une personne a entendu. Un essai local réussi ne vaut pas production.

Décision actuelle

La mise en service reste interdite. Cette carte documente du code et des essais locaux, jamais un service en production.

Explorer les 62 repères de la carte

Les 59 fonctions du catalogue ont chacune un lien vers leur fiche. Trois repères de contexte complètent le parcours : l’appelant, le transfert humain et la décision de promotion.

Chemin principal d’un appel

Quatorze étapes, de l’appelant au transfert humain. Chaque étape mène au nœud détaillé de sa zone. Le repère violet marque la frontière de contrat entre Navy Phone et VoiceBot Navy Crisis.

  1. Appelant
  2. Carrier et numéro
  3. Kamailio
  4. RTPengine
  5. Asterisk
  6. Media WebSocket
  7. VAD et interruption
  8. Reconnaissance vocale
  9. Frontière de contrat Navy Phone ↔ VoiceBot
  10. Orchestrateur
  11. Modèle de langage (propose)
  12. Garde déterministe (décide)
  13. Synthèse vocale
  14. Confirmation de lecture
  15. Transfert humain (issue sûre)

Hors plateforme

Frontière PSTN : le carrier reste un tiers non prouvé.

L’appel part du téléphone d’une personne et arrive chez un opérateur télécom contracté. Cet opérateur possède le numéro public et choisit vers quelle cellule envoyer chaque nouvel appel. C’est un tiers : son accord et son fonctionnement commun restent à confirmer.

SIP mTLS 5061, RTP/SRTP 10000-20000 vers deux IP publiques. Le carrier possède le failover des nouveaux appels : 503 ou timeout 4 s vers la cellule B, hold-down 30 s. Aucun DID, trunk, DNS/SRV, ACL ou interopérabilité n’est provisionné.

  • AppelantHors plateforme

    Personne qui appelle le numéro public depuis le réseau téléphonique.

    Décideur
    Aucun logiciel Navy Phone ; l’appelant et son opérateur.
    Protocoles
    Réseau téléphonique public, hors plateforme.
    Amont → aval
    Téléphone de l’appelant → carrier contracté.
    Panne et repli
    Aucun repli promis de ce côté ; l’appelant peut rappeler.
    Preuve
    Aucun appel sur le réseau téléphonique n’a été passé.
    Limite honnête
    Hors périmètre logiciel ; rien n’est prouvé côté appelant.

    Pas de fiche dédiée. Autorité : Parcours d’un appel

  • Carrier UE, DID et publication A/BDépend d’un tiers

    Opérateur télécom contracté qui publie les numéros et achemine les appels entrants vers les cellules.

    Décideur
    Opérateur contracté, gouvernance Navy Phone.
    Protocoles
    SIP mTLS 5061, RTP/SRTP 10000-20000 vers deux IP.
    Amont → aval
    PSTN/DIDs/contrat → Kamailio public de la cellule sélectionnée.
    Panne et repli
    Le carrier possède le failover des nouveaux appels : 503 ou timeout 4 s vers B, hold-down 30 s ; aucun appel établi ne migre, aucune redirection SIP suivie.
    Preuve
    Modèle local fermé PASS, promotion NO-GO.
    Limite honnête
    Aucun DID, trunk, DNS/SRV, ACL ou interopérabilité provisionné.

    Ouvrir la fiche

Cellules edge A et B

Frontière réseau : cellules cibles fr-par-1 et fr-par-2, inter-cellule interdit.

Deux cellules identiques, prévues dans deux zones d’hébergement parisiennes, doivent recevoir les appels. Chacune filtre le trafic, ancre la voix et fait tourner le cœur téléphonique. Aucune machine réelle n’est encore produite.

NIC public carrier, Private Network edge 8089, SSH 22 ; loopback 5062/5063, NG UDP 22222 ; nftables drop partout. Kamailio 6.0.7, RTPEngine 26.0.1.13, Asterisk 22.9.0 prouvés en essai local ; aucune image cloud construite.

  • Cellules carrier A et BPrévu, non construit

    Deux cellules d’hébergement identiques qui portent toute la chaîne téléphonique d’entrée.

    Décideur
    Plateforme téléphonie.
    Protocoles
    NIC public carrier, Private Network edge 8089, SSH 22 ; zones fr-par-1/fr-par-2.
    Amont → aval
    Carrier contracté → Kamailio/RTPEngine/Asterisk/control plane privé.
    Panne et repli
    La perte d’une cellule coupe potentiellement les appels actifs ; les nouveaux appels dépendent du carrier.
    Code et cible
    Source infra/opentofu/scaleway/telephony-edge-ha/main.tf.
    Limite honnête
    Aucune image ou Instance produite ; aucune réplication d’appel actif entre A et B.

    Ouvrir la fiche

  • Kamailio SBC A/BEssai local

    Point d’entrée SIP de chaque cellule : il vérifie, filtre et route chaque nouvel appel.

    Décideur
    Plateforme téléphonie.
    Protocoles
    mTLS 5061 carrier, mTLS 5063 interne, SIP TLS loopback 5062, NG UDP 22222.
    Amont → aval
    Carrier → RTPEngine NG, Asterisk TLS loopback.
    Panne et repli
    Fail-closed si RTPEngine ou politique invalide ; np_admission ferme les nouveaux appels sans bail santé ; aucune réplication cross-cell.
    Preuve
    Kamailio 6.0.7 ; runtime-lab prouve drain initial, OPTIONS, bail/expiration, dialogue établi survivant.
    Limite honnête
    ACK anormal sans observation PBX indépendante ; PRACK unmatched garde un risque aval.

    Ouvrir la fiche

  • RTPEngine A/BEssai local

    Ancre le flux vocal de chaque appel dans sa cellule et borne les plages de ports.

    Décideur
    Plateforme média.
    Protocoles
    NG UDP 127.0.0.1:22222 ; média public borné.
    Amont → aval
    Kamailio/SDP/plage RTP publique → Asterisk, carrier, métriques locales.
    Panne et repli
    La perte du processus coupe le média de la cellule ; aucune migration active.
    Preuve
    26.0.1.13 userspace UID 1000 ; NG/SDP 8.8.8.8:10000-11000 et RTP bidirectionnel synthétique exercés sur le même appel exact-edge local ; lab SBC borne 4 sessions.
    Limite honnête
    Sans prouver la capacité.

    Ouvrir la fiche

  • Asterisk A/BEssai local

    Cœur téléphonique de la cellule : il gère les canaux, le bridge et le plan de numérotation.

    Décideur
    Téléphonie Navy Phone.
    Protocoles
    SIP TLS loopback 5062, média via RTPEngine, ARI TLS + Media WS privé 8089.
    Amont → aval
    Kamailio loopback/RTPEngine/PJSIP → ARI, Media WS, dialplan, handoff.
    Panne et repli
    État local non répliqué ; la perte du PBX coupe les appels de la cellule.
    Preuve
    Asterisk 22.9.0, PJSIP TLS 127.0.0.1:5062 ; canal corrélé au Call-ID, bridge ARI à exactement 2 membres ; 100rel, timers 90/1800.
    Limite honnête
    Aucune image cloud construite.

    Ouvrir la fiche

  • Admission DID vers alias opaqueLogiciel présent

    Valide le numéro appelé et le traduit en contexte interne sans exposer la topologie.

    Décideur
    Routage des numéros.
    Protocoles
    To/R-URI validé → contexte inbound local.
    Amont → aval
    R-URI/To + contrat DID + policy injectée → contexte inbound Asterisk + audit d’admission.
    Panne et repli
    DID inconnu = 404/refus ; config divergente bloque la promotion.
    Preuve
    Validation E.164 stricte, digest de policy.
    Limite honnête
    Ne provisionne pas les DIDs, aucune route sortante.

    Ouvrir la fiche

  • Pare-feu hôte trois NICEssai local

    Sépare les trois réseaux de la cellule et refuse tout trafic non prévu.

    Décideur
    Sécurité plateforme.
    Protocoles
    5061/RTP public, 8089 edge, 22/123 management ; drop partout.
    Amont → aval
    Policy canonique → Kamailio/Asterisk/management/preuves health.
    Panne et repli
    Une ambiguïté NIC garde le runtime arrêté.
    Preuve
    Mauvaise interface refusée ; quatre dérives health-lab détectées.
    Limite honnête
    Ne remplace ni mTLS ni admission applicative ni contrôles carrier.

    Ouvrir la fiche

  • Readiness edge localeEssai local

    Mesure la santé de la cellule et autorise ou ferme l’admission des nouveaux appels.

    Décideur
    Owners applicatif et edge séparés.
    Protocoles
    HTTP privé app ; edge sans listener ; timer 15 s, RPC Kamailio Unix ; 14 checks.
    Amont → aval
    Kamailio/RTPEngine/Asterisk/firewall → admission Kamailio, exporter, consommateur carrier.
    Panne et repli
    Snapshot > 25 s refusé ; panne collecteur demande le drain, sinon bail 30 s expire ; appels établis non gated.
    Preuve
    4 fichiers /run bornés, bail htable 30 s, content-free.
    Limite honnête
    Ne retire pas une cellule du carrier, ne draine pas les actifs.

    Ouvrir la fiche

  • Consommateur carrier du contrat A/BPrévu, non construit

    Traduit la santé des cellules en politique d’admission que le carrier applique aux nouveaux appels.

    Décideur
    Autorité : carrier contracté ; Navy possède contrat + preuve d’acceptation.
    Protocoles
    Deux cibles SIP mTLS directes ; 503 Cell Draining ou absence de réponse.
    Amont → aval
    Readiness bornée + hystérésis → politique d’admission carrier, drain, audit.
    Panne et repli
    Deux échecs ferment le nouvel appel ; aucun actif ne migre ; redirection SIP interdite.
    Code et cible
    Priorités 10/20, timeout 4 s, hold-down 30 s en modèle local ; contrat + lab PASS.
    Limite honnête
    Configuration opérateur et audit terrain absents ; promotion NO-GO.

    Ouvrir la fiche

Contrôle Navy Phone

Frontière edge ↔ contrôle : ARI TLS et Media WebSocket privés 8089 uniquement.

Le centre de contrôle de Navy Phone relie le cœur téléphonique aux logiciels : application web, téléphone logiciel dans le navigateur, liaison audio et détection de parole. C’est aussi lui qui prépare le transfert vers un humain.

App 3000, API HTTPS, ingress 443, signalisation WSS 4010, ARI TLS + Media WS privé 8089, TURN 3478/5349. 56 frames slin16, queue 46 → 0 ; Navy 395 fichiers / 4 095 tests sous Node 22.23.2. Le mark prouve le transport, jamais l’audition.

  • Ingress web, API et WSSPrévu, non construit

    Porte d’entrée des clients web, des API et des téléphones logiciels.

    Décideur
    Plateforme web.
    Protocoles
    443 public ou privé ; app 3000, signalisation 4010.
    Amont → aval
    Clients web/API/softphones → app Navy Phone.
    Panne et repli
    Une panne bloque nouveaux softphones et admin, pas un trunk établi.
    Code et cible
    Source infra/deploy/Caddyfile.
    Limite honnête
    Ingress HA non prouvé ; HSTS/CSP/rate limit à figer.

    Ouvrir la fiche

  • Bridge public Twilio vers VoiceBotLogiciel présent

    Vérifie la demande de Twilio et rattache un seul flux audio au bon appel.

    Décideur
    Admission téléphonique Navy Phone.
    Protocoles
    Webhook HTTPS signé, CallSid réservé et Media Streams WSS via un ingress public approuvé.
    Amont → aval
    Twilio et numéro autorisé → session VoiceBot, STT, TTS et settlement.
    Panne et repli
    Signature, numéro ou seconde session invalide = refus ; aucun appel actif ne migre.
    Preuve
    Contrôles et serveur loopback 127.0.0.1:3103 présents dans le code.
    Limite honnête
    Aucun ingress public, webhook configuré, numéro actif, appel réel ou service redondant n’est attesté.

    Ouvrir la fiche

  • Navy Phone app, API et control planeLogiciel présent

    Application et API centrales : authentification, orchestration des appels, audit et handoff.

    Décideur
    Navy Phone.
    Protocoles
    App 3000, API HTTPS, ARI/Media WS 8089 vers edge.
    Amont → aval
    Ingress/auth/softphone/événements ARI → Asterisk, média, signalisation, audit, handoff.
    Panne et repli
    Réplicable si état externe ; topologie cloud, drain et affinité non prouvés.
    Preuve
    RBAC/tenant, livez/readyz ; app/, server/ari-app.ts, lib/carrier/.
    Limite honnête
    Ne possède ni trunk carrier, ni décisions métier VoiceBot, ni inférence LLM.

    Ouvrir la fiche

  • Continuité réseau du poste opérateurLogiciel présent

    Passe l’écran en lecture seule quand le navigateur ne prouve plus sa connexion au service.

    Décideur
    Interface opérateur Navy Phone.
    Protocoles
    Vérification /api/connectivity sans cache toutes les 20 s.
    Amont → aval
    Session, état réseau et service → bannière, lecture seule et brouillon borné.
    Panne et repli
    Aucune écriture hors ligne ; le retour du réseau exige une nouvelle vérification.
    Preuve
    Code UI et tests ; un brouillon âgé de plus de 30 minutes est refusé.
    Limite honnête
    Ne fournit ni second réseau, ni file hors ligne, ni rejeu automatique, ni procédure humaine.

    Ouvrir la fiche

  • Signalisation softphoneLogiciel présent

    Canal temps réel qui synchronise l’état d’appel entre le navigateur et la plateforme.

    Décideur
    Temps réel Navy.
    Protocoles
    WSS via ingress port 4010.
    Amont → aval
    App + session authentifiée → UI, état d’appel, négociation WebRTC.
    Panne et repli
    Reconnect et affinité à qualifier ; sortie PSTN directe refusée.
    Preuve
    Bearer interne, origines bornées, quotas.
    Limite honnête
    Ne remplace ni SIP, ni WebRTC, ni le chemin média.

    Ouvrir la fiche

  • Softphone WebRTCLogiciel présent

    Téléphone logiciel dans le navigateur des agents, rattaché à un tenant.

    Décideur
    Navy Phone.
    Protocoles
    HTTPS/WSS, ICE, TURN.
    Amont → aval
    Navigateur/signalisation → coturn, session média, control plane.
    Panne et repli
    Renégociation/reprise ICE réelle non prouvée.
    Preuve
    Rôle appareil, tenant.
    Limite honnête
    Plage relay à figer ; getStats()/MOS à opérer.

    Ouvrir la fiche

  • coturn A/BEssai local

    Relais média des téléphones logiciels quand le chemin direct est impossible.

    Décideur
    Plateforme temps réel.
    Protocoles
    3478/5349, plage UDP à figer.
    Amont → aval
    Softphone WebRTC + credentials TURN temporaires → chemin média WebRTC.
    Panne et repli
    Les nouveaux clients peuvent choisir B ; une allocation A active ne migre pas.
    Preuve
    Anti-pivot, quotas ; preuve TURN HA locale.
    Limite honnête
    Ne relaie pas le trunk RTP carrier.

    Ouvrir la fiche

  • ARI TLS et Media WebSocketEssai local

    Liaison privée entre le cœur téléphonique et la session média Navy Phone.

    Décideur
    Contrôle téléphonique.
    Protocoles
    HTTPS/WSS 8089 réseau edge, credential ARI dédié, CA interne.
    Amont → aval
    Asterisk ARI/bridge exact → session média Navy Phone, STT/TTS optionnels, playback ACK.
    Panne et repli
    Purge invalide l’ancien mark ; perte WSS, reconnexion, reprise worker et charge restent à prouver.
    Preuve
    Vrai Asterisk 22.9.0 local : WSS/slin16, 56 frames, audio non silencieux, queue/DTMF/MARK_MEDIA/FLUSH_MEDIA/mark post-flush observés, zéro erreur protocole ; pstnOutbound=false ; queue 46 → 0.
    Limite honnête
    Ne prouve ni voix humaine, audition, VAD, pipeline STT-LLM-TTS, cloud ou production.

    Ouvrir la fiche

  • Media session et preuve de playbackLogiciel présent

    Joue la réponse validée et exige une confirmation de transport avant de valider le tour.

    Décideur
    Média Navy Phone.
    Protocoles
    MediaSessionAdapter.requestAck(): boolean ; false ou throw = échec immédiat.
    Amont → aval
    TTS/session/commandes Media WS → playback ACK, ledger, prochain tour.
    Panne et repli
    Annulation confirmée : connexion conservée, aucun commit ; issue inconnue : fail-closed ; pas de reprise transparente.
    Preuve
    Settlement committed/cancelled/failed ; Navy 395 fichiers / 4 095 tests sous Node 22.23.2, typecheck verts.
    Limite honnête
    Le mark prouve le transport, pas l’audition ; aucun cloud, PSTN ou humain.

    Ouvrir la fiche

  • Politique de non-réponseLogiciel présent

    Choisit une suite prévue quand une destination ne décroche pas avant le délai.

    Décideur
    Politique téléphonique versionnée.
    Protocoles
    Timer et réservation durable de la décision.
    Amont → aval
    Route, délai et état du canal → messagerie, transfert approuvé ou fin d’appel.
    Panne et repli
    Politique absente ou invalide = refus ; une seule décision durable par appel.
    Preuve
    Code, migrations et tests locaux sur les décisions immuables.
    Limite honnête
    Crash réel en course, PBX cloud, cibles réelles, charge et SLO ne sont pas attestés.

    Ouvrir la fiche

  • Messagerie vocaleLogiciel présent

    Diffuse un accueil et prépare un message autorisé quand personne ne répond.

    Décideur
    Téléphonie et politique d’enregistrement.
    Protocoles
    Parcours PBX startVoicemail et capture gouvernée.
    Amont → aval
    Non-réponse, accueil et autorisation → capture, métadonnées, consultation et rétention.
    Panne et repli
    Aucun enregistrement réussi n’est inventé si le stockage ou la capture échoue.
    Preuve
    Parcours, réglages, routes et tests applicatifs présents.
    Limite honnête
    Stockage, notification, restauration, rétention réelle, charge et appel public ne sont pas prouvés.

    Ouvrir la fiche

  • VAD, gestion de tour et barge-inLogiciel présent

    Détecte la reprise de parole, annule la réponse en cours et ouvre un nouveau tour proprement.

    Décideur
    Média Navy Phone.
    Protocoles
    Frames PCM, VAD, génération, AbortSignal, clear/FLUSH_MEDIA, interrupted_previous_assistant.
    Amont → aval
    Audio entrant + génération active → orchestrateur, TTS annulé, Media WS, nouveau tour.
    Panne et repli
    cancelled ne ferme plus 1011 ; failed reste fail-closed.
    Preuve
    Contrat traversant bridge→SDK→API→runtime→moteur ; readiness exige interruption_context=true.
    Limite honnête
    Sans arrêt acoustique, cloud, PSTN ou humain.

    Ouvrir la fiche

  • Handoff humainCapacité Navy Phone

    Transfert de l’appel vers une file ou un agent humain, avec résumé factuel minimal. C’est une issue sûre et réussie, jamais un échec du modèle.

    Décideur
    Navy Phone.
    Protocoles
    Déclencheurs : demande explicite, garde fail-closed, timeout STT/LLM/TTS, conflit CAS.
    Amont → aval
    Déclencheur → purge génération/mark → résumé factuel minimal vers file/agent.
    Panne et repli
    Dégradation : sans VoiceBot, Navy Phone conserve appel, file et handoff.
    Preuve
    Parcours documenté dans la page d’autorité.
    Limite honnête
    Aucune reprise transparente promise ; pas de fiche dédiée.

    Pas de fiche dédiée. Autorité : Parcours d’un appel, section handoff

VoiceBot Navy Crisis (produit séparé optionnel)

Frontière produit : contrat API/SDK versionné, jamais le jeton du navigateur.

L’assistant vocal de crise est un produit séparé et optionnel. Navy Phone le joint par un contrat versionné et ne lui passe jamais le jeton du navigateur. Sans lui, la téléphonie continue de fonctionner et l’appel reste transférable à un humain.

API v1/SDK versionnée tenant-scoped, 11 routes derrière getSession, headers allowlistés dans les deux sens, corps borné 1 MiB, jamais le bearer navigateur. Token opaque, révision optimiste CAS. Produit séparé : 31 pass + 1 skipped, 344 pass + 3 skipped.

  • Ingress VoiceBot API v1 et SDKLogiciel présent

    Seul point de contact entre Navy Phone et le produit VoiceBot, versionné et borné.

    Décideur
    API VoiceBot.
    Protocoles
    11 routes passant par getSession avant token/fetch ; réponse bornée 1 MiB ; allowlists de headers dans les deux sens ; jamais le bearer du navigateur.
    Amont → aval
    Control plane Navy Phone + session vérifiée → sessions VoiceBot, protocoles versionnés, audit dédié.
    Panne et repli
    401 stable si anonyme/expiré/restreint ; session store ou identité machine indisponible = refus sans inventer de contexte.
    Preuve
    Navy 395/4 095 ; sécurité 51 fichiers / 570 tests, 0 fail/skip/todo ; produit séparé 31 pass + 1 skipped, 344 pass + 3 skipped.
    Limite honnête
    Code local, aucun service déployé.

    Ouvrir la fiche

  • Sessions et tours préparésLogiciel présent

    Gardent l’état de conversation et n’acceptent qu’un seul résultat par tour.

    Décideur
    VoiceBot.
    Protocoles
    Token opaque, révision optimiste (CAS), issues committed/cancelled/failed.
    Amont → aval
    STT final validé + état session → garde, TTS, playback ACK, commit CAS.
    Panne et repli
    ACK indéterminé fail-closed ; timeout ACK 3 s (borne 0,25-10 s) ; prepare 6 s (borne 0,5-15 s) ; cancelled+replayed adopte la révision retournée tout en restant annulé.
    Preuve
    Suites Navy 395/4 095 ; produit 31+1 skipped, 344+3 skipped ; turn-settlement.ts.
    Limite honnête
    Aucun runtime déployé.

    Ouvrir la fiche

  • Orchestrateur conversationnelLogiciel présent

    Mène la conversation : il assemble le contexte, consulte les sources et soumet chaque réponse à la garde.

    Décideur
    VoiceBot.
    Protocoles
    STT final, contexte d’interruption, session, RAG, LLM, garde.
    Amont → aval
    Session/transcription/protocoles → LLM, garde, outils, TTS, handoff.
    Panne et repli
    Danger vital déterministe prioritaire ; repli borné si modèle/contexte indisponible ; « Attendez », « Wacht », « Hold on » répondent sans avancer le questionnaire.
    Preuve
    Produit séparé 31+1 skipped, 344+3 skipped.
    Limite honnête
    Aucun dialogue humain ou pilote de crise.

    Ouvrir la fiche

  • Sentinelle vocale consultativeEssai local

    Donne un indice supplémentaire au superviseur sans décider ni bloquer seule une personne.

    Décideur
    Superviseur humain ; la sentinelle reste consultative.
    Protocoles
    Extrait audio borné, identifiants opaques et analyse hors du chemin critique.
    Amont → aval
    Audio et contexte minimal → signal de risque, audit et affichage de supervision.
    Panne et repli
    Sidecar absent ou 503 = conversation maintenue sans ce signal.
    Preuve
    Essai de divergence Whisper ; aucun adaptateur anti-spoof ou replay opérationnel.
    Limite honnête
    N’est ni une preuve d’identité, ni un détecteur fiable, ni une autorité automatique.

    Ouvrir la fiche

  • Garde déterministeLogiciel présent

    Seule autorité de décision : elle autorise, corrige, demande, refuse ou transfère.

    Décideur
    VoiceBot.
    Protocoles
    Proposition LLM + protocole + faits + provenance + état.
    Amont → aval
    Proposition LLM/règles versionnées → décision, TTS sûre, handoff, audit de refus.
    Panne et repli
    Erreur ou fait manquant = fail-closed/handoff ; décide autoriser/corriger/demander/refuser/handoff.
    Preuve
    Pas un filtre unique post-LLM ; décision auditée.
    Limite honnête
    Preuve de code uniquement ; aucune décision de crise réelle exercée.

    Ouvrir la fiche

  • Graph RAG, corpus et protocolesLogiciel présent

    Recherche dans les sources approuvées et trace la provenance de chaque fait.

    Décideur
    Contenu VoiceBot.
    Protocoles
    Retrieval interne ; endpoint/vector store à figer.
    Amont → aval
    Corpus approuvé/versions/droits → recherche, orchestrateur, LLM, audit de provenance.
    Panne et repli
    Source absente = clarification/handoff, jamais fait inventé.
    Preuve
    Isolation tenant, chiffrement, double revue.
    Limite honnête
    Ne rend pas une source vraie par défaut ; ne remplace pas la garde.

    Ouvrir la fiche

Runtimes voix et IA

Frontière d’autorité : le modèle propose, la garde décide.

Les chemins locaux privés restent la cible privilégiée. Des adaptateurs vers des fournisseurs externes existent aussi, mais ils ne sont ni approuvés ni activés par cette documentation. Dans tous les cas, le modèle propose une réponse et seule la garde déterministe décide.

Runtimes locaux et endpoints souverains à verrouiller ; egress tiers explicite et refusé en mode local strict. Aucun fournisseur, modèle exact, digest, capacité, WER, TTFT, TTFA ou MOS de production n’est qualifié. Le LLM ne décide aucune action critique et n’écrit jamais le ledger.

  • STT streamingPrévu, non construit

    Transcrit la voix de l’appelant en texte exploitable, avec validation de langue.

    Décideur
    Navy Phone.
    Protocoles
    Audio privé vers provider souverain, port à figer.
    Amont → aval
    Media WS/VAD/audio slin16 borné → orchestrateur, validation langue, garde.
    Panne et repli
    Timeout retire le bot et transfère ; pas de transcript inventé ; partiels consultatifs, final autoritaire après validation langue.
    Code et cible
    Egress fermé, digest modèle ; lib/ai/transcribe.ts.
    Limite honnête
    WER/latence BE à qualifier ; aucun endpoint souverain intégré.

    Ouvrir la fiche

  • LLM conversationnelPrévu, non construit

    Propose une réponse conversationnelle à partir du contexte autorisé. Il ne décide rien.

    Décideur
    Provider piloté par VoiceBot.
    Protocoles
    Prompt/context privés vers endpoint souverain à figer.
    Amont → aval
    Orchestrateur/contexte/RAG autorisés → garde, TTS, audit de décision.
    Panne et repli
    Phrase déterministe, clarification ou handoff.
    Code et cible
    Sortie structurée, pas d’egress implicite.
    Limite honnête
    Ne décide aucune action critique ; n’écrit jamais le ledger ; TTFT/qualité à mesurer.

    Ouvrir la fiche

  • TTS et ACK de lecturePrévu, non construit

    Transforme la réponse validée en voix et attend la confirmation de lecture avant toute validation.

    Décideur
    Navy Phone.
    Protocoles
    Endpoint TTS souverain à figer ; requestAck booléen.
    Amont → aval
    Garde + réponse validée → Media WS, playback ACK, ledger de tour.
    Panne et repli
    Timeout ACK 3 s (0,25-10 s) ; refus, exception ou issue inconnue ne valident jamais le tour.
    Code et cible
    Navy 395/4 095, Node 22.23.2.
    Limite honnête
    Mark = transport, pas audition ; aucun endpoint déployé, cloud, PSTN ou humain.

    Ouvrir la fiche

  • Compute et artefacts STT/LLM/embeddings/TTSPrévu, non construit

    Socle de calcul privé et artefacts de modèles avec provenance pour les runtimes voix et IA.

    Décideur
    Plateforme IA + produits.
    Protocoles
    Réseau IA privé ; ports à figer.
    Amont → aval
    Artefacts modèles/évaluations/provenance → runtimes privés.
    Panne et repli
    Pools/circuit breakers/admission à qualifier ; repli déterministe.
    Code et cible
    Provenance, egress, isolation.
    Limite honnête
    Ne prouve aucun runtime ; TTFT/TTFA/WER/MOS/capacité non prouvés.

    Ouvrir la fiche

  • Runtimes STT et TTS locauxEssai local

    Traite la parole et produit la voix près de l’application, dans une frontière privée à qualifier.

    Décideur
    Plateforme IA et produits.
    Protocoles
    Audio borné et texte validé vers des sidecars privés ou loopback.
    Amont → aval
    Audio ou texte → transcription finale et audio synthétisé vers la session média.
    Panne et repli
    Runtime absent ou saturé = repli déterministe ou transfert humain.
    Preuve
    Adaptateurs et bancs locaux pour plusieurs moteurs ; aucune combinaison de production attestée.
    Limite honnête
    Modèles, versions, images, matériel, langues, capacité, reprise et SLO restent à verrouiller.

    Ouvrir la fiche

  • Fournisseurs IA externesDépend d’un tiers

    Rend visible toute sortie optionnelle de texte ou d’audio vers un service tiers.

    Décideur
    Sécurité, données et owner VoiceBot avant toute activation.
    Protocoles
    HTTPS vers adaptateurs ElevenLabs, Anthropic ou OpenRouter ; mode local strict refuse les clés cloud.
    Amont → aval
    Texte ou transcription bornée → réponse du fournisseur, validation et repli.
    Panne et repli
    Timeout, refus ou réponse invalide = repli humain ou déterministe.
    Preuve
    Adaptateurs présents dans le dépôt ; aucun fournisseur n’est provisionné ou qualifié.
    Limite honnête
    Contrat, résidence, rétention, coût, qualité, quotas, sécurité et SLO restent NO-GO.

    Ouvrir la fiche

Données et preuves

Frontière données : les deux audits restent corrélables, jamais fusionnés.

Les bases, le coffre audio et les journaux gardent les preuves de ce qui s’est passé. Le journal téléphonique et le journal décisionnel restent corrélables par un identifiant opaque, mais jamais fusionnés.

PostgreSQL TLS privé, 5432 à confirmer, aucun accès public, bases/rôles séparés Navy/VoiceBot. Hash chain, séquence, call ID opaque ; lib/audit.ts. Lab navy.db : 96 sources fermées au digest 8c3c15ac…, 31 scénarios, deux smokes repository et deux oracles DB indépendants. Aucun RPO/RTO mesuré.

  • PostgreSQL privéPrévu, non construit

    Base de données privée des deux produits, sans aucun accès public.

    Décideur
    Plateforme data.
    Protocoles
    TLS privé, 5432 à confirmer, aucun accès public ; bases/rôles séparés Navy/VoiceBot.
    Amont → aval
    App + services autorisés → sauvegarde, restauration, audit, métriques.
    Panne et repli
    Failover/PITR cibles ; admission fermée si cohérence critique perdue.
    Code et cible
    RLS/NOLOGIN/IAM, mot de passe hors state.
    Limite honnête
    RPO/RTO non mesuré.

    Ouvrir la fiche

  • Stockage objet et audio vaultPrévu, non construit

    Coffre privé pour les enregistrements, uniquement quand une autorité l’a demandé.

    Décideur
    Conformité/data.
    Protocoles
    HTTPS 443/endpoints privés, ACL, clés dédiées.
    Amont → aval
    Services explicitement autorisés → rétention, suppression, preuve d’intégrité.
    Panne et repli
    Upload idempotent ; l’appel ne dépend jamais du bucket.
    Code et cible
    SSE/KMS/Object Lock cibles.
    Limite honnête
    Aucun bucket ; ne reçoit aucun audio par défaut.

    Ouvrir la fiche

  • Ledger et audit append-onlyLogiciel présent

    Journal téléphonique en ajout seul, séparé de l’audit décisionnel VoiceBot.

    Décideur
    Navy Phone (séparé de l’audit VoiceBot).
    Protocoles
    Événements structurés internes, export cible privé.
    Amont → aval
    Garde/control plane/transactions → audit, investigation, attestations.
    Panne et repli
    Buffer borné ou admission fermée ; pas de commit fictif.
    Preuve
    Hash chain, séquence, call ID opaque ; lib/audit.ts.
    Limite honnête
    Rupture de chaîne à alerter ; ne stocke pas le payload audio.

    Ouvrir la fiche

  • Enregistrement, rétention et restaurationLogiciel présent

    Politiques de conservation et de suppression ; aucune capture audio par défaut.

    Décideur
    Conformité.
    Protocoles
    Audio vers vault seulement avec autorité ; aucune capture par défaut.
    Amont → aval
    Politiques RGPD → suppression, sauvegarde, restauration, preuve.
    Panne et repli
    Un échec de stockage ne doit pas faire croire à un enregistrement réussi.
    Preuve
    Double contrôle et dry-run purge ; lib/recording-*.
    Limite honnête
    Le lab strict v2 ne couvre pas le coffre objet ni la politique de production.

    Ouvrir la fiche

  • Registre de preuves et attestationsPrévu, non construit

    Registre qui bloque toute promotion sans preuve cohérente et décision humaine traçable.

    Décideur
    Release assurance + approbateur indépendant.
    Protocoles
    Écriture CI/gate privée, lecture audit.
    Amont → aval
    Pipelines de vérification/digests/décisions humaines → gates, audit, rollback traçable.
    Panne et repli
    Preuve absente ou incohérente bloque la promotion.
    Code et cible
    Enveloppe locale exact-edge v1 : 13 checks, 9 métriques ; rapport content-free.
    Limite honnête
    Non attesté, promotion NO-GO ; aucun registre déployé.

    Ouvrir la fiche

  • Lab reprise navy.db strict v2Essai local

    Mécanisme de reprise des données locales, exercé dans une cible isolée.

    Décideur
    Reprise des données locales.
    Protocoles
    Archive v2, manifeste fermé, SHA-256, chiffrement age, Docker réseau none.
    Amont → aval
    Copie contrôlée navy.db → cible isolée vérifiée, rapport, décision NO-GO.
    Panne et repli
    SIGKILL pendant l’init du journal = abandon sûr puis retry réussi.
    Preuve
    96 sources au digest 8c3c15ac… ; 31 scénarios, deux reprises repository, deux oracles SQLite indépendants, copie hôte inscriptible et fingerprint source préservé.
    Limite honnête
    Zéro volume production, cloud, média ou PSTN ; aucun processus Navy Phone/Asterisk redémarré, aucune archive production, PITR ou RPO/RTO ; NO-GO.

    Ouvrir la fiche

Identité, secrets et souveraineté

Frontière de souveraineté : secrets hors Git, state et image ; rien n’est déployé.

Les clés, les certificats et les accès restent à construire et à opérer. La conformité belge dépend d’autorités extérieures : sans autorisation, rien ne démarre, quel que soit l’état du code.

Secrets hors Git/state/image ; PKI, KMS, Secret Manager et attestations externes non déployés. Management sans SSH public, NTP 123 privé. Conformité : IBPT/BIPT, 112/localisation, RGPD/AIPD, lawful intercept ; absence d’autorisation = NO-GO.

  • IAM, KMS et Secret ManagerPrévu, non construit

    Identités machine, clés de chiffrement et secrets centralisés, encore non déployés.

    Décideur
    Sécurité/IAM.
    Protocoles
    Garde de session sur 11 routes avant identité machine ; headers filtrés.
    Amont → aval
    Session + organisation + politiques → identité machine, services, bases, objet, audits.
    Panne et repli
    401 session invalide ; 503 no-store sans fetch ni token (panne store) ; 503 sans fetch (identité absente).
    Code et cible
    Tests ciblés 17/17 dans 4 fichiers : 11 chemins exacts, 12 handlers ; corps borné 1 MiB.
    Limite honnête
    Preuve locale de code seulement ; IAM/KMS non déployés.

    Ouvrir la fiche

  • PKI, secrets runtime et NTP privéPrévu, non construit

    Autorité de certification interne, distribution des secrets et temps fiable.

    Décideur
    Sécurité plateforme.
    Protocoles
    Management privé ; copies /run UID/GID exact.
    Amont → aval
    CA/Secret Manager/NTP privé → services mTLS, journaux horodatés, rotation.
    Panne et repli
    Secret ou temps invalide garde le runtime arrêté.
    Code et cible
    Permissions/hash/paires cert-clé vérifiés.
    Limite honnête
    PKI/NTP réels absents.

    Ouvrir la fiche

  • ACME et certificats Let’s EncryptPrévu, non construit

    Prévoit les certificats publics sans ouvrir le réseau téléphonique fermé.

    Décideur
    Réseau, sécurité et propriétaire du domaine.
    Protocoles
    ACME via le plan administratif, jamais par un egress libre de l’edge.
    Amont → aval
    Domaine, DNS et challenge approuvés → certificat public HTTPS et WSS.
    Panne et repli
    Certificat absent ou expiré = ingress public refusé ; la PKI privée reste séparée.
    Preuve
    Configuration candidate Caddy seulement.
    Limite honnête
    Aucun domaine, certificat délivré, renouvellement, révocation ou bascule n’est attesté.

    Ouvrir la fiche

  • Email transactionnel ResendDépend d’un tiers

    Demande l’envoi des invitations et liens de compte sans confondre tentative et livraison.

    Décideur
    Identité, sécurité et responsable des données.
    Protocoles
    API HTTPS Resend ; le mode local strict refuse la clé cloud.
    Amont → aval
    Destinataire, sujet et contenu → fournisseur email puis boîte du destinataire.
    Panne et repli
    Erreur fournisseur journalisée ; aucune réception n’est annoncée sans preuve.
    Preuve
    Adaptateur présent ; aucun domaine, webhook de livraison ou contrat n’est attesté.
    Limite honnête
    Résidence, SPF, DKIM, DMARC, liens expurgés, bounces, support et SLO restent NO-GO.

    Ouvrir la fiche

  • VPN S2S, BGP, bastionPrévu, non construit

    Accès d’administration privé et interconnexion réseau, en deux chemins cibles.

    Décideur
    Réseau/SRE.
    Protocoles
    Deux gateways, préfixes bornés, management sans SSH public.
    Amont → aval
    Réseau client/gateways/identités admin → management, bastion, services privés.
    Panne et repli
    Deux chemins cibles ; convergence BGP non mesurée.
    Code et cible
    Aucun PSK en state/output, MFA, approbation.
    Limite honnête
    Ne transporte pas le RTP carrier public.

    Ouvrir la fiche

  • Conformité télécom BE, 112, RGPDDépend d’un tiers

    Décisions juridiques et autorisations humaines sans lesquelles aucune exploitation n’est permise.

    Décideur
    Direction, DPO, sécurité, opérateur.
    Protocoles
    Processus humains, IBPT/BIPT, secours, autorités.
    Amont → aval
    Décisions juridiques/AIPD/opérateur → gate G0, pilote, contrat carrier.
    Panne et repli
    Absence d’autorisation = NO-GO, indépendamment des tests.
    Preuve
    Numérotation, portabilité, 112/localisation, RGPD/AIPD, lawful intercept ; docs/COMPLIANCE-BE.md.
    Limite honnête
    Ni test automatique ni preuve de lab.

    Ouvrir la fiche

Observabilité (chaîne edge-health)

Frontière de supervision : santé content-free, aucun canal humain branché.

Une chaîne de surveillance remonte la santé des cellules, étape par étape, jusqu’à une boîte de réception opérateur. Elle ne prévient encore aucun humain et ne promet aucun niveau de service.

POST mTLS 9443 vers VIP 10.72.40.50, collecteurs A 10.72.41.10 / B 10.72.42.10, receiver 9444, dispatcher 9445, gossip 9094. Runtime-lab fermé 12/12 ; deux runs GREEN identiques (47 fichiers, digest 3a4d23bd…, 81/81, 1 425 contrôles, 31 scénarios, passes=2, totalRuntimePasses=3). Aucun SLO opérationnel.

  • Exporter edge-healthEssai local

    Envoie la santé locale de la cellule, sans ouvrir de port.

    Décideur
    SRE edge.
    Protocoles
    POST mTLS TCP/9443 ; aucun listener.
    Panne et repli
    Retry idempotent ; spool 3 enveloppes ; panne distante sans impact appel/admission.
    Preuve et limite
    Telemetry-lab mTLS ; VIP et cloud absents.

    Ouvrir la fiche

  • VIP et load balancer privésPrévu, non construit

    Adresse privée unique vers les collecteurs des deux cellules.

    Décideur
    SRE plateforme.
    Protocoles
    10.72.40.50:9443, passthrough TLS.
    Panne et repli
    SPOF et source backend non qualifiés.
    Preuve et limite
    Contrat statique ; aucun déploiement.

    Ouvrir la fiche

  • Collecteur edge-healthEssai local

    Reçoit les enveloppes de santé et les borne par cellule.

    Décideur
    SRE edge.
    Protocoles
    POST mTLS 9443, GET /metrics.
    Panne et repli
    Aucune réplication ; appels indépendants.
    Preuve et limite
    SQLite borné 256 enveloppes/cellule ; 5 alertes à codes fixes ; aucun cloud.

    Ouvrir la fiche

  • Prometheus A/BEssai local

    Mesure et évalue les règles d’alerte sur les deux collecteurs.

    Décideur
    SRE observabilité.
    Protocoles
    GET /metrics mTLS direct A/B.
    Panne et repli
    Deux scrapes et perte de A exercés.
    Preuve et limite
    Deux Prometheus 3.14.0 digest-pinnés ; runtime-lab fermé 12/12 ; aucun déploiement souverain, TSDB durable à figer.

    Ouvrir la fiche

  • Alertmanager A/BEssai local

    Groupe et notifie les alertes, en acceptant les doublons plutôt que les pertes.

    Décideur
    SRE/astreinte.
    Protocoles
    Gossip mTLS 9094, webhook mTLS ; send_resolved=true, max_alerts=16.
    Panne et repli
    Partition gossip : chacun notifie, cluster reformé ; doublons dédupliqués durablement.
    Preuve et limite
    Deux Alertmanager 0.33.1 réels ; 47 fichiers digest 3a4d23bd…, mutations 81/81, 1 425 contrôles, 31 scénarios ; at-least-once et fail-open ; aucune garantie de notification unique.

    Ouvrir la fiche

  • Receiver d’alertesEssai local

    Réceptionne les alertes et le signal deadman sans rien inventer.

    Décideur
    SRE/astreinte.
    Protocoles
    POST /v1/alerts et /v1/deadman mTLS 10.72.40.60:9444.
    Panne et repli
    duplicate_count=0 aux arrêts ; deadman hors outbox.
    Preuve et limite
    Autres partitions, répétitions, Prometheus réel, production et humain non prouvés ; aucun canal humain.

    Ouvrir la fiche

  • Bridge receiver → PostgreSQL OperationsEssai local

    Relais borné entre le receiver et la base des opérations.

    Décideur
    SRE supervision.
    Protocoles
    Broker Unix local borné, mTLS A/B vers PostgreSQL Operations v2 TCP/5432 ; 8 codes, deadman exclu.
    Panne et repli
    Leases/délais/8 tentatives bornés, DLQ ; migration v1 fail-closed.
    Preuve et limite
    Labs Unix/PG réels ; crash après commit, replay, révocation mTLS, poison exercés ; aucun ticket, SMS, appel, email ou acquittement humain.

    Ouvrir la fiche

  • PostgreSQL des opérations edge-healthEssai local

    Base append-only des événements opérateur, avec idempotence stricte.

    Décideur
    Owner objets navy_phone_edge_health_owner NOLOGIN ; métier : SRE opérations + plateforme données.
    Protocoles
    PostgreSQL 18.6 + pgcrypto ; rôles NOLOGIN.
    Panne et repli
    5 journaux append-only + outbox transactionnelle ; idempotency key + lifecycle_revision ; deux requêtes, un seul effet.
    Preuve et limite
    E2E local ; aucun canal ni acquittement humain intégré ; Prometheus réel non lancé.

    Ouvrir la fiche

  • Dispatcher des événements opérateurEssai local

    Pousse les événements vers le sink opérateur avec rejeu borné.

    Décideur
    SRE opérations.
    Protocoles
    PostgreSQL mTLS → HTTPS mTLS 10.72.40.70:9445.
    Panne et repli
    Deux workers ; timeout sink exactement 5 000 ms ; erreurs temporaires rejouées.
    Preuve et limite
    78 tests HTTPS mTLS + lab PostgreSQL ; preuve finale deux pannes + partition ; promotion NO-GO ; aucun canal humain branché.

    Ouvrir la fiche

  • Sink opérateur transactionnelEssai local

    Boîte de réception opérateur, transactionnelle et idempotente.

    Décideur
    SRE opérations + plateforme données.
    Protocoles
    HTTPS mTLS 9445, JSON canonique fermé, PostgreSQL dédié.
    Panne et repli
    Reçus idempotents, watermark ; budgets sous 5 s.
    Preuve et limite
    Vérificateur bijectif, 79 tests statiques + lab ; obligation operator-primary non consommée ; promotion NO-GO ; aucun PostgreSQL HA.

    Ouvrir la fiche

Pas de fiche globale dédiée : aucun canal humain branché ; aucun SLO opérationnel. Autorité : Observabilité et SLO

Fabrication et promotion

Frontière de preuve : preuve absente ou incohérente bloque la promotion.

Les outils de fabrication produisent des images et des contrôles locaux. Chaque étape de promotion exige une preuve cohérente, puis une approbation humaine ; aucune n’est encore franchie.

Packer 1.16.0, Debian snapshot, OCI digests ; OpenTofu 1.12.5 digest-pinné, 39 tests natifs mockés ; gate CI GREEN : 51 fichiers / 570 tests, 0 failed/skipped/todo, digests gate b7469c48… et média df714bcf… Aucune ressource cloud déployée ; promotion NO-GO.

  • Packer et image immuable edgeLogiciel présent

    Fabrique l’image immuable des cellules à partir de sources verrouillées.

    Décideur
    Supply chain.
    Protocoles
    Build contrôlé ; runtime sans egress général.
    Amont → aval
    Sources verrouillées → artefact image, attestation, module telephony-edge-ha.
    Panne et repli
    Images zonales A/B attendues ; aucune image construite.
    Preuve
    Packer 1.16.0, Debian snapshot, OCI digests ; hashes locaux.
    Limite honnête
    Signature/SBOM/CVE/Secure Boot absents ; aucune Instance cloud prouvée.

    Ouvrir la fiche

  • OpenTofu et gates de promotionEssai local

    Modules d’infrastructure et contrôles qui bloquent tout plan non revu ou incohérent.

    Décideur
    Plateforme IaC.
    Protocoles
    Gate = registre seulement pendant bootstrap signé, puis réseau coupé.
    Amont → aval
    Modules/locks/politiques → plans, attestations, déploiement approuvé humainement.
    Panne et repli
    Source non revue, lock instable, test incomplet ou incohérent = FAIL ; rollback cloud non exercé.
    Preuve
    39 tests natifs mockés (9 compute, 4 données, 5 IAM, 4 pilote, 15 edge HA, 2 coffre audio) ; OpenTofu 1.12.5 digest-pinné.
    Limite honnête
    Aucun credential hôte, plan/state persistant, API cloud ou ressource déployée ; promotion NO-GO.

    Ouvrir la fiche

  • Gate CI telephony-securityEssai local

    Contrôle contractuel bloquant de chaque commit téléphonie et sécurité.

    Décideur
    Assurance téléphonie et sécurité.
    Protocoles
    Commit, workflow CI, manifeste fermé ; aucune API cloud/carrier/PSTN.
    Amont → aval
    Commit + manifeste + 51 fichiers de tests contractuels → résultat bloquant.
    Panne et repli
    Fichier absent, doublon, contournement ou test rouge bloque la promotion.
    Preuve
    Gate courante GREEN : 51 fichiers et 570 tests, 0 failed/skipped/todo ; digests gate b7469c48…, média df714bcf…
    Limite honnête
    Preuve de code/CI seulement ; ni cloud, ni PSTN, ni production.

    Ouvrir la fiche

  • Ancien module compute-planesLogiciel présent

    Conserve la trace d’une ancienne expérimentation sans la confondre avec l’architecture téléphonique actuelle.

    Décideur
    Architecte en chef et gardien des sources historiques.
    Protocoles
    Ancien profil à une seule zone, avec ports historiques distincts de la cible actuelle.
    Amont → aval
    Ancien module et anciennes conventions → analyse de dette, archivage ou migration.
    Panne et repli
    Toute confusion bloque la promotion et conserve la dernière version approuvée.
    Preuve
    Code historique présent et fiche de traçabilité dédiée.
    Limite honnête
    Ce module n’est pas la source de vérité carrier et ne doit pas être promu.

    Ouvrir la fiche

  • Promotion G0 à G4Promotion NO-GO

    Enchaînement des gates réglementaire, image, infrastructure, interopérabilité et expérience humaine, puis approbation humaine.

    Décideur
    Approbation humaine après les gates.
    Protocoles
    G0 réglementaire → G1 image → G2 infra → G3 interop carrier → G4 expérience humaine → approbation humaine.
    Amont → aval
    Registre de preuves + gates → décision de promotion traçable.
    Panne et repli
    Preuve absente ou incohérente bloque ; absence d’autorisation réglementaire = NO-GO.
    Preuve
    Aucune promotion exercée ; gates documentées dans la page d’autorité.
    Limite honnête
    Aucune gate logicielle ne produit seule l’autorisation d’opérer.

    Pas de fiche dédiée. Autorité : Gates de promotion

Qui décide quoi

Matrice d’autorité exacte, visible dans toutes les lectures. Aucune ligne ne se déduit d’une autre.

ActeurPossèdeNe possède pas
Navy PhoneAppel, PBX, bridge, file, Media WS, VAD, barge-in, STT, TTS, playback, mark/ACK, WebRTC et handoff humain.Ni trunk carrier, ni décisions métier VoiceBot, ni inférence LLM.
VoiceBot Navy CrisisSession, prepared-turn, révision, protocoles critiques, RAG, provenance, décisions, garde déterministe, token et audit métier.Ni l’appel, ni le média, ni le playback, ni le handoff humain.
Modèle de langageUne proposition conversationnelle, rien de plus.Aucune action critique ; n’écrit jamais le ledger ; le modèle propose, la garde décide.
HumainLe repli et la remise en service.Aucune délégation au modèle : le handoff humain est une issue sûre et réussie.
Carrier contractéLa sélection A puis B des nouveaux appels.Aucune migration d’appel actif ; aucune redirection SIP n’est suivie.
Les deux auditsTéléphonie/média d’un côté, décisionnel de l’autre ; corrélables par call ID opaque.Jamais fusionnés.

Pannes et replis sûrs

Chaque scénario indique le déclencheur, la réaction sûre codée et ce qui n’est pas promis.

Invariant : fail-closed · aucune migration d’appel actif · handoff humain · NO-GO production

Le handoff humain est une issue sûre et réussie du système ; il n’est jamais présenté comme un échec du modèle. Aucune reprise transparente n’est annoncée.

Drain ou silence de la cellule A

Déclencheur
La cellule A demande le drain ou ne répond plus.
Réaction sûre codée
Le carrier tente B : 503 Cell Draining + Retry-After 5 ou timeout 4 s, hold-down 30 s, deux échecs ferment ; l’appel établi reste sur sa cellule.
Pas promis
Pas de migration d’appel actif, pas de recette carrier.

RTPEngine indisponible

Déclencheur
Le moteur média de la cellule ne répond plus.
Réaction sûre codée
Admission refusée fail-closed ; aucun média non ancré.
Pas promis
Pas de continuité d’appel actif.

Asterisk ou bridge perdu

Déclencheur
Perte du PBX ou du bridge de la cellule.
Réaction sûre codée
Fin de session locale et nettoyage ; l’appel actif est perdu proprement.
Pas promis
Pas de reprise cross-cell.

Media WebSocket ou worker perdu

Déclencheur
Perte de la liaison média ou du worker de session.
Réaction sûre codée
Génération annulée, aucun commit, bot retiré ou handoff ; flush/cleanup prouvés (56 frames, queue 46 → 0).
Pas promis
Pas de reprise transparente.

STT indisponible

Déclencheur
Timeout ou panne de la reconnaissance vocale.
Réaction sûre codée
Aucun transcript inventé, bot retiré, transfert humain, téléphonie maintenue.
Pas promis
Pas de STT souverain E2E.

Prepare, TTS ou ACK incertain

Déclencheur
Préparation trop lente ou confirmation de lecture absente.
Réaction sûre codée
Prepare 6 s (0,5-15 s), ACK 3 s (0,25-10 s) ; refus, exception ou issue inconnue = failed ou fail-closed, aucun commit ; une annulation confirmée garde la connexion ; jamais de progression fictive.
Pas promis
Pas d’audition humaine, de cloud ou de PSTN.

VoiceBot absent

Déclencheur
Produit VoiceBot indisponible ou non branché.
Réaction sûre codée
Navy Phone conserve PBX, file, SVI et agent humain ; les fonctions de crise sont indisponibles.
Pas promis
Pas de scénario cloud.

PostgreSQL ou CAS indisponible

Déclencheur
Base décisionnelle ou comparaison de révision en panne.
Réaction sûre codée
Aucun commit décisionnel, admission fermée, handoff possible.
Pas promis
Pas de bascule DB prouvée.

Promotion et souveraineté

Les gates G0 à G4, les preuves chiffrées et les dépendances extérieures qui conditionnent toute mise en service.

Bloque avant toute promotion

G0 · Réglementaire

IBPT/BIPT, 112, RGPD/AIPD, approbations humaines. Aucune gate logicielle ne produit seule l’autorisation réglementaire d’opérer une téléphonie publique en Belgique.

Non satisfaite

G1 · Image promouvable

Signature, SBOM, CVE et attestation externe manquants.

NO-GO

G2 · Infrastructure opérable

Notification unique, Prometheus réel, PKI opérée, PostgreSQL HA, charge, humain, runbook et SLO restent à prouver. Aucun SLO opérationnel.

Ouverte

G3 · Interopérabilité carrier

Contrat et lab PASS en modèle local ; configuration opérateur et audit terrain absents.

Bloquée

G4 · Expérience humaine

Endpoint, latence, interruption, repli, qualité de voix et tests humains non opérés.

Toujours requise

Approbation humaine

Aucune promotion sans décision humaine traçable dans le registre de preuves.

Preuves chiffrées exactes

Des nombres locaux, à ne jamais lire comme des preuves de production.

Gate CI

51 fichiers / 570 tests

0 failed, 0 skipped, 0 todo ; preuve de code et de CI seulement.

Suites Navy Phone

395 fichiers / 4 095 tests

Sous Node 22.23.2, typecheck verts ; aucun service déployé.

Produit séparé VoiceBot

31 pass + 1 skipped · 344 pass + 3 skipped

Suites du produit séparé ; aucun dialogue humain ou pilote de crise.

Reprise navy.db

31 scénarios strict v2

96 sources au digest 8c3c15ac…, deux reprises repository et deux oracles DB indépendants; aucun processus complet, média, archive production, PITR ou RPO/RTO.

Média local

56 frames, file 46 → 0

Vrai Asterisk local, purge mesurée ; le mark prouve le transport, pas l’audition.

Légende et limites de lecture

Les quatre statuts utilisés sur cette carte et ce qu’ils ne signifient jamais.

Statuts

« Logiciel présent » et « Essai local » ne signifient jamais « prêt à l’emploi » ni « production ».

Logiciel présent
Logiciel présent : Le logiciel existe dans le dépôt, mais son intégration et sa mise en service restent à prouver.
Essai local
Essai local : Un essai limité a réussi sur une machine ; il ne prouve ni l’hébergement réel ni l’exploitation en production.
Prévu, non construit
Prévu, non construit : La fonction est décrite comme une cible, mais elle n’est pas encore construite et reliée au reste.
Dépend d’un tiers
Dépend d’un tiers : Un fournisseur, une autorité ou une décision humaine doit encore confirmer l’accord et le fonctionnement commun.