DTMF Detection
When an incoming call arrives at the Vodia PBX, caller may be prompted to press some digits to reach the final destination. Most of the modern VoIP systems/devices support RFC4733(obsoletes RFC2833) RTP events. Generally, this feature is negotiated in the SDP as part of the SIP signaling. Support for such feature is indicated by -
- a=rtpmap:101 telephone-event/8000 line in the incoming SDP.
- a=fmtp:101 0-16 line.
Note that the actual payload type and the format specific parameters can be different from above The default Vodia PBX installation takes care of most of the DTMF detection cases. But there may be cases where you find the PBX not detecting the DTMF digits. You can troubleshoot such an issue by following the below cases/examples.
Case 1
- Above mentioned line in the incoming SDP is present.
- Admin->Setting: Inband DTMF detection on Vodia PBX is Off
In this case, the inband DTMF detectors are turned off on the Vodia PBX. So it will rely on the fact that the remote device (phone/trunk) is sending DTMF as RTP events. But if the remote device sends the DTMF in-band (within the voice frequency range), then PBX will not detect those DTMF digits.
Case 2
- Above mentioned line in the incoming SDP is present.
- Admin->Setting: Inband DTMF detection on Vodia PBX is On
Even though the inband DTMF setting is On, Vodia PBX will turn off the detectors because the remote party can do the RTP events. So this case is similar to the previous one.
Case 3
- Above mentioned line in the incoming SDP is absent.
- Admin->Setting: Inband DTMF detection on Vodia PBX is On
In this scenario, Vodia PBX will have the inband DTMF detectors tuned on. So PBX can detect the voice-frequency DTMF (in-band) digits along with the RFC4733 RTP events.
Case 4
- Above mentioned line in the incoming SDP is absent.
- Admin->Setting: Inband DTMF detection on Vodia PBX is Off
In this scenario, Vodia PBX will detect only RFC4733 RTP events. It will not detect any voice-frequency DTMF (in-band) digits.
As you can see from the above cases, Vodia PBX will always detect RFC4733 RTP events. The voice-frequency DTMF (in-band) digits detection depends on the Vodia PBX setting and the incoming SDP.
Well, there is another method in the SIP world to send and receive DTMF digits. That method uses the SIP INFO messages. Even though it seems like an easy solution, it is not very practical. This is because the SIP INFO messages can be lost in the network (mainly on UDP) and it can be delayed which makes it not-so-realtime.
The voice-frequency DTMF (in-band) detection is not suitable for the compressed codec calls. It may work well only for the uncompressed codec calls.
So, the best case scenario for the DTMF digits is to use RFC4733.
Discussion on in-band and out-of-band
There is always some confusion around the use of terms in-band and out-of-band. In the traditional terms, RFC4733 RTP events & SIP INFO mechanism are out of band. This is because the DTMF digits are not transmitted in the voice-frequency range. But some folks call only SIP INFO mechanism is out-of-band transmission. This is because even RFC4733 RTP events are sent using the same port as the voice.
On Vodia PBX, the inband detection refers to the voice frequency DTMF digits.