Cisco IOS Voice Troubleshooting and Monitoring -- Voice Call Tuning
The Voice Call Tuning feature monitors the interface between Cisco IOS software and a system's DSPs in real time and reports status on the following: packet flow, DSP state, echo-cancellation state, and jitter state. The feature also allows you to manipulate echo-cancellation and jitter-buffer parameters in real time.
The feature is part of the standard product and is supported under normal Cisco Technical Assistance Center (TAC) procedures. No new code is required and there are no configuration tasks for this feature. It is backward compatible with older versions of Cisco IOS software, Cisco VCWare, and Cisco voice DSP code base (DSPWare).
Restrictions for Voice Call Tuning
If you wish to use this feature on a Cisco AS5300 platform, refer to the Combined Release Notes and Compatibility Matrix for Cisco VCWare. That document tells you which Cisco VCWare to use with this feature.
Information About Voice Call Tuning
To configure the Voice Call Tuning feature, you should understand the following concepts:
The Voice Call Tuning feature allows you to determine whether packets are flowing in each direction while a call is in progress.
The analog signal from the telephone is digitized into pulse code modulation (PCM) signals by the voice coder-decoder (codec). The PCM samples are then passed to the compression algorithm which compresses the voice into a packet format for transmission across the WAN. On the far side of the cloud similar functions are performed but in reverse order.
Depending on how the network is configured, the router or gateway can perform both the codec and compression functions or only one of them. For example, if an analog voice system is used, then the router or gateway performs the codec function and the compression function.
The Voice Call Tuning feature allows you to check whether the DSP servicing an active call is functioning properly. Explicit configuration of a periodic ping message with both the period and timeout parameters configurable catches DSPs that are in a hung state as soon as possible. A failure can then signal this event to the console log or as a triggering event to a logging functionality. The DSP can also send periodic informational messages like jitter measures, echo canceller measures, and alarms to alert you if there is an impending problem.
Echo is the sound of your own voice reverberating in the telephone receiver while you are talking. When timed properly, echo is not a problem in the conversation; however, if the echo interval exceeds approximately 25 ms, it can be distracting to the speaker. Echo is controlled by ECs. By design, ECs are limited by the total amount of time they wait for the reflected speech to be received, which is known as an echo tail. The echo tail is normally 32 ms.
In the traditional telephony network, echo is generally caused by an impedance mismatch when the four-wire network is converted to the two-wire local loop. Echo cancellation is required because of packet network latency.
Echo cancellation is implemented in DSP firmware on the gateways and is independent of other functions implemented in the DSP (the DSP protocol and compression algorithm). In voice packet-based networks, ECs are built into the low-bit-rate codecs and are operated on each DSP.
This feature gives you the ability to change echo canceller parameters while a call is in progress. Audible effects are immediately noticed, aiding in problem determination and resolution. You can change the echo canceller parameters (tail length and echo return loss (ERL) threshold) in the field.
Jitter is a variation in the delay of received packets. At the sending side, packets are sent in a continuous stream with the packets being spaced evenly apart. Due to network congestion, improper queuing, or configuration errors, this steady stream can become erratic, or the delay between and two packets can vary instead of remaining constant.
This feature gives you the ability to change jitter-buffer parameters while a call is in progress. Audible effects are immediately noticed, aiding in problem determination and resolution. You can change the jitter buffer parameters (delay, size, fixed state, or adaptive state) in the field.
How to Verify Voice Call Tuning Functionality
There are no configuration tasks for this feature. However, you can verify that the Voice Call Tuning feature is operating on your system by performing the following tasks:
- Use the show vfc version command to show the version of the software that resides on your voice feature card (VFC). This command shows information in the output of the show version vcware and show vfcversion dspware commands that indicates whether the Cisco VCWare or DSPWare is compatible with the Cisco IOS image.
- Use the show voice call command to show the real-time call status for voice ports, including packet flow indication, DSP state, echo canceller state, and jitter state. If you enable terminal monitor before doing this, you can also see the DSP and playout buffer statistics, overflow specifications, late packets, lost packets, and "concealment 9," in which the DSP invents a packet using interpolation.
- Use the show voice dsp command to show the status of all DSP voice channels when abnormal behavior in the DSP voice channels occurs.
- Use the test call id command to manipulate echo canceller and jitter-buffer parameters in real time. You can use this command with the extended G.168 echo canceller, which allows you to configure the voice card in a router individually, or with the Cisco G.165 echo canceller, which allows you to configure the router as a whole. Messages are visible in the command output when either an extended-only or a standard-only echo cancellation is requested, as in the following example:
Extended echo canceller not active for CallID callID Basic echo canceller not active for CallID callID
Voice Call Tuning Configuration Examples
There are no specific configuration examples for the Voice Call Tuning feature, but you can verify that the Voice Call Tuning feature is operating on your system by performing the following tasks:
- Use the show vfc version command to show the version of the software that resides on your VFC. This command was modified to include new information in the output of the show vfc version vcware and show version dspware commands. Messages are output if the Cisco VCWare or DSPWare is not compatible with the Cisco IOS image. The new information is advisory only, so there is no action taken if the software is compatible or incompatible.
- Cisco IOS Release 12.2(13)T adds new information to the output of the show vfc version vcware and show vfc version dspware commands. Messages are output if the Cisco VCWare or DSPWare is not compatible with the Cisco IOS image. The new information is advisory only, so there is no action taken if the software is compatible or incompatible.
- If the versions detected fall within the defined criteria and are compatible, nothing is output at bootup time. A confirmation line is output when the show vfc version vcware and show vfc version dspware commands are used, as in the following example:
Router# show vfc 1 version vcware Voice Feature Card in Slot 1: VCWare Version : 7.35 ROM Monitor Version: 1.3 DSPWare Version : 3.4.46L Technology : C549 VCWare/DSPWare version compatibility OK
- Use the show voice call command to show the real-time call status for voice ports, including packet flow indication, DSP state, echo canceller state, and jitter state. This command was modified with the status, call-id, and sample sample-period command options. This command is available on all voice platforms.
- You can use the call-id argument to identify active calls. If the call-id argument is omitted, the enquiry shows all active voice calls. In the following example, a list of all active calls with relevant identifying information is shown, as in the following example:
Router# show voice call status CallID CID ccVdb Port DSP/Ch Called # Codec Dial-peers 0x3 11D4 0x62972834 1/0/0 1/1 10001 g711ulaw 1/2 0x4 11D4 0x62973AD0 1/0/1 2/1 *10001 g711ulaw 2/1 0xA 11DB 0x62FE9D68 1/1/0 3/1 *2692 g729r8 0/2692 2 active calls found
- Use the test call id command to manipulate the echo canceller and jitter buffer parameters in real time. You can use this command with the extended echo canceller, which allows you to configure the voice card in a router individually, or with the standard echo canceller, in which the configuration occurs implicitly on the router.
- The following example shows query output from a Cisco AS5350 universal gateway using the NextPort version of the standard echo canceller:
Router# test call id 99 ? echo-canceller test echo canceller on an active voice call playout-delay test playout-delay parameters