목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

RTP 소스 검증 정의 및 사용

IOS Voice Router의 RTP 소스 검증

소스 필터

구성

동작 및 탐지

음성 RTP 소스 필터

구성

프로토콜별 동작 및 탐지

IOS-XE Voice Router의 RTP 소스 검증

프로토콜별 동작 및 탐지

소개

이 문서에서는 서로 다른 통화 흐름 및 버전에 대해 Cisco IOS 및 IOS-XE Voice Router에서 RTP 소스 검증 기능의 동작을 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- IOS 및 IOS-XE Software

- H.323

- SIP(Session Initiation Protocol)

- MGCP(Media Gateway Control Protocol)

- SCCP(Skinny Call Control Protocol)

- 실시간 전송 프로토콜(RTP)

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- ISRG2 라우터(ISR2900, ISR3900)

- ISRG3 라우터(ISR4400 및 ISR4300)

- ASR 라우터(ASR1001-X, ASR1002-X, ASR1004, ASR1006 및 ASR1006-X with RP2 및 ESP40)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.

배경 정보

이 문서를 최대한 활용하려면 VoIP Networks 및 VoIP Signaling Protocols의 기본 사항을 이해하는 것이 중요합니다.

RTP 소스 검증 정의 및 사용

RTP 소스 검증은 Cisco Voice Router에 통합된 기능으로 신뢰할 수 없는 인바운드 RTP 트래픽을 삭제할 수 있습니다.

이 기능의 주요 목표는 디바이스에서 더 높은 보안 수준을 확보하고 VoIP 네트워크에서 CrossTalk 문제를 방지하는 것입니다.

IOS Voice Router에는 이 기능의 여러 가지 유형이 있으며 IOS-XE Voice Router에는 하나의 옵션이 있습니다.

IOS 및 IOS-XE에서 이 기능을 사용하면 음성 라우터가 알 수 없는 IP 주소 또는 포트에서 인바운드 RTP 트래픽을 삭제합니다. 즉, 신호를 통해 협상되지 않은 IP 주소 또는 포트에서 수신한 패킷은 음성 라우터에서 삭제됩니다.

이 기능이 IOS 및 IOS-XE에서 작동하는 방식은 라우터의 아키텍처와 코드에 도입된 시점으로 인해 약간 다릅니다.다음 섹션에서는 이러한 시나리오에 대해 설명합니다.

IOS Voice Router의 RTP 소스 검증

IOS는 이 기능의 두 가지 유형을 가집니다.

- 12.4(6)T에서 도입된 소스 필터

- 15.5(3)M9, 15.6(3)M6 및 이후 버전에서 도입된 음성 RTP 소스 필터

주의:다음 섹션에서 다루는 시나리오는 Cisco CUCM(Unified Communications Manager) Music on Hold(MoH)에 있지만, 요구 사항이 충족되는 한 동일한 동작으로 인해 기능이 RTP를 삭제하도록 트리거되는 다른 상황이 있습니다.

소스 필터

이 기능은 SIP 통화 흐름에만 사용할 수 있습니다.

구성된 경우 통화 흐름에 사용된 신호 처리가 RTP가 시작되는 IP 주소 및 포트를 협상하지 않은 경우 음성 라우터는 해당 패킷을 버립니다.

Source Validation(소스 검증)은 소스 IP 주소와 소스 포트를 확인합니다.

구성

voice service voip

sip

source filter

동작 및 탐지

예를 들어 CUCM이 통화를 보류하고 기본적으로 CUCM이 신호를 통해 포트 4000을 알릴 때는 신호처리를 통해 RTP를 알리고 실제로는 Clusterwide Parameters(클러스터 wide 매개변수)에서 Service Parameter Duplex Streaming Enabled( 32768-610000000000)에서 RTP를 스트리밍하는가 비활성화하는 좋은 경우가 있습니다.

Debug CCSIP Messages(디버그 CCSIP 메시지)는 음성 라우터에 SDP(Session Description Protocol)와 함께 수신된 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(VoIP RTP 연결 표시)는 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가 실제로 어디에서 오는지 확인할 수 있습니다. 이 예에서는 4000 대신 포트 24588에서 오므로 소스 검증이 실패하여 음성 라우터가 패킷을 삭제합니다.

음성 RTP 소스 필터

이 기능은 15.5(3)M9, 15.6(3)M6 IOS 버전에서 도입되었습니다.

소스 필터와 동일한 방식으로 작동하며 먼저 소스 IP 주소를 검증한 다음 소스 포트를 검증하지만 두 가지 주요 차이점이 있습니다.

1. 음성 RTP 소스 필터는 SIP, H.323, MGCP 및 SCCP에 작동합니다.

2. 이 기능은 소스 유효성 검사 실패로 인해 RTP가 삭제되는 시기를 쉽게 탐지하기 위해 디버그 VoIP RTP 오류에 오류 메시지를 추가했습니다.

주의:이 기능은 기본적으로 활성화되며 컨피그레이션에 나타나지 않습니다.이 기능을 지원하는 모든 IOS 릴리스로 업그레이드하면 신호처리 대신 다른 소스에서 RTP를 전송하는 디바이스가 있는 경우 오디오 문제가 발생할 수 있습니다.

명령 앞에 No가 표시되어 이 기능을 비활성화하면 컨피그레이션에 표시됩니다.

구성

Configuration Terminal

voice rtp source-filter

프로토콜별 동작 및 탐지

H.323의 경우:

