目录

简介

先决条件

要求

使用的组件

背景信息

协议

ISDN Q.931(T1 / E1 / BRI)

H.323

SIP

MGCP

SCCP

模拟(FXS/FXO/E&M/E1 R2)

语音端口

E1 R2

思科特定回铃详细信息

内部传输（SIP中继和CUC）

联系中心移动座席

联系中心企业版(UCCE)和VXML

故障排除

回铃延迟

debug voip ccapi inout analysis

信号信号正常，但没有回铃？

简介

本文档的目的是提供对通常称为呼叫进度音或简称CPtone的音频回铃音的深入说明。

本文档将尝试讨论并分析回铃在任何和所有IP语音(VoIP)和模拟信令协议中的工作方式。

先决条件

要求

尽管阅读本文档无需正式前提条件；写这篇文章时希望读者已经对用于建立和连接电话呼叫的底层语音信令协议有一些工作知识。本文档中多次引用这些协议。

信令协议：会话初始协议(SIP)、H323(h225 / h245)、媒体网关控制协议(MGCP)、瘦客户端控制协议(SCCP)、ISDN Q931、E1 R2。

媒体协议：实时协议(RTP)、语音编解码器、视频编解码器。

模拟技术：耳和嘴(E&M)、外汇交换用户(FXS)、外汇局(FXO)和E1 R2。

使用的组件

本文档中的信息基于以下软件和硬件：

运行任何IOS/IOS版本的Cisco IOS和IOS-XE网关(2800 / 3800 / 2900 / 3900 / 4300 / 4400 / CSR1000v / ASR100X)-XE。

Cisco Unified Communications Manger(CUCM)9.X及更高版本

Cisco Unity Connection(CUC)9.x及更高版本

客户语音门户(CVP)9.x及更高版本

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解任何命令或配置的潜在影响。

背景信息

Rinback不是VoIP或模拟协议，但它存在于每部由手机、固定电话、台式电话和软客户端制作的电话中。因此，了解其工作原理、来源以及如何排除回铃问题是协作工程师工具套件的重要部分。

回铃是向拨打电话的人播放的一系列铃声，让主叫方知道被叫方实际正在振铃。由于呼叫方会认为被叫方实际上没有振铃，因此没有铃声将被视为一个坏信号。回铃/CPtones因国家/地区而异。如果某人要拨打美国号码，则会播放一组不同的回铃，而不是同一人拨打英国号码。

在大多数情况下，回铃由远程被叫方播放到主叫方。为了实现此目的，音频必须向后方向（呼叫到呼叫）切通。

协议

本文档将检查不同协议及其如何协商回铃，以及使用该协议时如何控制回铃。

ISDN Q.931(T1 / E1 / BRI)

ISDN Q.931利用了在Q.931信令中可以查看的进度指示符(PI)的概念。通过运行debug isdn q931，在思科语音网关上可以看到此消息。进度指示器可以在“警报”、“进度”、“呼叫继续”、“设置确认”和“断开连接”消息中发送。进度指示器值1或8将剪切回铃和错误消息的向后音频。0、2和3的进度指示器值不会通过向后介质切断。如果远程被叫方无法回铃，则分配给ISDN信道的DSP可以回铃到ISDN线路。

ISDN回铃的已知警告

- SIP到ISDN呼叫需要Early Offer，因此当网关收到具有有效PI的ISDN以打开后向媒体时，它具有CUCM/IP电话的IP以向其发送媒体。

Q931进度指标

价值

定义

Q.931消息

进度指示器= 0

带外

设置

进度指示器= 1

呼叫不是终端ISDN。进一步的呼叫进度信息可能在带内可用

警报、连接、进度、设置

进度指示器= 2

目的地址是非ISDN地址。

警报、连接、进度

进度指示器= 3

目的地址是非ISDN地址。

设置

进度指示器= 8

带内信息或适当的模式现在可用。

警报、连接、进度、断开

ISDN Q.931带内进度指示器的示例

Jun 22 15:16:36.790: ISDN Se0/2/0:23 Q931: TX -> ALERTING pd = 8  callref = 0x80A3

Progress Ind i = 0x8188 - In-band info or appropriate now available

Nov 28 21:25:41.754: ISDN Se0/1/1:15 Q931: TX -> PROGRESS pd = 8  callref = 0x805C

Progress Ind i = 0x8188 - In-band info or appropriate now available

配置

默认情况下，ISDN回铃工作可靠，因此无需额外配置。但是，在存在互操作性要求时，存在用于更改行为的命令。

