Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

Maîtriser les Règles de Manipulation de Messages (MMR)

Bonjour ! Dans la leçon précédente, nous avons vu comment mettre en place un trunk SIP de A à Z. Nous avons aussi évoqué que, même avec une configuration parfaite, des problèmes d'interopérabilité peuvent survenir. Un opérateur peut exiger un format de numéro spécifique, ou un équipement peut ajouter un header SIP qui pose problème à un autre.

C'est ici que vous allez découvrir l'outil le plus puissant de l'arsenal AudioCodes pour le dépannage et l'intégration : les Message Manipulation Rules (MMR). Cette fonctionnalité est au cœur de votre objectif de maîtriser le troubleshooting et de réaliser des projets complexes.

L'objectif de cette leçon est de comprendre le concept fondamental et la syntaxe des MMR. Nous allons voir ce qu'elles sont, pourquoi elles sont indispensables, et comment elles sont structurées. C'est la base théorique essentielle avant de passer à la création de nos propres règles dans les leçons suivantes.

1. Qu'est-ce qu'une "Message Manipulation Rule" (MMR) ?

Imaginez une MMR comme une fonction "chercher et remplacer" extrêmement intelligente et flexible, appliquée en temps réel aux messages SIP qui traversent votre SBC.

Son but principal est de résoudre les problèmes d'interopérabilité en normalisant les messages SIP. Cela signifie modifier un message envoyé par un système A pour qu'il soit parfaitement compris et accepté par un système B. Que ce soit pour connecter un opérateur, Microsoft Teams ou un centre de contact NICE, les MMR seront votre outil de prédilection.

Les MMR vous permettent d'effectuer une large gamme d'opérations, notamment :

  • Modifier les formats de numéros (par exemple, ajouter un préfixe +33, supprimer un 0 initial).
  • Ajouter des headers SIP (par exemple, un header P-Asserted-Identity pour l'identification de l'appelant).
  • Supprimer des headers SIP (par exemple, un header propriétaire qui cause des erreurs).
  • Modifier la valeur de headers existants (par exemple, pour cacher la topologie de votre réseau interne).
  • Traduire des codes de réponse SIP (par exemple, changer un 488 Not Acceptable Here en 486 Busy Here si le destinataire ne comprend pas le premier).

Pour avoir un aperçu complet de ce qui est possible, je vous invite à lire la documentation officielle d'AudioCodes qui introduit ce concept.

Configuring SIP Message Manipulation - AudioCodes

Ce document, 'Configuring SIP Message Manipulation', est la référence pour comprendre le concept des MMR. Il explique leur utilité et leur structure.

Lisez l'introduction (premier paragraphe) et la liste des manipulations supportées (la liste à puces à la fin de la section). Cela vous donnera une vision claire du 'pourquoi' et du 'quoi'.

Visuellement, on peut se représenter la manipulation comme une transformation du message SIP à la volée.

SIP Message Manipulation Flow
Cette image illustre parfaitement le concept. Un message `INVITE` entrant subit une première manipulation (suppression d'un header inutile), puis une seconde (modification d'un autre header) avant d'être envoyé à sa destination.

2. La Structure : "Sets" et "Rules"

AudioCodes organise les manipulations selon une hiérarchie simple mais efficace :

  1. Message Manipulation Sets (Ensembles de manipulation) : C'est le conteneur parent. Un "Set" est un groupe de règles logiques auquel vous donnez un nom (par exemple, Manip_Pour_Teams ou Manip_Sortante_ITSP). L'idée est de regrouper toutes les manipulations relatives à une même entité ou à un même flux.

  2. Message Manipulations (Règles de manipulation) : Ce sont les règles individuelles qui vivent à l'intérieur d'un "Set". Chaque règle définit une action précise à effectuer. Un "Set" peut contenir plusieurs règles qui s'exécuteront dans l'ordre.

Cette structure est très pratique : vous créez un ensemble de règles pour un besoin spécifique (ex: interopérabilité avec Orange), puis vous appliquez cet ensemble en une seule fois à l'entité concernée (généralement un IP Group), comme nous le verrons plus tard.

3. Anatomie d'une Règle de Manipulation (Syntaxe)

Maintenant, décomposons une règle individuelle. Chaque règle est une instruction logique qui répond à plusieurs questions : QUAND, SI, QUOI, COMMENT et AVEC QUOI.

Pour comprendre cette syntaxe, nous allons nous appuyer sur les paramètres de configuration que vous trouverez dans l'interface AudioCodes.

Configuring SIP Message Manipulation - AudioCodes

La documentation officielle détaille chaque paramètre utilisé pour construire une règle. C'est la source de vérité pour comprendre la syntaxe.

