DTMF Conversion Processing

Release S-CX6.3F1 provides a configurable SIP option to implement DTMF-to-RFC2833 tone translation. The current, default implementation, which performs well in most network topologies is shown below.

The DTMF Conversion Processing call flow is described below.

When the Oracle® Enterprise Session Border Controller receives an INFO DTMF request, the SIP process determines whether or not it needs to perform DTMF-to-RFC2833 translation. If translation is required, the process forwards the DTMF to the 2833 convert process for translation and transmission to the recipient. Immediately after off-loading the DTMF, the SIP process sends a 200 OK response for the INFO. As shown in the figure, the 2833 convert process generates a number of RFC2833 packets to represent received DTMF digits.

Specifically, the 2833 convert process generates one RFC 2833 packet every 50 milliseconds for the duration of the DTMF digit, whose length is specified in the INFO request, and two retransmits of the last packet (known as the end packet) 50 milliseconds apart.

Consequently, the time interval between the 200 OK and the actual transmission of the RFC 2833 translation is the sum of the DTMF duration and 100 ms.

Note:

This time interval can be shortened to 100 ms by enabling the rfc2833-end-pkts-only-for-non-sig parameter in media-manger which results in SD only generating the last packet and its two retransmits.

The early 200 OK allows the endpoint to send the next DTMF digit before the SD has sent all the RFC2833 packets, resulting in the next digit being queued internally by the 2833 convert process before being sent.

A problem arises if the SIP process receives a BYE request from the DTMF originator while queued digits are awaiting translation and transmission. In such an event, the SIP process immediately forwards the BYE request to the recipient, ending the session with DTMF digits awaiting translation and transmission.

An alternative DTMF conversion model provides for a feedback mechanism from the 2833 convert process to the SIP process. With this model enabled, the SIP process buffers a received BYE until it obtains confirmation that all queued DTMF digits have been translated and transmitted. Only after obtaining confirmation, does it forward the BYE to terminate the session.

This processing model is enable by a SIP option, sync-bye-and-2833, and requires that rfc2833-mode parameter on the egress interfaces is NOT set to dual , any value other than dual , is supported.

  1. From superuser mode, use the following command sequence to access sip-config configuration mode.
    ORACLE# configure terminal
    ORACLE(configure)# session-router
    ORACLE(session-router)# sip-config
    ORACLE(sip-config)#
  2. Use the SIP option sync-bye-and-2833 to delay BYE processing until DTMF-to-RFC2833 translation has been completed.
    ORACLE(sip-config)# options +sync-bye-and-2833=”enabled”
    ORACLE(sip-config)#
  3. Use the done and exit commands to complete configuration.
    ORACLE(sip-config)# done
    ORACLE(sip-config)# exit
    ORACLE(session-router)#