Guest

Cisco IOS Software Releases 12.2 T

SIP Support for Media Forking

Table Of Contents

SIP Support for Media Forking

Contents

Prerequisites for SIP Support for Media Forking

Restrictions for SIP Support for Media Forking

Information About SIP Support for Media Forking

Benefits of SIP Support for Media Forking

Overview of Media Streams

Voice Media Streams

DTMF-Relay Media Streams

Voice Plus DTMF-Relay Media Streams

Multiple Codec Selection Order and Dynamic Payload Codecs

Media Forking Applications

Media Forking Initiation

How to Configure SIP Support for Media Forking

Configuring Codec Complexity on Cisco 2600 Series Routers, Cisco 3600 Series Routers, Cisco 37xx Routers, and Cisco AS5300 Routers

Configuring Codec Complexity on Cisco 7200 Series Routers

Mapping Payload Types to Dynamic Payload Codecs

Configuring Multiple Codec Selection Order

Monitoring SIP Support for Media Forking

Verifying Codec Complexity Settings

Verifying Network Dial Peers

Verifying Media Forking on SIP Calls

Troubleshooting SIP Support for Media Forking

Configuration Examples for SIP Support for Media Forking

SIP Network Using Media Forking Example

Edge Gateway Configuration Example

Party A Configuration Example

Party B Configuration Example

Party C Configuration Example

Party A Initial Call Setup Trace Example

Party B Initial Call Setup Trace Example

Party A Add Second Stream Trace Example

Party C Add Second Stream Trace Example

Additional References

Related Documents

Standards

MIBs

RFCs

Technical Assistance

Command Reference

debug ccsip events

debug ccsip info

debug ccsip media

show sip-ua calls

Glossary


SIP Support for Media Forking


The SIP Support for Media Forking feature provides the ability to create midcall multiple streams (or branches) of audio associated with a single call and then send those streams of data to different destinations. The SIP Support for Media Forking feature allows service providers to use technologies such as speech recognition, voice authentication, and text-to-speech conversion to provide sophisticated services to their end-user customers. An example is a web-browsing application that uses voice recognition and text-to-speech (TTS) technology to make reservations, verify shipments, or order products.

Feature Specifications for SIP Support for Media Forking

Feature History
 
Release
Modification

12.2(15)T

This feature was introduced.

Supported Platforms

Cisco 2620XM, Cisco 2621XM, Cisco 2650XM, Cisco 2651XM, Cisco 2691, Cisco 3620, Cisco 3631, Cisco 3640, Cisco 3660, Cisco 3725, Cisco 3745, Cisco 7200 series, and Cisco AS5300.


Finding Support Information for Platforms and Cisco IOS Software Images

Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at the login dialog box and follow the instructions that appear.

Contents

Prerequisites for SIP Support for Media Forking

Restrictions for SIP Support for Media Forking

Information About SIP Support for Media Forking

How to Configure SIP Support for Media Forking

Configuration Examples for SIP Support for Media Forking

Additional References

Command Reference

Glossary

Prerequisites for SIP Support for Media Forking

The following are general prerequisites for Session Initiation Protocol (SIP) deployment:

Ensure that your Cisco router has the minimum memory requirements necessary for voice capabilities.

Establish a working IP network.

For more information about configuring IP, refer to the following document:

Cisco IOS IP Configuration GuideRelease 12.2

Configure VoIP.

For more information about configuring VoIP, refer to the following document:

Cisco IOS Voice, Video, and Fax Configuration Guide, Release 12.2

The following are specific prerequisites for the SIP Support for Media Forking feature:

Configure the gateway receive-rtcp timer (using the timer receive-rtcp command on the gateway) if a SIP media inactivity timer is desired. The timer monitors and disconnects calls if no Real-Time Control Protocol (RTCP) packets are received within a configurable time period. If you are using Cisco IOS Release 12.2(11)T or higher, refer to the Configuring SIP Connection-Oriented Media, Forking, and MLPP Features chapter of the Cisco IOS SIP Configuration Guide specific to your release.

If using a Cisco 2600 series router, Cisco 3600 series router, or a Cisco 37xx router, ensure that the voice card is configured for high-complexity mode of operation for full media-forking functionality.

If using a Cisco 7200 series router, ensure that the voice card is configured for high-complexity mode of operation.

If using a Cisco AS5300 universal access server, ensure that the proper version of VCWare is loaded onto your router. For media forking, the voice feature card used is the DSPM Voice (C542 or C549).

Restrictions for SIP Support for Media Forking

Unsupported Features in the SIP Support for Media Forking Feature

The ability to use IP multicast.

The ability to create streams with different codecs.

