Implementing Interworking DTMF

Cisco Unified Border Element (SP Edition) enables interworking between in-channel real-time transport protocol (RTP) signaling using the audio/telephone-event MIME type (RFC 2833) to and from out-of-band signaling using the SIP INFO or SIP NOTIFY method.

The Dual Tone Multifrequency (DTMF) Method Interworking and ACCEPT Header Handling feature introduces an adjacency setting that modifies the only auto detection behavior for INFO method.

Cisco Unified Border Element (SP Edition) was formerly known as Integrated Session Border Controller, and may be commonly referred to as the session border controller (SBC) in this document.

For a complete description of the commands used in this chapter, refer to the Cisco Unified Border Element (SP Edition) Command Reference: Unified Model at:

http://www.cisco.com/en/US/docs/ios/sbc/command/reference/sbcu_book.html

For information about all Cisco IOS commands, use the Command Lookup Tool at http://tools.cisco.com/Support/CLILookup or a Cisco IOS master commands list.

Feature History for Implementing Interworking DTMF on Cisco Unified Border Element (SP Edition)

 

Release
Modification

Cisco IOS XE Release 2.1

Interworking DTMF was introduced on the Cisco IOS XR.

Cisco IOS XE Release 2.4

Introduced support for DTMF Relay Using SIP NOTIFY Messages on the unified model.

Cisco IOS XE Release 3.1S

The DTMF Method Interworking and ACCEPT Header Handling feature support was added to Cisco ASR 1000 Series Router.

Contents

This chapter contains the following sections:

Restrictions

The following are restrictions of the Implementing Interworking DTMF feature:

  • When the SBC inspects the accept header in the endpoint’s messages, the absence of the accept header means “application/sdp” is supported.
  • When audio transcoding is in operation, the SBC does not support sending and receiving RFC 2833 in-band packets to and from the SBC and interworking RFC 2833 packets with out-of-band SIP INFO or SIP NOTIFY Relay messages on the other call leg.
  • The SBC does not support the scenario where a caller only supports sending RFC 2833 in-band packets to a callee that supports both RFC 2833 and out-of-band SIP INFO and SIP NOTIFY Relay. In this case, the DTMF digits received out-of-band on the callee side is not able to be translated into RFC 2833 packets on the caller side.
  • The SBC does not support configurable outbound RFC 2833 payload type for SIP to SIP calls when the inbound call side does not support RFC 2833.

Prerequisites—Implementing Interworking DTMF

The following prerequisites are required to implement interworking DTMF:

Before implementing interworking DTMF, Cisco Unified Border Element (SP Edition) must already be configured.

Information About Interworking DTMF

Cisco Unified Border Element (SP Edition) automatically selects the best DTMF Interworking technique based on the combined capabilities of the endpoints in a call. See Figure 13-1 for a sample call flow.

The SBC supports the signaling of DTMF using the following modes:

  • Media-stream signalling using RTP payload (RFC2833)
  • INFO-based DTMF relay (RFC 2976)
  • NOTIFY-based DTMF relay

The SBC can interwork between any of these modes using the most performance efficient methods.

DTMF interworking for RFC 2833 in-band packets when transcoding is not supported.

Inspection of the arriving INVITE helps determine the caller’s support for DTMF interworking.

To determine whether the caller supports the INFO method, the SBC inspects the Allow header for the INFO method if the Allow header is present. However, the INVITE must also contain an Accept header that contains application/dtmf-relay for the SBC to detect support for DTMF in the INFO method.

Support for the unsolicited NOTIFY method can be determined by the presence of a Call-Info header indicating the NOTIFY method.

An INFO or NOTIFY message is expected to carry a single DTMF tone with an optional duration. If no duration is specified, the default is 250 milliseconds (ms) for an INFO message and 200 ms for a NOTIFY message.

If the SBC determines that either the INFO method or the NOTIFY method for DTMF is supported by the originator, support for both INFO and NOTIFY methods are advertised by the presence of Call-Info and Accept headers on the outbound call. Interworking between these methods is efficient and improves the probability of finding a suitable method for DTMF interworking.

In the case of interworking of DTMF relay using Network Terminating Equipment (NTE) (RFC 2833) and out-of-band DTMF using SIP INFO or SIP NOTIFY, Cisco Unified Border Element (SP Edition) intercepts the NTE packets with DTMF digits and converts them into the appropriate signaling methods through the Route Processor (RP). In the reverse direction, the RP instructs the Cisco Unified Border Element (SP Edition) to inject NTE DTMF packets into an RTP stream.

