本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科可能会在某些地方提供本内容的当地语言翻译版本。请注意,翻译版本仅供参考,如有任何不一致之处,以本内容的英文版本为准。
本檔案介紹Cisco IOS和IOS-XE語音路由器中適用於不同通話流程和版本的RTP來源驗證功能的行為。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
為了能夠充分利用本文檔,瞭解VoIP網路和VoIP信令協定的基礎知識非常重要。
RTP源驗證是Cisco語音路由器中整合的一項功能,允許它們丟棄不受信任的入站RTP流量。
此功能的主要目標是提高裝置的安全級別,同時避免VoIP網路上的CrossTalk問題。
IOS語音路由器具有不同的功能風格,而IOS-XE語音路由器只有一個選項。
在IOS和IOS-XE中,此功能使語音路由器丟棄來自未知IP地址或埠的入站RTP流量,換句話說,來自未通過信令協商的IP地址或埠的資料包將被語音路由器丟棄。
此功能在IOS和IOS-XE中的運作方式略有不同,這是因為路由器的架構以及當路由器被引入到代碼中時;下一節將介紹這些場景。
IOS具有兩種不同的功能。
注意:請注意,以下各節中介紹的場景是Cisco Unified Communications Manager(CUCM)Music on Hold(MoH),但在其他情況下,只要滿足要求,相同的行為就會觸發功能刪除RTP。
此功能僅適用於SIP呼叫流。
配置後,如果呼叫流中使用的信令未協商RTP來自的IP地址和埠,則語音路由器會丟棄這些資料包。
來源驗證會檢查來源IP地址,然後檢查來源連線埠。
voice service voip sip source filter
一個很好的例子是,CUCM將呼叫置於保持狀態,並且預設情況下,CUCM通過信令通告埠4000,但實際上是從臨時埠(32768-61000)流傳輸RTP,因為預設情況下禁用了Clusterwide Parameters下的服務引數Duplex Streaming。
Debug CCSIP Messages在語音路由器上顯示使用會話描述協定(SDP)接收的SIP ACK消息,告知路由器的RTP來自CUCM-IP-Address 和Port 4000。
//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: ACK sip:6002@Router-IP-Address:5060 SIP/2.0 Via: SIP/2.0/UDP CUCM-IP-Address:5060;branch=z9hG4bK4a424fed85 From: <sip:65002@CUCM-IP-Address>;tag=4091~842780d9-7186-4740-ada2-23e5d1b91316-46404063 To: <sip:6002@Router-IP-Address>;tag=2FF652-51D Date: Thu, 18 Apr 2019 19:59:50 GMT Call-ID: 3EDDD9E4-614B11E9-800D9C4B-C5465DB2@Router-IP-Address User-Agent: Cisco-CUCM12.0 Max-Forwards: 70 CSeq: 102 ACK Allow-Events: presence Session-ID: 4978aa3900105000a000006cbcbcfda2;remote=836b14b48c77bfe681c0780c54ab4091 Content-Type: application/sdp Content-Length: 191 v=0 o=CiscoSystemsCCM-SIP 4091 3 IN IP4 CUCM-IP-Address s=SIP Call c=IN IP4 CUCM-IP-Address (MoH Server) t=0 0 m=audio 4000 RTP/AVP 0 a=X-cisco-media:umoh a=ptime:20 a=rtpmap:0 PCMU/8000 a=sendonly
Show Call Active Voice Brief不會顯示RTP來自CUCM-IP-Address 和埠4000的支路上的RX增量。RTP從另一個埠接收並被語音路由器丟棄。
11EC : 3 3143250ms.1 (14:59:02.516 CDT Thu Apr 18 2019) +1960 pid:0 Answer 6002 active dur 00:47:29 tx:2330/391440 rx:64875/10380000 dscp:0 media:0 audio tos:0x0 video tos:0x0 Tele 0/0/0:23 (3) [0/0/0.23] tx:2803960/1263780/0ms g711ulaw noise:-65 acom:3 i/0:-60/-64 dBm 11EC : 4 3143250ms.2 (14:59:02.516 CDT Thu Apr 18 2019) +1950 pid:1 Originate 65002 connected dur 00:47:29 tx:1686/269760 rx:2330/372800 dscp:0 media:0 audio tos:0xB8 video tos:0x0 IP CUCM-IP-Address:4000 SRTP: off rtt:1ms pl:46150/0ms lost:0/0/0 delay:55/55/65ms g711ulaw TextRelay: off Transcoded: No ICE: Off 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
Show VoIP RTP Connections將RmtRTP顯示為4000 ,將RemoteIP顯示為CUCM-IP-Address。
路由器期望RTP來自同一來源。
show voip rtp connections VoIP RTP Port Usage Information: Max Ports Available: 8091, Ports Reserved: 101, Ports in Use: 1 Min Max Ports Ports Ports Media-Address Range Port Port Available Reserved In-use ------------------------------------------------------------------------------ Global Media Pool 16384 32766 8091 101 1 ------------------------------------------------------------------------------ VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP MPSS 1 4 3 16386 4000 Router-IP-Address CUCM-IP-Address NO Found 1 active RTP connections
使用監聽器擷取,可以驗證RTP實際上來自何處,在本範例中,它來自連線埠2458,而不是4000,因此來源驗證失敗,且語音路由器捨棄封包。
此功能在15.5(3)M9、15.6(3)M6 IOS版本中引入。
其工作方式與來源過濾器相同,它首先驗證來源IP位址,然後驗證來源連線埠,但具有兩個主要差異。
注意:此功能預設為啟用,且不會顯示在組態中。如果裝置從不同於通過信令通告的源傳送RTP,則升級到支援此功能的任何IOS版本都可能導致音訊問題。
當在命令前面使用No禁用此功能時,該功能會在配置中顯示。
Configuration Terminal voice rtp source-filter
對於H.323:
在語音路由器上調試H225 Asn1顯示收到的openLogicalChannelAck,它將遠端媒體地址0.0.0.0:0通知路由器。
H245 MSC OUTGOING PDU ::= value MultimediaSystemControlMessage ::= response : openLogicalChannelAck : { forwardLogicalChannelNumber 1 forwardMultiplexAckParameters h2250LogicalChannelAckParameters : { mediaChannel unicastAddress : iPAddress : { network 'Router-IP-Address'H tsapIdentifier 16404 (Router's UDP Port for the RTP) } mediaControlChannel unicastAddress : iPAddress : { network 'Router-IP-Address'H tsapIdentifier 16405 (Router's UDP Port for the RTCP) } flowControlToZero FALSE } }
Received openLogicalChannelAck has network and tsapIdentifier for the mediaChannel in zeros which means IP Address 0.0.0.0 and port 0.
H245 MSC INCOMING PDU ::= value MultimediaSystemControlMessage ::= response : openLogicalChannelAck : { forwardLogicalChannelNumber 2 forwardMultiplexAckParameters h2250LogicalChannelAckParameters : { sessionID 1 mediaChannel unicastAddress : iPAddress : { network '00000000'H tsapIdentifier 0 } mediaControlChannel unicastAddress : iPAddress : { network '00000000'H tsapIdentifier 1 } } }
Show Call Active Voice Brief 不顯示RX增量,且遠端IP地址和埠設定為0.0.0.0:0。
11F5 : 21 18903090ms.1 (16:00:48.794 CDT Fri Apr 19 2019) +1070 pid:2 Answer 6002 active dur 00:00:43 tx:376/63168 rx:899/137074 dscp:0 media:0 audio tos:0x0 video tos:0x0 Tele 0/1/0:23 (21) [0/1/0.1] tx:35340/14230/0ms g711ulaw noise:-68 acom:3 i/0:-64/-63 dBm 11F5 : 22 18903090ms.2 (16:00:48.794 CDT Fri Apr 19 2019) +1070 pid:1 Originate 36004 active dur 00:00:43 tx:152/23047 rx:376/60160 dscp:0 media:0 audio tos:0xB8 video tos:0x0 IP 0.0.0.0:0 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/65/65ms g711ulaw TextRelay: off Transcoded: No ICE: Off 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 LocalUUID: RemoteUUID: VRF:
Show VoIP RTP Connections將RmtRTP和RemoteIP 顯示為0.0.0.0:0,因此路由器期望來自該源的RTP。
VoIP RTP Port Usage Information: Max Ports Available: 8091, Ports Reserved: 101, Ports in Use: 1 Port range not configured Min Max Ports Ports Ports Media-Address Range Port Port Available Reserved In-use ------------------------------------------------------------------------------ Global Media Pool 16384 32766 8091 101 1 ------------------------------------------------------------------------------ VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP MPSS VRF 1 22 21 16404 0 Router-IP-Address 0.0.0.0 NO NA Found 1 active RTP connections
透過監聽器擷取,可以驗證接收RTP的位置。在本範例中,系統從連線埠24608 和CUCM-IP-Address而不是連線埠0和IP位址0.0.0.0接收該封包。
Debug VoIP RTP Error 顯示從CUCM-IP-Address 而不是0.0.0.0接收這些丟棄的資料包的原因,因此它未通過源驗證。
voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address
對於SIP:
Debug CCSIP Messages在語音路由器上顯示SIP ACK消息,該消息通過SDP接收,指示路由器期望從CUCM-IP-Address和Port 4000獲得RTP。
//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: ACK sip:6002@Router-IP-Address:5060 SIP/2.0 Via: SIP/2.0/UDP CUCM-IP-Address:5060;branch=z9hG4bK16712e94eda From: <sip:65002@CUCM-IP-Address>;tag=5931~842780d9-7186-4740-ada2-23e5d1b91316-46404140 To: <sip:6002@10.201.160.54>;tag=FE677E-E12 Date: Fri, 19 Apr 2019 23:53:48 GMT Call-ID: 32798F13-623511E9-805BC9D5-801BF5C7@Router-IP-Address User-Agent: Cisco-CUCM12.0 Max-Forwards: 70 CSeq: 102 ACK Allow-Events: presence Session-ID: 5fdd1bc300105000a000006cbcbcfda2;remote=761410b40eed518a94bd5f7bbccfbe40 Content-Type: application/sdp Content-Length: 191 v=0 o=CiscoSystemsCCM-SIP 5931 3 IN IP4 CUCM-IP-Address s=SIP Call c=IN IP4 CUCM-IP-Address (MoH Server) t=0 0 m=audio 4000 RTP/AVP 0 a=X-cisco-media:umoh a=ptime:20 a=rtpmap:0 PCMU/8000 a=sendonly
Show Call Active Voice Brief不會顯示從CUCM-IP-Address:4000接收RTP的支路上的RX增量。
由於RTP實際上來自另一個埠,因此會將其丟棄。
11F0 : 29 16672630ms.1 (18:53:43.109 CDT Fri Apr 19 2019) +1450 pid:0 Answer 6002 active dur 00:00:07 tx:169/28392 rx:265/42400 dscp:0 media:0 audio tos:0x0 video tos:0x0 Tele 0/0/0:23 (29) [0/0/0.23] tx:4020/4020/0ms g711ulaw noise:-74 acom:3 i/0:-64/-64 dBm 11F0 : 30 16672630ms.2 (18:53:43.109 CDT Fri Apr 19 2019) +1450 pid:1 Originate 65002 connected dur 00:00:07 tx:64/10240 rx:169/27040 dscp:0 media:0 audio tos:0xB8 video tos:0x0 IP CUCM-IP-Address:4000 SRTP: off rtt:0ms pl:3200/0ms lost:0/0/0 delay:0/55/65ms g711ulaw TextRelay: off Transcoded: No ICE: Off 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 LocalUUID:5fdd1bc300105000a000006cbcbcfda2 RemoteUUID:761410b40eed518a94bd5f7bbccfbe40 VRF: NA
Show VoIP RTP Connections將RmtRTP和RemoteIP 顯示為CUCM-IP-Address:4000,路由器期望RTP來自該來源。
show voip rtp connections VoIP RTP Port Usage Information: Max Ports Available: 8091, Ports Reserved: 101, Ports in Use: 1 Port range not configured Min Max Ports Ports Ports Media-Address Range Port Port Available Reserved In-use ------------------------------------------------------------------------------ Global Media Pool 16384 32766 8091 101 1 ------------------------------------------------------------------------------ VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP MPSS VRF 1 30 29 16430 4000 Router-IP-Address CUCM-IP-Address NO NA Found 1 active RTP connections
使用監聽器擷取,可以驗證RTP實際上來自何處,在本範例中,它來自連線埠24634和CUCM-IP-Address,而不是CUCM-IP-Address:4000。
Debug VoIP RTP Error 顯示從埠24634而不是埠4000接收這些丟棄資料包的原因,因此它未通過源驗證。
voip_rtp_recv_fs_input:ERROR Port validation failed, dropping RTP packet. Expected port: 4000, Received port: 24634 voip_rtp_recv_fs_input:ERROR Port validation failed, dropping RTP packet. Expected port: 4000, Received port: 24634 voip_rtp_recv_fs_input:ERROR Port validation failed, dropping RTP packet. Expected port: 4000, Received port: 24634 voip_rtp_recv_fs_input:ERROR Port validation failed, dropping RTP packet. Expected port: 4000, Received port: 24634
對於MGCP:
Debug MGCP Packets(調試MGCP資料包)顯示呼叫最初協商介質的時間,然後是呼叫被置於保持狀態的時間。
When the call initially connects, it negotiates the media capabilities through SDP.
MGCP Packet received from CUCM-IP-Address:2427---> MDCX 1324 S0/SU1/DS1-1/23@3945-A.luirami2.lab MGCP 0.1 C: D000000002c4139b000000F500000008 I: 10 X: 17 L: p:20, a:PCMU, s:off, t:b8 M: sendrecv R: D/[0-9ABCD*#] S: Q: process,loop v=0 o=- 16 0 IN EPN S0/SU1/DS1-1/23@3945-A.luirami2.lab s=Cisco SDP 0 t=0 0 m=audio 23248 RTP/AVP 0 c=IN IP4 IP-Phone-IP-Address <--- MGCP Packet sent to CUCM-IP-Address:2427---> 200 1324 OK <---
Then when it is placed on hold, CUCM only changes the direction of the media.
MGCP Packet received from CUCM-IP-Address:2427---> MDCX 1325 S0/SU1/DS1-1/23@3945-A.luirami2.lab MGCP 0.1 C: D000000002c4139b000000F500000008 I: 10 X: 17 M: recvonly R: D/[0-9ABCD*#] Q: process,loop <--- MGCP Packet sent to CUCM-IP-Address:2427---> 200 1325 OK <---
Show Call Active Voice Brief不會顯示RTP來自IP-Phone-IP-Address:23248的支路上的RX增量。
因為RTP實際上來自另一個IP地址,所以它被丟棄。
11FD : 38 31140580ms.1 (19:24:46.254 CDT Fri Apr 19 2019) +0 pid:0 Originate connecting dur 00:00:36 tx:289/46240 rx:272/43520 dscp:0 media:0 audio tos:0xB8 video tos:0x0 IP IP-Phone-IP-Address:23248 SRTP: off rtt:1ms pl:5440/70ms lost:0/0/0 delay:0/55/65ms g711ulaw TextRelay: off Transcoded: No ICE: Off 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 LocalUUID: RemoteUUID: VRF: 11FD : 37 31140580ms.2 (19:24:46.252 CDT Fri Apr 19 2019) +0 pid:0 Originate active dur 00:00:36 tx:272/45696 rx:1832/293120 dscp:0 media:0 audio tos:0x0 video tos:0x0 Tele 0/1/1:23 (37) [0/1/1.23] tx:36630/36630/0ms g711ulaw noise:-68 acom:6 i/0:-65/-60 dBm
Show VoIP RTP Connections將RmtRTP和RemoteIP 顯示為IP-Phone-IP-Address:23248,路由器希望RTP來自該來源。
show voip rtp connections VoIP RTP Port Usage Information: Max Ports Available: 8091, Ports Reserved: 101, Ports in Use: 1 Port range not configured Min Max Ports Ports Ports Media-Address Range Port Port Available Reserved In-use ------------------------------------------------------------------------------ Global Media Pool 16384 32766 8091 101 1 ------------------------------------------------------------------------------ VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP MPSS VRF 1 38 37 16420 23248 Router-IP-Address IP-Phone-IP-Address NO NA Found 1 active RTP connections
使用監聽器擷取,可以驗證RTP實際上來自何處,在本範例中,它來自連線埠24612和CUCM-IP-Address,而不是IP-Phone-IP-Address:23248。
Debug VoIP RTP Error 顯示從CUCM-IP-Address(而不是IP-Phone-IP-Address)接收這些丟棄的資料包的原因,因此它無法通過源驗證。
voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: IP-Phone-IP-Address, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: IP-Phone-IP-Address, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: IP-Phone-IP-Address, Received addr: CUCM-IP-Address voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: IP-Phone-IP-Address, Received addr: CUCM-IP-Address
對於SCCP:
Debug SCCP Messages顯示呼叫被置於保持狀態的時間。
CUCM首先指示語音路由器使用CloseReceiveChannel和StopMediaTransmission切換到inactive介質。
SCCP:rcvd CloseReceiveChannel CloseReceiveChannelMsg Info: conference_id = 33554439, pass_through_party_id = 33554541, call_ref = 46404215, port_handling = 0 SCCP:rcvd StopMediaTransmission StopMediaTransmissionMsg Info: conference_id = 33554439, pass_through_party_id = 33554541, call_ref = 46404215, port_handling = 0
然後CUCM指示語音路由器使用OpenReceiveChannel切換。
SCCP:rcvd OpenReceiveChannel OpenReceiveChannelMsg Info: conference_id = 33554439, pass_through_party_id = 33554542 msec_pkt_size = 20, compression_type = 4 qualifier_in.ecvalue = 0, g723_bitrate = 0, call_ref = 46404215 stream_pass_through_id = 16777216, rfc2833_payload_type = 0 codec_dynamic_payload = 0, codec_mode = 0 Encryption Info :: algorithm_id 0, key_len 0, salt_len 0 requestedAddrType = 0, source_ip_addr.ipAddrType = 0, source_ip_addr = CUCM-IP-Address, source_port_number = 4000, audio_level_adjustment = 0 SCCP:send OpenReceiveChannelAck OpenReceiveChannelAck Info: pass_through_party_id=33554542, status=0(ok), host_ip_addr= Router-IP-Address, port=16390
Show SCCP Connections顯示ripaddr和rportas 0.0.0.0:0;路由器期望RTP來自該源。
show sccp connections sess_id conn_id stype mode codec sport rport ripaddr conn_id_tx 33554439 33554542 mtp recvonly g711u 16390 0 0.0.0.0 33554439 33554540 mtp sendrecv g711u 16386 16384 10.201.160.54 Total number of active session(s) 1, and connection(s) 2
Debug VoIP RTP Error 顯示從CUCM-IP-Address(而不是0.0.0.0)接收這些丟棄的資料包的原因,因此它未通過源驗證。
000147: Apr 24 11:49:22.499: voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address 000148: Apr 24 11:49:22.519: voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address 000149: Apr 24 11:49:22.539: voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address 000150: Apr 24 11:49:22.559: voip_rtp_recv_fs_input:ERROR IP address validation failed, dropping packet. Expected addr: 0.0.0.0, Received addr: CUCM-IP-Address
在IOS-XE中需要強調的最重要內容是。
對於H.323:
使用此協定時,MoH的RTP不起作用,因為CUCM總是傳送帶有IP地址和埠設定為零的openLogicalChannelAck消息,它會禁用介質。
H245 MSC INCOMING PDU ::= value MultimediaSystemControlMessage ::= response : openLogicalChannelAck : { forwardLogicalChannelNumber 6 forwardMultiplexAckParameters h2250LogicalChannelAckParameters : { sessionID 1 mediaChannel unicastAddress : iPAddress : { network '00000000'H tsapIdentifier 0 } mediaControlChannel unicastAddress : iPAddress : { network '00000000'H tsapIdentifier 1
使用Show Call Active Voice Brief 檢查如何停止RX增量值,以及遠端介質地址為IP 0.0.0.0:0可以檢驗相同的情況。
11F3 : 17 8703830ms.1 (13:00:22.060 CDT Tue Apr 23 2019) +2150 pid:2 Answer 6002 active dur 00:15:22 tx:19014/9213600 rx:1/3836010 dscp:0 media:0 audio tos:0x0 video tos:0x0 Tele 0/1/1:23 (17) [0/1/1.23] tx:158740/106870/0ms g711ulaw noise:-68 acom:22 i/0:-57/-61 dBm 11F3 : 18 8703830ms.2 (13:00:22.060 CDT Tue Apr 23 2019) +2150 pid:1 Originate 55002 active dur 00:15:22 tx:19709/3836010 rx:46068/9213600 dscp:0 media:0 audio tos:0xB8 video tos:0x0 IP 0.0.0.0:0 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No ICE: Off 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不會遞增,除非在語音服務VoIP下配置了Media Bulk-Stats命令,但請注意,此命令可能會影響路由器的效能,因此建議僅在進行故障排除時啟用此命令,並在之後將其禁用。
Debug Voip FPI Inout不顯示Network Address Translation(NAT)Flag在此處啟用,因為使用openLogicalChannelAck禁用了媒體,可以使用消息side:SIDE_A, rtp_type:0:檢查禁用了媒體。
//18/7F507F32800A/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:0: send:0 recv:0 //18/7F507F32800A/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: destAddr == 0, rcv and send both set to FALSE
show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets:顯示一個表,其中包含所有丟棄的包,其中入口流接收被禁用的資料包在呼叫保持期間遞增。
show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets: Total packets dropped = 138512 Dropped packets: No associated flow = 0 Wrong source for flow = 0 Ingress flow receive disabled = 138512 Egress flow send disabled = 0 Not conforming to flowspec = 0
對於SIP
使用SIP時,CUCM會在SDP中將CUCM-IP-Address、Port 4000和方向媒體屬性傳送為a=sendonly,這指示路由器只接收RTP。
v=0 o=CiscoSystemsCCM-SIP 72019 3 IN IP4 CUCM-IP-Address s=SIP Call c=IN IP4 CUCM-IP-Address (MoH Server) t=0 0 m=audio 4000 RTP/AVP 0 a=X-cisco-media:umoh a=ptime:20 a=rtpmap:0 PCMU/8000 a=sendonly
a=sendonly將媒體方向設定為語音路由器視角的recvonly,這將觸發NAT標誌功能,該功能仍然允許RTP通過,即使它來自其他源。
這可透過Debug VoIP FPI Inout檢查。
//25/3EAF69800000/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:2:RECVONLY send:0 recv:2 //25/3EAF69800000/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: recvonly mode - setting NAT flag
如果發生這種情況,向語音路由器傳送了不同的媒體方向屬性,將不會啟用NAT標誌功能,並且資料包將被丟棄,因為它們來自不同的源。
Debug CCSIP Messages顯示在此示例a=sendrecv中。
v=0 o=CiscoSystemsCCM-SIP 72019 3 IN IP4 CUCM-IP-Address s=SIP Call c=IN IP4 CUCM-IP-Address (MoH Server) t=0 0 m=audio 4000 RTP/AVP 0 a=X-cisco-media:umoh a=ptime:20 a=rtpmap:0 PCMU/8000 a=sendrecv
Debug VoIP FPI Inout顯示媒體方向已設置為rtp_type:3:SENDRECV,且無NAT標誌功能。
//27/F56119000000/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:3:SENDRECV send:1 recv:2
由於沒有NAT標誌,show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets:顯示Wrong source for flow部分中的增量數量。
4351-A#show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets: Total packets dropped = 33496 Dropped packets: No associated flow = 0 Wrong source for flow = 33196 Ingress flow receive disabled = 0 Egress flow send disabled = 0 Not conforming to flowspec = 0
對於MGCP:
使用MGCP時,CUCM會傳送一個MDCX,以便更改呼叫最初連線時已經協商的媒體方向,因此IP地址或信令沒有更改,但在MDCX之後,RTP現在會從另一個源進行流式傳輸。
自M:recvonly被傳送到語音路由器,NAT標誌功能被啟用。
MGCP Packet received from CUCM-IP-Address:2427---> MDCX 1529 S0/SU1/DS1-1/23@4351-A.luirami2.lab MGCP 0.1 C: D000000002c4151d000000F50000000a I: B X: 17 M: recvonly R: D/[0-9ABCD*#] Q: process,loop <---
Debug VoIP FPI Inout顯示媒體方向設定為rtp_type:2:RECVONLY和NAT標誌功能,允許RTP通過。
//30/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:2:RECVONLY send:0 recv:2 //30/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: recvonly mode - setting NAT flag
如果發生這種情況,向語音路由器傳送了不同的媒體方向屬性,將不會啟用NAT標誌功能,並且資料包將被丟棄,因為它們來自不同的源。
Debug MGCP Packets顯示在此範例M中:sendrecv。
MGCP Packet received from CUCM-IP-Address:2427---> MDCX 1530 S0/SU1/DS1-1/23@4351-A.luirami2.lab MGCP 0.1 C: D000000002c4151d000000F50000000a I: B X: 17
M: sendrecv R: D/[0-9ABCD*#] Q: process,loop <---
Debug VoIP FPI Inout顯示媒體方向已設置為rtp_type:3:SENDRECV,且無NAT標誌功能。
//29/F56119000000/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:3:SENDRECV send:1 recv:2
由於沒有NAT標誌,show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets:顯示Wrong source for flow部分中的增量數量。
show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets: Total packets dropped = 33596 Dropped packets: No associated flow = 0 Wrong source for flow = 33296 Ingress flow receive disabled = 0 Egress flow send disabled = 0 Not conforming to flowspec = 0
對於SCCP:
Debug SCCP Messages顯示呼叫被置於保持狀態的時間。
CUCM首先指示語音路由器使用CloseReceiveChannel和StopMediaTransmission切換到非活動媒體。
SCCP:rcvd CloseReceiveChannel
CloseReceiveChannelMsg Info:
conference_id = 33554436, pass_through_party_id = 33554500, call_ref = 46405010, port_handling = 0
SCCP:rcvd StopMediaTransmission
StopMediaTransmissionMsg Info:
conference_id = 33554436, pass_through_party_id = 33554500, call_ref = 46405010, port_handling = 0
然後CUCM指示語音路由器使用OpenReceiveChannel進行恢復。
SCCP:rcvd OpenReceiveChannel
OpenReceiveChannelMsg Info:
conference_id = 33554436, pass_through_party_id = 33554501
msec_pkt_size = 20, compression_type = 4
qualifier_in.ecvalue = 0, g723_bitrate = 0, call_ref = 46405010
stream_pass_through_id = 16777216, rfc2833_payload_type = 0
codec_dynamic_payload = 0, codec_mode = 0
Encryption Info :: algorithm_id 0, key_len 0, salt_len 0
requestedAddrType = 0, source_ip_addr.ipAddrType = 0, source_ip_addr = CUCM-IP-Address, source_port_number = 4000,
audio_level_adjustment = 0
SCCP:send OpenReceiveChannelAck
OpenReceiveChannelAck Info:
pass_through_party_id=33554501, status=0(ok), host_ip_addr= Router-IP-Address, port=8028
Show SCCP Connections顯示ripaddr和rportas 0.0.0.0:0;路由器期望RTP來自該源。
show sccp connections sess_id conn_id stype mode codec sport rport ripaddr conn_id_tx 33554436 33554501 mtp recvonly g711u 8028 0 0.0.0.0 33554436 33554499 mtp sendrecv g711u 8022 8024 Router-IP-Address Total number of active session(s) 1, and connection(s) 2
Debug VoIP FPI Inout顯示媒體方向設定為rtp_type:2:RECVONLY和NAT標誌功能,允許RTP通過。
//18/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:1:SENDONLY send:1 recv:0
//15/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_B, rtp_type:3:SENDRECV send:1 recv:2
//19/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_A, rtp_type:2:RECVONLY send:0 recv:2
//19/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: recvonly mode - setting NAT flag
//15/xxxxxxxxxxxx/VOIPFPI:():voip_fpi_get_snd_rcv_enable_flag: side:SIDE_B, rtp_type:3:SENDRECV send:1 recv:2
提示:OpenReceiveChannel消息用於指示語音路由器接收RTP,而語音路由器通過OpenReceiveChannelAck通知CUCM要接收該媒體的位置。
StartMediaTransmission消息用於指示語音路由器將RTP傳送到指定的目標。
換句話說,如果只交換OpenReceiveChannel,是一種告知媒體資源它只接收RTP(recvonly)的方式,如果只交換StartMediaTransmission,是一種告知媒體資源它只傳送RTP(sendonly)的方式,但如果兩者都交換,則等於sendrecv。
如果媒體方向設定為sendonly或sendrecv,並且RTP來自其他源,則不啟用NAT標誌,並且show platform hardware qfp active feature sbc global | s Total packets dropped|Dropped packets:顯示packets dropped。
提示:如果需要允許來自不同地址的RTP,而不是通過信令協商的地址,且無法使用recvonly,則可以使用voice Service Voip下的nat force-on、Sip來新增手動期望。以前不能正常工作,但已修復缺陷 CSCvo15141 .請記住,這僅適用於SIP。
警告:如果在語音服務voip下配置sip,則傳遞內容sdp,這將不允許在收到recvonly時FPI層啟用NAT標誌功能。
提示:某些情況下,如果呼叫和音訊的NAT標誌處於活動狀態,則在show platform hardware qfp active feature sbc global下丟棄資料包值 |s丟棄的資料包總數|丟棄的資料包:仍然能夠以低得多的速率增加,這是因為在某些情況和呼叫流程中,即時控制協定(RTCP)仍可傳送到語音路由器並從其他源傳送,這將導致此行為。