- Comprendre les Codecs Voix sur IP (VoIP) - Comprendre les Codecs Complexité Support Hardware MOS et Négociation
Sommaire • Introduction • Complexité de Codec • Codec MOS (Mean Opinion Score) • Problèmes liés au Codec G.729 - Implémentation Cisco pré-IETF G.729 et le standard G.729 - Haute complexité: G.729, G.729 Annexe-B & Complexité moyenne: G.729A, G.729A Annexe-B • Problèmes liés au Codec G.723.1 • Négociation des Codecs • Messages d'erreur
(4 communications par DSP) (2 communications par DSP) Introduction Ce document fournit une vue générale des différents codeurs-décodeurs (Codecs) uti- lisés avec les passerelles Cisco VoIP (Voice over IP). Avant la release 12.0(5)T de l'IOS Cisco, les passerelles VoIP supportaient uniquement les Codecs G.729 et G.711 et une seule communication voix, relais-fax par DSP (Digital Signal Processor). Avec l'introduction de l'IOS Cisco Release 12.0(5)T, les passerelles VoIP Cisco supportent un plus grand nombre de Codecs et modules DSP. Elles peuvent supporter jusqu'à quatre communications voix/ relais-fax par DSP. Complexité de Codec Certaines techniques de compression de Codec demandent plus de puissance de trai- tement que d'autres. La complexité d'un Codec est divisée en deux catégories: haute et moyenne: ● La complexité moyenne permet au DSP C549 de traiter jusqu'à quatre communica- tions voix/relais-fax par DSP. ● La complexité élevée ou haute permet au DSP C549 de traiter jusqu'à deux com- munications voix/relais-fax par DSP. Complexité Moyenne (4 communications par DSP) Complexité Elevée (2 communications par DSP) G.711 (Loi A et Loi µ) G.728 G.726 (toutes les versions) G.723 (toutes les versions) G.729a, G.729ab (G.729a Annexe-B) G.729, G.729b, (G.729 Annexe-B) Relais-Fax Note: La différence entre les Codecs de complexité moyenne et élevée est le taux d'uti- lisation CPU nécessaire pour traiter l'algorithme du Codec et par conséquent le nom- bre de canaux voix qui peuvent être supportés par un seul DSP. Pour cette raison tous les Codecs de complexité moyenne peuvent opérer en mode de complexité élevé mais moins canaux sont disponibles (en général la moitié) par DSP. Note: Le relais-fax (2400 b/s, 4800 b/s, 9600 b/s, 12000 b/s et 14400 b/s) peut utiliser des Codecs de complexité moyenne ou élevée. Sur les plateformes qui suppor- tent la technologie DSP C549, la complexité du Codec est configurée dans la carte d'interface voix (par exemple 2600/3600/VG200 High Density Network Module). Quelques plateformes supportent uniquement la complexité élevée car elles ont assez de DSP embarqués pour supporter tous les canaux T1/E1 en utilisant le mode de complexité élevé.
Un exemple de configuration est donné ci-dessous: Un exemple de configuration de complexité est donné ci-dessous: Cisco-router #configure terminal Enter configuration commands, one per line. End with CNTL/Z. Cisco-router(config)#voice-card 1 Cisco-router(config-voicecard)#codec complexity ? high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. <cr> Cisco-router(config-voicecard)#codec complexity high Sur les plateformes qui supportent la technologie DSP C5510, une option supplé- mentaire de complexité flex est disponible. Quand vous utilisez la complexité flex, jusqu'à seize communications peuvent être traitées par DSP. Le nombre de commu- nications supporté varie de six à seize, il est basé sur le Codec utilisé pour la com- munication. Un exemple de configuration est donné ci-dessous: Cisco-router#configure terminal flex Set codec complexity Flex. Flex complexity, higher call density. Cisco-router(config-voicecard)#codec complexity flex Ceci est un extrait de la sortie de la commande show running-config pour détermi- ner quelle est la complexité configurée: ! voice-card 1 codec complexity high
Ce tableau liste le support de Codecs des différentes plateformes de routeurs Cisco. 1751 1760 26XX 36XX NM-1V/2V NM-HDV 3700 3810 AS5300 AS5800 AS5350 AS5400 7200 7500 CMM 24FXS CMM 6T1/E1 G.711 PCM Loi A et Loi µ (64 Kb/s) 12.0.5XQ1 Oui 12.0.5XK1 12.0.7XK 12.0.5XE3 12.1.3T G.726 ADPCM (32, 14,16 Kb/s) 12.1.2T 12.0.5T Non G.728 LD-CELP (16 Kb/s) G.729 CS-ACELP (8 Kb/s) G.729a Annexe-B G.723.1 MP-MLQ (6,3 Kb/s) ACELP (5,3 Kb/s) Annexe-A Clear Channel 12.3(2)XF, 12.3(11)T 12.3.(11)T
Méthodes de compression de Codec PCM = Pulse Code Modulation ADPCM = Adaptive Differential Pulse Code Modulation LD-CELP = Low Delay-Code Excited Linear Prediction CS-ACELP = Conjugate Structure-Algebraic Code Excited Linear Prediction MP-MLQ = MultiPulse - Multi Level Quantization ACELP = Algebraic Code Excited Linear Prediction Codec MOS (Mean Opinion Score) Chaque Codec fournit une certaine qualité de restitution de la voix. La qualité de la voix transmise est une réponse subjective de celui qui l'écoute. Un banc de test com- mun utilisé pour déterminer la qualité de la voix produite par des Codecs particuliers est le MOS (Mean Opinion Score). Avec le MOS, un grand nombre d'auditeurs jugent la qualité d'un échantillon de voix (correspondant à un Codec particulier) avec une échelle allant de 1 (mauvais) à 5 (excellent). Ces scores sont pondérés par une moyen- ne pour fournir le MOS pour cet échantillon. Le tableau suivant donne les relations entre les Codecs et les scores MOS. Méthode de Compression Débit (Kb/s) Score MOS Délai de compression(ms) PCM G.711 64 4.1 0,75 ADPCM G.726 32 3,85 1 LD-CELP G.728 16 3,61 3 à 5 CS-ACELP G.729 8 3,92 10 G.729 avec 2 encodages 3,27 G.729 avec 3 2,68 MP-MLQ G.732.1 6,3 3,9 30 ACELP G.723.1 5,3 3,65 Bien qu'il semble logique d'un point de vue financier de convertir toutes les commu- nications avec des codecs bas débits pour économiser sur les coûts d'infrastructure, vous devez prendre plus de soin quand vous concevez des réseaux voix avec une mé- thode de compression bas débit. Il y a des inconvénients à compresser la voix. Un de ces principaux inconvénients est la distorsion du signal due à de multiples encodages (appelés encodages tandem). Par exemple quand un signal voix G.729 est encodé trois fois de suite, le MOS passe de 3,92 (très bon) à 2,68 (inacceptable). Un autre inconvénient est le délai induit par des Codecs bas débits.
Problèmes liés au Codec G.729 Les deux sections suivantes clarifient plusieurs des problèmes communs de compati- bilité concernant l'implémentation de Codecs G.729 (8 kb/s). Implémentation Cisco pré-IETF G.729 et le standard G.729 Cisco a réalisé une implémentation de Codec G.729 pré-IETF (Internet Engineering Task Force) avant que le Codec G.729 soit standardisé. A partir de l'IOS Cisco 12.0(5) T, l'ordre par défaut des bits du Codec G.729 Standard est changé par rapport à celui du format pre-IETF. Les deux formats n'interopèrent pas et en fait résultent en un son inintelligible pour les utilisateurs aux extrémités. Pour avoir une compatibilité avec les implémentations G.729 d'autres constructeurs, l'IOS Cisco 12.0(5)T et suivants utilisent par défaut l'implémentation standardisée de G.729. Pour des problèmes de compatibilité arrière avec des releases d'IOS Cisco an- térieures à 12.0(5)T, validez l'implémentation G.729 pre-IETF avec la commande sui- vante: maui-vgw-01(config)#dial-peer voice 100 voip maui-vgw-01(config-dial-peer)#codec g729r8 pre-ietf L'option pre-ietf de cette commande n'est plus supportée dans la Release IOS Cisco 12.2 et suivantes. Haute complexité: G.729, G.729 Annexe-B & Complexité moyenne: G.729A, G.729A Annexe-B G.729 est un algorithme de complexité élevée et G.729A (connu également comme G.729 Annexe-A) est une variante de complexité moyenne de G.729 avec une qualité de voix très légèrement inférieure. Toutes les plateformes qui supportent G.729 sup- portent G.729A. Sur les passerelles Cisco IOS, la variante à utiliser (G.729 ou G.729A) est liée à la configuration de complexité du Codec sur la carte voix et n'est pas montrée explicite- ment dans l'interface ligne de commande (CLI) de l'IOS Cisco pour le choix du Codec. Par exemple la CLI ne montrera pas "g729ar8" comme une option de Codec mais si la carte voix est définie avec une complexité moyenne l'option g729r8 est un Codec G.729A. G.729 Annexe-B est un algorithme de complexité élevée et G.729A Annexe-B est une variante de complexité moyenne de G.729 Annexe-B avec une qualité de voix très légèrement inférieure. la différence entre les Codecs G.729 et G.729 Annexe-B est que le Codec G.729 Annexe-B fournit une détection d'activité voix embarquée (VAD- Voice Activity Detection) et une génération de bruit de confort (CNG - Comfort Noise Generation).
Problèmes liés au Codec G.723.1 Les combinaisons de codecs suivantes sont interopérables: ● G.729 et G.729A ● G.729 et G.729 ● G.729A et G.729A ● G.729 Annexe-B et G.729A Annexe-B ● G.729 Annexe-B et G.729 Annexe-B ● G.729A Annexe-B et G.729A Annexe-B Note: Il n'y a aucun moyen explicite de configurer G.729A sur les modules Cisco 2600/3600/VG-200 NM-1V et NM-2V (Voice Network Module) car ces deux modu- les ne supportent pas la configuration de complexité supportée par le module voix NM-HDV (High Density Network Module). Toutefois, si une communication G.729A est établie par une extrémité et se terminant sur un NM-1V/2V, celle-ci sera établie normalement. Problèmes liés au Codec G.723.1 Il y a deux versions: G.723.1 et G.723.1 Annexe-A. Ces deux versions ne sont pas interopérables. G.723.1 Annexe-A comprend un algorithme VAD embarqué et un générateur de bruit de confort. Le Codec G.723.1 est également supporté à partir de la Release 12.0(5)T de l'IOS Cisco avec les débits de 5,3 et 6,3 kb/s. Quand une passerelle VoIP Cisco établit un appel entre des équipements utilisant G.723.1, il est entendu que seule l'extrémité distante utilise G.723.1. Aucun des deux côtés n'est concerné par le débit 5,3 ou 6,3 kb/s qui est supporté par l'autre extrémité. Cela veut dire que s'il st bénéfique que les deux extrémités aient le même débit, il est possible qu'une des deux extrémités transmettent à 5,3 kb/s tandis que l'autre transmet à 6,3 kb/s. La vitesse en cours d'utilisation est affichée par la commande show call active voice brief ci-dessous: Cisco-router# show call active voice brief 47 : 494514hs.1 +473 pid:0 Answer active tx:210/5040 rx:219/4380 IP 5.5.0.1:16534 rtt:3ms pl:890/0ms lost:0/0/0 delay:70/70/70ms g723r63 47 : 494514hs.2 +473 pid:1 Originate 4750001 active tx:230/1840 rx:230/8280 Tele 2/0:0 (35): TX:6870/2290/0ms g723r63 !--- Dans cet exemple G.723.1 opère à 6.3 kbps. noise:0 acom:0 i/0:-79/-5 dBm Le standard G.723.1 permettra aux stations de changer le débit de la communica- tion entre 6,3 et 5,3 kb/s pour s"adapter à la charge du réseau. Les passerelles VoIP Cisco ne supportent pas cette facilité mais elles comprennent si l'équipement distant (tel un IP Phone) transmet à un débit différent de celui qui a été négocié à l'origine.
Négociation des Codecs Les combinaisons de codecs G.723.1 suivantes sont interopérables: ● G.723.1 (5.3 kb/s) et G.723.1 (6.3 kb/s) ● G.723.1 (5.3 kb/s) et G.723.1 (5.3 kb/s) ● G.723.1 (6.3 kb/s) et G.723.1 (6.3 kb/s) ● G.723.1 Annexe-A (5.3 kb/s) et G.723.1 Annexe-A (6.3 kb/s) ● G.723.1 Annexe-A (5.3 kb/s) et G.723.1 Annexe-A (5.3 kb/s) ● G.723.1 Annexe-A (6.3 kb/s) et G.723.1 Annexe-A (6.3 kb/s) Négociation des Codecs Avec l'introduction de la release 12.0(5)T, les passerelles VoIP Cisco supportent la fonctionnalité de négociation de Codec. Cette fonctionnalité fournit la capacité à une passerelle VoIP Cisco de connecter d'autres équipements VoIP sans avoir la nécessi- té de connaître quel Codec est utilisé pour l'établissement de la communication. Cette fonctionnalité permet également aux passerelles VoIP Cisco de s'adapter aux changements sur les équipements distants. Tant que le Codec utilisé par l'équipe- ment correspond à la liste des capacités de la passerelle VoIP Cisco, la communica- tion VoIP pourra être établie. La négociation de Codec est supportée sur les DSPs C542 et C549. L'exemple suivant montre comment configurer la négociation de Codecs. Cisco-router# configure terminal Cisco-router(config)# voice class codec 1 !--- La classe de codecs 1 est crée. Cisco-router(config-class)#codec preference 1 g723r63 Cisco-router(config-class)#codec preference 2 g729br8 Cisco-router(config-class)#codec preference 3 g711ulaw Cisco-router(config-class)#codec preference 4 g726r32 bytes 240 !--- Ces commandes définissent la liste des Codecs préférés !--- avec l'ordre de préférence. Cisco-router(config)#dial-peer voice 1 voip Cisco-router(config-dial-peer)#voice-class codec 1 !--- Ceci affecte la classe de Codecs 1 au dial-peer Cisco-router(config-dial-peer)#destination-pattern 4723155 Cisco-router(config-dial-peer)#session target ipv4:192.168.100.1 • Messages d'erreur
Messages d'erreur L'erreur %DSPRM-5-SETCODEC est causée par le fait d'avoir un Codec de complexité élevée configuré sur une extrémité d'appel (dial-peer) tout en ayant la carte de voix configurée pour une complexité moyenne. Pour corriger ce problème, vous devez reti- rer la configuration du groupe ds0 du controller, cela va causer le retrait du port voix. Après avoir retiré le groupe ds0, suivez les procédures décrites au début de ce docu- ment pour modifier la configuration de complexité de Codec.