DTMF Packet Generation

When the NTE packets are to be inserted in the middle of a stream that is already sending RTP voice packets, then the NTE packets will replace the RTP voice packets in a one-to-one manner so that subsequent voice packets will not need to update their RTP sequence numbers.

DTMF Packet Detection

To detect DTMF NTE packets, Cisco Unified Border Element (SP Edition) looks at the payload type of every RTP packet and compares it with that of NTE. In case of a match, Cisco Unified Border Element (SP Edition) looks at the event number to determine that it is a DTMF digit. Cisco Unified Border Element (SP Edition) then copies these packets to the RP. Figure 13-1 illustrates this process.

Figure 13-1 Sample Call Flow with INFO (RFC-2833) DTMF Interworking

Implementing Interworking DTMF

The following section describes how to configure the default duration of a DTMF event.

Note that Cisco Unified Border Element (SP Edition) may require you to configure header Allow, header Accept, and method INFO as shown below:

sbc test
sbe
sip header-profile default
header Allow
header Accept
sip method-profile default
method INFO

Configuring Default Duration of a DTMF Event

This task configures the default duration of a DTMF event.

SUMMARY STEPS

1. configure

2. sbc sbc-name

3. sbe

4. dtmf-duration duration

DETAILED STEPS

 

Command or Action
Purpose

Step 1

configure terminal

 

Router# configure terminal

Enables global configuration mode.

Step 2

sbc sbc-name

 

Router(config)# sbc mysbc dbe

Creates the SBC service on the SBC called “mysbc” and enters into SBC configuration mode

Use the sbc-name argument to define the name of the service.

Step 3

sbe

 

Router(config-sbc)# sbe

Enters the mode of the signaling border element (SBE) function of the SBC.

Step 4

dtmf-duration duration

 

Router(config-sbc-vdbe)# dtmf-duration 300

Configures the default duration of a DTMF event in milliseconds.

DTMF Relay Using SIP NOTIFY Messages

In Cisco IOS XE Release 2.4, Cisco Unified Border Element (SP Edition) adds support for DTMF Relay Using SIP NOTIFY Messages. This is an out-of-band procedure for DTMF relay and is sometimes referred to as NOTIFY-based DTMF Relay.

DTMF tones are the tones that are generated when a telephone key is pressed on a touchtone phone. Sometimes the called endpoint needs to hear those tones, such as when you enter digits during the call in response to a menu. However, low-bandwidth codecs can distort the sound. DTMF relay allows that tone information to be reliably passed from one endpoint to the other. By default, SIP uses in-band signaling, sending the DTMF information in the voice stream. If no DTMF relay method is configured, the tones are sent in-band. However, you can configure DTMF relay to use SIP NOTIFY messages for transmitting DTMF tone information.

Cisco Unified Border Element (SP Edition) supports two out-of-band procedures for DTMF relay. One uses SIP INFO methods, and the other uses SIP NOTIFY methods. The SIP INFO method sends DTMF digits in INFO messages. It is always enabled. When a gateway receives an INFO message containing DTMF relay information, it sends the corresponding tone.

SIP NOTIFY DTMF relay is negotiated by including a Call-Info field in the SIP INVITE and response messages, on a per-adjacency basis. This field indicates an ability to use NOTIFY for DTMF tones and the duration of each tone in milliseconds. When a DTMF tone is generated, the caller sends a NOTIFY message to the callee. When the callee receives the NOTIFY, it responds with SIP 200 OK and plays the DTMF tone.


Note For Cisco IOS XE Release 2.4 and later, this feature is supported in the unified model only.


You can configure a preferred SIP signaling DTMF transport method for endpoints on an adjacency. If Cisco Unified Border Element (SP Edition) has received DTMF information on a call and is sending it to an endpoint on the adjacency, Cisco Unified Border Element (SP Edition) uses a preferred DTMF method to send the information, provided the endpoint supports this method. You can set one of the following DTMF relay methods as the preferred method:

  • SIP NOTIFY DTMF Relay (default value)
  • SIP INFO DTMF Relay

Use the dtmf prefer sip [info | notify] command to configure the preferred relay method.