手动更改progress_ind值。

重要说明：

- 默认情况下禁用此功能

- 这只能应用于出站拨号对等体

- 此VOIP和POTS拨号对等体均可应用。

完整命令语法：http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/vcr3/vcr3-cr-book/vcr-p2.html#wp1001337490

!

progress_ind { alert | callproc } { enable pi-number | disable | strip [strip-pi-number] }

progress_ind { connect | disconnect | progress | setup } { enable pi-number | disable }

!

dial-peer voice 1 pots

destination-pattern 8675309$

progress_ind alert enable 8

progress_ind callproc enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

progress_ind progress enable 8

progress_ind progress setup 1

!

dial-peer voice 2 pots

destination-pattern 8675309$

progress_ind alert strip 8

progress_ind callproc strip 8

!

dial-peer voice 3 pots

destination-pattern 8675309$

progress_ind alert disable

progress_ind callproc disable

progress_ind connect disable

progress_ind disconnect disable

progress_ind progress disable

progress_ind progress disable

!

要求语音网关始终发送警报消息

如果管理员需要语音网关始终在连接之前发送警报消息，则可以在串行接口下配置isdn send-alerting命令。默认情况下禁用此功能

完整命令语法： http://www.cisco.com/c/en/us/td/docs/ios/dial/command/reference/dia-cr-book/dia_i2.html

!

interface Serial0/0/0:23

isdn send-alerting

!

调试

debug isdn q931

debug voip ccapi inout

H.323

H.323，更具体地说，H.225 VOIP信令协议建立在ISDN的Q.931协议之上。因此，它们有许多共同的元素。在H.323/H.225中，存在的许多命令和Q.931回铃后的想法都存在。这包括进度指示器值、消息类型和命令。

Rinback的示例H.225消息

*Jun 22 11:32:52.080: H225.0 INCOMING PDU ::=

value H323_UserInformation ::=

