本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔旨在對音訊回鈴音進行深入解釋,通常稱為呼叫進程音或CP音(簡稱呼叫進程音)。
本文檔將嘗試討論並分析IP語音(VoIP)和模擬信令協定中的回鈴工作方式。
雖然閱讀這份檔案並不需要任何正式先決條件;編寫該指南的期望是,讀者已經對用於建立和連線電話呼叫的基礎語音信令協定有一些工作知識。本文檔中多次引用這些協定。
信令協定:會話初始協定(SIP)、H323(h225/h245)、媒體網關控制協定(MGCP)、瘦客戶端控制協定(SCCP)、ISDN Q931、E1 R2。
媒體協定:即時協定(RTP)、語音編解碼器、影片編解碼器。
模擬技術:Ear and Mouth(E&M)、Foreign Exchange Subscriber(FXS)、Foreign Exchange Office(FXO)和E1 R2。
本檔案中的資訊是根據以下軟體和硬體:
Cisco IOS和IOS-XE網關(2800 / 3800 / 2900 / 3900 / 4300 / 4400 / CSR1000v / ASR100X)運行任何IOS/IOS-XE版本。
Cisco Unified Communications Manger(CUCM)9.X及更高版本
Cisco Unity Connection(CUC)9.x及更高版本
客戶語音門戶(CVP)版本9.x及更高版本
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令或設定可能造成的影響。
Rinback不是一個VoIP或模擬協定,但它存在於所有電話、座機、案頭電話和軟客戶端組成的電話中。因此,瞭解它的工作方式、來源以及如何排除回鈴問題是Collaboration Engineers工具的重要部分。
回鈴是播放給電話呼叫者的一系列音調,讓呼叫者知道被叫方確實正在振鈴。沒有鈴聲被視為一個壞訊號,因為呼叫方會假設被叫方實際上沒有振鈴。回鈴/CP色調因國家/地區而異。如果某人撥打美國號碼,則播放的回鈴音與同一人撥打英國號碼的回鈴音不同。
在大多數情況下,回鈴由遠端被叫方播放給主叫方。要使這種情況發生,音訊必須在向後方向切入(被叫到呼叫)。
本文檔將研究不同的協定、它們如何協商回鈴以及使用該協定時如何操作回鈴。
ISDN Q.931使用可在Q.931訊號中檢視的進度指標(PI)概念。可通過運行debug isdn q931在思科語音網關上檢視此資訊。可在警報、進度、呼叫繼續、設定確認和斷開連線消息中傳送進度指示器。進度指示器值1或8將擷取回鈴和錯誤消息的反向音訊。進度指示器值0、2和3不會穿過後退介質。如果遠端被叫方無法向ISDN線路回鈴,則分配給ISDN通道的DSP可以向ISDN線路回鈴。
具有ISDN回鈴的已知警告
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值。
重要附註:
完整命令語法: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.225 VOIP信令協定是在ISDN的Q.931協定的基礎上構建的。因此,它們有許多共同要素。Q.931回鈴後出現的許多命令和想法都存在於H.323/H.225中。這包括進度指示器值、消息型別和命令。
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信令的命令。
指令 | 定義 |
voice call send-alert |
|
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 ! |
|
CUCM配置
在CUCM內存在一些特定的H.323環回配置>
導航路徑:CUCM > System > Service Parameters > Pub > CallManager > Send H225 User Info Message > Use ANN For Ringback
價值 | 定義 |
使用ANN進行振鈴 | 使用Cisco SCCP Annunciator播放回鈴音(Cisco CallManager 4.0版及更高版本中提供) |
呼叫進度提示音的使用者資訊 | 向IOS網關傳送H.225使用者資訊消息以播放回鈴音或保留音(這是預設設定)。 |
呼叫進度音的H225資訊 | 向IOS網關傳送H.225資訊消息以播放回鈴音或保留音 |
調試
debug voip ccapi inout debug h225 asn1
本文也是有關故障排除H.323回鈴的絕佳文檔
http://www.cisco.com/c/en/us/support/docs/voice/h323/22983-ringback.html
SIP回鈴通常涉及兩個消息之一。180和183。 RFC 3261規定,這些1XX消息中的0、1個或多個消息可能在INVITE後接收,因此不接收這些消息之一并不違背RFC。如果沒有收到回鈴訊號,則不會收到回鈴訊號。因此,如果呼叫方希望以某種形式回鈴,則需要180或183。
180和183均可包含CUBE將當作早期介質的會話描述協定(SDP)。當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
不帶SDP的示例180
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個響應提供哪些呼叫處理(早期媒體或本地回鈴),並使用Session Description Protocol(SDP)提供180個響應 |
! 語音服務voip sip 塊{180 | 181 | 183} sdp {存在 |缺席} ! |
阻止與回鈴相關的特定消息 |
將183會話更改為180振鈴的SIP配置檔案。
! 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)。
System Menu Path: Device > Device Settings > Sip Profile > Choose a SIP profile > SIP Rel1XX
選項
在網關上啟用PRACK(rel1xx)
調試
debug voip ccapi inout debug ccsip messages
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配置
系統選單路徑:System > Service Parameters > Pub > CallManager > Disable Alerting Progress Indicator
網關配置
調試
debug mgcp packet
debug voip ccapi nout
debug vpm signal debug voip vtsp session
對於註冊到CUCM或CME的SCCP IP電話,會向IP電話傳送「StartToneMessage」,告知本地電話向呼叫者播放回鈴音。
所有模擬語音埠的回鈴調試:
debug voip ccapi inout debug vpm signal debug voip vtsp session
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
debug ccapi inout、debug vpm signal和debug voip vtsp session for E1 R2呼叫的輸出,顯示回鈴。
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='#'
CVP將通過傳送具有特定號碼的INVITE來向VXML網關發出訊號以播放回鈴。
範例:9191
此INVITE的SDP將是我們希望VXML網關傳送回鈴的位置。
這將與配置了回鈴服務的撥號對等體匹配。
環回直通延遲通常是由基礎信令延遲引起的。需要查詢正在使用的特定裝置和協定的調試和日誌,找出訊號延遲的原因。
由於語音網關在撥號對等體上的信令故障以及撥號對等體重新搜尋會導致相當大的延遲,因為裝置會嘗試為呼叫找到下一跳。
正如您在整個文檔中所看到的,收集ccapi debug對於任何RINGBACK問題都非常重要。
呼叫控制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