The default on the Cisco Unified Border Element (SP Edition) is the SIP-NOTIFY relay method. However, Cisco Unified Border Element (SP Edition) uses the RTP-NTE in-band DTMF relay method if the other side does not support SIP-NOTIFY. If no DTMF relay method is configured, the tones are sent in-band.

When SIP NOTIFY relay is enabled on an adjacency, then:

  • The SBC accepts in-call, out-of-subscription NOTIFY messages with a DTMF Payload. These messages are not required to contain a Subscription-State header.
  • The SBC accepts a Call-Info header in an INVITE message specifying a telephone-event that indicates support for SIP NOTIFY DTMF Relay.
  • Configure the NOTIFY interval. You need to configure the maximum interval in milliseconds that the SBC waits between NOTIFY messages for a single DTMF event.

In this case, the SBC has not received an inbound Call-Info header specifying the negotiated duration, so this value is used instead.

Use the dtmf sip notify interval command.

  • You can also configure a default duration. This specifies the duration in milliseconds that the SBC advertises on the outbound DTMF transport method if the inbound side of the call does not supply a duration.

Use the dtmf sip default duration command.

Configuring Default Duration of a SIP NOTIFY DTMF Relay Event

This task configures parameters for a SIP NOTIFY DTMF Relay:

SUMMARY STEPS

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. dtmf prefer sip {info | notify}

6. dtmf sip notify interval int_ms

7. dtmf sip default duration dur_ms

8. end

9. show sbc sbc-name sbe adjacencies adjacency-name detail

DETAILED STEPS

 

Command or Action
Purpose

Step 1

configure terminal

 

Router# configure terminal

Enables global configuration mode.

Step 2

sbc sbc-name

 
Router(config)# sbc mySBC

Creates the SBC service on the SBC and enters into SBC configuration mode.

Step 3

sbe

 

Router(config-sbc)# sbe

Enters the mode of the signaling border element (SBE) function of the SBC.

Step 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip

SoftSwitch

Configures an adjacency on the SBC and enters the mode of an SBE SIP adjacency.

Use the adjacency-name argument to define the name of the service.

Step 5

dtmf prefer sip {info | notify}

 

Router(config-sbc-sbe-adj)# dtmf prefer sip notify

(Optional) Configure SIP NOTIFY DTMF relay as the preferred DTMF transport method for endpoints on this adjacency. This is optional because SIP NOTIFY is the default on the SBC.

Step 6

dtmf sip notify interval int_ms

 

Router(config-sbc-sbe-adj)# dtmf sip notify 1000

(Optional) Configures the maximum interval in milliseconds that the SBC waits between NOTIFY messages for a single DTMF event.

int_ms is the duration in milliseconds (ms.) The range is 1 to 65535 ms. The default is 2000 ms.

Step 7

dtmf sip default duration dur_ms

 

Router(config-sbc-sbe-adj)# dtmf sip default duration 300

(Optional) Specifies the duration in milliseconds that the SBC advertises on the outbound DTMF transport method if the inbound side of the call does not supply a duration.

dur_ms is the duration in milliseconds (ms). The range is 1 to 65535 ms. The default is 200 ms.

Step 8

end

 

Router(config-sbc-sbe-adj)# end

Exits sip adjacency configuration mode and returns to Privileged EXEC mode.

Step 9

show sbc sbc-name sbe adjacencies adjacency-name detail

 

Router# show sbc mySBC sbe adjacencies SoftSwitch detail

Display all the fields in the specified SIP adjacency, including that SIP NOTIFY relay is enabled, the interval and default duration in milliseconds.

SIP NOTIFY Examples

The following example disables SIP NOTIFY relay for adjacency ADJ2 and configures SIP INFO as the preferred DTMF Relay method:

configure terminal
sbc mySbc
sbe
adj sip ADJ2
dtmf disable sip notify
dtmf prefer sip info
dtmf sip default duration 330

The following example displays all the fields in the SoftSwitch SIP adjacency, showing that the SIP NOTIFY relay method is enabled, and the interval and default duration in milliseconds:

