Symptom
When a
phone call is established from an IP station through a Cisco IOS voice
gateway/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).
Possible
Cause
An
improperly configured Cisco IOS gateway, a firewall, or a routing or default
gateway problem, among other things, can cause this problem.
Recommended
Action
Make Sure
IP Routing is Enabled on Cisco IOS Gateway/Routers
Some Cisco
IOS gateways, such as the VG200, have IP routing disabled by default. This will
lead to one-way voice problems.
Note |
Before going any
further, make sure that your router has IP routing enabled (that is, does not
have the global configuration command
no ip
routing).
|
To enable
IP routing, enter the following global configuration command in your Cisco IOS
gateway:
voice-ios-gwy(config)#ip
routing
Check Basic IP Routing
Ensure
that basic IP access should always gets checked first. Because RTP streams have
no connections (transported over UDP), traffic may travel successfully in one
direction but get lost in the opposite direction.
Check the
following conditions:
-
Default gateways
configured at the end stations
-
IP routes on the
default gateways, mentioned above, leading to the destination networks
Note |
The following list
explains how to verify the default router/gateway configuration on various
Cisco Unified IP
Phones:
|
Note |
For Cisco DT24+
Gateways, check the DHCP Scope and make sure that a Default Gateway (003
router) option exists in the scope. The 003 router parameter populates the
Default Gateway field in the devices and PCs. Scope option 3 should have the IP
address of the router interface that will be doing routing for the gateway.
|
Bind the H.323 Signaling to a
Specific IP Address on Cisco IOS Gateway/Routers
When the
Cisco IOS gateway has multiple active IP interfaces, some of the H.323
signaling may use one IP address for course, and other parts of it may
reference a different source addresses. This can generate various kinds of
problems, including being one-way audio.
To avoid the
problem, the H.323 signaling can be bound to a specific source address, which
can belong to a physical or virtual interface (loopback). The command syntax to
use under the interface configuration mode follows:
h323-gateway voip bind
srcaddr<ip address>. Configure this command under the interface with
the IP address to which the Cisco Unified Communications Manager points.
Configuring H.323 Support for
Virtual Interfaces documents this command, which was introduced in Cisco
IOS Release 12.1.2T.
Note |
A bug exists in
version 12.2(6) where this solution can actually cause a one-way audio problem.
For more information, refer to bug ID CSCdw69681 (registered customers only) in
Cisco Software Bug Toolkit (registered customers only).
|
Check that Answer Supervision
Is Being Sent and Received Correctly from the Telco or Switch
In an
implementation that has a Cisco IOS gateway connected to a Telco or switch,
verify that answer supervision gets sent correctly when the called device
behind the telco or switch answers the call. Failure to receive the answer
supervision will cause the Cisco IOS gateway not to cut through (open) the
audio path in a forward direction which causes one-way voice. A workaround
involves the need to configure
voice rtp send-recv
on.
Cut-through Two-Way Audio
Early Using voice rtp send-recv on Cisco IOS Gateway/Routers
The voice
path gets established in the backward direction as soon as the RTP stream is
started. The forward audio path will not be cut through until the Cisco IOS
gateway receives a Connect message from the remote end.
In some
cases you need to establish a two-way audio path as soon as the RTP channel is
opened—before the connect message is received. To achieve this, use the
voice rtp
send-recv global configuration command.
Check cRTP Settings on a
Link-by-Link Basis on Cisco IOS Gateway/Routers
This issue
applies to scenarios, such as toll-bypass, where more than one Cisco IOS
router/gateway is involved in the voice path and Compressed RTP (cRTP) is used.
cRTP, or RTP Header Compression, designates a method for making the VoIP packet
headers smaller to regain bandwidth. cRTP takes the 40-byte IP/UDP/RTP header
on a VoIP packet and compresses it to 2-4 bytes per packet, yielding
approximately 12Kb of bandwidth for a G.729 encoded call with cRTP.
cRTP occurs
on a hop-by-hop basis with decompression and recompression on every hop.
Because each packet header needs to be examined for routing, enable cRTP on
both sides of an IP link.
Also verify
that cRTP is working as expected on both ends of the link. Cisco IOS levels
vary in terms of switching paths and concurrent cRTP support.
In summary,
the history follows:
-
Until Cisco IOS
Software Release 12.0.5T, cRTP gets process-switched.
-
Cisco IOS Software
Release 12.0.7T, fast- and Cisco express forwarding (CEF)-switching support for
cRTP, which introduced and continue in 12.1.1T.
-
In Cisco IOS
Software Release 12.1.2T, introduced algorithmic performance improvements.
If you are
running cRTP on Cisco IOS platforms (IOS Release 12.1), verify that bug
CSCds08210 (registered customers only) (VoIP and FAX not working with RTP
header compression ON) does not affect your IOS version.
Verify Minimum Software Level
for NAT on Cisco IOS Gateway/Routers
If you are
using Network Address Translation (NAT), you must meet the minimum software
level requirements. Earlier versions of NAT do not support skinny protocol
translation and will lead to one-way voice issues.
The minimum
software levels that are required for using NAT and skinny simultaneously
specify Cisco
IOS Software 12.1(5)T for IOS gateways to support skinny
and H.323v2 with NAT.
Note |
If your Cisco
Unified Communications Manager is using a TCP port for skinny signaling that
differs from the default 2000, you need to adjust the NAT router with the ip nat service skinny tcp
port<number> global configuration command.
|
The minimum
software level that is required for using NAT and skinny simultaneously on a
PIX firewall specifies 6.0.
Note |
These levels of
software do not necessarily support all the RAS messages necessary for full
gatekeeper support. Gatekeeper support occurs outside the scope of this
document.
|
Disable voice-fastpath on
AS5350 and AS5400
The Cisco
IOS command
voice-fastpath
enable gets a hidden global configuration command for the AS5350 and
AS5400, which is enabled by default. To disable it, use the
no voice-fastpath
enable global configuration command.
When
enabled, this command caches the IP address and UDP port number information for
the logical channel that is opened for a specific call and prevents the RTP
stream from getting to the application layer, but rather forwards the packets
at a lower layer. This helps marginally reduce CPU utilization 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, disregarding the new logical channel information that was generated after
a call on hold was resumed or a transfer was completed. To avoid this problem,
traffic should go to the application layer constantly, so redefinition of the
logical channel gets taken into account, and audio gets streamed to the new IP
address/UDP port pair. That explains why you should disable voice-fastpath to
support supplementary services.
Configure the VPN IP Address
with SoftPhone
Cisco IP
SoftPhone offers the ability to make a PC work like a Cisco Unified IP Phone
model 7900 Series phone. Remote users who connect back to their company network
through VPN need to configure some additional settings to avoid a one-way voice
problem.
The solution
requires you to configure the VPN IP address, instead of the IP address of the
network adapter under the Network Audio Settings.
Verification
A useful
command to verify packet flow specifies
debug cch323
rtp. This command displays packets that the router transmits (X) and
receives (R). An uppercase character indicates successful
transmission/reception whereas a lowercase character indicates a dropped
packet. See the following example:
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 voice path only cuts through in forward
!--- direction and that packets are dropped. Indeed,
!--- received packets are traffic from the IP phone to the PSTN
!--- phone. These will be 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
!-- End of conversation.