The ability to use media forking functionality over Transmission Control Protocol (TCP). User Datagram Protocol (UDP) only is supported.

The ability to make fax calls when multiple streams are used.

The ability to make modem calls when multiple streams ar e used.

IP-to-IP hairpinning, because there is no telephony call leg to be associated with a call.

When using no voice activity detection (VAD), you can use 10 percent of the capacity of the router to make media forked calls. If no VAD is configured on the Cisco 7200 series, a maximum of 15 channels can be used. For example, on a Cisco 2691, two T1s are supported. Ten percent of two T1s is 4.8 calls, so 4.8 media forking calls can be performed when no VAD is configured. For a Cisco AS5300, four T1s are supported that give a total of 96 calls. Ten percent of 96 is 9.6 calls, so 9.6 media forking calls can be performed when no VAD is configured.

Restrictions on Codec Usage

The codecs implemented are G.711, G.729, and G.726 on all supported platforms. No other codecs are supported.

For dynamic payload type codecs (G.726), the payload type must be the same for all streams in the call. This ensures that the codec is mapped to the same payload type on all streams of a re-Invite message. See the "Mapping Payload Types to Dynamic Payload Codecs" section for more information.

The codecs on all the streams must be the same and must be one of the supported codecs. If a re-Invite message is received and multiple codecs are listed in the m-lines of the forked-media streams, the gateway attempts to find the codec in the list that matches the first stream. If a matching codec is not found, the stream is rejected by setting the port number to 0 in the response. See the "Mapping Payload Types to Dynamic Payload Codecs" section for more information.

Restrictions on Forking Functionality and Voice Feature Cards

With the Cisco 2600 series routers, Cisco 3600 series routers, or Cisco 37xx routers, forking is partially supported for NM-HDV configured for medium- complexity mode of operation. A maximum of two streams is supported, and the only combinations supported are:

Voice only on both streams.

Voice plus dual-tone multifrequency (DTMF)-relay on both streams.

For full functionality, the NM-HDV should be configured for high-complexity mode of operation.

With the Cisco 7200 series routers, the Enhanced High-Capacity Digital Voice port adapter (PA-VXC-2TE1+ T1/E1) must be configured for high-complexity mode of operation.

With the Cisco AS5300 universal access server, DSPM Voice (C542 and C549) must be configured.

Restrictions on DTMF-Relay

DTMF-relay is supported as described in RFC 2833, RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals. Cisco proprietary DTMF is not supported.

When DTMF-relay is configured, only the Real-Time Transport Protocol Named Telephony Event (RTP-NTE) payload format can be used in a forked call. RTP-NTE is described in RFC 2833 and prevents the generation of spurious digits at the receiving gateway.

Streams that include only DTMF-relay packets can be used only in a two-stream call and must be established as the second stream.

All forked voice-only and voice plus DTMF-relay streams must use the same codec.

Restrictions on Media Streams

Multiple Domain Name System (DNS) media queries are not supported on all media streams. DNS query is done on the fully qualified domain name (FDQN) of the initial stream only.

Media streams are created and deleted only through re-Invite messages. They are not created through the command-line interface (CLI).

A maximum of three voice-over-IP media streams are supported because three streams can be concurrently sent to the digital signal processor (DSP).

Calls that have a single stream (that is, a conventional two-party call) cannot be set up as DTMF-only.

The first stream cannot be deleted while other streams are active, nor can it be put on hold.

The stream type of an active stream cannot be modified. For example, you cannot change a voice-only stream to voice plus DTMF only.

Information About SIP Support for Media Forking

To configure the SIP Support for Media Forking feature, it is helpful to understand the following concepts:

Benefits of SIP Support for Media Forking

Overview of Media Streams

Multiple Codec Selection Order and Dynamic Payload Codecs

Media Forking Applications

Media Forking Initiation

Benefits of SIP Support for Media Forking

The SIP Support for Media Forking feature allows service providers to deploy a core SIP network server and use technologies such as speech recognition, voice authentication, and text-to-speech conversion to provide sophisticated services to their end-user customers. Service providers use the multiple media streams provided by media forking to monitor the progress of customers through specific applications or requests, which in turn helps the customer transition easily from one facet of the application to another. One example is a web-browsing application that uses voice recognition and text-to-speech (TTS) technology to make reservations, verify shipments, or order products.

SIP media streams are created and deleted only through re-Invite messages; no CLI is required.

Overview of Media Streams

With the SIP Support for Media Forking feature you can create up to three Real-Time Transport Protocol (RTP) media streams to and from a single DS0 channel. In addition, separate gateway destinations (IP address or UDP port) are maintained for each of the streams. The streams are bidirectional; media received from the destination gateways are mixed in the DSP before being sent to the DS0 channel, and pulse code modulation (PCM) received from the DS0 is duplicated and sent to the destination gateways.

