- Améliorations de la compensation de gigue Voix sur IP (VoIP) - Améliorations de la compensation de gigue
Sommaire • Introduction • Présentation générale de la fonctionnalité - Avantages - Restrictions - Technologies et fonctionnalités liées - Documents liés • Plateformes supportées • Standards, MIBs et RFCs supportés • Prérequis • Tâches de configuration - Configuration de la compensation de gigue - Vérification des paramètres de compensation de gigue - Conseils pour résolution de problèmes • Exemples de configuration
Présentation générale de la fonctionnalité Introduction Ce document décrit les améliorations de la commande playout-delay qui configure le buffer de compensation de gigue pour réduire la variation de délai dans un réseau VoIP. Historique de la fonctionnalité Release Modification 12.1(5)T Introduction des améliorations de la commande playout-delay. Ce document comprend les sections suivantes: • Présentation générale de la fonctionnalité • Plateformes supportées • Standards, MIBs et RFCs supportés • Prérequis • Tâches de configuration • Exemples de configuration Présentation générale de la fonctionnalité Les réseaux paquets voix qui transmettent des données sensibles au délai rencontrent des problèmes qui n'existent pas soit dans les réseaux voix traditionnels à commuta- tion de circuits ou dans les réseaux de données. Le problème du délai a deux effets: ● Le délai en absolu peut poser des problèmes avec le rythme de type demande ré- ponse dans la conversation humaine. ● Les variations de délai connues également sous le nom de gigue (jitter) peut créer des pauses inattendues qui peuvent altérer l'intelligibilité de la voix elle-même et rendre la qualité de la voix fluctuante. La gigue, le plus sérieux de ces problèmes, est définie comme la différence entre le temps d'arrivée attendu d'un paquet et le temps de réception actuel. La gigue est due généralement à des délais de files d'attente et à la congestion du réseau ce qui entrai- ne une discontinuité dans le flux voix temps-réel. Les communications voix par paquets ont besoin d'un flux de paquets stable et régu- lier de paquets pour reproduire la voix humaine le plus fidèlement possible. Cepen- dant la remise de paquets voix est souvent irrégulière car les conditions dans le réseau varient. Pendant les périodes de congestion, les buffers dans le réseau peuvent se remplir instantanément retardant les paquets jusqu'à ce que l'on puisse les trans- mettre dans le réseau. D'autres paquets du même flux voix n'ont peut-être pas été retardés car il n'y avait pas de congestion quand ils sont passés dans le réseau.
Ainsi différents paquets de la même communication peuvent subir des temps d'arri- vée différents donc de la gigue qui est un composant variable du délai total de bout en bout dans le réseau. Les réseaux voix Cisco compensent la gigue en configurant un buffer appelé buffer de compensation de gigue sur le routeur passerelle à l'extrémité distante ( extrémité réceptrice) de la transmission de la voix ( voir figures suivantes). Venant du réseau IP, le buffer de compensation gigue reçoit quelques fois des paquets voix à intervalles irréguliers ou hors séquence. Le buffer de compensation de gigue garde brièvement les paquets, les reséquence si nécessaire et les transmet de manière régulière au DSP (Digital Signal Processor) de la la passerelle. Les algorithmes dans le DSP déterminent la taille et le comportement du buffer de compensation de gigue sur la base d'une configuration utilisateur et des conditions de gigue courantes du réseau pour maxi- miser le nombre de paquets délivrés correctement et minimiser le délai. Réseau IP La voix temps-réel passe dans les deux sens Partie appelante A appelée B Voix de A Voix de B Le mode et la taille du buffer de gigue sont configurés sur cette extrémité dial peer VoIP de la passerelle pour limiter la gigue sur la voix de la partie appelée. limiter la gigue sur la voix de la partie appelante. Emplacements des buffers de compensation gigue pour une conversation entre humains La voix temps-réel ou les chiffres passent dans ce sens La voix synthétisée générée par le serveur passe dans ce sens Réseau IP Voix du serveur Serveur vocal Le mode et la taille du buffer de gigue sont configurés sur cette extrémité dial peer VoIP de la passerelle pour limiter la gigue sur la voix générée par le serveur. Le serveur de média peut tolérer plus de délai et de gigue qu'un auditeur humain aussi la transmission vers le serveur ne nécessite pas de buffer. Partie appelante A Emplacements des buffers de compensation gigue pour une conversation avec un serveur vocal
La taille du buffer de compensation de gigue et par conséquent le délai ajouté est con- figurable par l'utilisateur avec la commande playout-delay. Une configuration correc- te est absolument nécessaire : si les paquets voix sont retenus un temps trop court cela peut causer un vidage du buffer et introduire des blancs dans la parole. D'un autre côté les paquets qui arrivent lorsque le buffer est plein sont éliminés et causent également des blancs dans la parole. Pour améliorer la qualité de la voix, les blancs de parole sont éliminés par différentes techniques de remplacement qui synthétisent des paquets pour remplacer ceux qui ont été perdus ou non reçus à temps. Selon la durée des blancs, les trames voix manquantes sont remplacées par prédiction à partir des dernières trames reçues (usuellement la dernière) suivies de silence si la condi- tion persiste (plus de 30 à 50 ms). Les statistiques de débordement de buffer et de remplacement de trames sont disponibles dans la sortie de la commande show call active voice. Elles donnent une bonne indication sur la qualité d la voix. Dans un exemple qui démontre comment les paquets peuvent être perdus, un buffer de compensation de gigue est configuré avec un délai maximum de 40 ms. Sur le ré- seau les paquets sont retardés par la source (peut un serveur de média arrêtant de transmettre des paquets pendant 60 ms ou une congestion sévère du réseau). Le buf- fer de compensation de gigue se vide en attendant des paquets qui n'arrivent pas jusqu'à ce que le délai maximum de sortie du buffer soit dépassé ce qui entraine une rupture notable dans la transmission de la voix. Le serveur de média transmet ensui- te des paquets à un débit plus élevé que le débit de sortie du buffer de compensation de gigue ce qui entraine un remplissage maximal du buffer. Les paquets suivants sont éliminés par le buffer de compensation de gigue et il en résulte un signal voix haché. Bien que la taille du buffer soit configurable, il est important de notez que si la taille du buffer configurée est trop grand le délai global de la connexion risque d'atteindre des limites inacceptables. Vous devez mettre en balance l'avantage de l'amélioration des conditions de gigue avec l'inconvénient de l'accroissement du délai de bout en bout ce qui peut aussi causer des problèmes de qualité de la voix. La commande playout-delay vous permet de sélectionner un mode de compensation de gigue (fixe ou adaptif) et de spécifier certaines valeurs utilisées par les algorithmes des DSPs pour ajuster la taille du buffer de compensation de gigue. Pour toute com- munication voix, les algorithmes listent les marques de temps dans les en-têtes RTP (Real Time Protocol) d'un échantiollon de paquets pour déterminer la valeur de délai que le buffer de compensation de gigue applique à un paquet en moyenne; comme s'il n'y avait pas de gigue dans le réseau. Ceci est appelé "délai moyen". Quand vous configurez l'option playout-delay en mode adaptif, les algorithmes DSP du codec prennent des échantillons dans la communication voix et ajustent la valeur du délai moyen quand les conditions de gigue dans le réseau changent. La taille du buffer de compensation de gigue (la valeur de délai appliquée)est ajustée en plus ou en moins pour assurer une transmission fluide des trames voix vers le codec dans les limites minimum et maximum que vous configurez. Les algorithmes sont conçus pour réduire lentement la valeur du délai et accroître rapidement le délai pendant l'ajustement ainsi la qualité de la voix est assurée avec le risque de délai global plus élevé.
long de la communication. Le paquets voix variablement espacés arrivent au buffer de gigue. Certains sont hors séquence. Le paquets sont placés dans le buffer dans l'ordre requis pour la sortie. Des slots vides représentent des paquets perdus ou en retard. Le paquets régulièrement espacés et dans l'ordre correct sont transmis au codec du DSP . Buffer de gigue Adaptif DSP Codec 16 V 15 V 14 V 11 V 13 V 12 V 10 V 9 V 8 V 7 V 6 V 4 V 3 V 2 V 1 V Réseau IP 80 ms Maximum 60 ms Taille Courante (Délai moyen) 30 ms Nominal 10 ms Minimum dial-peer 302 voip playout-delay mode adaptive playout-delay maximum 80 playout-delay nominal 30 playout-delay minimum low Buffer de compensation de gigue en mode adaptif Quand vous configurez l'option playout-delay en mode fixe vous pouvez spécifier la valeur de délai nominal qui est la valeur du délai de sortie du buffer de compensation de gigue appliqué au début de la communication par le buffer de compensation de gigue. C'est également la taille maximum du buffer de compensation de gigue tout au long de la communication. Le paquets voix variablement espacés arrivent au buffer de gigue. Certains sont hors séquence. Le paquets sont placés dans le buffer dans l'ordre requis pour la sortie. Le paquets régulièrement espacés et dans l'ordre correct sont transmis au codec du DSP . Buffer de gigue Adaptif DSP Codec Réseau IP 16 V 15 V 14 V 11 V 13 V 12 V 10 V 9 V 8 V 7 V 6 V 4 V 3 V 2 V 1 V 80 ms Nominal Paquet manquant (hors séquence ou arrivera plus tard. Paquet manquant (paquet perdu; ce paquet sera remplacé par un paquet synthétisé. dial-peer 301 voip playout-delay mode fixed playout-delay nominal 80 Buffer de compensation de gigue en mode adaptif
Pour la majorité des réseaux avec une valeur moyenne de gigue, les valeurs par défaut de la commande playout-delay sont suffisants; la commande n'a pas besoin d'être utilisée. Les conditions qui suggèrent une modification des paramètres playout-delay sont: ● Audio hachée, qualité de voix médiocre ● Délai global trop grand dans le réseau ● Réseau avec du bruit mais bien maîtrisé avec une application qui a beaucoup de gigue à l'extrémité émettrice comme une application de messagerie unifiée ou un serveur vocal interactif (IVR). Avant l'IOS Cisco 12.1(5)T, la commande playout-delay était configurée en mode de configuration voice-port. A partir de l'IOS Cisco 12.1(5)T et suivants, dans la majorité des cas la commande doit être configurée en mode de configuration dial-peer sur le "dial peer" VoIP sur l'extrémité réceptrice du trafic voix qui doit être placé dans le buffer de compensation de gigue. Ce dial-peer évalue les conditions réseau, les relaie vers le DSP qui à son tour ajuste le buffer de compensation de gigue au besoin. Quand plusieurs applications sont configurées sur la passerelle, le délai du buffer doit être configuré en mode de configuration dial-peer. Quand il y a beaucoup de dial-peers à configurer, il peut être plus simple de configurer le délai du buffer sur port voix. Si des valeurs de délai de sortie du buffer configurées entrent en conflit sur un port voix et un dial-peer, la configuration dial-peer a la préséance. Avantages Les améliorations du délai du buffer de compensation de gigue vous permettent de: ● Configurer le délai de sortie du buffer de compensation de gigue sur le dial-peer VoIP ainsi la taille du buffer de compensation de gigue peut être adaptée aux changements de conditions du réseau. ● De fixer aisément le délai minimum de sortie du buffer à sa valeur par défaut, bas ou élevé ainsi vous pouvez contrôler la valeur de délai invariable dans le réseau. Restrictions Les améliorations ne sont pas supportées sur les plateformes suivantes: ● Plateformes MGCP ● Plateformes SCGP Technologies et fonctionnalités liées Les améliorations du contrôle du délai de sortie du buffer de compensation de gigue sont liées à la qualité de service voix. Pour une vue générale voir le document sui- vant: ● Quality of Service for Voice over IP à http://www.cisco.com/univercd/cc/td/doc/cisintwk/intsolns/qossol/qosvoip.htm
Tâches de configuration Documents liés • Cisco IOS Multiservice Applications Configuration Guide, Release 12.1 • Cisco IOS Multiservice Applications Command Reference, Release 12.1 Standards MIBs et RFCs supportés Standards Aucun standard nouveau ou modifié n'est supporté dans cette fonctionnalité. MIBs Aucune MIB nouvelle ou modifiée n'est supportée dans cette fonctionnalité. RFCs Aucun RFC nouveau ou modifié n'est supporté dans cette fonctionnalité. Prérequis • Réseau VoIP opérationnel • Cisco IOS Release 12.1(5)T ou supérieur Tâches de configuration Voir la section suivante pour un ensemble complet des tâches de configuration pour les améliorations de la fonctionnalité délai de sortie du buffer de compensation de gi- gue. • Configuration du délai de sortie du buffer (Optionnel) Configuration du délai de sortie du buffer Pour spécifier le type de délai de sortie du buffer de compensation de gigue, exécutez ces étapes en débutant en mode de configuration global. Commande But Routeur(config)# dial-peer voice number voip Définit le numéro de dial-peer VoIP et entre en mode de confi- guration dial-peer. Routeur(config-dial-peer)# playout-delay mode {adaptive | fixed} Spécifie le mode du buffer de compensation de gigue. nominal value Spécifie la valeur du délai appliqué au début de la communi- cation par le buffer de gigue dans la passerelle. En mode fixe c'est également la taille maxi- male du buffer tout au long de la communication.
Vérification des paramètres de délai de sortie Commande But Routeur(config-dial-peer)# playout-delay minimum {low | high | default} (Mode adaptif seulement) Spécifie la limite basse du buffer de gigue ou la plus petite valeur à laquelle sera fixé le délai adaptif. maximum value Spécifie la limite haute du grande valeur à laquelle sera Vérification des paramètres de délai de sortie Vous pouvez vérifier la configuration du délai de sortie du buffer avec la commande show dial-peer voice. Router# show dial-peer voice 302 . Playout Mode is set to adaptive, Initial 30 ms, Max 80 ms Playout-delay Minimum mode is set to low, value 10 ms Conseils pour résolution de problèmes Les symptômes qui vois mènent à ajuster les paramètres de délai du buffer de com- pensation de gigue sont: ● Des blancs dans les motifs voix qui produisent un signal audio haché ou saccadé suggèrent que vous devez accroître le délai minimum de sortie du buffer, le délai maximum de sortie du buffer ou les deux si vous utilisez le mode adaptif. Pour le mode fixe augmentez la valeur nominale. ● Un délai global de réseau élevé suggère que vous devez réduire le délai maximum de sortie du buffer en mode adaptif ou réduire le délai nominal en mode fixe. (Faites attention à la perte de qualité de la voix - C'est un compromis). La valeur maximum de délai fixe une limite supérieure au délai de sortie en mode adaptif lequel est dans beaucoup de cas l'élément majeur de contribution au délai de bout en bout. Dans beaucoup d'applications il peut-être préférable que le système ou l'utilisateur arrête la communication plutôt que d'autoriser un grand délai arbitrai- re. Les paquets reçus avec de la gigue hors limites seront affichés dans le compteur de paquets en retard dans les statistiques de la commande show call active voice.
● Réseau avec du bruit mais bien maîtrisé avec une application qui a beaucoup de gigue à l'extrémité émettrice comme une application de messagerie unifiée ou un serveur vocal interactif (IVR) suggère la sélection du mode fixe. ● Plusieurs champs dans la sortie de la commande show call active voice peuvent vous aider à déterminer les problèmes de taille de buffer de compensation de gigue que vous rencontrez actuellement: - ReveiveDelay - Ce champ est constitué du délai de sortie du buffer de compensa- tion plus le délai moyen attendu après que la trame soit disponible pour le déco- deur. Pour le délai réception, les statistiques courant, délai minimal, délai maxi- mal sont disponibles dans la sortie. - GapFillWith… - Ces champs font référence au nombre de paquets de remplace- ment des paquets voix perdus ou non reçus à temps qui ont pris place dans cette communication. - LostPackets - Ce champ contient le nombre de paquets perdus; paquets non re- çus sur la passerelle de sortie. Ceci est détecté grâce au champ numéro de sé- quence des paquets RTP. - EarlyPackets - Ce champ contient le nombre de paquets qui arrivent plus tôt que la valeur courante du délai minimum. Ils obligent l'algorithme de compensation de gigue à réajuster le délai minimum utilisé dans l'estimation de la gigue. - LatePackets - Ce champ contient le nombre de paquets qui arrivent après le délai de sortie courant du buffer de compensation de gigue. Ces paquets sont éliminés. La comparaison des deux sorties de la commande show call active voice sur un rou- teur 3640 montrent de la gigue en augmentation sur un réseau. Une qualité de voix médiocre a été perçue lorsque ces exemples ont été capturés.
La première sortie montre les statistiques moyennes de gigue. Router# show call active voice . VOIP: ConnectionId[0xECDE2E7B 0xF46A003F 0x0 0x47070A4] IncomingConnectionId[0xECDE2E7B 0xF46A003F 0x0 0x47070A4] RemoteIPAddress=192.168.100.101 RemoteUDPPort=18834 RoundTripDelay=11 ms SelectedQoS=best-effort tx_DtmfRelay=inband-voice FastConnect=TRUE Separate H245 Connection=FALSE H245 Tunneling=FALSE SessionProtocol=cisco SessionTarget= OnTimeRvPlayout=417000 GapFillWithSilence=850 ms GapFillWithPrediction=2590 ms GapFillWithInterpolation=0 ms GapFillWithRedundancy=0 ms HiWaterPlayoutDelay=70 ms LoWaterPlayoutDelay=29 ms ReceiveDelay=39 ms LostPackets=0 EarlyPackets=0 LatePackets=86
La seconde sortie montre un remplacement et des valeurs de délai réception plus élevés que dans la sortie précédente, indiquant des conditions d'accroissement de la gigue dans le réseau. Router# show call active voice . VOIP: ConnectionId[0xECDE2E7B 0xF46A003F 0x0 0x47070A4] IncomingConnectionId[0xECDE2E7B 0xF46A003F 0x0 0x47070A4] RemoteIPAddress=192.168.100.101 RemoteUDPPort=18834 RoundTripDelay=26 ms SelectedQoS=best-effort tx_DtmfRelay=inband-voice FastConnect=TRUE Separate H245 Connection=FALSE H245 Tunneling=FALSE SessionProtocol=cisco SessionTarget= OnTimeRvPlayout=482350 GapFillWithSilence=1040 ms <------------ Increased GapFillWithPrediction=3160 ms <------------ Increased GapFillWithInterpolation=0 ms GapFillWithRedundancy=0 ms HiWaterPlayoutDelay=70 ms LoWaterPlayoutDelay=29 ms ReceiveDelay=43 ms <------------ Increased LostPackets=0 EarlyPackets=0 LatePackets=105 <------------ Increased
Exemples de configuration L'exemple suivant montre la configuration courante pour une passerelle Cisco AS5300 avec deux dial peers configurés pour un délai de sortie de buffer en mode adaptif. ! version 12.1 no service single-slot-reload-enable service timestamps debug datetime msec localtime service timestamps log datetime msec localtime no service password-encryption hostname Router1 no logging buffered logging rate-limit console 10 except errors resource-pool disable ip subnet-zero no ip finger no ip domain-lookup ip host apple 192.168.254.254 ip host banana 192.168.254.253 no ip dhcp-client network-discovery no mgcp timer receive-rtcp isdn switch-type primary-5ess isdn voice-call-failure 0 call rsvp-sync fax interface-type vfc mta receive maximum-recipients 0 partition flash 2 8 8 controller T1 0 framing esf clock source line primary linecode b8za ds0-group 0 timeslots 1-24 type fgd-eana mf ani-dnis controller T1 1 clock source line secondary 1
controller T1 2 framing sf linecode ami cablelength short 133 ! controller T1 3 interface Ethernet0 ip address 10.13.125.5 255.255.0.0 no ip route-cache no ip mroute-cache interface FastEthernet0 ip address 10.0.0.1 255.255.0.0 no keepalive duplex full speed auto no cdp enable hold-queue 75 in ip default-gateway 10.13.0.1 ip kerberos source-interface any no ip classless ip route 192.168.254.253 255.255.255.255 10.5.0.1 ip route 192.168.254.253 255.255.255.255 10.13.0.1 no ip http server voice-port 1:0 dial-peer voice 302 voip destination-pattern 6...... session target ipv4:10.13.101.2 playout-delay maximum 80 playout-delay nominal 30 playout-delay minimum low codec g711ulaw dial-peer voice 300 pots destination-pattern 5551002 port 0:0 prefix 6551002
! dial-peer voice 301 pots incoming called-number 6551002 direct-inward-dial port 1:0 dial-peer voice 14 pots destination-pattern 4.T port 0:0 prefix 4 dial-peer voice 24 pots dial-peer voice 34 pots dial-peer voice 44 pots dial-peer voice 1000 voip playout-delay maximum 80 playout-delay nominal 30 playout-delay minimum low line con 0 exec-timeout 0 0 logging synchronous level all transport input none line aux 0 line vty 0 4 exec-timeout 60 0 password lab login end