음성 라우터의 디버그 H225 ASN1은 라우터에 원격 미디어 주소 0.0.0.0:0에 대해 알리는 openLogicalChannelAck 수신을 표시합니다.

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 증분이 표시되지 않으며 Remote IP Address and Port(원격 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(VoIP 연결 표시)는 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가 수신되는 위치를 확인할 수 있습니다.이 예에서는 Port 0 및 IP Address 0.0.0.0 대신 포트 24608 및 CUCM-IP-Address에서 수신됩니다.

Debug VoIP RTP Error(디버그 VoIP RTP 오류는 0.0.0이 아닌 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

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(디버그 CCSIP 메시지)는 음성 라우터에 SDP와 함께 수신되는 SIP ACK 메시지를 표시하며, 이 메시지는 라우터가 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:400으로 표시합니다. 라우터는 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가 실제로 어디에서 오는지 확인할 수 있습니다. 이 예에서는 CUCM-IP-Address:4000 대신 포트 24634 및 CUCM-IP-Address에서 오는지 확인할 수 있습니다.

Debug VoIP RTP Error(디버그 VoIP RTP 오류는 포트 4000 대신 포트 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

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(통화 활성 음성 개요 표시)는 IP-Phone-IP-Address:23248에서 RTP가 오길 예상하는 레그의 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가 실제로 어디에서 오는지 확인할 수 있습니다. 이 예에서는 IP-Phone-IP-Address:23248 대신 포트 24612 및 CUCM-IP-Address에서 오는지 확인할 수 있습니다.

Debug VoIP RTP Error(디버그 VoIP RTP 오류는 IP-Phone-IP-Address 대신 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

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(디버그 SCCP 메시지)는 통화가 보류된 시점을 표시합니다.

CUCM은 먼저 음성 라우터가 CloseReceiveChannel 및 StopMediaTransmission을 사용하여 비활성 미디어로 전환하도록 지시합니다.

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을 사용하여 recvonly로 전환하도록 지시합니다.

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(SCCP 연결 표시)는 0.0.0.0:0으로 ripadr 및 rportas: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(디버그 VoIP RTP 오류는 0.0.0이 아닌 CUCM-IP-Address에서 수신한 삭제된 패킷의 이유를 보여주므로 소스 검증이 실패합니다.

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 Voice Router의 RTP 소스 검증

IOS-XE에서 가장 중요한 점은 다음과 같습니다.

1. 구성할 수 없습니다.

2. 기본적으로 활성화되어 있습니다.

3. 비활성화할 수 없음

4. VoIP 신호 처리의 미디어 방향은 알 수 없는 소스에서 RTP를 흐름을 허용하는 유일한 예외입니다

프로토콜별 동작 및 탐지

H.323의 경우:

이 프로토콜을 사용하면 CUCM이 항상 openLogicalChannelAck 메시지를 IP 주소 및 포트가 0으로 설정되어 미디어를 비활성화하므로 MoH의 RTP가 작동하지 않습니다.

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

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

경고:RX 및 TX는 Media Bulk-Stats 명령이 Voice Service VoIP에서 구성되지 않는 한 IOS-XE 플랫폼에서 증가하지 않지만 이 명령은 라우터의 성능에 영향을 줄 수 있으므로 문제 해결 시에만 활성화한 후 비활성화하는 것이 좋습니다.

Debug Voip FPI Inout은 미디어가 openLogicalChannelAck에서 비활성화되었으므로 여기에 활성화된 NAT(Network Address Translation) 플래그를 표시하지 않습니다. 비활성화된 미디어는 메시지 측면: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 기능 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 및 direction에 대한 미디어 속성을 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로 설정하며, 이렇게 하면 다른 소스에서 오는 경우에도 RTP가 통과하도록 허용하는 NAT 플래그 기능이 트리거됩니다.

이는 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 플래그 기능이 활성화되지 않고 패킷이 다른 소스에서 오므로 삭제됩니다.

디버그 CCSIP 메시지는 이 예에서 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가 다른 소스에서 스트리밍됩니다.

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 플래그 기능이 활성화되지 않고 패킷이 다른 소스에서 오므로 삭제됩니다.

디버그 MGCP 패킷은 다음 예에서 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(디버그 SCCP 메시지)는 통화가 보류된 시점을 표시합니다.

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(SCCP 연결 표시)는 0.0.0.0:0으로 ripadr 및 rportas: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 삭제된 총 패킷 수|삭제된 패킷: 삭제된 패킷을 표시합니다.

팁:신호 처리를 통해 협상된 주소와 다른 주소에서 제공된 RTP를 허용해야 하는 경우, Voice Service Voip에서 nat force-on을 사용할 수 없는 경우 Sip를 사용하여 수동 삭제를 추가할 수 있습니다.이전에 제대로 작동하지 않았지만 결함이 수정되었습니다. CSCvo15141 .이 기능은 SIP에서만 작동합니다.

경고: 음성 서비스 voip 아래 pass-thru 콘텐츠 sdp가 구성된 경우, FPI 레이어가 recvonly를 수신할 때 NAT 플래그 기능을 활성화할 수 없습니다.

팁:NAT 플래그가 통화에 대해 활성 상태이고 오디오가 제대로 작동하는 일부의 경우 show platform hardware qfp active feature sbc global에서 삭제된 패킷 값 | s 삭제된 총 패킷 수|삭제된 패킷 수:여전히 훨씬 더 낮은 속도로 증가할 수 있습니다. 이는 일부 상황과 통화 흐름에서 RTCP(Real Time Control Protocol)를 음성 라우터와 다른 소스로 전송할 수 있기 때문입니다.