Originating gateways establish multiple media streams on the basis of Session Description Protocol (SDP) information included in midcall re-Invites received from a destination gateway, third-party call controller, or other SIP signaling entity. Only one SIP call leg is involved in media forking at the gateway, so the SIP signaling entity that initiates the re-Invites must be capable of aggregating the media information for multiple destinations (such as IP address, port number, payload types, or codecs) into one SDP description. Multiple m-lines in the SDP are used to indicate media forking, with each m-line representing one media destination.


Note SIP media streams are created and deleted only through re-Invite messages; no specific CLI is required.


The ability to create midcall multiple streams (or branches) of audio associated with a single call and send those streams of data to different destinations is similar to a three-way or conference call. A media-forked call has some differences. For example, in a three-way call, each party hears all of the other parties. But in a media-forked call, only the originating caller (the controller) hears the audio (voice and DTMF digits) from all the other participants. The other participants hear audio only from the originating caller and not from each other.

Another difference between a three-way call and a media-forked call is that media streams can be configured on the gateway. Three-way calls send the audio to all of the other parties involved in the call. However, media-forking permits each media stream to be independently configured. For example, one media stream to one party may include both voice and DTMF digits, whereas another media stream to another party may include only DTMF digits.

The SIP Support for Media Forking feature supports three types of media streams: voice, DTMF-relay only, and voice plus DTMF-relay.

Voice Media Streams

Voice-only media streams send all audio from the DS0 channel, and the audio is encoded according to the selected codec. Voice-only media streams have the following characteristics:

DTMF digits are sent as in-band audio.

All forked streams must use the same codec, which is referred to as simple forking.

Only the following codecs and their variants are allowed: G.711, G.726, and G.729.

For the G.726 codecs, dynamic payload types are negotiated in SDP. SDP messages contain capabilities information that is exchanged between gateways. The payload types must be the same for all streams in the call. See the "Mapping Payload Types to Dynamic Payload Codecs" section for more information.

DTMF-Relay Media Streams

DTMF-relay provides reliable digit relay between VoIP gateways and a standardized means of transporting DTMF tones in RTP packets. DTMF-relay media streams have the following characteristics:

DTMF-relay media streams do not include voice and do not use a codec. DTMF-relay packets are sent when the originating party presses a DTMF digit.

Only RTP-NTE can be used in a forked DTMF-relay call. RTP-NTE is used to transport DTMF digits and other telephony events between two endpoints. RTP-NTE prevents the generation of spurious digits at the receiving gateway and is further described in RFC 2833.

DTMF-relay streams are supported only on calls with two established streams and can appear only as the second stream.

The payload-type value assigned to DTMF-relay packets in SDP must be the same for all streams that use DTMF-relay. The default payload type for Cisco gateways is 101. For more information on payload types see the "Multiple Codec Selection Order and Dynamic Payload Codecs" section for more information.

Voice Plus DTMF-Relay Media Streams

Voice plus DTMF-relay media streams send both encoded voice and DTMF-relay packets and have the following characteristics:

The receiving gateway can distinguish the voice component from the DTMF component.

Unlike DTMF-relay, voice plus DTMF is supported on any of the established streams of a forked call.

Only RTP-NTE can be used in a forked DTMF-relay call.

All streams must use the same codec (simple forking).

Only the following codecs and their variants are allowed: G.711, G.726, and G.729.

For the G.726 codecs, dynamic payload types are negotiated in SDP. SDP messages contain capabilities information that are exchanged between gateways. The payload types must be the same for all streams in the call. See the "Mapping Payload Types to Dynamic Payload Codecs" section for more information.

The payload-type value assigned to DTMF-relay packets in SDP must be the same for all streams that use DTMF-relay. The default payload type for Cisco gateways is 101.

Multiple Codec Selection Order and Dynamic Payload Codecs

When using multiple codecs you must create a voice class in which you define a selection order for codecs, and you can then apply the voice class to VoIP dial peers. The voice class codec global configuration command allows you to define the voice class that contains the codec selection order. Then you use the voice-class codec dial-peer configuration command to apply the class to individual dial peers.

If there are any codecs that use dynamic payload types (g726r16, g726r24), Cisco IOS software assigns the payload types to these codecs in the order in which they appear in the configuration, starting with the first available payload type in the dynamic range. The range for dynamic payload types is from 96 to 127, but Cisco IOS software preassigns the following payload types by default:

Range
Function

96

fax

97

fax-ack

100

NSE

101

NTE

121

DTMF-relay

122

Fax-relay

123

CAS

125

ClearChan

