소개
이 문서에서는 SIP(Session Initiation Protocol)의 안정적인 임시 응답 기능 작동 방식 및 Cisco CUBE(Unified Border Element) 및 Cisco CUCM(Unified Communications Manager)에서 이를 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco CUBE(Unified Border Element) Enterprise
- Cisco CUCM(Unified Communications Manager Express)
- Cisco CUCM(Unified Communications Manager)
- SIP(Session Initiation Protocol)
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco ISR(Integrated Services Router)의 Cisco IOS 릴리스 15.1(4)M4:시리즈 2800, 3800, 2900, 3900
- Cisco ASR 1000 Series Aggregation Services Router의 Cisco IOS 릴리스 15.1(3)S4
참고:이 컨피그레이션 예는 위에 나열된 소프트웨어 버전 및 하드웨어 플랫폼에 국한되지 않습니다.이 컨피그레이션은 Cisco AS5400XM Universal Gateway의 Cisco IOS Release 12.4(24)T5에서도 작동합니다.
배경 정보
PSTN(Public Switched Telephone Network)과 더 효과적으로 통합하기 위해 SIP 신뢰할 수 있는 잠정 응답이 도입되었습니다. 가장 일반적인 시나리오는 통화가 완료되기 전에 음성/오디오 경로를 설정하는 것입니다.따라서 발신자는 PSTN에서 생성된 알림 또는 음악을 듣게 됩니다.
예를 들어 아래 토폴로지에서 IP 전화기는 PSTN 컨퍼런스 브리지 또는 일부 수신자 부담 번호로 전화를 걸며, 통화는 통화에 응답하기 전에 프롬프트를 재생합니다.CUCM이 지연 제안을 사용하여 통화를 시작하는 경우(INVITE에 SDP(Session Description Protocol)가 포함되지 않음) 발신자가 프롬프트를 듣지 않습니다.
다른 경우 PSTN 측에서 벨소리 신호음을 생성합니다.통화가 연결되기 전에 미디어가 잘리지 않으면 발신자가 벨소리를 듣지 못할 수 있습니다.
SIP 신뢰할 수 있는 잠정 응답은 추가 미디어 리소스(예: MTP(Media Transfer Protocol))를 포함하지 않고 위 문제를 해결하는 데 사용할 수 있습니다. 이러한 임시 응답 및 PRACK 메시지는 오퍼/응답 교환을 위한 추가 기회를 제공합니다.
CUBE 구성
기본적으로 CUBE는 이 컨피그레이션으로 안정적인 응답을 지원합니다.
voice service voip
sip
rel1xx supported 100rel
즉, UAC(User Agent Client)로서 헤더가 필요한 180/183 메시지를 수신하는 경우,100rel, PRACK로 응답합니다.그러나 UAS(User Agent Server)로서 Require: 헤더가 있는 180/183을 전송하지 않습니다.100rel.
CUBE가 18X를 전송하도록 하려면 다음을 수행합니다.100rel(UAC에서 PRACK를 대기하도록) 컨피그레이션 예는 다음과 같습니다.
전역 수준:
voice service voip
sip
rel1xx require 100rel
다이얼 피어 수준:
dial-peer voice 1000 voip
voice-class sip rel1xx require 100rel
참고:다이얼 피어 설정이 전역 설정보다 우선합니다.
CUCM 컨피그레이션
기본적으로 CUCM은 신뢰할 수 있는 응답을 지원하지 않습니다.그러나 SIP 트렁크 프로필을 변경하여 구성할 수 있습니다.
- CUCM Administration(CUCM 관리) 인터페이스에서 Device(디바이스) > Device Setting(디바이스 설정) > SIP Profile(SIP 프로필)으로 이동합니다.
- 지정된 SIP 트렁크에서 사용하는 SIP 프로필을 엽니다.
- SIP Rel1XX Options(SIP Rel1XX 옵션) 드롭다운 목록에서 Send PRACK for all 1xx Messages(모든 1xx 메시지에 대해 PRACK 보내기)를 선택합니다.
- 지정된 SIP 트렁크에 대한 SIP 트렁크 프로필을 재설정합니다.
참고:지정된 SIP 트렁크가 기본 SIP 트렁크 프로필(표준 SIP 프로필)을 사용하는 경우 새 프로필에 복사하여 SIP 트렁크에 적용하는 것이 가장 좋습니다.그렇지 않으면 기본 SIP 트렁크 프로파일은 모든 SIP 트렁크에 영향을 줍니다.
참고:위에서 변경한 경우에도 CUCM은 PRACK를 UAC로 전송하여 안정적인 응답을 지원할 수 있습니다.그러나 현재로서는 Require(필요):100rel 헤더를 UAS로 사용합니다.
일반적인 SIP 메시지
CUBE의 수신 다이얼 피어에서 신뢰할 수 있는 응답이 구성된 경우 일반적인 통화는 다음과 유사합니다.
// CUBE receives INVITE with delay offer from CUCM.
INVITE sip:2002@10.66.75.246:5060 SIP/2.0
Date: Thu, 04 Apr 2013 05:30:27 GMT
Call-Info: <sip:10.66.75.171:5060>;method="NOTIFY;Event=telephone-event;Duration=500"
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY
From: <sip:4832@10.66.75.171>;tag=169850~fb41edd8-7bc7-4ced-b8b0-9b10a31db5c4-19845894
Allow-Events: presence, kpml
P-Asserted-Identity: <sip:4832@10.66.75.171>
Supported: 100rel,timer,resource-priority,replaces,X-cisco-srtp-fallback,Geolocation
Min-SE: 7200
Cisco-Guid: 3228672256-0000065536-0000000027-2873836042
Remote-Party-ID: <sip:4832@10.66.75.171>;party=calling;screen=yes;privacy=off
Content-Length: 0
User-Agent: Cisco-CUCM8.6
To: <sip:2002@10.66.75.246>
Contact: <sip:4832@10.66.75.171:5060;transport=tcp>
Expires: 180
Call-ID: c071a100-15d10ff3-24695-ab4b420a@10.66.75.171
Via: SIP/2.0/TCP 10.66.75.171:5060;branch=z9hG4bK246d9521aba1b
CSeq: 101 INVITE
Session-Expires: 7200
Max-Forwards: 70
SIP/2.0 100 Trying
Via: SIP/2.0/TCP 10.66.75.171:5060;branch=z9hG4bK246d9521aba1b
From: <sip:4832@10.66.75.171>;tag=169850~fb41edd8-7bc7-4ced-b8b0-9b10a31db5c4-19845894
To: <sip:2002@10.66.75.246>
Date: Thu, 04 Apr 2013 05:50:29 GMT
Call-ID: c071a100-15d10ff3-24695-ab4b420a@10.66.75.171
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-15.2.4.M2.8
Content-Length: 0
// CUBE responds 183 with SDP which also contains Require: 100rel.
SIP/2.0 183 Session Progress
Via: SIP/2.0/TCP 10.66.75.171:5060;branch=z9hG4bK246d9521aba1b
From: <sip:4832@10.66.75.171>;tag=169850~fb41edd8-7bc7-4ced-b8b0-9b10a31db5c4-19845894
To: <sip:2002@10.66.75.246>;tag=42CF0134-1BC8
Date: Thu, 04 Apr 2013 05:50:29 GMT
Call-ID: c071a100-15d10ff3-24695-ab4b420a@10.66.75.171
CSeq: 101 INVITE
Require: 100rel
RSeq: 3344
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
Allow-Events: telephone-event
Contact: <sip:2002@10.66.75.246:5060;transport=tcp>
Supported: sdp-anat
Supported: X-cisco-srtp-fallback
Server: Cisco-SIPGateway/IOS-15.2.4.M2.8
Content-Type: application/sdp
Content-Disposition: session;handling=required
Content-Length: 330
v=0
o=CiscoSystemsSIP-GW-UserAgent 4874 2535 IN IP4 10.66.75.246
s=SIP Call
c=IN IP4 10.66.75.246
t=0 0
m=audio 16442 RTP/AVP 8 0 18 101 19
c=IN IP4 10.66.75.246
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtpmap:19 CN/8000
// CUBE receives PRACK from CUCM with SDP
PRACK sip:2002@10.66.75.246:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 10.66.75.171:5060;branch=z9hG4bK246da4c33fa3e
From: <sip:4832@10.66.75.171>;tag=169850~fb41edd8-7bc7-4ced-b8b0-9b10a31db5c4-19845894
To: <sip:2002@10.66.75.246>;tag=42CF0134-1BC8
Date: Thu, 04 Apr 2013 05:30:27 GMT
Call-ID: c071a100-15d10ff3-24695-ab4b420a@10.66.75.171
CSeq: 102 PRACK
RAck: 3344 101 INVITE
Allow-Events: presence, kpml
Max-Forwards: 70
Content-Type: application/sdp
Content-Length: 213
v=0
o=CiscoSystemsCCM-SIP 169850 1 IN IP4 10.66.75.171
s=SIP Call
c=IN IP4 10.66.75.89
t=0 0
m=audio 26662 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=ptime:20
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
// CUBE acknowledges the PRACK.
SIP/2.0 200 OK
Via: SIP/2.0/TCP 10.66.75.171:5060;branch=z9hG4bK246da4c33fa3e
From: <sip:4832@10.66.75.171>;tag=169850~fb41edd8-7bc7-4ced-b8b0-9b10a31db5c4-19845894
To: <sip:2002@10.66.75.246>;tag=42CF0134-1BC8
Date: Thu, 04 Apr 2013 05:50:29 GMT
Call-ID: c071a100-15d10ff3-24695-ab4b420a@10.66.75.171
Server: Cisco-SIPGateway/IOS-15.2.4.M2.8
CSeq: 102 PRACK
Content-Length: 0
// The call is not anwered until now; however, calling and called parties have exchanged SDP,
// and media path is established.
// Other messages omitted.
문제 해결
CUBE에서 이 문제를 해결하려면 다음 디버그를 사용해야 합니다.
debug voip ccapi inout
debug ccsip message
증상 1:CUBE는 다음을 요구하지 않고 180/183을 전송합니다.100rel 헤더
rel1xx에 필요한 100rel이 적절한 다이얼 피어 또는 음성 서비스 voip 아래에 구성되었는지 확인합니다.
증상 2:CUBE는 계속해서 다음과 같이 180/183을 전송합니다.100rel 헤더를 CUCM에 연결합니다.
이 문제는 일반적으로 CUCM이 신뢰할 수 있는 응답을 지원하지 않을 때 발생합니다.이 문제를 해결하려면 CUCM에서 Rel1xx를 활성화합니다.
관련 정보