{

h323-uu-pdu

{

h323-message-body alerting :

配置

H.323和H.225无需配置即用回铃。但是，ISDN Q.931部分中指定的命令也适用于H.323回铃。此外，还有可用于H.323信令的命令。

命令

定义

语音呼叫发送警报

- 在全局配置中配置。

- 此命令默认为禁用。

- 此命令使终接网关能够在接收到呼叫建立后发送警报消息，而不是进程消息。

- 当CCAPI调试中出现“语音呼叫发送警报=FALSE”时，此命令可以使用此设置，以使值为TRUE。

- 此外，ISDN到SIP上也可使用此功能，其中收到183 w/SDP，但远端设备实际上没有播放回铃。

- 它使用相同的PI信息将TX Progress更改为TX Alerting。然后PSTN重新播放。

voice rtp send-recv

在两个方向打开RTP音频通道。

!

dial-peer voice 1 voip

tone ringback alert-no-pi

!

dial-peer voice 2 pots

tone ringback alert-no-pi

!

- 如果在IP呼叫段上收到警报，且没有PI，则此命令会导致网关生成向主叫方的回铃。

- 它与 progress_ind setup 命令的不同之处在于使用 tone ringback 命令时，出站 H.225 建立消息没有值为 3 的 PI。

- 某些设备可能不接受包含 PI 的建立消息。

CUCM配置

CUCM>中存在某些特定的回铃H.323配置

导航路径：CUCM > System > Service Parameters > Pub > CallManager > Send H225 User Info Message > Use ANN For Ringback

价值

定义

使用ANN进行回铃

使用Cisco SCCP信号器播放回铃音（在Cisco CallManager版本4.0及更高版本中提供）

呼叫进度音的用户信息

将H.225用户信息消息发送到IOS网关以播放回铃音或保持音（这是默认设置）。

呼叫进度音的H225信息

将H.225信息消息发送到IOS网关以播放回铃音或保持音

调试

debug voip ccapi inout

debug h225 asn1

这也是有关H.323回铃故障排除的重要文档

http://www.cisco.com/c/en/us/support/docs/voice/h323/22983-ringback.html

SIP

SIP回铃通常涉及两条消息之一。180和183。RFC 3261规定，在INVITE之后可能收到这些1XX消息中的0、1或以上，因此不违反RFC不接收这些消息。如果未收到任何回铃，则不会回铃。因此，如果呼叫方预期以某种形式回铃，则需要180或183。

180和183都可以包含会话描述协议(SDP),CUBE将其视为早期介质。当SDP存在于18X消息CUBE中时，CUCM将期望发送带SDP的18X的远端设备从SDP中指定的IP播放回铃。在CUCM或CUBE中，没有更改此行为的配置。某些设备在发送回铃之前，需要在18X消息上进行PRACK(rel1xx)交换。

RFC3960深入介绍有关SIP回铃信令的更多详细信息。

请注意，对于SIP到ISDN和SIP到H.323，使用SDP映射到带内进度指示的18X呼叫，而不使用SDP的18X则映射到警报呼叫。

使用SDP的示例183

SIP/2.0 183 Session Progress

Via: SIP/2.0/TCP 10.10.10.10:5060;branch=z9hG4bK6350828126b1a

From: <sip:8675309@10.10.10.10>;tag=85512413~796a13c3-49d2-74ec-19db-f4258d9eef64-40934478

To: <sip:123456789@10.10.10.1>;tag=BA0FA04C-97B

Date: Wed, 22 Jun 2016 11:32:51 GMT

Call-ID: 575b0c00-76a177e1-57ea4-2009000a

CSeq: 101 INVITE

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER

Allow-Events: telephone-event

Remote-Party-ID: <sip:8675309@10.10.10.10>;party=called;screen=no;privacy=off

Contact: <sip:8675309@10.10.10.10:5060;transport=tcp>

Supported: sdp-anat

Server: Cisco-SIPGateway/IOS-15.4.3.M2

Content-Type: application/sdp

Content-Disposition: session;handling=required

Content-Length: 250

v=0

o=CiscoSystemsSIP-GW-UserAgent 9474 3602 IN IP4 172.16.37.129

s=SIP Call

c=IN IP4 10.10.10.10

t=0 0

m=audio 17606 RTP/AVP 8 101

c=IN IP4 10.10.10.10

a=rtpmap:8 PCMA/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=ptime:20

示例180，不带SDP

SIP/2.0 180 Ringing

Via: SIP/2.0/TCP 10.10.10.10:5060;branch=z9hG4bKd34f2a2080

From: <sip:2002@10.10.10.10>;tag=17170~21823a7a-6ec3-4a2f-9307-df98bca4b011-23314477

To: <sip:3001@10.10.10.1> ;tag=1ADFB1AC-3CB

Date: Tue, 26 Jan 2016 22:05:06 GMT

Call-ID: d859d700-6a71ed8f-26-a21030e

CSeq: 102 INVITE

Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER

Allow-Events: telephone-event

Remote-Party-ID: < sip:3001@10.10.10.10> ;party=called;screen=yes;privacy=off

Contact: < sip:3001@10.10.10.10:5060;transport=tcp>

Server: Cisco-SIPGateway/IOS-12.x

Content-Length: 0

配置

命令

定义

!

sip-ua

disable-early-media 180

!

用于指定为180个响应提供哪种呼叫处理（早期媒体或本地回铃），其中180个响应具有会话描述协议(SDP)

!

语音服务VOIP

SIP

块{180 | 181 | 183} sdp {present |缺席

!

阻止与回铃有关的特定消息

SIP配置文件，将183会话正在进行中更改为180振铃。

!

voice service voip

sip

sip-profiles inbound

!

voice class sip-profiles 777

response 183 sip-header SIP-StatusLine modify "SIP/2.0 183 Session Progress" "SIP/2.0 180 Ringing"

!

dial-peer voice 777 voip

voice-class sip profile 777 inbound

!

在CUCM中启用PRACK(rel1xx)。

- 默认情况下，CUCM SIP配置文件上禁用PRACK

系统菜单路径：设备>设备设置> Sip配置文件>选择SIP配置文件> SIP Rel1XX

选项

- 已禁用（默认）

- 如果1xx包含SDP，则发送PRACK

- 发送所有1xx消息的PRACK

在网关上启用PRACK(rel1xx)

- 默认情况下，在语音网关上启用rel1xx。如果CUBE收到要求：100rel报头，它将PRACK

调试

debug voip ccapi inout

debug ccsip messages

MGCP

MGCP是控制FXS和ISDN T1/E1端口的VOIP端。您可以检查CUCM是否向特定端口发送正确的回铃信令，但无需进行太多配置。

从CUCM到VG224 FXS端口的MGCP回铃消息示例

Apr 29 01:01:38.264: MGCP Packet received from 14.50.244.2:2427--->

RQNT 37 AALN/S2/1@vg224 MGCP 0.1

X: 1b

R: L/hu

S: G/rt

Q: process,loop

<---

S:=信号事件和g/rt =通用包/回铃音

CUCM 配置

系统菜单路径：系统>服务参数>发布> CallManager>禁用警报进度指示器

- 此参数确定是否向数字PRI网关报告带内信息的警报进度指示器。

- 有效值指定True（禁用警报进度指示器）或False（发送警报进度指示器）。

- 要在某些配置中接收回铃，您可能必须将此字段设置为False，以强制介质切换。

网关配置

- 无

调试

debug mgcp packet

debug voip ccapi nout

debug vpm signal

debug voip vtsp session

SCCP

对于注册到CUCM或CME的SCCP IP电话，会向IP电话发送“StartToneMessage”，该消息会告知本地电话向呼叫者播放回铃。

模拟(FXS/FXO/E&M/E1 R2)

所有模拟语音端口的回铃调试：

debug voip ccapi inout

debug vpm signal

debug voip vtsp session

语音端口

- 本地DSP负责为语音端口提供回铃。

- 自定义CPtone可在选择的语音端口下配置。

GATEWAY(config)#voice-port 0/2/0

GATEWAY(config-voiceport)#cptone ?

locale   2 letter ISO-3166 country code

AR Argentina            IN India                PA Panama

AU Australia            ID Indonesia            PE Peru

AT Austria              IE Ireland              PH Philippines

BE Belgium              IL Israel               PL Poland

BR Brazil               IT Italy                PT Portugal

CA Canada               JP Japan                RU Russian Federation

CL Chile                JO Jordan               SA Saudi Arabia

CN China                KE Kenya                SG Singapore

CO Colombia             KR Korea Republic       SK Slovakia

C1 Custom1              KW Kuwait               SI Slovenia

C2 Custom2              LB Lebanon              ZA South Africa

CY Cyprus               LU Luxembourg           ES Spain

CZ Czech Republic       MY Malaysia             SE Sweden

DK Denmark              MT Malta                CH Switzerland

EG Egypt                MX Mexico               TW Taiwan

FI Finland              NP Nepal                TH Thailand

FR France               NL Netherlands          TR Turkey

DE Germany              NZ New Zealand          AE United Arab Emirates

GH Ghana                NG Nigeria              GB United Kingdom

GR Greece               NO Norway               US United States

HK Hong Kong            OM Oman                 VE Venezuela

HU Hungary              PK Pakistan             ZW Zimbabwe

IS Iceland

E1 R2

显示回铃的E1 R2呼叫的debug ccapi inout、debug vpm signal和debug voip vtsp会话的输出。

042446: May 12 14:51:15.816 GMT: //2475488/47922BA59254/CCAPI/cc_api_call_alert:

Interface=0x3ECE2770, Progress Indication=NULL(0), Signal Indication=SIGNAL RINGBACK(1)

042447: May 12 14:51:15.816 GMT: //2475488/47922BA59254/CCAPI/cc_api_call_alert:

Call Entry(Retry Count=0, Responsed=TRUE)

042448: May 12 14:51:15.816 GMT: //2475487/47922BA59254/CCAPI/ccCallAlert:

Progress Indication=NULL(0), Signal Indication=SIGNAL RINGBACK(1)

042449: May 12 14:51:15.816 GMT: //2475487/47922BA59254/CCAPI/ccCallAlert:

Call Entry(Responsed=TRUE, Alert Sent=TRUE)htsp_alert_notify

042450: May 12 14:51:15.816 GMT: r2_reg_event_proc(0/0/1:1(1)) ALERTING RECEIVED

042451: May 12 14:51:15.816 GMT: R2 Incoming Voice(0/1): DSX (E1 0/0/1:0): STATE: R2_IN_WAIT_REMOTE_ALERT R2 Got Event R2_ALERTING

042452: May 12 14:51:15.816 GMT: rx R2_ALERTING in r2_comp_wait_remote_alert

042453: May 12 14:51:15.816 GMT: r2_reg_generate_digits(0/0/1:1(1)): Tx digit '1'

042454: May 12 14:51:16.672 GMT: //2475487/47922BA59254/VTSP:(0/0/1:1):0:1:1/vtsp_report_cas_digit:

End Digit=2, Mode=CC_TONE_R2_MF_BACKWARD_MODE

042455: May 12 14:51:16.672 GMT: htsp_digit_ready(0/0/1:1(1)): Rx digit='#'

思科特定回铃详细信息

内部传输（SIP中继和CUC）

- 在通过SIP中继或到/从CUC CUCM信号器进行内部传输期间，将提供回铃。

- 确保MRGL和信号器已分配给中继，并且IPVMS服务已启动。

联系中心移动座席

- 要使座席听到座席发起的呼叫的呼叫进度音，如果未启用“MTP必需”，则需要进行其他配置。如果您通过强制不匹配的DTMF设置进行动态MTP分配，则应将Unified CM配置为启用Early Offer。

- 回铃音和其他呼叫进度音不由思科信号器生成，常规电话和软电话的情况也是如此。相反，移动代理依赖于被叫方生成的这些音调（而早期优惠设置会触发这些音调以发送给代理）。

文档：

http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_9_0_1/user/guide/UCCE_BK_UFAEED16_00_ucce-mobile-agent-guide/UCCE_BK_UFAEED16_00_ucce-mobile-agent-guide_chapter_010.html#UCCE_RF_E40E25C8_00

联系中心企业版(UCCE)和VXML

CVP将通过发送具有特定号码的INVITE来向VXML网关发出回铃信号。

示例：9191

此邀请的SDP将是我们希望VXML网关发送回铃的位置。

这将匹配配置了回铃服务的拨号对等体。

故障排除

回铃延迟

环回直通的延迟通常是由底层信令的延迟引起的。需要参考特定设备和所使用的协议的调试和日志，以找出信令延迟的原因。

对于拨号对等体和拨号对等体重新查找上的语音网关信令故障，当设备尝试为呼叫找到下一跳时，可能会造成相当大的延迟。

debug voip ccapi inout analysis

正如您在整个文档中所看到的，收集ccapi调试对于ANY回铃问题非常重要。

呼叫控制API(CCAPI)负责桥接语音网关上呼叫的两端，因此也将从一个呼叫段回铃到另一个呼叫段的回铃拼接在一起。

CCAPI的回铃调试输出示例

Feb  2 21:27:18.884: //22/9285F23E801B/CCAPI/cc_api_call_alert:

Interface=0x3AB79E8, Progress Indication=NULL(0), Signal Indication=SIGNAL RINGBACK(1)

Jun 23 13:32:34 EDT: //1204/77232A800001/CCAPI/cc_api_call_cut_progress:

Interface=0x7FD5FD1CEE10, Progress Indication=INBAND(8), Signal Indication=INTERCEPT(2),

Cause Value=0

Jun 23 13:32:34 EDT: //1203/77232A800001/CCAPI/ccCallCutProgress:

Progress Indication=INBAND(8), Signal Indication=INTERCEPT(2), Cause Value=0

Voice Call Send Alert=FALSE, Call Entry(Alert Sent=FALSE)

Jun 22 11:32:52.096: //204706/575B0C000000/CCAPI/ccCallAlert:

Progress Indication=INBAND(8), Signal Indication=SIGNAL RINGBACK(1)

Nov 28 21:25:41.748: //43495/0C82F2F380B7/CCAPI/cc_api_call_cut_progress:

Interface=0x7F8028B60F90, Progress Indication=INBAND(8), Signal Indication=SIGNAL RINGBACK(1),

Cause Value=0

Nov 28 21:25:41.749: //43494/0C82F2F380B7/CCAPI/ccCallCutProgress:

Progress Indication=INBAND(8), Signal Indication=SIGNAL RINGBACK(1), Cause Value=0

Voice Call Send Alert=FALSE, Call Entry(Alert Sent=FALSE)

Nov 28 21:25:41.749: //43494/0C82F2F380B7/CCAPI/ccGenerateToneInfo:

Stop Tone On Digit=FALSE, Tone=Null,

Tone Direction=Network, Params=0x0, Call Id=43494

信号信号正常，但没有回铃？

根据您的信号，一切看起来都可能正常。但可能仍没有回击。如果信号表明特定方要向您的设备发送回铃，则有必要从语音端口获取数据包捕获或PCM捕获，以验证回铃是否实际播放。

从源和目的地检查第3层路由也很重要。如果它们无法将RTP数据包发送到您的设备，您将听不到音频。此外，如果无法将数据包发送到特定设备，则它们不会听到您的回铃。

有用的第3层路由命令

show ip route

show ip cef <remote_ip>

ping a.b.c.d source <interface>

traceroute a.b.c.d

PCM捕获文档：

http://www.cisco.com/c/en/us/support/docs/voice/h323/116078-technologies-technote-commandrefe.html