Because the payload types have been reserved by the default assignments shown in the table, Cisco IOS software automatically assigns 98 to the first dynamic codec in the dial-peer configuration, 99 to the second, and 102 to the third.

Some of these preassigned payload types can be changed with the modem relay (dial-peer) command. The modem relay (dial-peer) command allows changes to the available payload types that can be used for codecs.

For outgoing calls on the originating gateway, all of the codecs that are configured in the codec list used by the dial peer are included in the SDP of the Invite message.

On the terminating gateway, Cisco IOS software always uses the dynamic payload types that the originating gateway specified in the SDP of the Invite message. This practice avoids the problem of misaligned payload types for most call types. The exception is when a delayed-media Invite message is received. A delayed-media Invite can be used by a voice portal to signal a terminating gateway before re-Inviting a forking gateway. If a delayed-media Invite is used, the Invite message does not contain SDP information, and the terminating gateway must advertise its own codecs and payload types. It does this in the SDP of its response message (either a 183 or a 200 OK). The terminating gateway assigns payload types to dynamic codecs using the same rules as the originating gateway. However, if there is a difference in either the preassigned dynamic payload types or the order in which the dynamic codecs are listed in the codec list used by the dial peer, the payload types may not be assigned consistently on the originating and terminating gateways. If the terminating gateway selects a different payload type for a dynamic codec, the call may fail.

If a G.726 codec is assigned in the first active stream of the call, there are some scenarios in which the voice portal sends a delayed-media re-Invite message to the second or third terminating gateway. Then, it is necessary to ensure that the originating gateway and the second and third terminating gateways have the same preassigned payload types and the same order of dynamic codecs in the codec list for the dial peer being used for the call. Otherwise, the added media stream may be rejected by the originating gateway if the payload types do not match.

To configure codec selection order, perform the tasks described in the following sections:

Creating a Voice Class to Define Codec Selection Order

Applying Codec Selection Order to a VoIP Dial Peer

Media Forking Applications

A web-browsing application that uses voice recognition and text-to-speech (TTS) technology to make reservations, verify shipments, or order products is a typical application of media forking. In Figure 1, a client (party A) uses a telephone to browse the web. Party A calls the voice portal (party B), and the call is routed through the originating gateway. The voice portal operates like a standard voice gateway and terminates calls to a voice response system that has voice recognition and TTS capabilities. This voice response system takes input from party A by DTMF digits or voice recognition and returns responses (for example, stock quotes retrieved from the web) to party A.

The voice portal, or party B, is also capable of third-party call control (3pcc) and can set up a call between party A and a third participant (party C) without requiring direct signaling between party A and party C. One example of a possible call between parties A and C is if party A found a restaurant listing while browsing the web and wanted to speak directly to the restaurant to make reservations.

Another feature of the voice portal is that once the call between parties A and C is established, the voice portal can continue to monitor the audio from party A. By doing so, the voice portal can terminate the connection between parties A and C when a preestablished DTMF digit or voice command is received. Party B retains the connection between itself and party A, in case party A has any further requests. Continuing with the restaurant example, the continuous connection is important if party A decides to query yet another restaurant. Party A simply goes back to the connection with party B, who sets up a call with the new restaurant.

Figure 1 Media Forking Application

Another important aspect of media forking is that although there can be more than one media destination, there is only one signaling destination (in this case, the voice portal). The call leg that was originally set up (from the originating gateway to the voice portal) is maintained for the life of the session. The media destinations are independent of the signaling destination, so media streams (or new destinations) can be added and removed dynamically through re-Invite messages. Media streams are created and deleted only through re-Invite messages rather than through any command-line interfaces (CLIs).

If you configure the timer receive-rtcp command for a gateway, a Session Initiation Protocol (SIP) media inactivity timer is started for each active media stream. The timer monitors and disconnects calls if no RTCP packets are received within a configurable time period. If any of the timers expire, the entire call is terminated—not just the stream on which the timer expired. If a stream is put on call hold, the timer for that stream is stopped. When the stream is taken off hold, the timer for that stream is started again.

There is a maximum of three VoIP media streams that can be established per call. Figure 2 shows the maximum number of streams.

Figure 2 Multiple Streams

Media Forking Initiation

Media forking is initiated by specifying multiple media fields (m-lines) in the SDP of a re-Invite message. The rules for adding and deleting multiple m-lines conform to RFC 2543, SIP: Session Initiation Protocol Appendix B.

Multiple streams are not created through command-line interfaces.

How to Configure SIP Support for Media Forking

See the following sections for configuration, monitoring, and troubleshooting tasks for this feature:

Configuring Codec Complexity on Cisco 2600 Series Routers, Cisco 3600 Series Routers, Cisco 37xx Routers, and Cisco AS5300 Routers (required)

