Einleitung
In diesem Dokument wird beschrieben, wie Sie das Problem der störungsfreien Audioübertragung bei Hairpin-Anrufen auf dem Cisco Unified Border Element (CUBE) beheben.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- Session Initiation Protocol (SIP)
- Konfigurieren und Verwenden von CUBE
- Durchfluss und Umlauf von Medien
Verwendete Komponenten
Die Informationen in diesem Dokument basieren auf folgenden Hardware- und Software-Versionen:
- Cisco Unified Communications Manager (CUCM) - 11.5.1.10000-5
- CUBE - 15,5(3)S5
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Netzwerktopologie
Problem
Ein Haarnadelanruf ist ein eingehender Anruf von einem Internettelefonie-Service Provider (ITSP), der an den ITSP weitergeleitet oder zurück übertragen wird. Dies führt zu undirektem Audio, reguläre Anrufe von IP-Telefonen an den ITSP funktionieren gut.
Gemäß SIP RFC 3264 erfolgen die Medien-Socket-Verhandlungen zwischen dem SIP User Agent Client (UAC) und dem SIP User Agent Server (UAS) über Session Description Protocol (SDP) im Offer/Answer-Modell. Darauf folgt jeder Hersteller von VoIP-Produkten (Voice over IP).
Einige ITSPs berücksichtigen die IP-Adresse und Port-Informationen im SDP aufgrund ihrer Firewall-Implementierung nicht. Daher muss der Socket am anderen Ende initiiert werden (in diesem Fall CUBE). Der ITSP fordert den Remote-Server auf, einige RTP-Pakete (Real-Time Transport Protocol) an ihn zu senden. Sobald der ITSP die RTP-Pakete empfängt, überträgt er die Pakete an die Quell-IP-Adresse der empfangenen Pakete.
Bei einem Anruf zwischen einem IP-Telefon und dem ITSP, der nicht über die Haarnadel verfügt, tritt dieses Problem nicht auf, da das IP-Telefon nach dem Öffnen der erforderlichen Ports Scheinpakete (Dummy RTP Packets) sendet.
Wenn ein Anruf vom ITSP kommt und an diesen zurückgesendet wird, senden sowohl der Anrufinitiator als auch der Anrufer keine Streams, es sei denn, sie empfangen einen Stream von einer Person im Pfad des Anrufs, dies ist eine Deadlock-Situation.
Überprüfung
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Verbindung erfolgreich hergestellt wurde: 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
Führen Sie den Befehl show call active voice brief aus, um die Rx-/Tx-Zähler aller vier Anrufabschnitte aus Sicht von CUBE als 0/0 anzuzeigen.
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
Hinweis: Falls Router IOS-XE verwenden, führen Sie diesen Befehl aus, um die Rx/Tx-Zähler zu validieren:
voice service voip
media bulk-stats
Es wird nicht empfohlen, diesen Befehl auszuführen, wenn das Anrufvolumen hoch ist. Stellen Sie sicher, dass Sie diesen Befehl ausführen, wenn die CPU-Auslastung unter 30 % liegt.
Lösung
Software Media Termination Point (MTP)
Dies ist die bevorzugte Methode zur Überwindung des Problems. CUCM-Software-MTPs können Dummy-RTP-Pakete senden. Bei einem Hairpin-Anruf liefert die Software MTP Dummy-RTP-Pakete an beide, den Anrufinitiator und den Anrufempfänger, sodass der ITSP diese Pakete empfängt und mit RTP an die Software MTP antwortet.
Stellen Sie sicher, dass das Kontrollkästchen Media Termination Point Required auf der Seite Trunk Configuration (Trunk-Konfiguration) aktiviert ist. Navigieren Sie zu Device > SIP trunk, und wählen Sie die MRGL (Media Resource Group List) für diesen Trunk aus, um sicherzustellen, dass dieser mindestens einen Software-MTP enthält.
- Hinweis: Hardware-MTP kann keine Dummy-RTP-Streams senden. Stellen Sie sicher, dass die dem Trunk zugeordnete MRGL nur das Software-MTP aufruft. Software-MTP kann nur G711-Anrufe überbrücken und stellt sicher, dass der End-to-End-Anruffluss G711 verwenden muss, damit dieser Workaround funktioniert.
Das nächste Bild zeigt, wie die Dummy-RTP-Nutzlast in Wireshark aussieht:
Umgehung von Medien
Bei "Media Flow-Around" enden und stammen die Signalisierungspakete am CUBE, aber die Medienpakete umgehen CUBE und werden direkt zwischen den Endpunkten übertragen.
voice service voip
media flow-around
Anruf mit Medien-Umgehung
Achtung: Dies kann die CUBE-Funktionalität beeinträchtigen, da es die Medien nicht für Anrufe terminieren kann. RTP umgeht das CUBE und fließt direkt zwischen den Endpunkten. In diesem Fall fließt er direkt zwischen den ITSPs.
Der Dial-Peer-Konfigurationsmodus für Media Flow-Through wird nicht wirksam, wenn Media Flow-Around unter der globalen Konfiguration konfiguriert wurde.
Konfiguration
- Konfigurieren Sie Media Flow-Around unter der globalen Konfiguration.
- Erstellen Sie ein Voice-Class-Medium mit Media Flow-Through.
- Wenden Sie Voice-Class-Media auf alle DFÜ-Peers an, in denen Media Flow-Through verwendet werden soll.
- Die DFÜ-Peers, die nicht über diese Konfiguration verfügen, fallen unter "Media Flow-Around", da sie global konfiguriert sind.
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
Medien-Anti-Posaune
Diese Funktion funktioniert ähnlich wie Media Flow-Around, hat jedoch geringere Auswirkungen. Zunächst sucht er nach Looped- oder Hairpin-Anrufen. Wird ein Hairpin-Anruf gefunden, löst diese Funktion eine weitere Runde der Medienaushandlung für den identifizierten Anruf aus. Am Ende dieser Aushandlung ist das CUBE nicht mehr Teil des Medienpfads.
Damit dies funktioniert, müssen beide Parteien, CUBE und ITSP, die Anti-Trombone-Funktion unterstützen.
voice service voip
media anti-trombone
Anruf mit Media Anti-Trombone
Hinweis: Validieren Sie die Einschränkungen, bevor Sie Media Anti-Trombone konfigurieren: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/media-path.html
Aktivieren von CUBE zum Senden von STUN-Paketen in der ausgehandelten Medien-IP/Port
Aktivieren Sie das CUBE, um lokal generierte STUN-Anforderungen/Pakete (diese Betäubungspakete sind UDP-Pakete mit denselben Medien-IP/Port-Nummern) zu senden, die über den ausgehandelten Medienpfad gesendet werden. Die Geräte im Medienpfad können den Pfad löschen, nachdem sie diese Betäubungspakete erhalten haben, nachdem sie das IP/Port/Transportprotokoll überprüft haben, wenn diese Geräte nicht die tatsächlichen Anwendungsdaten überprüfen:
Sprachdienst voip
betäuben
stn flowdata agent-id 1 Bootanzahl 4
stun flowdata shared-secret 0 Kennwort123$
Sprachklasse Betäubung-Nutzung 1
Firewall-Traversal-Flussdaten zur Betäubungsnutzung
dial-peer voice 2000 voip
Beschreibung ** Eingehender Dial-Peer vom ITSP **
Betäubung durch Sprachklasse 1
Dies kann über den Dial-Peer erfolgen, der verwendet wird, um den Anruf vom ITSP zu empfangen, oder über den Dial-Peer, der verwendet wird, um den Anruf an den ITSP zu senden, oder über beide.