Parcourez le tableau 'Message Manipulations Table (Child) Parameter Descriptions'. Concentrez-vous sur la signification des paramètres suivants : 'Message Type', 'Condition', 'Action Subject', 'Action Type', et 'Action Value'. Ne vous inquiétez pas de tout mémoriser, nous allons les expliquer juste après.

Voici la structure logique d'une règle, basée sur ces paramètres :

Paramètre Question Description Exemple
Message Type QUAND ? Sur quel type de message SIP la règle doit-elle s'appliquer ? Invite.Request (requêtes INVITE), Any.Response (toutes les réponses), 4xx.Response (réponses d'erreur client)
Condition SI... Quelle condition doit être vraie pour que l'action se déclenche ? (Optionnel) header.from.url.user == '100' (si l'utilisateur dans le header From est "100")
Action Subject QUOI ? Quel élément du message SIP est la cible de notre action ? Header.P-Asserted-Identity, Header.From.Url.User
Action Type COMMENT ? Quelle action doit être effectuée sur la cible ? Add, Remove, Modify
Action Value AVEC QUOI ? Quelle est la valeur à utiliser pour l'action ? (Pour Add ou Modify) 'anonymous', param.call.src.user (valeur dynamique)

Une règle peut donc se lire comme une phrase :

Sur un Invite.Request, SI le header.Privacy existe, ALORS prendre le Header.Privacy et appliquer l'action Remove.

Ce mécanisme de condition est extrêmement puissant pour le troubleshooting, car il vous permet d'appliquer des correctifs de manière très ciblée, uniquement lorsque c'est nécessaire.

4. Application : Où s'appliquent les MMR dans le flux d'appel ?

Comprendre la syntaxe c'est bien, mais savoir où la règle s'exécute est crucial. Une manipulation peut être appliquée à différents moments du traitement de l'appel par le SBC.

Le diagramme suivant montre le flux de traitement simplifié d'un appel dans un SBC AudioCodes.

Manipulation Flow in SBC AudioCodes
Ce schéma illustre les différentes étapes de traitement d'un message SIP, de son arrivée (`Source SIP Interface`) à son départ (`Destination SIP Interface`). Les points de manipulation sont clairement indiqués.

Analysons les points clés où les MMR peuvent être appliquées :

  1. Pre-Parsing Manipulation Set (sur la SIP Interface) : C'est la toute première manipulation possible. Elle s'applique au message entrant brut, avant même que le SBC n'essaie de l'analyser (parsing). C'est utile pour corriger des messages SIP très mal formés.

  2. Inbound Message Manipulation Set (sur l'IP Group source) : Après que le SBC a analysé le message et identifié d'où il vient (le Source IP Group), ces règles sont appliquées. C'est le point de manipulation le plus courant pour "nettoyer" ou "normaliser" un message entrant.

  3. IP-to-IP Routing : À ce stade, le SBC prend sa décision de routage pour savoir où envoyer l'appel.

  4. Outbound Message Manipulation Set (sur l'IP Group destination) : Juste avant d'envoyer le message à sa destination finale (le Destination IP Group), ces règles sont appliquées. C'est l'endroit idéal pour adapter le message aux exigences spécifiques du destinataire.

Retenez surtout les manipulations Inbound et Outbound sur les IP Groups. C'est là que vous effectuerez 99% de vos manipulations. Le choix entre Inbound et Outbound est stratégique :

  • Utilisez Inbound pour standardiser les messages dès leur entrée dans votre SBC.
  • Utilisez Outbound pour adapter un message standardisé aux spécificités d'une destination précise.

Conclusion

Dans cette leçon, nous avons posé les fondations théoriques des Message Manipulation Rules. Vous comprenez maintenant leur rôle essentiel dans l'interopérabilité SIP, leur structure en "Sets" et "Rules", et la syntaxe logique qui compose chaque règle.

Les points clés à retenir sont :

  • Les MMR servent à modifier les messages SIP pour assurer la compatibilité entre différents systèmes.
  • Elles sont organisées en Message Manipulation Sets qui contiennent des Message Manipulations (règles).
  • Une règle est définie par un Message Type, une Condition, un Action Subject, un Action Type et une Action Value.
  • Les manipulations sont principalement appliquées de manière Inbound (sur l'IP Group source) ou Outbound (sur l'IP Group destination).

Prochaine Étape

Maintenant que vous maîtrisez le "pourquoi" et le "comment" théorique, la prochaine leçon nous fera passer à la pratique. Nous allons créer nos premières règles de manipulation concrètes pour ajouter, modifier et supprimer des headers SIP, en nous basant sur des scénarios réels que vous rencontrerez.

Can't find a good explanation? Sign up and we'll make it for you

Sign up