Introduction
Ce document décrit comment dépanner le problème audio sans issue avec les appels hairpin sur Cisco Unified Border Element (CUBE).
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Protocole d'ouverture de session (SIP)
- Comment configurer et utiliser le CUBE
- Flux et contournement du support
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- Cisco Unified Communications Manager (CUCM) - 11.5.1.10000-5
- CUBE - 15.5(3)S5
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Topologie du réseau
Problème
Un appel hairpin est un appel entrant d'un fournisseur de téléphonie Internet (ITSP) transféré ou retransféré vers l'ITSP. Il en résulte une absence de son, les appels réguliers vers l'ITSP à partir de téléphones IP fonctionnent correctement.
Conformément à la norme SIP RFC 3264, les négociations de socket de support entre le client d'agent utilisateur SIP (UAC) et le serveur d'agent utilisateur SIP (UAS) s'effectuent via le protocole SDP (Session Description Protocol) dans le modèle Offre/Réponse, suivi par tous les fabricants de produits Voix sur IP (VoIP).
Certains ITSP ne prennent pas en compte l'adresse IP et les informations de port dans le SDP en raison de leur mise en oeuvre de pare-feu. Par conséquent, le socket doit être initialisé par l'extrémité distante (dans ce cas, CUBE). ITSP exige que l'extrémité distante lui envoie des paquets RTP (Real-Time Transport Protocol), une fois qu'ITSP reçoit les paquets RTP, il les transmet à l'adresse IP source des paquets reçus.
Lors d'un appel entre un téléphone IP et l'ITSP, qui ne comporte pas l'épingle à cheveux, ce problème ne se produit pas, car le téléphone IP envoie des paquets RTP factices après avoir ouvert les ports requis.
Lorsqu'un appel provient de l'ITSP et qu'il lui est renvoyé, l'initiateur et le destinataire de l'appel n'envoient aucun flux à moins qu'ils ne reçoivent un flux d'une personne se trouvant sur le chemin de l'appel, il s'agit d'une situation de blocage.
Vérifier
Afin de valider que la connexion est correctement établie, exécutez cette commande : show voip rtp connections.
Max Ports Available: 19999, Ports Reserved: 101, Ports in Use: 4
Port range not configured, Min: 8000, Max: 48199
Ports Ports Ports
Media-Address Range Available Reserved In-use
Default Address-Range 19999 101 4
VoIP RTP active connections :
No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP
1 21 22 16424 16568 10.106.36.169 10.106.108.72
2 22 21 16426 24602 10.106.36.169 10.106.123.29
3 23 24 16428 24600 10.106.36.169 10.106.123.29
4 24 23 16430 16570 10.106.36.169 10.106.108.72
Found 4 active RTP connections
Exécutez la commande show call active voice brief afin de voir les compteurs Rx/Tx de tous les 4 tronçons d'appel du point de vue de CUBE comme 0/0.
Total call-legs: 4
35E9 : 21 7441740ms.1 (*13:00:22.857 UTC Sat May 20 2017) +4080 pid:123 Answer 5655 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.108.72:16568 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
35E9 : 22 7441740ms.2 (*13:00:22.857 UTC Sat May 20 2017) +4080 pid:123 Originate 7961 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.123.29:24602 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
0 : 23 7441780ms.1 (*13:00:22.897 UTC Sat May 20 2017) +4020 pid:124 Answer 5655 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.123.29:24600 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
0 : 24 7441780ms.2 (*13:00:22.897 UTC Sat May 20 2017) +4010 pid:124 Originate 7961 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.108.72:16570 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
Remarque : si les routeurs utilisent IOS-XE, exécutez cette commande afin de valider les compteurs Rx/Tx :
voice service voip
media bulk-stats
Il n'est pas recommandé d'exécuter cette commande lorsque le volume d'appels est élevé. Veillez à exécuter cette commande lorsque le processeur est inférieur à 30 %.
Solution
Point de terminaison de support logiciel (MTP)
C'est la méthode préférée pour surmonter le problème. Les MTP du logiciel CUCM sont capables d'envoyer des paquets RTP factices. Dans un appel hairpin, le MTP logiciel fournit des paquets RTP factices aux deux, à l'initiateur d'appel et au récepteur d'appel, par conséquent, l'ITSP reçoit ces paquets et répond avec RTP au MTP logiciel.
Assurez-vous que la case Media Termination Point Required est cochée sur la page Trunk Configuration. Accédez à Device > SIP trunk et sélectionnez la Media Resource Group List (MRGL) de cette liaison, vérifiez qu'elle contient au moins un MTP logiciel.
- Remarque : le matériel MTP ne peut pas envoyer de flux RTP factices. Assurez-vous que le MRGL associé à la liaison appelle uniquement le MTP logiciel. Le MTP logiciel ne peut que ponter les appels G711, assurez-vous que le flux d'appels de bout en bout doit utiliser G711 pour que cette solution de contournement fonctionne.
L'image suivante montre à quoi ressemble la charge utile RTP factice dans Wireshark :
Circulation Multimédia
Avec Media Flow-Around, les paquets de signalisation se terminent et proviennent de CUBE, mais les paquets de média contournent CUBE et circulent directement entre les points d'extrémité.
voice service voip
media flow-around
Appel avec contournement de média
Attention : cela peut avoir un impact sur la fonctionnalité CUBE, car elle ne peut pas terminer le support pour des appels. Le protocole RTP contourne le CUBE et circule directement entre les points d'extrémité. Dans ce cas, il circule directement entre les FSTI.
Le mode de configuration de terminal de numérotation dial-peer pour Media Flow-Through ne prend pas effet si Media Flow-Around est configuré dans une configuration globale.
Configuration
- Configurez Media Flow-Around en mode de configuration globale.
- Créez un média de classe vocale avec le flux multimédia.
- Appliquez le média de classe vocale sur tous les terminaux de numérotation dial-peer dans lesquels le flux multimédia doit être utilisé.
- Les terminaux de numérotation dial-peer qui n'ont pas cette configuration sont gérés par Media Flow-Around, car ils sont configurés globalement.
Voice service voip
media flow-around
voice-class media 10
media flow-through
dial-peer voice 1 voip
Description ** Inbound dial-peer **
voice class media 10
dial-peer voice 2 voip
Description ** Outbound dial-peer **
voice class media 10
Media Anti-Trombone
Cette fonction fonctionne de la même manière que la fonction Media Flow-Around, mais elle a moins d'impact. Tout d'abord, il recherche les appels en boucle ou en épingle à cheveux. Si un appel en épingle à cheveux est détecté, cette fonctionnalité déclenche un autre cycle de négociation de support pour l'appel identifié. À la fin de cette négociation, le CUBE ne fait plus partie du chemin du support.
Les deux parties, CUBE et ITSP, doivent prendre en charge la fonctionnalité Anti-Trombone pour que cela fonctionne.
voice service voip
media anti-trombone
Appel avec Media Anti-Trombone
Remarque : validez les restrictions avant de configurer Media Anti-Trombone sur http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/media-path.html
Activer CUBE pour envoyer des paquets STUN dans le support négocié IP/Port
Activez le CUBE pour envoyer des requêtes/paquets STUN générés localement (ces paquets STUN sont des paquets UDP avec les mêmes numéros de port/IP de support) à envoyer sur le chemin de support négocié, les périphériques dans le chemin de support peuvent effacer le chemin après avoir obtenu ces paquets STUN après avoir vérifié le protocole IP/Port/transport si ces périphériques ne vérifient pas les données d'application réelles :
voix sur IP
rendre inconscient
stun flowdata id-agent 1 boot-count 4
stun flowdata shared-secret 0 Password123$
voice class stun-usage 1
stun usage firewall-traversal flowdata
dial-peer voice 2000 voip
Description ** terminal de numérotation dial-peer entrant d'ITSP **
voice-class stun-usage 1
Cela peut être fait sur le terminal de numérotation dial-peer utilisé pour recevoir l'appel d'ITSP ou le terminal de numérotation dial-peer utilisé pour envoyer l'appel à ITSP ou aux deux.