Configuring Codec Complexity on Cisco 7200 Series Routers (required)

Mapping Payload Types to Dynamic Payload Codecs (required)

Monitoring SIP Support for Media Forking (optional)

Troubleshooting SIP Support for Media Forking (optional)

Configuring Codec Complexity on Cisco 2600 Series Routers, Cisco 3600 Series Routers, Cisco 37xx Routers, and Cisco AS5300 Routers

Configuring the correct codec complexity is required for media-forked calls. For the Cisco AS5300 access server, codec complexity is determined by the VCWare code that is loaded on the voice feature card (VFC). To download Cisco VCWare software, refer to the Cisco software download page.


Note This note applies to routers that have already been configured but need their codec complexity changed to high. If there is a DS0 group or PRI group assigned to any T1 controllers on the card, the DS0 or PRI groups must be removed. To remove the groups, shut down the voice ports associated with the groups. Then follow the procedure below.


SUMMARY STEPS

1. enable

2. configure terminal

3. voice card slot

4. codec complexity {high | medium} [ecan-extended]

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

voice-card slot

Example:

Router(config)# voice-card 1

Enters voice-card configuration mode and configures a voice card. The slot argument specifies the voice-card slot location.

Step 4 

codec complexity {high | medium} [ecan-extended]

Example:

Router(config-voice-card)# codec complexity high

Specifies call density and codec complexity according to the codec standard that is being use.

For the Cisco 2691 and Cisco 26xxXM routers, set the codec complexity to high for full forking functionality. With high-complexity packaging, each DSP supports two voice channels.

For the Cisco 3600 series or the Cisco 37xx routers, set the codec complexity to high for full forking functionality.

Configuring Codec Complexity on Cisco 7200 Series Routers

On the Cisco 7200 series routers, codec complexity is configured on the DSP interface.

SUMMARY STEPS

1. enable

2. show interfaces dspfarm [slot/port] dsp [number] [long | short]

3. configure terminal

4. dspint dspfarm slot/port

5. codec high

6. description string

7. exit

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

show interface dspfarm [slot/port] dsp [number] [long | short]

Example:

Router# show interface dspfarm 3/0

Displays DSP voice channel activity. The keywords and arguments are defined as follows:

slot: Slot location of the port adapter.

port: Port number on the port adapter.

dsp: DSP information.

number: Number of DSP sets to display. Range is from 1 to 30.

long: Detailed DSP information.

short: Brief DSP information.

Use this command with the SIP Support for Media Forking feature to learn if any DSP voice channels are in the busy state. If voice channels are busy, codec complexity cannot be changed. All DSP channels must be in the idle state to make changes.

Step 3 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 4 

dspint dspfarm slot/port

Example:

Router(config)# dspint dspfarm 2/0

Enters DSP interface configuration mode. The slot/port argument specifies the slot and port numbers of the interface.

Step 5 

codec high

Example:

Router(config-dspfarm)# codec high

Specifies call density and codec complexity based on a particular codec standard.

Use the high keyword with the SIP Support for Media Forking feature. The high keyword supports two encoded voice channels. For this feature, the following codecs and their variants are supported: G.711, G.726, and G.729.

Step 6 

description string

Example:

Router(config-dspfarm)# description marketing_dept

Includes a specific description (string) about the DSP interface. This information is displayed in the output and does not affect the operation of the interface in any way.

Step 7 

exit

Example:

Router(config-dspfarm)# exit

Exits DSP interface configuration mode.

Mapping Payload Types to Dynamic Payload Codecs

The process used by Cisco IOS software to map payload types to dynamic payload codecs is important in media-forked calls because all media streams must use the same payload type.

VoIP dial peers can list codecs in two ways depending on whether a single codec or multiple codecs are to be assigned to the dial-peer. To configure a single codec in the dial-peer mode, perform the following steps:

SUMMARY STEPS

1. enable

2. configure terminal

3. dial-peer voice tag voip

4. codec codec [bytes payload-size]

5. exit

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

dial-peer voice tag voip

Example:

Router(config)# dial-peer voice 29 voip

Enters dial-peer configuration mode. The tag value is a tag that uniquely identifies the dial peer (this number has local significance only).

The following keyword can be used for configuring codecs:

voip—Indicates that this is a VoIP peer using voice encapsulation on the plain old telephone service (POTS) network.

Step 4 

codec codec [bytes payload-size]

Example:

Router(config-dial-peer)# codec g729r8

Specifies a codec for the dial peer. The following codec types can be used with media forking:

g711alaw
g711ulaw
g726r16
g726r24
g726r32
g729br8
g729r8

The default is g729r8.

The voice payload can also be specified in bytes of each frame.

