Table Of Contents
Symmetrical RTP Support for MGCP-Based Calls
First Published: November 17, 2006Last Updated: November 17, 2006
The Symmetrical RTP Support for MGCP-Based Calls feature allows calls to flow through Network Address Translation (NAT) networks unaware of voice signaling. Determination of the IP address to send Media Gateway Control Protocol (MGCP) voice media is made from incoming Real-time Transport Protocol (RTP) media instead of the information provided in the Session Description Protocol (SDP).
Finding Feature Information in This Module
Your Cisco IOS software release may not support all of the features documented in this module. To reach links to specific feature documentation in this module and to see a list of the releases in which each feature is supported, use the "Information About Symmetrical RTP Support for MGCP-Based Calls" section.
Finding Support Information for Platforms and Cisco IOS and Catalyst OS Software Images
Use Cisco Feature Navigator to find information about platform support and Cisco IOS and Catalyst OS software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Prerequisites for Symmetrical RTP Support for MGCP-Based Calls
•MGCP must be configured.
Restrictions for Symmetrical RTP Support for MGCP-Based Calls
•Network Address Translation (NAT) traversal for MGCP and SIP signaling is not supported.
Information About Symmetrical RTP Support for MGCP-Based Calls
Typically a Connection-Oriented Media (comedia) enabled customer-premises equipment such as a SIP or MGCP phone would indicate it is attached to an inside NAT interface by adding the direction attribute to its sdp (a=direction:active). A MGCP gateway running an outside NAT interface parses the direction attribute. The presence of active in the direction attribute would trigger the gateway to enable source address and port detection and use the detected address and port to send rtp/rtcp media and respond with the direction attribute set to passive.
When the MGCP gateway is configured with inside NAT interfaces, the gateway adds the direction attribute to its sdp (a=direction:active) and sends the first RTP packet as soon and possible.
To configure the symmetrical RTP support for MGCP-based MGCP-based calls, you should understand the following concepts.
Benefits of Symmetrical RTP Support for MGCP-Based Calls
•Ability to check the media source address and port of incoming RTP packets, thereby enabling the remote address and port of the existing session to be updated.
•Enhanced interoperability in networks where NAT devices are unaware of MGCP or SDP signaling.
•Ability to advertise endpoint presence inside or outside NAT.
•Ability to specify the connection role of the endpoint.
Symmetrical NAT Traversal for MGCP Signaling
The Symmetrical RTP Support for MGCP-Based Calls feature provides the following functionality to symmetrical NAT traversal:
•Allows the Cisco gateway to check the media source of incoming (RTP) packets.
•Allows the endpoint to advertise its presence inside or outside of NAT.
NAT, which maps the source IP address of a packet from one IP address to a different IP address, has varying functionality and configurations. NAT can help conserve IP version 4 (IPv4) addresses, or it can be used for security purposes to hide the IP address and LAN structure behind the NAT. VoIP endpoints may both be outside NAT, both inside, or one inside and the other outside.
In symmetrical NAT, all requests from an internal IP address and port to a specific destination IP address and port are mapped to the same external IP address and port. The new feature provides additional capabilities for symmetrical NAT traversal.
Prior to the implementation of the Symmetrical RTP Support for MGCP-Based Calls feature, NAT traversal presented challenges for signaling the protocol messages that set up a call, and for RTP, the media stream that transports the audio portion of a VoIP call. With the feature, NAT traversal for the RTP media is solved, but NAT traversal of MGCP protocol messages is left to the network provider to resolve. An endpoint with connections to clients behind NATs and on the open Internet had no way of knowing when to trust the addressing information it received in the SDP portion of MGCP messages, or whether to wait until it received a packet directly from the client before opening a channel back to the source IP: port of that packet. Once a VoIP session was established, the endpoint was, in some scenarios, sending packets to an unreachable address. This scenario typically occurred in NAT networks that were VOIP signaling unaware.
In addition to the challenges posed by NAT traversal in MGCP, NAT traversal in RTP requires a client must what type of NAT it sits behind, and that it must also obtain the public address for an RTP stream. Any RTP connection between endpoints outside and inside NAT must be established as a point-to-point connection. The external endpoint must wait until it receives a packet from the client so that it knows where to reply. The connection-oriented protocol used to describe this type of session is known as Connection-Oriented Media (Comedia), as defined in the IETF draft, draft-ietf-mmusic-sdp-comedia-04.txt, Connection-Oriented Media Transport in SDP.
The Symmetrical RTP Support for MGCP-Based Calls feature implements one of many possible MGCP solutions to address problems with different NAT types and traversals. With the new feature configured the gateway can open an RTP session with the remote end and then update or modify the existing RTP session remote address and port (raddr:rport) with the source address and port of the actual media packet received after passing through NAT. The new feature allows you to configure the gateway to modify the RTP session remote address and port by implementing support for the SDP direction (a=direction:<role>) attribute defined in, Connection-Oriented Media Transport in SDP. Supported values for the attribute are as follows:
•active—which indicates that the endpoint initiates a connection to the port number on the m= line of the session description from the other endpoint.
•passive—which indicates that the endpoint accepts a connection.
•both—which indicates that the endpoint both accepts an incoming connection and initiates an outgoing connection to the port number on the m= line of the session description from the other endpoint.
Note The Cisco comedia implementation does not support a=direction:both. If the Cisco gateway receives a=direction:both in the SDP message, the endpoint is considered active.
Sample MGCP/SDP Message
The following example shows a sample mgcp message for active and passive attributes:CRCX 11 aaln/S2/SU0/0 MGCP 1.0C: 1X: 10M: sendrecvR: L/hdS: L/rgL: a:G.729,p:30,e:on,s:offv=0o=- 5 0 IN IP4 184.108.40.206s=Cisco SDP 0c=IN IP4 220.127.116.11t=0 0m=audio 19054 RTP/AVP 18 99 100a=rtpmap:99 telephone-event/8000a=fmtp:99 0-15a=rtpmap:100 X-NSE/8000a=fmtp:100 192-194,200-202a=direction:activea=X-sqn:0a=X-cap: 1 audio RTP/AVP 100a=X-cpar: a=rtpmap:100 X-NSE/8000a=X-cpar: a=fmtp:100 192-194,200-202a=X-cap: 2 image udptl t38200 11 OKI: 2v=0o=- 2 0 IN IP4 18.104.22.168s=Cisco SDP 0c=IN IP4 22.214.171.124t=0 0m=audio 18320 RTP/AVP 18 99 100a=rtpmap:99 telephone-event/8000a=fmtp:99 0-15a=rtpmap:100 X-NSE/8000a=fmtp:100 192-194,200-202a=direction:passivea=X-sqn:0a=X-cap: 1 audio RTP/AVP 100a=X-cpar: a=rtpmap:100 X-NSE/8000a=X-cpar: a=fmtp:100 192-194,200-202a=X-cap: 2 image udptl t38
Source Address/Port Detection
NAT networks configured to allow MGCP signaling to pass from the public to CPE direction can use this feature to determine media source address and port of the CPE device behind a NAT and establish voice media through the NAT.
How to Enable Symmetrical RTP Support for MGCP-Based Calls
The specific capability is to determine the RTP address and port to send the media portion of a call based on snooping the media that has been sent to the Gateway. The feature is configured in MGCP via a set of behavior CLI that allow MGCP media to transit several different types of NAT that are not MGCP aware.
This section describes the following tasks:
Enable IP Address and Port Detection for the MGCP Gateway
To globally enable ip address and port detection on an MGCP gateway, perform the following steps:
2. configure terminal
3. mgcp behavior comedia-check-media-src [enable | disable]
The following example shows media ip address and port detection being enabled the entire MGCP gateway:Router# conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)# mgcp behavior comedia-check-media-src enableRouter(config)# exit
Indicating the Location of the MGCP Gateway
To indicate the location of the MGCP gateway perform the following steps.
2. configure terminal
3. mgcp behavior comedia-role [active | passive | none]
The following example shows a symmetrical RTP configuration for an MGCP gateway located outside the NAT:Router# conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)# mgcp behavior comedia-role passiveRouter(config)# exit
Forcing the Direction Attribute in the Session Description Protocol (SDP)
To force the MGCP gateway to include the direction attribute in the SDP, perform the following steps; Otherwise, the gateway will employ internal logic to determine if it should include the attribute for interoperability reasons.
2. configure terminal
3. mgcp behavior comedia-sdp-force [enable | disable]
The following example forces the MGCP gateway to place the direction attribute in the SDP:Router# conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)# mgcp behavior comedia-sdp-force enableRouter(config)# exit
•Use the show mgcp command to verify feature configuration.
The following sample output displays the status of media source checking and the gateway role.Router# show mgcpMGCP Admin State ACTIVE, Oper State ACTIVE - Cause Code NONEMGCP call-agent: 126.96.36.199 2497 Initial protocol service is MGCP 1.0...MGCP Dynamic payload type for NTE is 99MGCP rsip-range is enabled for TGCP only.MGCP Comedia role is PASSIVEMGCP Comedia check media source is ENABLEDMGCP Comedia sdp force is DISABLEDMGCP Guaranteed scheduler time is DISABLEDMGCP DNS stale threshold is 30 seconds...
•debug mgcp media—shows address and port detection. Used to determine if source address and port has been detected for the call.
•debug mgcp packet—shows MPCP messages and SDP contents. Used to see remote SDP and local SDP. Verify the direction attribute in each.
•Make a call in the NAT network, one in the CPE to Public direction and one in the Public to CPE direction. Verify two-way voice is heard in both scenarios. Alternately, verify SDP direction attribute and source port/address dection using MGCP debugs.
Configuration Examples for Symmetrical RTP Support for MGCP-Based Calls
This section provides the following configuration examples:
Enabling IP Address and Port Detection for the MGCP Gateway: Example
The following is sample output of enabling port and address detection on a gateway outside the NAT (passive).Router# show mgcpMGCP Admin State ACTIVE, Oper State ACTIVE - Cause Code NONEMGCP call-agent: none Initial protocol service is MGCP 0.1MGCP validate call-agent source-ipaddr DISABLEDMGCP validate domain name DISABLEDMGCP block-newcalls DISABLEDMGCP send SGCP RSIP: forced/restart/graceful/disconnected DISABLEDMGCP quarantine mode discard/stepMGCP quarantine of persistent events is ENABLEDMGCP dtmf-relay for VoIP is SDP controlledMGCP dtmf-relay for voAAL2 is SDP controlledMGCP voip modem passthrough disabledMGCP voaal2 modem passthrough disabledMGCP voip modem relay: DisabledMGCP T.38 Named Signalling Event (NSE) response timer: 200MGCP Network (IP/AAL2) Continuity Test timer: 200MGCP 'RTP stream loss' timer: 5MGCP request timeout 500MGCP maximum exponential request timeout 4000MGCP gateway port: 2427, MGCP maximum waiting delay 3000MGCP restart delay 0, MGCP vad DISABLEDMGCP rtrcac DISABLEDMGCP system resource check DISABLEDMGCP xpc-codec: DISABLED, MGCP persistent hookflash: DISABLEDMGCP persistent offhook: ENABLED, MGCP persistent onhook: DISABLEDMGCP piggyback msg ENABLED, MGCP endpoint offset DISABLEDMGCP simple-sdp DISABLEDMGCP undotted-notation DISABLEDMGCP codec type g711ulaw, MGCP packetization period 20MGCP JB threshold lwm 30, MGCP JB threshold hwm 150MGCP LAT threshold lwm 150, MGCP LAT threshold hwm 300MGCP PL threshold lwm 1000, MGCP PL threshold hwm 10000MGCP CL threshold lwm 1000, MGCP CL threshold hwm 10000MGCP playout mode is adaptive 60, 40, 200 in msecMGCP Fax Playout Buffer is 300 in msecMGCP media (RTP) dscp: ef, MGCP signaling dscp: af31MGCP default package: trunk-packageMGCP supported packages: gm-package dtmf-package trunk-package line-packagehs-package atm-package ms-package dt-package mo-packageres-package mt-package fxr-package md-packageMGCP Digit Map matching order: shortest matchSGCP Digit Map matching order: always left-to-rightMGCP VoAAL2 ignore-lco-codec DISABLEDMGCP T.38 Max Fax Rate is DEFAULTMGCP T.38 Fax is ENABLEDMGCP T.38 Fax ECM is ENABLEDMGCP T.38 Fax NSF Override is DISABLEDMGCP T.38 Fax Low Speed Redundancy: 0MGCP T.38 Fax High Speed Redundancy: 0MGCP Fax relay SG3-to-G3: ENABLEDMGCP control bind :DISABLEDMGCP media bind :DISABLEDMGCP Upspeed payload type for G711ulaw: 0, G711alaw: 8MGCP Dynamic payload type for G.726-16K codecMGCP Dynamic payload type for G.726-24K codecMGCP Dynamic payload type for G.Clear codecMGCP Dynamic payload type for NSE is 100MGCP Dynamic payload type for NTE is 99MGCP rsip-range is enabled for TGCP only.MGCP Comedia role is PASSIVEMGCP Comedia check media source is ENABLEDMGCP Comedia SDP force is DISABLEDMGCP Guaranteed scheduler time is DISABLEDMGCP DNS stale threshold is 30 secondsRouter#
Forcing the Direction Attribute in the Session Description Protocol (SDP): ExampleRouter# conf tEnter configuration commands, one per line. End with CNTL/Z.Router#(config)#mgcp behavior comedia-sdp-force enableRouter#(config)#exitRouter#show mgcpMGCP Admin State ACTIVE, Oper State ACTIVE - Cause Code NONEMGCP call-agent: none Initial protocol service is MGCP 0.1...MGCP Comedia role is PASSIVEMGCP Comedia check media source is ENABLEDMGCP Comedia SDP force is ENABLEDMGCP Guaranteed scheduler time is DISABLEDMGCP DNS stale threshold is 30 seconds
The following sections provide references related to the Symmetrical RTP Support for MGCP-Based Calls feature.
Related Topic Document Title
General information on MGCP
Connection-Oriented Media for SIP
All debug commands:
Cisco IOS Debug Command Reference, Release 12.4T
This feature uses the following new and modified commands.
•mgcp behavior comedia-check-media-src
•mgcp behavior comedia-role
•mgcp behavior comedia-sdp-force
•show mgcp connection
List of All Release 12.4T Commands
An alphabetical list of all Cisco IOS Release 12.4T commands is in the Cisco IOS Master Commands List, Release 12.4T, at the following URL:
List of All New, Modified, Removed, and Replaced Release 12.4T Commands
Alphabetized lists of all new, modified, removed, and replaced commands for each Cisco IOS Release 12.4T release are in the Cisco IOS New, Modified, Removed, and Replaced Commands, Release 12.4T, document at the following URL:
Feature Information for Symmetrical RTP Support for MGCP-Based Calls
Table 1 lists the features in this module and provides links to specific configuration information. Only features that were introduced or modified in Cisco IOS Release 12.4(11)T or a later release appear in the table.
Not all commands may be available in your Cisco IOS software release. For release information about a specific command, see the command reference documentation.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS and Catalyst OS software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note Table 1 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.
VoBB—Voice over Broadband
NAT—Network Address Translation
SDP—Session Description Protocol
SIP—Session Initiation Protocol
SS7—Signaling System 7
Note See Internetworking Terms and Acronyms for terms not included in this glossary.
CCVP, the Cisco logo, and Welcome to the Human Network are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn is a service mark of Cisco Systems, Inc.; and Access Registrar, Aironet, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Enterprise/Solver, EtherChannel, EtherFast, EtherSwitch, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, IP/TV, iQ Expertise, the iQ logo, iQ Net Readiness Scorecard, iQuick Study, LightStream, Linksys, MeetingPlace, MGX, Networkers, Networking Academy, Network Registrar, PIX, ProConnect, ScriptShare, SMARTnet, StackWise, The Fastest Way to Increase Your Internet Quotient, and TransPath are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0711R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2006 Cisco Systems, Inc. All rights reserved.