简介
本文档介绍会话初始协议(SIP)可靠的临时响应功能如何工作,以及如何在思科统一边界元素(CUBE)和思科统一通信管理器(CUCM)上配置该功能。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科统一边界要素(CUBE)企业版
- 思科统一通信管理器快捷版(CUCME)
- 思科统一通信管理器 (CUCM)
- 会话初始协议 (SIP)
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科集成多业务路由器(ISR)上的思科IOS版本15.1(4)M4:系列2800、3800、2900、3900
- 思科ASR 1000系列聚合服务路由器上的思科IOS版本15.1(3)S4
注意:此配置示例不限于上述软件版本和硬件平台;此配置还适用于Cisco AS5400XM通用网关上的Cisco IOS版本12.4(24)T5。
背景信息
引入SIP可靠的临时响应,以便更好地与公共交换电话网(PSTN)集成。 最常见的场景是在呼叫完成之前建立语音/音频路径;因此,主叫方听到PSTN生成的通告或音乐。
例如,在以下拓扑中,IP电话呼叫PSTN会议网桥或一些免费电话号码,被叫方在应答呼叫前会播放提示。如果CUCM使用延迟优惠发起呼叫(INVITE不包含会话描述协议(SDP)),则呼叫方不会听到提示。
在其他情况下,PSTN端生成回铃音。如果在呼叫连接之前没有切通介质,则呼叫方可能听不到回铃音。
SIP可靠临时响应可用于解决上述问题,而不涉及额外的媒体资源(如媒体传输协议(MTP)),因为这些临时响应和PRACK消息为提供/应答交换提供了额外的机会。
CUBE配置
默认情况下,CUBE通过以下配置支持可靠响应:
voice service voip
sip
rel1xx supported 100rel
这意味着,作为用户代理客户端(UAC),如果它收到180/183消息,且报头为“需要:100rel,它将用PRACK响应;但是,作为用户代理服务器(UAS),它不会发送带有报头“需要: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管理界面中,转到Device > Device Setting > SIP Profile。
- 打开给定SIP中继使用的SIP配置文件。
- 从SIP Rel1XX Options下拉列表中选择Send PRACK for all 1xx Messages。
- 重置给定SIP中继的SIP中继配置文件。
注意:如果给定SIP中继使用默认SIP中继配置文件(标准SIP配置文件),则最好复制到新配置文件并应用到SIP中继;否则,默认SIP中继配置文件将影响所有SIP中继。
注意:即使您做出上述更改,CUCM也只能通过将PRACK作为UAC发送来支持可靠响应;但是,目前,它不能发送180/183和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 require 100rel是否在适当的拨号对等体或语音服务voip下配置。
症状 2:CUBE继续发送180/183,其中Require:100rel报头到CUCM。
当CUCM不支持可靠响应时,通常会发生此问题。要解决此问题,请在CUCM上启用Rel1xx。
相关信息