Step 5 

exit

Example:

Router(config-dial-peer)# exit

Exits dial-peer configuration mode.

Configuring Multiple Codec Selection Order

With multiple codecs you can create a voice class in which you define a selection order for codecs, and you can then apply the voice class to VoIP dial peers. The voice class codec global configuration command allows you to define the voice class that contains the codec selection order. Then you use the voice-class codec dial-peer configuration command to apply the class to individual dial peers.

You can configure more than one voice class codec list for your network. The codec lists should be configured and applied to one or more dial peers based on what codecs (and the order) you want supported for the dial peers. You need to define selection order if you want more than one codec supported for a given dial peer.

To configure codec selection order, perform the tasks described in the following sections:

Creating a Voice Class to Define Codec Selection Order

Applying Codec Selection Order to a VoIP Dial Peer

Creating a Voice Class to Define Codec Selection Order

The order of preference for selecting a codec when the router negotiates with a destination router must be set.

SUMMARY STEPS

1. enable

2. configure terminal

3. voice class codec tag

4. codec preference value codec-type [bytes payload-size]

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

voice class codec tag

Example:

Router(config)# voice class codec 99

Enters voice-class configuration mode and assigns an identification tag number for a codec voice class. The range for the tag argument is from 1 to 10000, and the value of the tag argument must be unique on the router.

Step 4 

codec preference value codec-type [bytes payload-size]

Example:

Router(config-voice-class)# codec preference 1 g711alaw

Specifies a list of preferred codecs to use on a dial peer. Repeat this command to specify the preferred selection order for additional codecs, if required.

Applying Codec Selection Order to a VoIP Dial Peer

To apply voice-class codec attributes to a VoIP dial peer, perform the following steps:

SUMMARY STEPS

1. enable

2. configure terminal

3. dial-peer voice tag voip

4. voice-class codec tag

5. exit

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

dial-peer voice tag voip

Example:

Router(config)# dial-peer voice 16 voip

Defines a VoIP dial peer and enters dial-peer configuration mode.

The tag argument value is a number that identifies the dial peer and must be unique on the router.

Step 4 

voice-class codec tag

Example:

Router(config-dial-peer)# voice-class codec 99

Assigns a previously configured codec selection preference list (codec voice class) to a VoIP dial peer. The configured codec selection is the voice class that you created in "Creating a Voice Class to Define Codec Selection Order" section.The value of the tag argument maps to the tag number created using the voice class codec global configuration command.

The voice-class command in dial-peer configuration mode is entered with a hyphen. The voice class command in global configuration mode is entered without the hyphen.

Step 5 

exit

Example:

Router(config-dial-peer)# exit

Exits dial-peer configuration mode.


Note The procedures above create a voice class. For the complete dial-peer configuration procedure, refer to the Cisco IOS Voice, Video, and Fax Configuration Guide, Release 12.2.


Monitoring SIP Support for Media Forking

To monitor codec selection order, perform the tasks described in the following sections:

Verifying Codec Complexity Settings

Verifying Network Dial Peers

Verifying Media Forking on SIP Calls

Verifying Codec Complexity Settings

On a Cisco 2600 series router, Cisco 3600 series router, Cisco 37xx router, or a Cisco 7200 series router, the codec complexity can be verified by entering the show running-config command, which displays the current voice-card setting. If medium-complexity is specified, the codec complexity setting is not displayed. If high-complexity is specified, the setting codec complexity high is displayed. The following example shows an excerpt from the command output if high-complexity has been specified:

Building configuration...

Current configuration : 1864 bytes
!
version 12.2
service timestamps debug datetime msec
service timestamps log uptime
no service password-encryption
!
!
memory-size iomem 10
voice-card 1
 codec complexity high
!
ip subnet-zero

Note For the Cisco AS5300 access server, codec complexity is dependant on what VCWare image is loaded on the voice feature card (VFC).


The following example shows an excerpt from the show voice dsp command, which displays the current status of all DSP voice channels, including codecs:

Router# show voice dsp

DSP#0: state IN SERVICE, 2 channels allocated
channel#0: voice port 1/0, codec G711 ulaw, state UP
channel#1: voice port 1/1, codec G711 ulaw, state UP
DSP#1: state IN SERVICE, 2 channels allocated
channel#0: voice port 2/0, codec G711 ulaw, state UP
channel#1: voice port 2/1, codec G711 ulaw, state UP
DSP#2: state RESET, 0 channels allocated

Verifying Network Dial Peers

Follow the procedure below to verify dial-peer configuration. To learn more about these commands, refer to the Cisco IOS Voice, Video, and Fax Configuration Guide, Release 12.2, or the Cisco IOS Voice, Video, and Fax Command Reference, Release 12.2.

