If you are looking for Jitsi Meet, the WebRTC compatible video conferencing product click here.

DTMF with RTP and G.729

GSoC Student: Romain Philibert - France
Primary Mentor: Lubomir Marinov - Bulgaria

Project Requirements

First term:

  1. Develop a JMF codec for g.729
  2. Integrate the codec in SIP Communicator
  3. Implement a way that would allow users to download (via http) and install the codec after SIP Communicator has been installed

Second term:

  1. Design interfaces in the media service that allow sending DTMF through a call session (or extend the Call Session interface)
  2. Implement the above interfaces in the media service
  3. Add configuration options to the SIP protocol provider that allow selecting a DTMF transport (i.e. SIP INFO or RTP)
  4. Implement the corresponding support code in OperationSetDtmfSipImpl
  5. Add UI necessary in the SIP Account wizard that would allow choosing between the supported DTMF methods

Project Description:


… If you want to talk to a vendor - press 1. If you would like to be connected to our administration team - press 2. Press 3 to return to the main menu. If you don’t want to talk to press anything - press 4.

Sounds familiar? Everyone of us has been through this many times and even though it’s some times quite annoying to have to wait through a long voice menu it is still quite handy to be able to do it, since in many cases this is the only way you could listen to your voice mail messages or configure your account.

This kind of communication with a telephony service uses Dual-Tone Multi-Frequency (DTMF) signaling. There are several ways of doing so in SIP applications. SIP Communicator can send DTMF signals in SIP INFO messages, however one of the most popular ways of doing so is to transport the tones inside the RTP media streams with packets having a specific payload.

The exact semantics for doing this are defined in the IETF RFC 4733 and RFC 4734.

Your mission, should you choose to accept it, would be to implement support for this type of signaling in the media module of SIP communicator, so that users would be able to use it in their VoIP calls.

G.729 Implementation

The G.729 codec is one of the most popular audio data compression algorithms used in VoIP. This is mostly because of the fact that it operates with relatively good quality using a very limited bandwidth - 6.4 kbit/s, 8 kbit/s or, 11.8 kbit/s.

The project would consist in looking up existing open source implementations of the encoding and decoding algorithms of G.729. Keep in mind that there are not many such implementations since G.729 is not free and using it many countries implies royalties, so the task may turn out to be delicate.

After finding a satisfactory implementation, you would have to integrate it in JMF and SIP Communicator.

More on DTMF signaling

RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals (RFC 4733)

Definition of Events for Modem, Fax, and Text Telephony Signals (RFC 4734)

voip-info.org G.729 pages

ITU-T G.729 page

Other SIP Communicator student projects

The official SIP Communicator website

The SIP Communicator developer website on Java.net