router# show sbc mySBC sbe adjacencies SoftSwitch detail
SBC Service "mySBC"
Adjacency SoftSwitch (SIP)
Status: Attached
Signaling address: 100.100.100.100:5060, VRF Admin
Signaling-peer: 10.10.51.10:5060
Force next hop: No
Account:
Group: None
In header profile: Default
Out header profile: Default
In method profile: Default
Out method profile: Default
In UA option prof: Default
Out UA option prof: Default
In proxy opt prof: Default
Out proxy opt prof: Default
Priority set name: None
Local-id: None
Rewrite REGISTER: Off
Target address: None
Register Aggregate: Disabled
NAT Status: Auto Detect
Reg-min-expiry: 30 seconds
Fast-register: Enabled
Fast-register-int: 30 seconds
Authenticated mode: None
Authenticated realm: None
Auth. nonce life time: 300 seconds
IMS visited NetID: None
Inherit profile: Default
Force next hop: No
Home network Id: None
UnEncrypt key data: None
SIPI passthrough: No
Rewrite from domain: Yes
Rewrite to header: Yes
Media passthrough: No
Preferred transport: UDP
Hunting Triggers: Global Triggers
Redirect mode: Pass-through
Security: Untrusted
Outbound-flood-rate: None
Ping-enabled: No
Signaling Peer Status: Not Tested
DTMF SIP NOTIFY Relay: Enabled
DTMF SIP NOTIFY Interval: 1000 ms
DTMF SIP default duration: 300 ms
DTMF Preferred Method: SIP NOTIFY

DTMF Method Interworking and ACCEPT Header Handling

The SBC can be configured to perform the following functions to support the INFO method in any circumstance:

  • Automatically detect support for DTMF in INFO (default behavior).
  • Does not send DTMF in INFO, and rejects DTMF in INFO, if received.
  • Accepts that DTMF in INFO is supported, regardless of the indication in the Accept header.

Auto detection does not detect support for DTMF-based relay in the following events:

  • The Allow header contains the INFO method, but does not have the Accept header.
  • The Accept header is present, but does not contain the application/dtmf-relay information. Therefore, the SBC can be configured to assume support of DTMF in INFO.

Configuring DTMF Relay in INFO Message

By default, auto detection of support for DTMF-based relay in INFO message occurs, and therefore, no configuration is required. However, to override auto detection so that support for this method is always assumed, not considering the arriving INVITE message.

This section contains information about the following configurations:

Configuring SBC to Assume Support for INFO-Based DTMF Relay

This task configures parameters to always assume support for INFO-based DTMF relay.

SUMMARY STEPS

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. dtmf sip info always-supported

6. end

7. show sbc sbc-name sbe adjacencies adjacency-name detail

DETAILED STEPS

 

Command or Action
Purpose

Step 1

configure terminal

 

Router# configure terminal

Enables global configuration mode.

Step 2

sbc sbc-name

 
Router(config)# sbc mySBC

Creates the SBC service on the SBC and enters into SBC configuration mode.

Step 3

sbe

 

Router(config-sbc)# sbe

Enters the mode of the signaling border element (SBE) function of the SBC.

Step 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip

SoftSwitch

Configures an adjacency on the SBC and enters the mode of an SBE SIP adjacency.

Use the adjacency-name argument to define the name of the service.

Step 5

dtmf sip info always-supported

 

Router(config-sbc-sbe-adj)# dtmf sip info always-supported

(Optional) Assumes the INFO method as the preferred DTMF transport method for the endpoints on the adjacency.

Note Use the no dtmf sip info command to turn on auto detection of DTMF support.

Step 6

end

 

Router(config-sbc-sbe-adj)# end

Exits the SIP adjacency configuration mode and returns to privileged EXEC mode.

Step 7

show sbc sbc-name sbe adjacencies adjacency-name detail

 

Router# show sbc mySBC sbe adjacencies SoftSwitch detail

Displays all the fields in the specified SIP adjacency.

Configuring SBC to Disable INFO-Based DTMF Relay

This task configures parameters to permanently disable support for DTMF-based relay in INFO.

SUMMARY STEPS

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. dtmf disable sip info

6. end

7. show sbc sbc-name sbe adjacencies adjacency-name detail

DETAILED STEPS

 

Command or Action
Purpose

Step 1

configure terminal

 

Router# configure terminal

Enables global configuration mode.

Step 2

sbc sbc-name

 
Router(config)# sbc mySBC

Creates the SBC service on the SBC and enters into SBC configuration mode.

Step 3

sbe

 

Router(config-sbc)# sbe

Enters the mode of the signaling border element (SBE) function of the SBC.

Step 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip

SoftSwitch

Configures an adjacency on the SBC and enters the mode of an SBE SIP adjacency.

