Résumé
- RFC 3601 ne définit pas seulement l’écriture d’un numéro. Sa
phone-stringassocie des éléments DTMF, des actionspetw, et des séparateurs visuels ; unlocal-phonepeut même intégrer code de sortie, accès opérateur ou mot de passe. - La preuve doit suivre séparément la provenance, la classification, le contexte, l’autorisation, chaque action du composeur, la signalisation, la connexion puis le résultat du service.
Le détail le plus sûr de RFC 3601 est peut-être aussi le plus facile à sous-estimer : le tiret et le point n’ont aucun effet. Ils sont là pour le lecteur. Une implémentation conforme peut les ajouter ou les enlever. En revanche, p représente une pause et w une attente de tonalité. Effacer ces lettres au nom du « nettoyage » ne reformate pas une donnée ; cela réécrit une suite d’actions.
Publié en septembre 2003 sur la voie Standards Track, RFC 3601 propose une notation textuelle commune pour les séquences de numérotation et pour les adresses GSTN/E.164 composables. Son vocabulaire empêche précisément de confondre les deux. Une Dial Sequence est une série d’éléments DTMF et d’actions humaines ou mécaniques. La phone-string accepte les chiffres, #, *, A à D, la pause p, l’attente w, le tiret et le point.
Ces caractères n’ont pas la même autorité. Les éléments DTMF peuvent être émis. Les actions modifient le déroulement. Les séparateurs ne doivent produire aucune action. Un moteur de rapprochement peut donc ignorer les séparateurs visuels, mais il ne peut pas aplatir toute ponctuation et toute lettre sans connaître le type du champ. Une règle universelle de normalisation détruit soit le sens opérationnel, soit la comparabilité.
Le sens des actions n’est pas universel non plus. Le texte recommande qu’une pause dure une seconde. Il recommande que l’attente se prolonge jusqu’à ce que l’appelant entende une tonalité ou une autre indication autorisant la suite ; une indication de décroché peut aussi être interprétée ainsi. Mais RFC 3601 précise que l’interprétation exacte dépend du dispositif et de l’implémentation. Deux équipements peuvent donc accepter la même chaîne et ne pas suivre la même chronologie.
Une preuve de conformité syntaxique s’arrête là. Elle n’atteste ni la durée réellement appliquée, ni le signal entendu, ni l’instant d’émission du caractère suivant. Un journal « attente satisfaite » décrit la décision d’un détecteur local. Il n’identifie pas l’interlocuteur distant et ne prouve pas que la session a été établie. Pour savoir ce qui s’est passé, il faut conserver la version du composeur, sa configuration et l’événement précis qui a libéré l’attente.
La distinction devient encore plus nette entre formes globale et locale. Le global-phone commence par + et représente une adresse numérique E.164 composable. Le signe plus est réservé à ce rôle. Pourtant RFC 3601 avertit que l’adresse E.164 abstraite complète peut contenir des éléments impossibles à composer et ne peut donc pas être intégralement convertie en Dial Sequence. La forme globale couvre une partie utile ; elle ne résume pas tout le modèle d’adressage.
Le local-phone, lui, peut combiner un code de sortie et le numéro à composer. Le code de sortie peut inclure le chiffre permettant de prendre une ligne extérieure, un accès à un opérateur longue distance ou le mot de passe d’un service. La chaîne transporte ainsi à la fois une intention de destination, une politique locale et parfois un secret. Déplacer ses octets d'un site à l'autre ne transporte pas automatiquement le plan de numérotation qui leur donnait sens.
La spécification ultérieure RFC 3966 rend cette frontière explicite. Une URI tel est un identifiant, pas la liste des étapes nécessaires pour joindre le numéro. Elle ne promet pas que ce numéro soit accessible partout. Les chaînes de numérotation, pauses et éléments postérieurs à la connexion ont été retirés de son périmètre. Un numéro local doit recevoir un phone-context, mais ce contexte décrit la portée de validité ; ce n’est pas un préfixe à concaténer pour fabriquer mécaniquement un numéro E.164.
RFC 4967 a ensuite défini user=dialstring pour transporter une chaîne de numérotation dans SIP/SIPS. Ce texte exige un contexte et demande de distinguer une véritable instruction de numérotation d’une partie utilisateur qui utiliserait les mêmes caractères. RFC 6116 protège une frontière comparable dans ENUM : la chaîne de départ est un numéro E.164 pleinement qualifié, avec +, et non les chiffres effectivement composés depuis un site particulier.
Pour une migration, cela interdit une conversion en masse fondée uniquement sur l’apparence. Une valeur comportant des pauses, une attente, un accès PBX ou des chiffres postérieurs à la connexion ne devient pas une URI tel par simple ajout d’un schéma. Il faut d’abord la classer : identifiant, forme globale, forme locale, séquence exécutable, sous-adresse ou post-dial. Une transformation sûre peut ensuite préserver, séparer ou refuser les parties selon leur fonction.
Le post-dial possède sa propre condition temporelle. RFC 3601 l’emploie quand la connexion au dispositif destinataire a déjà été établie et qu’une nouvelle séquence DTMF doit accéder à un menu ou à un service. La présence des chiffres ne prouve pas que la connexion préalable a existé. Le système doit d’abord obtenir un reçu de réponse ou d’établissement, puis consigner l’émission des chiffres et, si possible, la réponse du service.
La sensibilité du champ ne se limite donc pas à la vie privée d’un numéro. L’exemple du RFC combine un identifiant de messagerie et un code PIN dans la chaîne. La section sécurité avertit qu’une transmission sans protection peut révéler ces codes. Une donnée rangée comme coordonnée client peut être simultanément un programme et un secret.
Cette ambiguïté contamine facilement les systèmes secondaires. L’export CRM, l’index de recherche, la réplication analytique, la capture de support et le journal de débogage copient la valeur entière parce que personne ne l’a marquée comme exécutable. Masquer tous les chiffres rend ensuite l’enquête impossible ; tout conserver expose l’accès. La solution consiste à séparer adresse, plan d’actions et référence secrète, puis à journaliser des empreintes et des événements plutôt que le code en clair.
La chaîne de preuve commence avec la provenance : émetteur, type de champ initial, empreinte de la valeur et date. Viennent ensuite la classification et la version du parseur. Le contexte doit nommer site, PBX, plan de numérotation, règle opérateur et époque de configuration. Chaque normalisation doit être décrite. L’exécution demande une autorisation, puis un reçu par DTMF, pause et attente. Signalisation, connexion, navigation post-dial et résultat métier restent quatre niveaux séparés.
Cette discipline empêche les raccourcis séduisants. « Importé » ne signifie pas classé. « Valide » ne signifie pas autorisé. « Composé » ne signifie pas connecté. « Décroché » ne prouve pas l’identité attendue. « DTMF envoyé » ne prouve pas que le menu a accepté la commande. Un statut vert unique efface précisément les écarts que l’audit doit conserver.
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance
