DTMF Relay

The DTMF Relay feature allows CUBE to send dual-tone multi-frequency (DTMF) digits over IP.

This chapter talks about DTMF tones, DTMF relay mechanisms, how to configure DTMF relays, and interoperability and priority with multiple relay methods.

Feature Information for DTMF Relay

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to https://cfnng.cisco.com/. An account on Cisco.com is not required.
Table 1. Feature Information for DTMF Relay

Feature Name

Releases

Feature Information

DTMF Relay

Cisco IOS Release 12.1(2)T

Cisco IOS XE 2.1

The DTMF relay feature allows CUBE to send DTMF digits over IP.

The dtmf-relay command was added.

Support for sip-info to rtp-nte DTMF relay mechanism for SIP-SIP calls

Cisco IOS XE Everest 16.6.1

This feature adds support for sip-info to rtp-nte DTMF relay mechanism for SIP-SIP calls.

Information About DTMF Relay

DTMF Tones

DTMF tones are used during a call to signal to a far-end device; these signals may be for navigating a menu system, entering data, or for other types of manipulation. They are processed differently from the DTMF tones that are sent during the call setup as part of the call control. TDM interfaces on Cisco devices support DTMF by default. Cisco VoIP dial-peers do not support the DTMF relay by default and to enable, requires DTMF relay capabilities.


Note


DTMF tones that are sent by phones do not traverse the CUBE.


DTMF Relay

Dual-tone multifrequency (DTMF) relay is the mechanism for sending DTMF digits over IP. The VoIP dial peer can pass the DTMF digits either in the band or out of band.

In-band DTMF-Relay passes the DTMF digits using the RTP media stream. It uses a special payload type identifier in the RTP header to distinguish DTMF digits from actual voice communication. This method is more likely to work on lossless codecs, such as G.711.


Note


The main advantage of DTMF relay is that in-band DTMF relay sends low-bandwidth codecs such as the G.729 and G.723 with greater fidelity. Without the use of DTMF relay, calls established with low-bandwidth codecs has trouble accessing automated DTMF-based systems. For example, voicemail, menu-based Automatic Call Distributor (ACD) systems, and automated banking systems.

Out-of-band DTMF-Relay passes DTMF digits using a signaling protocol (SIP or H.323) instead of using the RTP media stream.

The VoIP compressed code causes the loss of integrity of the DTMF digits. However, the DTMF relay prevents the loss of integrity of DTMF digits. The relayed DTMF regenerates transparently on the peer side.

Figure 1. DTMF Relay Mechanism

The following lists the DTMF relay mechanisms that support the VoIP dial-peers based on the configured keywords. The DTMF relay mechanism can be either out-of-band (H.323 or SIP) or in-band (RTP).

  • h245-alphanumeric and h245-signal —These two methods are available only on H.323 dial peers. It is an out-of-band DTMF relay mechanism that transports the DTMF signals using H.245, which is the media control protocol of the H.323 protocol suite.

    The H245-signal method carries more information about the DTMF event (such as its actual duration) than the H245-Alphanumeric method. It addresses a potential problem with the alphanumeric method when interworking with other vendors’ systems.

  • sip-notify —This method is available on the SIP dial peers only. It is a Cisco proprietary out-of-band DTMF relay mechanism that transports DTMF signals using SIP-Notify message. The SIP Call-Info header indicates the use of the SIP-Notify DTMF relay mechanism. Acknowledging the message with a 18x or 200 response message containing a similar SIP Call-Info header.

    The Call-Info header for a NOTIFY-based out-of-band relay is as follows:

    Call-Info: <sip: address>; method="NOTIFY;Event=telephone-event;Duration=msec"

    DTMF relay digits are a 4 bytes in binary encoded format.

    The mechanism is useful for communicating with SCCP IP phones that do not support in-band DTMF digits and analog phones that are attached to analog voice ports (FXS) on the router.

    If multiple DTMF relay mechanisms enable and negotiate successfully on a SIP dial peer, NOTIFY-based out-of-band DTMF relay takes precedence.

  • sip-kpml —This method is available only on SIP dial peers. The RFC 4730 defines the out-of-band DTMF relay mechanism to register the DTMF signals using the SIP-Subscribe messages. It transports the DTMF signals using the SIP-Notify messages containing an XML-encoded body. This method is calked Key Press Markup Language.

    If you configure KPML on the dial peer, the gateway sends INVITE messages with KPML in the Allow-Events header.

    A registered SIP endpoint to Cisco Unified Communications Manager or Cisco Unified Communications Manager Express uses this method. This method is useful for non-conferencing calls and for interoperability between SIP products and SIP phones.

    If you configure rtp-nte, sip-notify, and sip-kmpl, the outgoing INVITE contains an SDP with a rtp-nte payload, a SIP Call-Info header, and an Allow-Events header with KPML.

    The following SIP-Notify message displays after the subscription. The endpoints transmit digits using SIP-Notify messages with KPML events through XML. The following example transmits, the digit “1”:

    NOTIFY  sip:192.168.105.25:5060 SIP/2.0
    Event: kpml 
    <?xml version="1.0" encoding="UTF-8"?>
    <kpml-response version="1.0" code="200" text="OK" digits="1" tag="dtmf"/> 
  • sip-info —The sip-info method is available only on SIP dial peers. It is an out-of-band DTMF relay mechanism that registers the DTMF signals using SIP-Info messages. The body of the SIP message consists of signaling information and uses the Content-Type application/dtmf-relay.

    The method enables for SIP dial peers, and invokes on receiving a SIP INFO message with DTMF relay content.

    The gateway receives the following sample SIP INFO message with specifics about the DTMF tone. The combination of the From, To, and Call-ID headers identifies the call leg. The signal and duration headers specify the digit, in this case 1, and duration, 160 milliseconds in the example, for DTMF tone play.

    INFO sip:2143302100@172.17.2.33 SIP/2.0
    Via: SIP/2.0/UDP 172.80.2.100:5060
    From: <sip:9724401003@172.80.2.100>;tag=43
    To: <sip:2143302100@172.17.2.33>;tag=9753.0207
    Call-ID: 984072_15401962@172.80.2.100
    CSeq: 25634 INFO
    Supported: 100rel
    Supported: timer
    Content-Length: 26
    Content-Type: application/dtmf-relay
    Signal= 1
    Duration= 160
  • rtp-nte —Real-Time Transport Protocol (RTP) Named Telephone Events (NTE). The RFC2833 defines the in-band DTMF relay mechanism. RFC2833 defines the formats of NTE-RTP packets to transport DTMF digits, hookflash, and other telephony events between two peer endpoints. Using the RTP stream, sends the DTMF tones as packet data after establishing call media. It is differentiated from the audio by the RTP payload type field, preventing compression of DTMF-based RTP packets. For example, sending the audio of a call on a session with an RTP payload type identifies it as G.711 data. Similarly sending the DTMF packets with an RTP payload type identifies them as NTEs. The consumer of the stream utilizes the G.711 packets and the NTE packets separately.

    The SIP NTE DTMF relay feature provides a reliable digit relay between Cisco VoIP gateways on using a low-bandwidth codec.


    Note


    By default, Cisco device uses Payload type 96 and 97 for fax. A third-party device may use Payload type 96 and 97 for DTMF. In such scenarios, we recommend you to perform one of the following:

    • Change the Payload type for fax in both incoming and outgoing dial-peers using rtp payload-type command

    • Use assymetric payload dtmf command

    For more information on configuring rtp payload-type and assymetric payload DTMF, see Dynamic Payload Type Interworking for DTMF and Codec Packets for SIP-to-SIP Calls.


    Payload types and attributes of this method negotiate between the two ends at call setup. They use the Session Description Protocol (SDP) within the body section of the SIP message.


    Note


    This method is not similar to the “Voice in-band audio/G711” transport. The latter is just the audible tones being passed as normal audio without any relay signaling method being “aware” or involved in the process. It is plain audio passing through end-to-end using the G711Ulaw/Alaw codec.
  • cisco-rtp —It is an in-band DTMF relay mechanism that is Cisco proprietary, where the DTMF digits are encoded differently from the audio and are identified as Payload type 121. The DTMF digits are part of the RTP data stream and distinguished from the audio by the RTP payload type field. Cisco Unified Communications Manager does not support this method.


    Note


    The cisco-rtp operates only between two Cisco 2600 series or Cisco 3600 series devices. Otherwise, the DTMF relay feature does not function, and the gateway sends DTMF tones in-band.
  • G711 audio —It is an in-band DTMF relay mechanism that is enabled by default and requires no configuration. Digits are transmitted within the audio of the phone conversation, that is, it is audible to the conversation partners; therefore, only uncompressed codecs like g711 Alaw or mu-law can carry in-band DTMF reliably. Female voices sometimes trigger the recognition of a DTMF tone.

    The DTMF digits pass like the rest of your voice as normal audio tones with no special coding or markers. It uses the same codec as your voice, generated by your phone.

Configuring DTMF Relays

You can configure the DTMF relay using the dtmf-relay method1 [...[method6]] command in the VoIP dial peer.

Perform DTMF negotiation based on the matching inbound dial-peer configuration.

Use any of the following variablesmethod :

  • h245-alphanumeric

  • h245-signal

  • sip-notify

  • sip-kpml

  • sip-info

  • rtp-nte [digit-drop]

  • ciso-rtp

Configure multiple DTMF methods on CUBE simultaneously in order to minimize MTP requirements. If you configure more than one out-of-band DTMF method, preference goes from highest to lowest in the order of configuration. If an endpoint does not support any of the configured DTMF relay mechanisms on CUBE, an MTP or transcoder is required.

The following table lists the supported DTMF relay types on a SIP and H.322 gateway.

Table 2. Supported H.323 and SIP DTMF Relay Methods
H.323 Gateway SIP Gateway
In-band cisco-rtp, rtp-nte rtp-nte
Out-of-band h245-alphanumeric, h245-signal sip-notify, sip-kpml, sip-info

Interoperability and Priority with Multiple DTMF Relay Methods

  • CUBE negotiates both rtp-nte and sip-kmpl if both support and advertise in the incoming INVITE. However, If CUBE does not initiate sip-kmpl , CUBE relies on the rtp-nte DTMF method to receive digits and a SUBSCRIBE. CUBE still accepts SUBSCRIBEs for KPML. It prevents double-digit reporting problems at CUBE.

  • CUBE negotiates to one of the following:

    • cisco-rtp

    • rtp-nte

    • rtp-nte and kpml

    • kpml

    • sip-notify

  • If you configure rtp-nte, sip-notify, and sip-kpml, the outgoing INVITE contains a SIP Call-Info header, an Allow-Events header with KPML, and an SDP with rtp-nte payload.

  • If you configure more than one out-of-band DTMF method, preference goes from highest to lowest in the order of configuration.

  • CUBE selects DTMF relay mechanisms using the following priority:

    • sip-notify or sip-kpml (highest priority)

    • rtp-nte

    • None— Send DTMF in-band

    H.323 gateways select DTMF relay mechanisms using the following priority:

    • cisco-rtp

    • h245-signal

    • h245-alphanumeric

    • rtp-nte

    • None— Send DTMF in-band

DTMF Interoperability Table

This table provides the DTMF interoperability information between various DTMF relay types in different call flow scenarios. For instance, refer table 3 if you must configure sip-kpml on an inbound dial peer and h245-signaling on an outbound dial peer in an RTP-RTP Flow through configuration. The table shows that the combination supports (as image information is present) the required image IOS 12.4(15)T or IOS XE or above. The following are the call scenarios provided:

  • RTP-RTP Flow-Through

  • RTP-RTP with transcoder Flow-Through

  • RTP-RTP Flow Around

  • RTP-RTP with high-density transcoder Flow Through

  • SRTP-RTP Flow Through

Table 3. RTP-RTP Flow-Through

Outbound dial-peer protocol

H.323

SIP In-band

Inbound dial-peer protocol

DTMF Relay Type h245- alphanumeric h245- signal Rtp-nte Rtp-nte Sip-kpml Sip- notify Sip-info Voice in-band (G.711)

H.323

h245-alpha numeric

Supported

Supported

Supported

Supported

Supported

h245-signal

Supported

Supported

Supported

Supported

Supported

rtp-nte

Supported

Supported

Supported

Supported

Supported

Supported*

SIP

rtp-nte

Supported

Supported

Supported

Supported

Supported

Supported

Supported*

sip-kpml

Supported

Supported

Supported

Supported

sip-notify

Supported

Supported

Supported

Supported

Supported

sip-info

Supported

1

In-band

Voice in-band (G.711)

Supported*

Supported*

Supported

1 Supported from Cisco IOS XE Everest 16.6.1 onwards for calls that do not involve DSP resources.

* Media resource is required (Transcoder) for Cisco IOS and IOS XE versions.

Table 4. RTP-RTP with DSP Involved Flow-Through Calls

Outbound dial-peer protocol

H.323

SIP In-band

Inbound dial-peer protocol

DTMF Relay Type h245- alphanumeric h245- signal Rtp-nte Rtp-nte Sip-kpml Sip- notify Sip-info Voice in-band (G.711)

H.323

h245-alpha numeric

Supported

Supported

Supported

Supported

Supported

h245-signal

Supported

Supported

Supported

Supported

Supported

rtp-nte

Supported

Supported

Supported

Supported

Supported

SIP

rtp-nte

Supported

Supported

Supported

Supported

Supported

sip-kpml

Supported

Supported

Supported

sip-notify

Supported

Supported

Supported

Supported

