Recommended resources
The freely available resources this lesson will direct you to.
Bonjour et bienvenue dans cette leçon.
Dans la session précédente, nous avons établi la fondation de notre connexion avec Microsoft Teams en configurant le Proxy Set, l'IP Profile et l'IP Group. Votre SBC est maintenant capable de communiquer de manière sécurisée avec les serveurs de Microsoft, comme en témoigne le statut Online du Proxy Set. Cependant, à ce stade, aucun appel ne peut encore être acheminé.
L'objectif de cette leçon est de franchir une étape cruciale pour l'interopérabilité : configurer les manipulations de messages SIP (MMR). Microsoft a des exigences très strictes sur le format des messages SIP. Nous allons nous concentrer sur deux manipulations fondamentales requises pour le Direct Routing :
- Normaliser le numéro de l'appelant au format international E.164.
- Formatter correctement l'en-tête
Contactpour assurer le routage correct des réponses SIP.
Sans ces adaptations, Microsoft rejettera systématiquement vos appels, souvent avec une erreur 403 Forbidden ou 404 Not Found. Cette leçon est donc au cœur de votre objectif de maîtrise du dépannage et de la configuration de projets.
1. Comprendre les "Message Manipulation Rules" (MMR)
Avant de configurer, il est essentiel de comprendre l'outil. Les MMR sont le "couteau suisse" de l'ingénieur VoIP sur un SBC AudioCodes. Elles permettent de modifier n'importe quelle partie d'un message SIP en temps réel, juste avant qu'il ne soit envoyé à sa destination.
Le schéma ci-dessous illustre où les différentes manipulations interviennent dans le flux de traitement d'un appel par le SBC.
La logique d'une règle de manipulation de message est simple et s'articule autour de quatre éléments :
- Condition : Le "SI". La règle ne s'applique que si cette condition est vraie (ex:
SIle message est unINVITEetSIl'en-têteFromcontient "anonymous"). - Action Subject : Le "QUOI". La partie du message que l'on veut modifier (ex: l'en-tête
Contact, la partieuserde l'en-têteTo, etc.). - Action Type : Le "COMMENT". L'action à effectuer :
Add(ajouter),Remove(supprimer), ouModify(modifier). - Action Value : La "VALEUR". La nouvelle valeur à utiliser pour l'action.
Pour maîtriser pleinement la syntaxe, il existe un guide de référence complet que je vous invite à explorer. C'est un document dense mais fondamental.
[PDF] SIP Message Manipulation Syntax Reference Guide Version 7.4
Ce guide est la référence absolue pour la syntaxe des manipulations. Nous allons l'utiliser pour comprendre la structure des règles que nous allons créer. Il est crucial de vous familiariser avec son contenu.
Veuillez lire le chapitre 2, 'Field Syntax' (pages 2 à 8). Concentrez-vous sur la compréhension des quatre piliers : 'Message Type', 'Condition', 'Action Subject', et 'Action Type'. Observez les exemples pour voir comment ces concepts s'assemblent.
2. Normaliser le Numéro Appelant au Format E.164
Pourquoi ? Microsoft Teams exige que l'identité de l'appelant, transportée dans les en-têtes P-Asserted-Identity et From, soit un numéro de téléphone au format E.164 complet (ex: +33123456789). Un PBX interne envoie souvent des numéros courts (ex: 4001) ou des formats nationaux (ex: 0123456789). Le SBC doit donc effectuer cette "traduction".
Comment ? Nous utiliserons une règle de manipulation pour détecter le format du numéro entrant et le transformer. La méthode la plus puissante pour cela est d'utiliser les expressions régulières (Regex).
Imaginons un scénario : un appel provient de votre PBX interne. L'en-tête From contient un numéro national français à 10 chiffres.From: "Utilisateur Interne" <sip:0123456789@192.168.10.20>
Nous voulons le transformer en :From: "Utilisateur Interne" <sip:+33123456789@sbc.votreentreprise.com>
Voici comment créer une règle pour cela :
- Identifier le besoin : Remplacer le
0initial par+33. - Créer la règle :
- Condition :
header.from.url.user regex (^0[1-9]\d{8}$)header.from.url.user: Cible la partie "utilisateur" de l'URL dans l'en-têteFrom.regex: Indique que nous utilisons une expression régulière.(^0[1-9]\d{8}$): Le motif. Il signifie : "commence par un0, suivi d'un chiffre de1à9, suivi de 8 autres chiffres, et se termine là". Les parenthèses capturent les 9 chiffres après le0dans une variable$1.
- Action Subject :
header.from.url.user - Action Type :
Modify - Action Value :
'+33' + $1- On concatène le préfixe
+33avec la valeur capturée par les parenthèses dans la condition ($1), ce qui correspond aux 9 derniers chiffres du numéro.
- On concatène le préfixe
- Condition :
L'étude des expressions régulières est un sujet en soi, mais extrêmement puissant pour le troubleshooting.
[PDF] SIP Message Manipulation Syntax Reference Guide Version 7.4
Le guide de syntaxe contient une section dédiée aux expressions régulières avec des exemples concrets, notamment pour la manipulation de numéros. C'est une compétence avancée très recherchée.
Veuillez consulter la section 'Regular Expressions (Regex)' dans le chapitre 4 (à partir de la page 64). Analysez l'exemple 1 'Number range matching and manipulation' et l'exemple 2 'Manipulation based on source and destination number'. Cela vous donnera une bonne base pour comprendre comment construire vos propres règles de normalisation de numéros.
3. Formatter l'En-tête Contact
Pourquoi ? L'en-tête Contact est vital. Il indique à Microsoft où renvoyer les messages SIP pour cet appel spécifique (ex: un BYE pour terminer l'appel). Pour le Direct Routing, cet en-tête doit contenir le FQDN public de votre SBC. Si l'adresse IP locale du SBC est envoyée, les serveurs de Microsoft ne sauront pas où répondre, et l'appel échouera.