Use the adjacency-name argument to define the name of the service.

Step 5

dtmf disable sip info

 

Router(config-sbc-sbe-adj)# dtmf disable sip info

(Optional) Turns off the automatic detection of DTMF relay using the INFO method as the preferred DTMF transport method for the endpoints on the adjacency.

Note Use the no form of this command to turn on auto detection of DTMF relay.

Step 6

end

 

Router(config-sbc-sbe-adj)# end

Exits the SIP adjacency configuration mode and returns to privileged EXEC mode.

Step 7

show sbc sbc-name sbe adjacencies adjacency-name detail

 

Router# show sbc mySBC sbe adjacencies SoftSwitch detail

Displays all the fields in the specified SIP adjacency.

DTMF Relay Using SIP INFO Message Examples

The following example shows how to configure the SBC to always assume support for INFO-based DTMF relay:

configure terminal
sbc mySbc
sbe
adjacency sip adj1
dtmf sip info always-supported

The following example shows how to configure SBC to disable support for DTMF-based relay in INFO permanently:

configure terminal
sbc mySbc
sbe
adjacency sip adj1
dtmf disable sip info

The following example shows the output of the show sbc sbe adjacencies detail command. It also shows that the SBC is configured to always assume support for INFO-based DTMF relay:

Router# show sbc asr1k-sbc sbe adjacencies sipp-1 detail
SBC Service "asr1k-sbc"
Adjacency sipp-1 (SIP)
Status: Attached
Signaling address: 10.10.100.120:5080
IPsec server port: 0
Signaling-peer: 10.10.100.10:10000
Signaling-peer status: Not Tested
Signaling-peer priority: 2147483647
Signaling-peer switch: always
Peer status: Not Tested
Current peer index: 0
Force next hop: No
Force next hop select: Out-of-dialog
Admin Domain:
Account:
Group: None
In header profile: Default
Out header profile: Default
In method profile: Default
Out method profile: Default
Out error profile: Default
In body profile: None
Out body profile: None
In UA option prof: Default
Out UA option prof: Default
In proxy opt prof: Default
Out proxy opt prof: Default
Priority set name: None
Local-id: None
Rewrite REGISTER: Off
Register contact username: Rewrite
Target address: None
NAT Status: Auto Detect
Reg-min-expiry: 3000 seconds
Fast-register: Enabled
Fast-register-int: 30 seconds
SoftSwitch-shield: Disabled
Expires-header: add-not-present
Register aggregate: Disabled
Registration Required: Disabled
Register Out Interval: 0 seconds
Parse username params: Disabled
Supported timer insert:Disabled
Suppress Expires: Disabled
p-asserted-id header-value: not defined
p-assert-id assert: Disabled
Authenticated mode: None
Authenticated realm: None
Auth. nonce life time: 300 seconds
IMS visited NetID: None
Inherit profile: Default
Force next hop: No
Home network Id: None
UnEncrypt key data: None
SIPI passthrough: No
Passthrough headers:
Media passthrough: Yes
Incoming 100rel strip: No
Incoming 100rel supp: No
Out 100rel supp add: No
Out 100rel req add: No
Parse TGID parms: No
IP-FQDN inbound:
IP-FQDN outbound:
FQDN-IP inbound:
FQDN-IP outbound:
Outbound Flood Rate: None
Hunting Triggers: Global Triggers
Add transport=tls param: Disabled
Redirect mode: Pass-through
Security: Untrusted-Unencrypted
Privacy: Inherit-profile (default)
TLS mutual authentication: No
Ping: Disabled
Ping Interval: 32 seconds
Ping Life Time: 32 seconds
Ping Peer Fail Count: 3
Ping Trap sending: Enabled
Ping Suppression:
Ping Bad Response Code: 300-399
Ping Peer Status: Not Tested
Rewrite Request-uri: Disabled
Registration Monitor: Disabled
DTMF SIP INFO Relay: Always supported
DTMF SIP NOTIFY Relay: Enabled
DTMF SIP NOTIFY Interval: 2000
DTMF SIP default duration: 200
DTMF Preferred Method: SIP NOTIFY
Realm: None
Statistics setting: Summary
IMS RX: Disabled
IMS Rf: Enabled
IMS Nass: Disabled
IMS realm name:
PANI:
Warrant Match-Order: None
Media Bypass Max Out Data Length: 1000
Media Bypass Tag List: None