sip-info

In-band

Voice in-band (G.711)

Supported

Supported

Table 5. RTP-RTP Flow Around

Outbound dial-peer protocol

H.323

SIP In-band

Inbound dial-peer protocol

DTMF Relay Type h245- alphanumeric h245- signal Rtp-nte Rtp-nte Sip-kpml Sip- notify Sip-info Voice in-band (G.711)

H.323

h245-alpha numeric

Supported

h245-signal

Supported

rtp-nte

Supported

Supported*

SIP

rtp-nte

Supported

Supported*

sip-kpml

Supported

sip-notify

Supported

sip-info

In-band

Voice in-band (G.711)

Supported*

Supported*

Supported

* Media resource is required (Transcoder) for Cisco IOS and IOS XE versions. CUBE falls back to flow-through mode if the media resource is unavailable.

Table 6. RTP-RTP with High-Density Transcoder Flow Through

Outbound dial-peer protocol

H.323

SIP In-band

Inbound dial-peer protocol

DTMF Relay Type h245- alphanumeric h245- signal Rtp-nte Rtp-nte Sip-kpml Sip- notify Sip-info Voice in-band (G.711)

H.323

h245-alpha numeric

Supported

Supported

Supported

h245-signal

Supported

Supported

Supported

rtp-nte

Supported

Supported

Supported

SIP

rtp-nte

Supported

Supported

Supported

Supported

sip-kpml

Supported

Supported

Supported

sip-notify

Supported

Supported

Supported

sip-info

In-band

Voice in-band (G.711)

Supported

Supported

Table 7. SRTP-RTP Flow Through

Outbound dial-peer protocol

H.323

SIP In-band

Inbound dial-peer protocol

DTMF Relay Type h245- alphanumeric h245- signal Rtp-nte Rtp-nte Sip-kpml Sip- notify Sip-info Voice in-band (G.711)

H.323

h245-alpha numeric
h245-signal
rtp-nte

SIP

rtp-nte

Supported

Supported

Supported

Supported

sip-kpml

Supported

Supported

sip-notify

Supported

Supported

sip-info

In-band

Voice in-band (G.711)

Supported

Supported


Note


For calls sent from an in-band (RTP-NTE) to an out-of band method, configure the dtmf-relay rtp-nte digit-drop command on the inbound dial-peer and the desired out-of-band method on the outgoing dial-peer. Otherwise, send the same digit in OOB and in-band, and gets interpreted as duplicate digits by the receiving end. On configuring the digit-drop option on the inbound leg, CUBE suppresses NTE packets and configures only relay digits using the OOB method on the outbound leg.


Verifying DTMF Relay

SUMMARY STEPS

  1. show sip-ua calls
  2. show sip-ua calls dtmf-relay sip-info
  3. show sip-ua history dtmf-relay kpml
  4. show sip-ua history dtmf-relay sip-notify

DETAILED STEPS


Step 1

show sip-ua calls

The following sample output shows that the DTMF method is SIP-KPML.

Example:


Device# show sip-ua calls

SIP UAC CALL INFO
Call 1
SIP Call ID                : 57633F68-2BE011D6-8013D46B-B4F9B5F6@172.18.193.251
   State of the call       : STATE_ACTIVE (7)
   Substate of the call    : SUBSTATE_NONE (0)
   Calling Number          : 
   Called Number           : 8888
   Bit Flags               : 0xD44018 0x100 0x0
   CC Call ID              : 6
   Source IP Address (Sig ): 192.0.2.1
   Destn SIP Req Addr:Port : 192.0.2.2:5060
   Destn SIP Resp Addr:Port: 192.0.2.3:5060
   Destination Name        : 192.0.2.4.250
   Number of Media Streams : 1
   Number of Active Streams: 1
   RTP Fork Object         : 0x0
   Media Mode              : flow-through
   Media Stream 1
     State of the stream      : STREAM_ACTIVE
     Stream Call ID           : 6
     Stream Type              : voice-only (0)
     Negotiated Codec         : g711ulaw (160 bytes)
	Codec Payload Type       : 0 
     Negotiated Dtmf-relay    : sip-kpml
     Dtmf-relay Payload Type  : 0
     Media Source IP Addr:Port: 192.0.2.5:17576
     Media Dest IP Addr:Port  : 192.0.2.6:17468
     Orig Media Dest IP Addr:Port : 0.0.0.0:0
   Number of SIP User Agent Client(UAC) calls: 1
SIP UAS CALL INFO
   Number of SIP User Agent Server(UAS) calls: 0

Step 2

show sip-ua calls dtmf-relay sip-info

