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

Activation du transcodage média pour la compatibilité des codecs

Bonjour !

Dans la leçon précédente, nous avons vu comment utiliser les IP Profiles pour normaliser la signalisation SIP, notamment en nettoyant les en-têtes pour assurer la compatibilité entre différents systèmes. Nous nous sommes concentrés sur les messages, la partie "dialogue" de l'appel.

Aujourd'hui, nous passons de la signalisation au média, c'est-à-dire au flux audio lui-même. L'objectif de cette leçon est de vous apprendre à gérer la compatibilité des codecs en activant le transcodage média entre deux 'Media Realms'. C'est une compétence fondamentale pour résoudre les problèmes de type "pas d'audio" ou les échecs d'appel dus à une incompatibilité de codecs (le fameux 488 Not Acceptable Here).

Nous allons découvrir ce qu'est le transcodage, pourquoi il est indispensable, et surtout comment le configurer sur un SBC AudioCodes en utilisant les Coder Groups, les IP Profiles et les Media Realms.

1. Qu'est-ce que le transcodage ?

Imaginez que vous devez connecter deux personnes qui ne parlent pas la même langue. L'une ne parle que français (codec G.711) et l'autre ne parle qu'espagnol (codec G.729). Sans un traducteur au milieu, aucune communication n'est possible.

Dans le monde de la VoIP, le SBC AudioCodes peut jouer ce rôle de traducteur en temps réel. C'est ce qu'on appelle le transcodage.

Pour bien comprendre le concept, je vous invite à lire la définition fournie par AudioCodes.

AudioCodes Quick Reference Guide – Transcoding

Ce guide de référence rapide explique très clairement le principe du transcodage. Il vous donnera une définition solide du concept et de son utilité.

Lisez la première partie du document, intitulée 'Background'. Concentrez-vous sur la définition et l'analogie de 'l'interprète' entre deux terminaux. Notez également qu'il y a deux cas d'usage principaux : l'absence de codec commun, et des temps de paquetisation différents pour un même codec.

Comme vous l'avez lu, le transcodage intervient lorsque les deux correspondants SIP n'arrivent pas à s'entendre sur un format audio (codec) commun lors de la négociation SDP. Le SBC se positionne alors entre les deux, accepte le flux audio dans un format, le convertit à la volée, et le réémet dans l'autre format.

Pour que le transcodage puisse fonctionner, trois conditions de base doivent être remplies, comme l'indique le même document (section Coder Transcoding Prerequisites?) :

  • Le SBC doit supporter au moins un des codecs proposés dans l'offre SDP entrante.
  • Le SBC doit disposer de ressources de calcul dédiées (DSPs) disponibles.
  • L'offre SDP doit contenir une ligne média de type audio (m=audio).

2. Les briques de construction pour le média : Media Realms et Coder Groups

Avant de configurer le transcodage, il est essentiel de comprendre deux concepts que nous avons déjà croisés : les Media Realms et les Coder Groups.

Media Realms

Un Media Realm est une configuration qui lie une plage de ports UDP à une interface réseau spécifique du SBC. Son rôle est de définir "où" le trafic média (RTP) doit entrer et sortir du SBC.

