The Dialogic® Brooktrout® Fax SDK Release 6.10 is the latest Brooktrout development kit providing feature rich capabilities to our partners. We’ve added some new features that will be quite useful, and I will discuss a couple of them on what they do and why they can help you.
The first new feature in SDK 6.10 I’ll discuss is the ability to for the Brooktrout SR140 software to detect incoming RFC 2833 DTMF digits. (RFC 2833 has actually been superseded by RFC 4733 but the term “RFC 2833” is still commonly used.) The use of RFC 2833 digits has become fairly common.
RFC 2833 digits are DTMF that arrive out of band. That means that they are not audible.
You can think of it like this. If I were to say to you “one…two…three…”, your ears would hear the sound of my voice and your brain would translate those sounds into the numbers that I said. This analogy is similar to when in-band digits are send on an IP session. You can hear the digits. They are audible.
Now, instead of saying words to you, I hand you a piece of paper that has “one”, “two”, and “three” written on it. You would now be using your eyes to gather the communicated information. This is like RFC 2833 digits. They are out of band so you cannot hear them but you know what they are via a different means.
So what does one need to do to use this feature? Two things.
First, we have implemented a new parameter in callctrl.cfg called “rfc_2833_enabled”. This parameter goes into the [host_module.x/rtp] section, and when you set it to true (default is false), the SR140’s SIP messages will have an entry indicating that it supports RFC 2833. Note that “rfc_2833_enabled” is not available to be set from Configtool, so you would need to add it yourself.
Second, in order to detect any DTMF digits, whether in-band or out of band, your application needs to turn on tone detection with the BfvToneDetectEnable API function. This API function takes a parameter called decode_flag that specifies what kind of tones you want to detect. Things like detecting 12 digits (0-9,*,#) vs. 16 digits (0-9,*,#, A,B,C,D) and whether you want to report the tone at its beginning or its end. Values are OR’d together to specify the digits to detect. To detect RFC 2833 digits, you would OR “RTP_EVENTS” into decode_flag. Our tones.c sample application provides an example of how this is done.
An important thing to mention is that when you set rfc_2833_enabled to true, you are telling the gateway or SIP trunk that you want to use RFC 2833 digits. So that is what it will send (assuming it too supports RFC 2833) and you need to make sure you use the proper settings with BfvToneDetectEnable. The Brooktrout SR140 software cannot be set up to detect both in-band and out of band tones at the same time. You would choose one or the other.