The following sample output displays active SIP calls with INFO DTMF Relay mode.

Example:


Device# show sip-ua calls dtmf-relay sip-info

Total SIP call legs:2, User Agent Client:1, User Agent Server:1
SIP UAC CALL INFO
Call 1
SIP Call ID                : 9598A547-5C1311E2-8008F709-2470C996@172.27.161.122
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : sipp
   Called Number           : 3269011111
   CC Call ID              : 2
No.         Timestamp         Digit           Duration      
======================================================= 
0    01/12/2013 17:23:25.615  2                   250            
1    01/12/2013 17:23:25.967  5                   300            
2    01/12/2013 17:23:26.367  6                   300            

Call 2
SIP Call ID                : 1-29452@172.25.208.177
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : sipp
   Called Number           : 3269011111
   CC Call ID              : 1
No.         Timestamp         Digit           Duration      
======================================================= 
0    01/12/2013 17:23:25.615  2                   250            
1    01/12/2013 17:23:25.967  5                   300            
2    01/12/2013 17:23:26.367  6                   300            

   Number of SIP User Agent Client(UAC) calls: 2

SIP UAS CALL INFO
Call 1
SIP Call ID                : 1-29452@172.25.208.177
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : sipp
   Called Number           : 3269011111
   CC Call ID              : 1
No.         Timestamp         Digit           Duration      
======================================================= 
0    01/12/2013 17:23:25.615  2                   250            
1    01/12/2013 17:23:25.967  5                   300            
2    01/12/2013 17:23:26.367  6                   300            

Call 2
SIP Call ID                : 9598A547-5C1311E2-8008F709-2470C996@172.27.161.122
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : sipp
   Called Number           : 3269011111
   CC Call ID              : 2
No.         Timestamp         Digit           Duration      
======================================================= 
0    01/12/2013 17:23:25.615  2                   250            
1    01/12/2013 17:23:25.967  5                   300            
2    01/12/2013 17:23:26.367  6                   300            

   Number of SIP User Agent Server(UAS) calls: 2

Step 3

show sip-ua history dtmf-relay kpml

The following sample output displays SIP call history with KMPL DTMF Relay mode.

Example:


Device# show sip-ua history dtmf-relay kpml

Total SIP call legs:2, User Agent Client:1, User Agent Server:1
SIP UAC CALL INFO
Call 1
SIP Call ID                : D0498774-F01311E3-82A0DE9F-78C438FF@10.86.176.119
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 257
No.         Timestamp         Digit           Duration      
======================================================= 

Call 2
SIP Call ID                : 22BC36A5-F01411E3-81808A6A-5FE95113@10.86.176.142
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 256
No.         Timestamp         Digit           Duration      
======================================================= 

   Number of SIP User Agent Client(UAC) calls: 2

SIP UAS CALL INFO
Call 1
SIP Call ID                : 22BC36A5-F01411E3-81808A6A-5FE95113@10.86.176.142
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 256
No.         Timestamp         Digit           Duration      
======================================================= 

Call 2
SIP Call ID                : D0498774-F01311E3-82A0DE9F-78C438FF@10.86.176.119
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 257
No.         Timestamp         Digit           Duration      
======================================================= 

   Number of SIP User Agent Server(UAS) calls: 2

Step 4

show sip-ua history dtmf-relay sip-notify

The following sample output displays SIP call history with SIP Notify DTMF Relay mode.

Example:


Device# show sip-ua history dtmf-relay sip-notify

Total SIP call legs:2, User Agent Client:1, User Agent Server:1
SIP UAC CALL INFO
Call 1
SIP Call ID                : 29BB98C-F01311E3-8297DE9F-78C438FF@10.86.176.119
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 252
No.         Timestamp         Digit           Duration      
======================================================= 

Call 2
SIP Call ID                : 550E973B-F01311E3-817A8A6A-5FE95113@10.86.176.142
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 251
No.         Timestamp         Digit           Duration      
======================================================= 

   Number of SIP User Agent Client(UAC) calls: 2

SIP UAS CALL INFO
Call 1
SIP Call ID                : 550E973B-F01311E3-817A8A6A-5FE95113@10.86.176.142
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 251
No.         Timestamp         Digit           Duration      
======================================================= 

Call 2
SIP Call ID                : 29BB98C-F01311E3-8297DE9F-78C438FF@10.86.176.119
   State of the call       : STATE_ACTIVE (7)
   Calling Number          : 2017
   Called Number           : 1011
   CC Call ID              : 252
No.         Timestamp         Digit           Duration      
======================================================= 

   Number of SIP User Agent Server(UAS) calls: 2