To verify the network dial peers, enter the following command in privileged EXEC mode:

Router# show dial-peer voice sum 

dial-peer hunt 0 
AD PRE PASS 
TAG TYPE MIN OPER PREFIX DEST-PATTERN FER THRU SESS-TARGET PORT 
110 voip up up    555110. 0 syst ipv4:172.18.195.49 
210 voip up up    555330. 0 syst ipv4:172.18.195.49 
200 pots up up    5553300 0 2/0/1 
101 pots up up    5551100 0 2/0/0 
366 voip up up    366.... 0 syst ipv4:172.18.195.49 

Verifying Media Forking on SIP Calls

The following example shows the show sip-ua calls command. This command is used to display the user agent client (UAC) and user agent server (UAS) information on SIP calls. It includes information about each media stream, up to three media streams if it is a media-forked call. It is useful in debugging, because it shows if an active call is forked.

To verify the UAC and UAS information on SIP calls, enter the following command in privileged EXEC mode:

Router# show sip-ua calls

SIP UAC CALL INFO

Call 1 
SIP Call ID : 515205D4-20B711D6-8015FF77-1973C402@172.18.195.49 
 State of the call : STATE_ACTIVE (6) 
 Substate of the call : SUBSTATE_NONE (0) 
 Calling Number : 555 0200 
 Called Number : 5551101 
 Bit Flags : 0x12120030 0x220000 
 Source IP Address (Sig ): 172.18.195.49 
 Destn SIP Req Addr:Port : 172.18.207.18:5063 
 Destn SIP Resp Addr:Port: 172.18.207.18:5063 
 Destination Name : 172.18.207.18 
 Number of Media Streams : 4 
 Number of Active Streams: 3 
 RTP Fork Object : 0x637C7B60 
 Media Stream 1 
  State of the stream : STREAM_ACTIVE 
  Stream Call ID : 28 
  Stream Type : voice-only (0) 
  Negotiated Codec : g711ulaw (160 bytes) 
  Codec Payload Type : 0 
  Negotiated Dtmf-relay : inband-voice 
  Dtmf-relay Payload Type : 0 
  Media Source IP Addr:Port: 172.18.195.49:19444 
  Media Dest IP Addr:Port : 172.18.193.190:16890 
 Media Stream 2 
  State of the stream : STREAM_ACTIVE 
  Stream Call ID : 33 
  Stream Type : voice+dtmf (1) 
  Negotiated Codec : g711ulaw (160 bytes) 
  Codec Payload Type : 0 
  Negotiated Dtmf-relay : rtp-nte 
  Dtmf-relay Payload Type : 101 
  Media Source IP Addr:Port: 172.18.195.49:18928 
  Media Dest IP Addr:Port : 172.18.195.73:18246 
 Media Stream 3 
  State of the stream : STREAM_ACTIVE 
  Stream Call ID : 34 
  Stream Type : dtmf-only (2) 
  Negotiated Codec : No Codec (0 bytes) 
  Codec Payload Type : -1 (None) 
  Negotiated Dtmf-relay : rtp-nte 
  Dtmf-relay Payload Type : 101 
  Media Source IP Addr:Port: 172.18.195.49:18428 
  Media Dest IP Addr:Port : 172.16.123.99:34463 
 Media Stream 4 
  State of the stream : STREAM_DEAD 
  Stream Call ID : -1 
  Stream Type : dtmf-only (2) 
  Negotiated Codec : No Codec (0 bytes) 
  Codec Payload Type : -1 (None) 
  Negotiated Dtmf-relay : rtp-nte 
  Dtmf-relay Payload Type : 101 
  Media Source IP Addr:Port: 172.18.195.49:0 
  Media Dest IP Addr:Port : 172.16.123.99:0

 Number of UAC calls: 1

SIP UAS CALL INFO

 Number of UAS calls: 0

Troubleshooting SIP Support for Media Forking

To troubleshoot the SIP Support for Media Forking feature, perform the following steps:

Make sure that you can make a voice call.

If you are using codec types g726r16 or g726r24, use the debug voip rtp session named-event 101 command for DTMF-relay debugging.


Tip Be sure to append the argument 101 to the debug voip rtp session named-event command or the console screen will flood with messages and all calls will fail.


Use the debug ccsip all command to enable all SIP debugging capabilities, or use one of the following SIP debug commands:

debug ccsip calls

debug ccsip error

debug ccsip messages

debug ccsip states

In addition, the debug ccsip events command now displays only debugging information specifically related to SIP events. Media stream and SIP service provider interface (SPI) information is now reported in the debug ccsip media and debug ccsip info command output.

