The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes common issues that can occur in IP Telephony one-way audio conversations involving Cisco gateways.
Cisco recommends that you have knowledge of these topics:
This document is not restricted to specific software or hardware versions.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
This document provides scenarios and solutions to these problems:
When a phone call is established from an IP station through a Cisco IOS voice gateway or router, only one of the parties receives audio (one-way communication).
When a toll-bypass call is established between two Cisco gateways, only one of the parties receives audio (one-way communication).
When a phone call is established from an IP station that is placed behind a VPN 3002 Hardware Client, only one of the parties receives audio (one-way communication).
The causes of one-way audio in IP Telephony can be varied, but the root of the problem usually involves IP routing issues. This section takes a look at some of the scenarios and solutions that have been found in the field.
Some Cisco IOS gateways, such as the VG200, disable IP routing by default. This default setting leads to one-way voice problems.
Note: Before you continue, ensure that IP routing is enabled on your router. In other words, ensure that your router does not have the no ip routing global configuration command.
In order to enable IP routing, issue this global configuration command on your Cisco IOS gateway:
voice-ios-gwy(config)#ip routing
Always check basic IP reachability first. Because Real-Time Transport Protocol (RTP) streams are connectionless (transported over UDP), traffic can travel successfully in one direction but get lost in the opposite direction. This diagram shows a scenario in which this can happen:
Subnets A and B can both reach Subnet X. Subnet X can reach Subnets A and B. This allows the establishment of TCP connections between the end stations (A and B) and the Cisco CallManager. Therefore, signaling can reach both end stations without any problems, which allows the establishment of calls between A and B.
Once a call is established, an RTP stream that carries the audio must flow in both directions between the end stations. In some cases, Subnet B can reach Subnet A, but Subnet A cannot reach Subnet B. Therefore, the audio stream from A to B always gets lost.
This is a basic routing issue. Use IP routing troubleshooting methods in order to get to the stage at which you can successfully ping Phone A from Gateway B. Remember that ping is a bidirectional verification.
This document does not cover IP routing troubleshooting. However, ensure these are the next steps:
Default gateways are configured at the end stations.
IP routes on those default gateways lead to the destination networks.
This list explains how to verify the default router or gateway configuration on various Cisco IP phones:
Cisco IP Phone 7910—Press Settings, select option 6, and press volume down until the Default Router field shows up.
Cisco IP Phone 7960/40—Press Settings, select option 3, and scroll down until the Default Router field shows up.
Cisco IP Phone 2sp+/30vip—Press **#, and then press # until gtwy= appears.
Note: When you use the Cisco IP SoftPhone application and more than one network interface card (NIC) is installed in the box, ensure that the box sources the correct NIC. This issue is commonly present in IP SoftPhone software version 1.1.x. Version 1.2 must resolve this issue.
Note: When you use Cisco DT-24+ Gateways, check the DHCP Scope and ensure that there is a Default Gateway (003 router) option in the scope. The 003 router parameter populates the Default Gateway field in the devices and PCs. Scope option 3 must have the IP address of the router interface that can route for the gateway.
If transcoding is configured for an intercluster trunk (ICT), ensure that a Media Termination Point (MTP) is configured in the Media Resource Group and Media Resource Group List associated with the trunk. If you specify an MTP when one is not needed, or fail to configure an MTP if it is needed, it has been known to cause one way voice issues for ICT configurations.
When the Cisco IOS gateway has multiple active IP interfaces, some of the H.323 signaling can be sourced from one IP address and other parts of it can reference a different source address. This can generate various kinds of problems. One such problem is one-way audio.
In order to get around this problem, you can bind the H.323 signaling to a specific source address. The source address can belong to a physical or virtual interface (loopback). Use the h323-gateway voip bind srcaddr ip-address command in interface configuration mode. Configure this command under the interface with the IP address to which the Cisco CallManager points.
This command was introduced in Cisco IOS Software Release 12.1(2)T. Refer to H.323 Support for Virtual Interfaces.
Caution: A bug exists in Cisco IOS Software Release 12.2(6) in which this solution can actually cause a one-way audio problem. For more information, refer to Cisco bug ID CSCdw69681. Only registered Cisco users can access internal Cisco tools and information.
One-way voice can occur in Media Gateway Control Protocol (MGCP) gateways if the source interface for signaling and media packets is not specified. You can bind the MGCP media to the source interface if you issue the mgcp bind media source-interface interface-id command and then the mgcp bind control source-interface interface-id command. Reset the MGCP gateway in Cisco CallManager after you issue the commands.
If the mgcp bind command is not enabled, the IP layer still provides the best local address.
The guidelines for the mgcp bind command are:
When there are active MGCP calls on the gateway, the mgcp bind command is rejected for both control and media.
If the bind interface is not up, the command is accepted but does not take effect until the interface comes up.
If the IP address is not assigned on the bind interface, the mgcp bind command is accepted but takes effect only after a valid IP address is assigned. During this time, if MGCP calls are up, the mgcp bind command is rejected.
When the bound interface goes down, either because of a manual shutdown on the interface or because of operational failure, the bind activity is disabled on that interface.
When bind is not configured on the Media Gateway Controller (MGC), the IP address that is used to source MGCP control and media is the best available IP address.
If you have a Cisco IOS gateway that connects to a Telco or switch, verify that answer supervision is sent correctly when the called device behind the Telco or switch answers the call. Failure to receive the answer supervision causes the Cisco IOS gateway to fail to cut through (open) the audio path in a forward direction. This failure causes one-way voice. A workaround is to issue the voice rtp send-recv on command.
For more information, see Cut Through Two-Way Audio Early with the voice rtp send-recv Command on the Cisco IOS Gateway and Routers.
The voice path is established in the backward direction at the start of the RTP stream. The forward audio path is not cut through until the Cisco IOS gateway receives a Connect message from the remote end.
In some cases, it is necessary to establish a two-way audio path as soon as the RTP channel is opened, which is before the Connect message is received. In order to achieve this, issue the voice rtp send-recv global configuration command.
This issue applies to scenarios, such as toll-bypass, in which more than one Cisco IOS router or gateway is involved in the voice path and compressed RTP (cRTP) is used. cRTP, or RTP Header Compression, is a method to make the VoIP packet headers smaller in order to regain bandwidth. cRTP takes the 40-byte IP, User Datagram Protocol (UDP), or RTP header on a VoIP packet and compresses it to 2 to 4 bytes per packet. This compression yields approximately 12 kbps of bandwidth for a G.729 encoded call with cRTP. For more information on cRTP, refer to Voice Over IP - Per Call Bandwidth Consumption.
cRTP is done on a hop-by-hop basis, with decompression and recompression on every hop. Each packet header must be examined for routing. Therefore, cRTP needs to be enabled on both sides of an IP link.
It is also important to verify that cRTP is working as expected on both ends of the link. Cisco IOS Software release levels vary in terms of switching paths and concurrent cRTP support.
In summary, the history is:
In Cisco IOS Software releases earlier than Cisco IOS Software Release 12.0(5)T, cRTP is process-switched.
In Cisco IOS Software Release 12.0(7)T, and in Cisco IOS Software Release 12.1(1)T, fast- and Cisco Express Forwarding (CEF)-switching support for cRTP is introduced.
In Cisco IOS Software Release 12.1(2)T, algorithmic performance improvements are introduced.
If you run cRTP on Cisco IOS Software platforms (Cisco IOS Software Release 12.1), verify that Cisco bug ID CSCds08210 does not affect your Cisco IOS Software release. The symptom of this bug is the failure of VoIP and fax over IP to work with the RTP header compression on.
Only registered Cisco users can access internal Cisco bug information and tools.
If you find that there are clock slips on the E1 or T1 interface from the show controller {e1 | t1} command, there can be some mismatch in the clocking configuration on the Voice Gateway. Refer to Clocking Configurations On Voice-Capable Cisco IOS-Based Platforms and make sure that the clocking configurations on the Voice Gateway are correct.
If you use Network Address Translation (NAT), you must meet the minimum software-level requirements. Earlier versions of NAT do not support skinny protocol translation. These earlier versions lead to one-way voice issues.
You must run Cisco IOS Software Release 12.1(5)T or later for Cisco IOS gateways to support skinny and H.323 version 2 with NAT simultaneously. For more information, refer to NAT-Support of IP Phone to Cisco CallManager.
Note: If your Cisco CallManager uses a TCP port for skinny signaling that is different than the default port (2000), you must adjust the NAT router. Issue the ip nat service skinny tcp port number global configuration command.
The minimum software level that is required in order to use NAT and skinny simultaneously on a PIX firewall is 6.0. For more information, refer to Cisco PIX Firewall Version 6.0.
Note: These levels of software do not necessarily support all the Registration, Admission, and Status (RAS) messages that are necessary for full gatekeeper support. Gatekeeper support is outside the scope of this document.
The Cisco IOS Software command voice-fastpath enable is a hidden global configuration command for the AS5350 and AS5400. The command is enabled by default. In order to disable it, issue the no voice-fastpath enable global configuration command.
When the command is enabled, it caches the IP address and UDP port number information for the logical channel that is opened for a specific call. The command prevents the RTP stream from reaching the application layer. Instead, the packets are forwarded at a lower layer. This helps to reduce CPU utilization marginally, in high call volume scenarios.
When supplementary services such as hold or transfer are used, the voice-fastpath command causes the router to stream the audio to the cached IP address and UDP port. The new logical channel information that is generated after a call on hold is resumed or after a transfer is completed is disregarded. In order to get around this problem, traffic must go to the application layer constantly so that redefinition of the logical channel is taken into account and audio is streamed to the new IP address and UDP port pair. Therefore, be sure to disable voice-fastpath in order to support supplementary services.
Cisco IP SoftPhone allows a PC to work like a Cisco IP Phone 7900 Series phone. Remote users who connect back to their company network through a Virtual Private Network (VPN) must configure some additional settings in order to avoid a one-way voice problem. This is because the media stream needs to know the endpoint of the connection.
The solution is to configure the VPN IP address, instead of the IP address of the network adapter, under the Network Audio Settings. For more information, refer to How to Use Cisco IP SoftPhone over VPN.
A Cisco VPN 3002 Hardware Client can operate in two modes: client mode and network extension mode (NEM). In client mode, all the hosts behind the Cisco VPN 3002 client are port address translated to the outside IP address of the VPN 3002 client. H.323 does not work with port address translation (PAT) and results in one-way audio when an IP phone is placed behind a VPN 3002 client. When the VPN 3002 works in NEM, the remote networks can see each other via their real IP addresses, not a NAT-based or PAT-based IP address. If the VPN 3002 is configured to work in NEM, H.323 can work. In other words, IP phones that are behind a VPN 3002 client can only work when VPN 3002 works in NEM. Therefore, in order to avoid one-way voice issues with a VPN 3002 client, configure the VPN 3002 client to use NEM.
In order to configure the Cisco VPN 3002 Hardware Client to use NEM, choose Configuration > Quick > PAT and click No, use Network Extension mode in the PAT window.
For more information, refer to Configuring Cisco VPN 3002 Hardware Client to Cisco IOS Router with EzVPN in Network Extension Mode
Two useful commands to use in order to verify packet flow are the debug cch323 rtp command and the debug voip rtp command. The debug cch323 rtp command displays packets that are transmitted (X) and received (R) by the router. An uppercase character indicates successful transmission or reception. A lowercase character indicates a dropped packet.
voice-ios-gwy#debug cch323 rtp RTP packet tracing is enabled voice-ios-gwy# voice-ios-gwy# voice-ios-gwy# voice-ios-gwy# voice-ios-gwy# !--- This is an unanswered outgoing call. !--- Notice that the voice path only cuts through in the forward direction and
!--- that packets are dropped. Indeed, received packets are traffic from the !--- IP phone to the PSTN phone. These are dropped until the call is answered. Mar 3 23:46:23.690: ****** cut through in FORWARD direction ***** XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr XrXrXXrrrrrrrrrrrrrrrr voice-ios-gwy# voice-ios-gwy# !--- This is an example of an answered call: voice-ios-gwy# voice-ios-gwy# *Mar 3 23:53:26.570: ****** cut through in FORWARD direction ***** XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr XXrrrrrXrXrXrXrXrXrXrXrXrXrXrXrrXXrrXrXrXrXrXrXXXXXXXXXXXXXXXXrXXXXXXXXrXrXrXXrrXr XrXrXrXrXrXrXrXrXXrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr !--- At this point, the remote end picks up the phone. *Mar 3 23:53:30.378: ****** cut through in BOTH direction ***** XRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXR XXRRXRXRXXRRXRXRXRXRXXRXRXRXRXRXRRXRXXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRXXRXRXRXRXRXRRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR XXRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR XRXRXRXRXRXRXRXRXRXRXRXRXXRRRXR !--- This is the end of the conversation.
Note: In Cisco IOS Software Release 12.2(11)T and later, the debug cch323 rtp command-line interface (CLI) command has been replaced by the debug voip rtp command.
voice-ios-gwy#debug voip rtp --------cut through in BOTH direction------------------- *Mar 27 19:52:08.259: RTP(32886): fs rx d=10.48.79.181(20002), pt=0, ts=4FFBF0, ssrc=8E5FC294 *Mar 27 19:52:08.275: RTP(247): fs tx d=10.48.79.181(20002), pt=0, ts=5D00C8D9, ssrc=1F1E5093 *Mar 27 19:52:08.279: RTP(32887): fs rx d=10.48.79.181(20002), pt=0, ts=4FFC90, ssrc=8E5FC294 *Mar 27 19:52:08.295: RTP(248): fs tx d=10.48.79.181(20002), pt=0, ts=5D00C979, ssrc=1F1E5093 *Mar 27 19:52:08.299: RTP(32888): fs rx d=10.48.79.181(20002), pt=0, ts=4FFD30, ssrc=8E5FC294 *Mar 27 19:52:08.315: RTP(249): fs tx d=10.48.79.181(20002), pt=0, ts=5D00CA19, ssrc=1F1E5093 *Mar 27 19:52:08.319: RTP(32889): fs rx d=10.48.79.181(20002), pt=0, ts=4FFDD0, ssrc=8E5FC294 *Mar 27 19:52:08.335: RTP(250): fs tx d=10.48.79.181(20002), pt=0, ts=5D00CAB9, ssrc=1F1E5093 *Mar 27 19:52:08.339: RTP(32890): fs rx d=10.48.79.181(20002), pt=0, ts=4FFE70, ssrc=8E5FC294 *Mar 27 19:52:08.355: RTP(251): fs tx d=10.48.79.181(20002), pt=0, ts=5D00CB59, ssrc=1F1E5093 *Mar 27 19:52:08.359: RTP(32891): fs rx d=10.48.79.181(20002), pt=0, ts=4FFF10, ssrc=8E5FC294 *Mar 27 19:52:08.375: RTP(252): fs tx d=10.48.79.181(20002), pt=0, ts=5D00CBF9, ssrc=1F1E5093 *Mar 27 19:52:08.379: RTP(32892): fs rx d=10.48.79.181(20002), pt=0, ts=4FFFB0, ssrc=8E5FC294 *Mar 27 19:52:08.395: RTP(253): fs tx d=10.48.79.181(20002), pt=0, ts=5D00CC99, ssrc=1F1E5093 *Mar 27 19:52:08.399: RTP(32893): fs rx d=10.48.79.181(20002), pt=0, ts=500050, ssrc=8E5FC294 *Mar 27 19:52:08.976: RTP(282): fs tx d=10.48.79.181(20002), pt=0, ts=5D00DEB9, ssrc=1F1E5093 *Mar 27 19:52:08.980: RTP(32922): fs rx d=10.48.79.181(20002), pt=0, ts=501270, ssrc=8E5FC294 *Mar 27 19:52:08.996: RTP(283): fs tx d=10.48.79.181(20002), pt=0, ts=5D00DF59, ssrc=1F1E5093 *Mar 27 19:52:09.000: RTP(32923): fs rx d=10.48.79.181(20002), pt=0, ts=501310, ssrc=8E5FC294 *Mar 27 19:52:09.016: RTP(284): fs tx d=10.48.79.181(20002), pt=0, ts=5D00DFF9, ssrc=1F1E5093
You can troubleshoot one way calls by gathering call traffic information across the PIX Firewall. The PIX capture command can be used to verify the port open and used when a call occurs. Refer to Handle VoIP Traffic with the PIX Firewall for more information on VoIP traffic across the PIX Firewall.
Note: Make sure to disable the capture command after you generate the capture files that you need in order to troubleshoot.
This issue can only occur in an outgoing initial SIP call setup where MTP is required. In this case, the outgoing SIP INVITE message can contain an SDP offer. The issue can occur in these scenarios:
Outgoing SIP trunk calls with Media Termination Point Required checked on the SIP trunk
Calls between IPv6-only endpoints and IPv4-only endpoints
MTP resources can be intermittently leaked, which results in failure of SIP calls that require MTP resources. From RTMT, available MTP resources reach 0 and MTP allocation failure counts go up for each call requiring an MTP. The SDP portion of the initial INVITE can incorrectly contain a=inactive.
Complete these steps in order to resolve the issue:
Uncheck Media Termination Point Required on the SIP Trunk configuration, if possible.
If Early Offer is required, configure Early Offer, but leave Media Termination Point Required unchecked.
For IPv6 deployment, use dual-stack rather than IPv6-only endpoints.
Note: This is documented in Cisco bug ID CSCtk77040. Only registered Cisco users can access internal Cisco bug tools and information.
Revision | Publish Date | Comments |
---|---|---|
1.0 |
11-Oct-2001 |
Initial Release |