Comment ? Bien que le paramètre Local Host Name de l'IP Group (configuré dans la leçon précédente) gère souvent ce point, il est bon de savoir comment le forcer avec une MMR. De plus, il est souvent nécessaire de nettoyer cet en-tête des paramètres non standards.
Par exemple, Microsoft peut inclure un paramètre ms-opaque dans le Contact. Si l'appel est ensuite routé vers un ITSP qui ne comprend pas ce paramètre, cela peut causer un échec. Une bonne pratique est de le supprimer.
Voyons comment créer cette règle de nettoyage, en nous basant sur des exemples de guides de configuration.
[PDF] Mediant SBC for Swisscom Enterprise SIP with MS Teams Direct ...
Ce guide de configuration pour un ITSP suisse avec Teams Direct Routing contient une multitude d'exemples de manipulations très pratiques. Nous allons nous concentrer sur une règle spécifique au nettoyage de l'en-tête Contact.
Veuillez trouver la règle avec l'index 19 dans la section 4.15 'Configure Message Manipulation Rules' (vers la page 69). Elle s'appelle 'Remove ms-opaque from Contact'. Analysez sa construction : pas de condition, un 'Action Subject' précis (Header.Contact.URL.Param.ms-opaque), et une 'Action Type' Remove.
La création de cette règle est simple :
- Action Subject:
Header.Contact.URL.Param.ms-opaque(cible spécifiquement le paramètrems-opaquede l'URL de l'en-têteContact). - Action Type:
Remove. - Pas de Condition (s'applique à tous les messages correspondants).
- Pas de Action Value (car on supprime).
4. Appliquer les Règles via les Manipulation Sets
Une fois nos règles créées, elles ne sont pas encore actives. Il faut les regrouper dans un Manipulation Set (identifié par un ID numérique) et ensuite appliquer ce Set à un IP Group.
Un Set peut être appliqué :
Inbound: sur les messages entrants depuis cet IP Group.Outbound: sur les messages sortants vers cet IP Group.
La vidéo ci-dessous montre ce processus de création et d'application.
Microsoft Teams Direct Routing with CUCM using Audiocodes SBC
Cette vidéo montre la création de plusieurs règles de manipulation, leur regroupement sous un même 'Manipulation Set ID', puis l'application de ce set à un IP Group.
Regardez la séquence de 33:21 à 37:39. L'opérateur crée quatre règles différentes et leur assigne l'ID 4. Ensuite, il va dans les IP Groups et assigne cet ID 4 au champ 'Outbound Message Manipulation Set' de l'IP Group CUCM, et l'ID 1 au 'Inbound' de l'IP Group Teams. C'est exactement le processus que vous suivrez.
Actions à réaliser (récapitulatif) :
- Naviguez vers
Setup > Signaling & Media > Message Manipulation > Message Manipulations. - Créez vos règles une par une (ex: normalisation E.164, nettoyage du
Contact), en leur assignant le mêmeManipulation Set ID(ex:10). - Naviguez vers
Setup > Signaling & Media > Core Entities > IP Groups. - Éditez l'IP Group de Teams (
Teams_IPGroup). - Dans le champ
Outbound Message Manipulation Set, entrez l'ID de votre set (10). C'est "Outbound" car les manipulations s'appliquent aux appels sortant vers Teams. - Cliquez sur
Applyet sauvegardez la configuration.
Conclusion
Aujourd'hui, vous avez appris à utiliser l'un des outils les plus puissants de l'AudioCodes SBC pour résoudre des problèmes d'interopérabilité complexes. En maîtrisant les MMR, vous passez de simple configurateur à véritable expert capable de débloquer des situations complexes.
Points clés à retenir :
- Les MMR sont indispensables pour adapter les messages SIP aux exigences strictes de partenaires comme Microsoft Teams.
- Les deux manipulations essentielles pour Teams sont la normalisation du numéro appelant au format E.164 (souvent dans
FrometP-Asserted-Identity) et le formatage de l'en-têteContactavec le FQDN public du SBC. - La syntaxe des MMR repose sur le quatuor Condition, Action Subject, Action Type, Action Value.
- Les expressions régulières (Regex) sont un outil avancé mais extrêmement efficace pour les manipulations complexes basées sur des motifs.
- Les règles sont regroupées dans des Manipulation Sets (via un ID) et activées en les appliquant aux directions Inbound ou Outbound d'un IP Group.
Aperçu de la prochaine leçon :
Maintenant que le SBC sait comment "formater" correctement les messages pour Teams, il nous reste à lui dire comment transmettre l'identité de l'appelant de manière formelle et comment router les appels. La prochaine leçon sera consacrée à la configuration de la transmission de l'identité de l'appelant via le header P-Asserted-Identity et à la mise en place des règles de routage des appels entrants et sortants.