Configuration Examples for SIP Support for Media Forking

This section provides the following configuration examples:

SIP Network Using Media Forking Example

Edge Gateway Configuration Example

Party A Configuration Example

Party B Configuration Example

Party C Configuration Example

Party A Initial Call Setup Trace Example

Party B Initial Call Setup Trace Example

Party A Add Second Stream Trace Example

Party C Add Second Stream Trace Example


Note IP addresses and host names in these examples are fictitious.


SIP Network Using Media Forking Example

This section provides a configuration example for a sample SIP network that uses media forking. Figure 3 illustrates the sample network where Party A dials Party B (555-2201). The dial peer for Party B on the originating gateway points to the IP address of SIP_Tester, which is acting as the third-party call controller. The Invite message is sent to SIP_Tester, who then forwards it to Party B. The typical SIP protocol exchange takes place to set up the first stream of the call. The user information portion of the SIP URL for SIP_Tester is 9999, so the dial peers on Party B and Party C are configured with 9999.

SIP_Tester initiates the establishment of the second stream by sending an initial Invite message with no SDP to Party C. Party C rings the terminating phone and responds to SIP_Tester with cause code 183 and an SDP that advertises its media capability. When the terminating phone answers, Party C responds to SIP_Tester with a 200 OK. SIP_Tester creates a re-Invite message with two media lines (m-lines) and sends it to Party A, who creates the second stream to Party C. Party A responds with an ACK that contains its local media information in the SDP. SIP_Tester forwards the ACK with SDP to Party C. A forked call is established.

Figure 3 Sample SIP Network Using Media Forking

Edge Gateway Configuration Example

The edge gateway configuration is used to convert a Foreign Exchange Station (FXS) interface to a T1 interface. It is not involved in media forking or VoIP.

Building configuration...

Current configuration : 4455 bytes
!
version 12.2
no service single-slot-reload-enable
service timestamps debug datetime msec
service timestamps log uptime
no service password-encryption
!
!
logging rate-limit console 10 except errors
!
!
voice-card 1
!
ip subnet-zero
!
!
ip domain-name cisco.com
ip name-server 172.26.11.21
!
no ip dhcp-client network-discovery
isdn switch-type primary-dms100
isdn voice-call-failure 0
call rsvp-sync
!
!
!
controller T1 1/0
 framing esf
 linecode b8zs
 pri-group timeslots 1-24
!
controller T1 1/1
 framing esf
 linecode b8zs
 pri-group timeslots 1-24
!
!
interface Serial1/0:23
 no ip address
 no logging event link-status
 isdn switch-type primary-dms100
 isdn incoming-voice voice
 isdn T310 4000
 no cdp enable
!
interface Serial1/1:23
 no ip address
 no logging event link-status
 isdn switch-type primary-dms100
 isdn incoming-voice voice
 no fair-queue
 no cdp enable
!
interface FastEthernet3/0
 ip address 172.18.193.136 255.255.0.0
 duplex auto
 speed auto
!
ip classless
ip route 172.16.0.0 255.0.0.0 FastEthernet3/0
no ip http server
!
!
!
!
snmp-server packetsize 4096
snmp-server manager
!
voice-port 1/0:23
!
voice-port 1/1:23
!
voice-port 2/0/0
!
voice-port 2/0/1
!
voice-port 2/1/0
!
voice-port 2/1/1
!
dial-peer cor custom
!
!
!
dial-peer voice 5552 pots
 destination-pattern 5552...
 port 1/1:23
 prefix 5552
!
dial-peer voice 5555 pots
 destination-pattern 5555101
 port 2/0/1
!
!
line con 0
 exec-timeout 0 0
 transport preferred none
line aux 0
line vty 0 4
 exec-timeout 0 0
 password lab
 login
!
!
end

Party A Configuration Example

The following is the configuration for Party A.

Building configuration...

Current configuration : 1864 bytes
!
version 12.2
service timestamps debug datetime msec
service timestamps log uptime
no service password-encryption
!
!
memory-size iomem 10
voice-card 1
 codec complexity high
!
ip subnet-zero
!
!
ip domain-name cisco.com
ip name-server 172.26.11.21
!         
isdn switch-type primary-dms100
isdn voice-call-failure 0
!
!
voice service voip 
 sip
!
!
!
!
!
!
!
no voice hpi capture buffer
no voice hpi capture destination 
!
fax interface-type fax-mail
mta receive maximum-recipients 0
!
controller T1 1/0
 framing esf
 linecode b8zs
!
controller T1 1/1
 framing esf
 linecode b8zs
 pri-group timeslots 1-24
!
!
!
!
interface Ethernet0/0
 ip address 172.18.193.14 255.255.0.0
 half-duplex