Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 36

Configuration des règles de traduction de numéros (Number Translation) sur le SBC

Recommended resources

Bonjour !

Dans la leçon précédente, nous avons configuré la tuyauterie qui achemine les appels de Teams vers votre SBC. Vous avez déclaré votre SBC dans Teams et créé les politiques de routage (Voice Routing Policy, PSTN Usage, Voice Route) qui disent à Teams : "Pour ce type de numéro, envoie l'appel à ce SBC".

Nous arrivons maintenant à une étape de configuration tout aussi cruciale, qui se déroule au cœur même de votre SBC.

Introduction

Un appel arrive de Teams sur votre SBC avec un numéro au format E.164 (par exemple, +33123456789). Cependant, votre opérateur téléphonique (le fournisseur de votre ligne SIP/PSTN) s'attend peut-être à recevoir un format national (par exemple, 0123456789). Inversement, un appel entrant du réseau public arrivera peut-être au format national et devra être converti au format E.164 pour que Teams puisse l'identifier.

C'est là qu'intervient la manipulation de numéros (ou Number Translation). L'objectif de cette leçon est de vous apprendre à configurer les règles de manipulation de numéros pour assurer l'interopérabilité entre Teams et le monde extérieur. Votre expérience avec les translation patterns et la manipulation de chiffres en VoIP Cisco vous donnera une excellente base pour aborder ce sujet.

À la fin de cette leçon, vous saurez :

  • Pourquoi et où la manipulation de numéros est nécessaire.
  • Utiliser les expressions régulières (Regex) pour définir des modèles de numéros.
  • Configurer des règles de traduction pour les appels entrants et sortants.


1. Le Principe : Pourquoi et Où Manipuler les Numéros ?

La manipulation de numéros est le processus qui consiste à modifier le numéro de l'appelant ou de l'appelé pendant le transit d'un appel. En Direct Routing, cela est fondamental pour deux raisons principales :

  1. Appels Sortants (Teams → SBC → PSTN) : Teams fonctionne nativement avec le format E.164. Votre SBC doit traduire ce numéro dans le format attendu par votre opérateur PSTN.
    • Exemple : +33123456789 (Teams) → SBC → 0123456789 (Opérateur).
  2. Appels Entrants (PSTN → SBC → Teams) : Pour que Teams puisse acheminer un appel entrant au bon utilisateur via un processus appelé Reverse Number Lookup (RNL), le numéro de l'appelé doit correspondre exactement au LineURI de l'utilisateur, qui est au format E.164.
    • Exemple : 0123456789 (Opérateur) → SBC → +33123456789 (Teams).

La configuration de ces règles se fait principalement à deux endroits :

  • Sur le SBC lui-même : C'est la méthode la plus courante, la plus puissante et la plus flexible. Chaque fabricant de SBC (AudioCodes, Ribbon, Oracle, etc.) propose une interface ou des lignes de commande pour créer des règles de manipulation très granulaires.
  • Dans Teams (côté service) : Microsoft permet d'appliquer des règles de traduction simples directement sur l'objet "gateway" (votre SBC déclaré dans Teams). C'est utile pour des ajustements globaux, mais moins flexible que la configuration sur le SBC.

Dans la pratique, la grande majorité des manipulations complexes se fait sur le SBC.



2. L'Outil Indispensable : Les Expressions Régulières (Regex)

Pour définir "quel type de numéro" doit être modifié, on utilise un langage de description de chaînes de caractères appelé Expressions Régulières ou Regex. C'est un concept que vous retrouverez partout en informatique et en télécoms.

La vidéo suivante est une excellente introduction, concise et orientée téléphonie, qui vous expliquera les bases de la syntaxe Regex.

Microsoft Teams Deep Dive into Direct Routing

Cette vidéo de la conférence Commsverse décompose la syntaxe Regex utilisée dans le routage vocal Teams. C'est un excellent point de départ pour comprendre comment construire vos règles.

Regardez attentivement de 27:39 à 35:07. Concentrez-vous sur la signification des symboles : ^, $, \d, [], {}, (), et $ dans les remplacements. Le présentateur donne également des conseils précieux, comme l'importance de tester ses Regex avec des outils en ligne (ex: regex101.com).

Pour résumer les points clés à retenir pour la téléphonie :

Symbole Signification Exemple Description
^ Début de chaîne ^0 Commence par un 0.
$ Fin de chaîne \d{4}$ Se termine par 4 chiffres.
\d Un chiffre (digit) \d\d\d\d Exactement 4 chiffres.
[] Un caractère parmi... [1-5] Un chiffre de 1 à 5.
{n} Exactement n fois \d{9} Exactement 9 chiffres.
() Groupe de capture ^0(\d{9})$ Capture les 9 chiffres qui suivent le 0 initial.
$n Référence de capture $1 Fait référence au contenu du premier groupe de capture ().


3. La Pratique : Configurer les Règles de Traduction

Maintenant que vous avez la théorie et les outils, voyons comment appliquer cela.

Option 1 : Manipulation dans Teams (Simple & Global)

Microsoft permet d'attacher des règles de traduction directement à la configuration de la passerelle PSTN dans Teams. C'est fait via PowerShell.

Translate phone numbers for Direct Routing

La documentation officielle de Microsoft explique ce mécanisme. Elle est très orientée PowerShell, ce qui correspond à votre préférence.

