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)
|
|
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:
sip header-profile default
sip method-profile default
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
|
|
|
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
|
|
|
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:
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
Adjacency SoftSwitch (SIP)
Signaling address: 100.100.100.100:5060, VRF Admin
Signaling-peer: 10.10.51.10:5060
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
Register Aggregate: Disabled
Reg-min-expiry: 30 seconds
Fast-register-int: 30 seconds
Authenticated realm: None
Auth. nonce life time: 300 seconds
Hunting Triggers: Global Triggers
Redirect mode: Pass-through
Outbound-flood-rate: None
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
|
|
|
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
|
|
|
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:
dtmf sip info always-supported
The following example shows how to configure SBC to disable support for DTMF-based relay in INFO permanently:
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
Signaling address: 10.10.100.120:5080
Signaling-peer: 10.10.100.10:10000
Signaling-peer status: Not Tested
Signaling-peer priority: 2147483647
Signaling-peer switch: always
Force next hop select: Out-of-dialog
In header profile: Default
Out header profile: Default
In method profile: Default
Out method profile: Default
Out error profile: Default
In UA option prof: Default
Out UA option prof: Default
In proxy opt prof: Default
Out proxy opt prof: Default
Register contact username: Rewrite
Reg-min-expiry: 3000 seconds
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 realm: None
Auth. nonce life time: 300 seconds
Incoming 100rel strip: No
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 Interval: 32 seconds
Ping Life Time: 32 seconds
Ping Trap sending: Enabled
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
Statistics setting: Summary
Warrant Match-Order: None
Media Bypass Max Out Data Length: 1000
Media Bypass Tag List: None