소개
이 문서에서는 CUBE(Cisco Unified Border Element)에서 헤어핀 호출로 인한 비정상적 오디오 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- SIP(Session Initiation Protocol)
- CUBE 구성 및 사용 방법
- Media Flow-Through 및 Flow Around
사용되는 구성 요소
이 문서의 정보는 다음 하드웨어 및 소프트웨어 버전을 기반으로 합니다.
- Cisco Unified Communications Manager(CUCM) - 11.5.1.10000-5
- CUBE - 15.5(3)S5
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
네트워크 토폴로지
문제
헤어핀 통화는 ITSP(Internet Telephony Service Provider)에서 걸려온 전화로서 ITSP로 착신 전환되거나 다시 전환됩니다. 그러면 IP 전화에서 ITSP로 정기적으로 거는 오디오가 중단됩니다.
SIP RFC 3264에 따르면 SIP UAC(User Agent Client)와 SIP UAS(User Agent Server) 간의 미디어 소켓 협상은 제안/응답 모델의 SDP(Session Description Protocol)를 통해 이루어지며, 모든 VoIP(Voice over IP) 제품 제조업체가 그 뒤를 잇습니다.
일부 ITSP는 방화벽 구현으로 인해 SDP의 IP 주소 및 포트 정보를 고려하지 않으므로, 먼 쪽 끝(이 경우 CUBE)에서 소켓을 시작해야 합니다. ITSP는 원단이 일부 RTP(Real-Time Transport Protocol) 패킷을 자신에게 보내야 합니다. ITSP가 RTP 패킷을 수신하면 수신된 패킷의 소스 IP로 패킷을 전송합니다.
IP Phone과 ITSP 간의 통화에서 헤어핀이 지원되지 않는 경우 이 문제는 발생하지 않습니다. IP Phone이 필요한 포트를 연 후 더미 RTP 패킷을 전송하기 때문입니다.
통화가 ITSP에서 발신되어 다시 발신되는 경우 통화 경로의 다른 사용자로부터 스트림을 받지 않는 한 통화 개시자와 통화 수신자 모두 스트림을 전송하지 않습니다. 이 상황은 교착 상태입니다.
다음을 확인합니다.
연결이 성공적으로 설정되었는지 확인하려면 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
CUBE의 관점에서 모든 4개 통화 레그의 Rx/Tx 카운터를 0/0으로 보려면 show call active voice brief 명령을 실행합니다.
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
참고: 라우터에서 IOS-XE를 사용하는 경우 Rx/Tx 카운터를 검증하려면 다음 명령을 실행합니다.
voice service voip
media bulk-stats
통화 볼륨이 클 때는 이 명령을 실행하지 않는 것이 좋습니다. CPU가 30% 미만일 때는 이 명령을 실행해야 합니다.
솔루션
MTP(Software Media Termination Point)
이것이 그 문제를 극복하기 위해 선호되는 방법이다. CUCM 소프트웨어 MTP는 더미 RTP 패킷을 전송할 수 있습니다. 헤어핀 통화에서 소프트웨어 MTP는 더미 RTP 패킷을 통화 개시자 및 통화 수신기 모두에 제공합니다. 따라서 ITSP는 이러한 패킷을 수신하고 RTP로 소프트웨어 MTP에 응답합니다.
Trunk Configuration(트렁크 컨피그레이션) 페이지에서 Media Termination Point Required(미디어 종료 지점 필요) 확인란이 선택되어 있는지 확인합니다. Device(디바이스) > SIP trunk(SIP 트렁크)로 이동하고 해당 트렁크의 MRGL(Media Resource Group List)을 선택하고 하나 이상의 소프트웨어 MTP가 포함되어 있는지 확인합니다.
- 참고: 하드웨어 MTP는 더미 RTP 스트림을 전송할 수 없습니다. 트렁크와 연결된 MRGL에서 소프트웨어 MTP만 호출하는지 확인합니다. 소프트웨어 MTP는 G711 통화만 브리징할 수 있으며, 이 해결 방법이 작동하려면 엔드 투 엔드 통화 흐름이 G711을 사용해야 합니다.
다음 이미지는 Wireshark에서 Dummy RTP 페이로드가 어떻게 표시되는지 보여줍니다.
미디어 흐름 중심
Media Flow-Around를 사용하면 시그널링 패킷이 종료되고 CUBE에서 시작되지만 미디어 패킷은 CUBE를 우회하고 엔드포인트 간에 직접 흐릅니다.
voice service voip
media flow-around
Media Flow-Around로 통화
주의: CUBE는 모든 통화에 대해 미디어를 종료할 수 없으므로 CUBE 기능에 영향을 줄 수 있습니다. RTP는 CUBE를 우회하여 엔드포인트 간에 직접 흐릅니다. 이 경우 ITSP 간에 직접 흐릅니다.
전역 컨피그레이션에서 미디어 흐름 순회가 구성된 경우 미디어 흐름 순서의 다이얼 피어 컨피그레이션 모드가 적용되지 않습니다.
설정
- 전역 컨피그레이션에서 Media Flow-Around를 구성합니다.
- Media Flow-Through를 사용하여 음성 클래스 미디어를 만듭니다.
- Media Flow-Through를 사용해야 하는 모든 다이얼 피어에 Voice-Class Media를 적용합니다.
- 이 컨피그레이션이 없는 다이얼 피어는 전역으로 구성되므로 Media Flow-Around(미디어 플로우 어라운드)로 전환됩니다.
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 Flow-Around(미디어 플로우 어라운드)와 비슷하게 작동하지만 영향을 덜 미칩니다. 먼저, 반복 또는 헤어핀 통화를 검색합니다. 헤어핀 통화가 발견되면 이 기능은 식별된 통화에 대해 또 다른 미디어 협상을 트리거합니다. 이 협상이 끝나면 CUBE는 더 이상 미디어 경로에 포함되지 않습니다.
CUBE와 ITSP는 모두 Anti-Trombone 기능을 지원해야 이 기능이 작동합니다.
voice service voip
media anti-trombone
Media Anti-Trombone 통화
참고: Media Anti-Trombone(http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/media-path.html)을 구성하기 전에 제한 사항을 검증하십시오
CUBE가 협상된 미디어 IP/포트에서 STUN 패킷을 전송하도록 설정
CUBE가 협상된 미디어 경로를 통해 전송할 로컬에서 생성된 STUN 요청/패킷(이 stun 패킷은 동일한 미디어 IP/포트 번호를 갖는 UDP 패킷임)을 전송하도록 할 경우, 미디어 경로의 디바이스는 IP/포트/전송 프로토콜을 확인한 후 이러한 stun 패킷을 받은 후 경로를 지울 수 있습니다. 이러한 디바이스가 실제 애플리케이션 데이터를 확인하지 않는 경우
음성 서비스 voip
등나무
stun flowdata agent-id 1 boot-count 4
stun flowdata shared-secret 0 비밀번호123$
음성 클래스 stun-usage 1
stun usage firewall-traversal flowdata
dial-peer voice 2000 voip
ITSP **의 인바운드 다이얼 피어에 대한 **
voice-class stun-usage 1
이는 ITSP에서 통화를 수신하는 데 사용되는 다이얼 피어 또는 ITSP로 통화를 전송하는 데 사용되는 다이얼 피어에서 수행할 수 있습니다.