Lisez les sections d'introduction sur la traduction pour les appels sortants et entrants. Ensuite, portez une attention particulière à la section Configuring translation rules with PowerShell et à la section Example SBC configuration. Observez comment la commande New-CsTeamsTranslationRule crée une règle (avec un Pattern et une Translation) et comment elle est ensuite appliquée à une passerelle via New-CSOnlinePSTNGateway et les paramètres -OutboundPSTNNumberTranslationRules et -InboundTeamsNumberTranslationRules.

Voici un exemple concret. Imaginons que vous voulez retirer le + de tous les numéros sortants.

  1. Créer la règle de traduction :

    New-CsTeamsTranslationRule -Identity "StripPlus" -Pattern "^\+(.*)$" -Translation "$1"
    
    • Pattern: ^\+(.*)$ signifie "Commence par un + (le \ est un caractère d'échappement), puis capture tout ce qui suit (.*) jusqu'à la fin."
    • Translation: $1 signifie "Remplace toute la chaîne par le contenu du premier groupe capturé".
    • Résultat : +33123456789 devient 33123456789.
  2. Appliquer la règle au SBC :

    Set-CSOnlinePSTNGateway -Identity "sbc.votreentreprise.fr" -OutboundPSTNNumberTranslationRules @{Add="StripPlus"}
    

    L'image ci-dessous montre la sortie de la commande Get-CsOnlinePSTNGateway où vous pouvez voir les champs où ces règles sont listées (ici, ils sont vides).

PowerShell Output: Get-CsOnlinePSTNGateway Configuration
Cette capture d'écran montre une configuration de passerelle PSTN dans PowerShell. Les champs comme `InboundTeamsNumberTranslationRules` sont ceux que nous venons de voir comment peupler.

Option 2 : Manipulation sur le SBC (Standard de l'Industrie)

C'est là que la véritable puissance de manipulation réside. Bien que la configuration soit spécifique à chaque vendeur, les concepts sont universels. Nous allons utiliser un guide de configuration pour un SBC AudioCodes comme exemple pour illustrer ces concepts.

Connecting AudioCodes SBC to Microsoft Teams Direct Routing

Ce document technique, bien que spécifique à AudioCodes, est excellent pour comprendre la logique de manipulation sur un SBC. Ne vous concentrez pas sur les clics exacts, mais sur les concepts de 'Dial Plan' et 'Message Manipulation'.

Parcourez les sections 2.11 ('Configuring the Dial Plan'), 2.12 ('Configuring Call Setup Rules') et 2.13 ('Configuring Message Manipulation Rules'). Notez dans la table 10 (section 2.11) comment un 'Dial Plan' associe un Prefix (un modèle de numéro, ex: +19098[0000-9999]) à un Tag. C'est l'étape de 'matching'. Observez dans la section 2.13 comment les 'Message Manipulation Rules' peuvent ensuite modifier des en-têtes SIP (Action Subject, Action Type, Action Value) en fonction de conditions. C'est l'étape de 'manipulation'.

Exemple de Flux Logique sur un SBC :

Imaginons la configuration suivante sur votre SBC pour les appels entre la France (Teams) et un opérateur national.

  • Scénario 1 : Appel Sortant (Teams → Opérateur)

    1. Réception : Le SBC reçoit un INVITE de Teams pour sip:+33123456789@...
    2. Règle de manipulation sortante : Une règle est configurée pour le trafic allant vers l'opérateur.
      • Condition (Pattern) : Le numéro de destination commence par +33 et est suivi de 9 chiffres. En Regex : ^\+33(\d{9})$.
      • Action (Translation) : Remplacer le numéro par 0 suivi des 9 chiffres capturés. En Regex : 0$1.
    3. Envoi : Le SBC envoie un nouvel INVITE à l'opérateur pour sip:0123456789@...
  • Scénario 2 : Appel Entrant (Opérateur → Teams)

    1. Réception : Le SBC reçoit un INVITE de l'opérateur pour sip:0123456789@...
    2. Règle de manipulation entrante : Une règle est configurée pour le trafic allant vers Teams.
      • Condition (Pattern) : Le numéro de destination commence par 0 et est suivi de 9 chiffres. En Regex : ^0(\d{9})$.
      • Action (Translation) : Remplacer le numéro par +33 suivi des 9 chiffres capturés. En Regex : +33$1.
    3. Envoi : Le SBC envoie un nouvel INVITE à Teams pour sip:+33123456789@.... Teams peut alors trouver l'utilisateur et faire sonner son client.

Cette logique de match-and-replace est le cœur de la configuration sur n'importe quel SBC certifié pour le Direct Routing.



Conclusion

Vous maîtrisez désormais l'un des aspects les plus techniques et les plus importants du Direct Routing. Sans une manipulation correcte des numéros, les appels ne peuvent tout simplement pas être établis.

Points clés à retenir :

  • La manipulation des numéros est essentielle pour adapter les formats entre le monde E.164 de Teams et les formats variés des opérateurs PSTN.
  • Cette manipulation se fait principalement sur le SBC pour sa flexibilité, bien que des règles simples puissent être appliquées côté Teams.
  • Les expressions régulières (Regex) sont le langage standard pour définir les modèles de numéros à transformer. Maîtriser les bases de Regex est un atout majeur.
  • La logique est toujours la même : définir un pattern pour identifier le numéro, et une translation pour le réécrire dans le format désiré.

Prochaine étape :

Nous avons maintenant toutes les pièces du puzzle en place : le SBC est connecté, les routes sont définies et la manipulation des numéros est configurée. Dans la prochaine leçon, nous passerons à la phase la plus satisfaisante : valider le fonctionnement d'un appel entrant et sortant de bout en bout et apprendre à diagnostiquer les premiers problèmes.