Lorsqu'un appel traverse le SBC, il y a typiquement deux flux média :

  1. Un flux entrant sur un premier Media Realm (par exemple, MR_Teams, lié à l'interface connectée à Internet).
  2. Un flux sortant sur un second Media Realm (par exemple, MR_ITSP, lié à l'interface connectée à l'opérateur).

Le transcodage, lorsqu'il est nécessaire, s'effectue précisément entre ces deux Media Realms.

Configuring Media Realm on AudioCodes SBC for LAN Interface
Exemple de configuration d'un Media Realm sur un SBC AudioCodes. On y définit un nom, on l'associe à une interface réseau ('IPv4 Interface') et on lui alloue une plage de ports ainsi qu'un nombre de sessions média ('Media Session Legs'). C'est la porte d'entrée et de sortie du flux audio.

Coder Groups

Un Coder Group est simplement une liste nommée de codecs, ordonnée par préférence. C'est l'outil qui vous permet de définir les "langues" que vous souhaitez utiliser et dans quel ordre les proposer.

Par exemple, vous pouvez créer un groupe CG_G711_Only contenant uniquement le G.711, ou un groupe CG_Standard avec G.711a, G.711u, et G.729.

Microsoft Teams Direct Routing with CUCM using Audiocodes SBC

Cette courte vidéo montre comment un administrateur modifie un Coder Group pour prioriser certains codecs. Cela vous donne un aperçu concret de l'interface.

Regardez de 00:21:17 à 00:21:42. L'ingénieur modifie le Coder Group par défaut pour mettre G.711u en première priorité et G.711a en seconde. C'est une manipulation typique pour standardiser les codecs utilisés.

3. Activer le transcodage via les "Extension Coders"

Maintenant que nous connaissons les briques, voyons comment les assembler. La méthode standard pour activer le transcodage sur un SBC AudioCodes est d'utiliser le mécanisme des "Extension Coders".

L'idée est la suivante : si l'offre SDP entrante ne contient pas le codec que le destinataire final attend, le SBC va étendre l'offre SDP sortante en y ajoutant des codecs supplémentaires.

La documentation officielle d'AudioCodes explique ce mécanisme en détail.

Coder Transcoding - AudioCodes

Cette page du manuel utilisateur détaille le fonctionnement du transcodage. Elle est plus dense mais précise, et explique le concept clé des 'Extension Coders'.

Veuillez lire les sections suivantes : L'introduction (premier paragraphe) pour comprendre que les 'Extension Coders' sont configurés via des Coder Groups assignés à un IP Profile. L'exemple illustré ('The figure below illustrates...') qui montre un flux d'appel où le SBC ajoute G.729 à une offre contenant initialement que G.711. Les étapes de configuration ('To configure coder transcoding:') qui résument la procédure à suivre.

Pour résumer le processus de configuration, voici les étapes clés :

  1. Changer le profil de performance du SBC : C'est une étape globale et indispensable. Pour que le SBC alloue des ressources DSP au transcodage, il doit être configuré dans le bon mode.

Microsoft Teams Direct Routing with CUCM using Audiocodes SBC

Cette vidéo montre ce paramètre global essentiel. Sans cela, toute votre configuration de transcodage ne fonctionnera pas.

Regardez de 00:32:56 à 00:33:37. L'administrateur change le 'SBC Performance Profile' de 'Optimized for SIP' à 'Optimized for Transcoding'. C'est le prérequis pour activer les capacités de transcodage du SBC.

  1. Créer un Coder Group pour les "Extension Coders" :

    • Allez dans Setup > Signaling & Media > Coders & Profiles > Coder Groups.
    • Créez un nouveau Coder Group. Donnez-lui un nom explicite (ex: CG_Transcode_G729).
    • Ajoutez le ou les codecs que vous souhaitez que le SBC propose pour le transcodage (ex: G.729).
  2. Assigner ce Coder Group à l'IP Profile de destination :

    • Allez dans Setup > Signaling & Media > Coders & Profiles > IP Profiles.
    • Modifiez l'IP Profile correspondant à l'entité de destination (celle qui a besoin du codec "traduit").
    • Dans la section "SBC Media", trouvez le paramètre Extension Coders Group.
    • Sélectionnez le Coder Group que vous venez de créer (ex: CG_Transcode_G729).
    • Assurez-vous que le paramètre Allowed Coders Mode est réglé sur Restriction ou Restriction and Preference pour que le mécanisme s'active.

Une fois cette configuration appliquée, lors d'un appel vers cet IP Profile, si le codec nécessaire n'est pas dans l'offre initiale, le SBC l'ajoutera. Si ce codec "étendu" est accepté par le destinataire, le SBC établira deux demi-appels média et commencera à transcoder.

N'oubliez pas que le transcodage a un coût :

  • Licences : Votre SBC doit avoir une licence pour un certain nombre de sessions de transcodage (Transcoding Sessions).
  • Ressources DSP : Chaque session de transcodage consomme des ressources de calcul (généralement 2 DSP channels par session). Il faut donc bien dimensionner le matériel en fonction des besoins.

Conclusion

Résumons ce que nous avons appris aujourd'hui. La gestion de la compatibilité des codecs est une tâche essentielle pour assurer l'interopérabilité, et le transcodage en est la solution principale.

Points clés à retenir :

  • Le transcodage est la conversion d'un flux audio d'un codec à un autre, réalisée en temps réel par le SBC.
  • Il est nécessaire lorsque les deux correspondants n'ont pas de codec commun ou utilisent des paramètres différents (ex: temps de paquetisation).
  • Le flux média est ancré aux interfaces réseau via les Media Realms. Le transcodage se produit lorsque le SBC relaie le média entre deux realms avec des codecs différents.
  • La configuration se fait principalement via le mécanisme des "Extension Coders" :
    1. On crée un Coder Group avec les codecs à proposer.
    2. On assigne ce groupe au paramètre Extension Coders Group de l'IP Profile de destination.
  • Un prérequis global est de régler le profil de performance du SBC sur Optimized for Transcoding.
  • Le transcodage consomme des licences et des ressources DSP, ce qui doit être pris en compte dans la conception d'une solution.

Vous êtes maintenant capable de diagnostiquer un problème de codec et de le résoudre en configurant le SBC pour qu'il agisse comme un traducteur universel.

Aperçu de la prochaine leçon : Nous avons couvert la signalisation SIP et le média audio. Dans la prochaine leçon, nous aborderons un autre aspect crucial du média : "Assurer l'interopérabilité des méthodes DTMF (ex: RFC2833 vs In-band)". Nous verrons comment garantir que les tonalités (les chiffres que vous tapez sur votre clavier) soient correctement transmises à travers le SBC, un point vital pour interagir avec les serveurs vocaux interactifs (SVI), les conférences et les boîtes vocales.

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

Sign up