Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Native SIP DTMF

Tags:

android

sip

I am using android SIP(android.net.sip) for VOIP calling. Trying to send DTMF. In SipAudioCall Class of android two method has been given

void sendDtmf(int code, Message result)
Sends a DTMF code.

void sendDtmf(int code)
Sends a DTMF code.

I am thinking to use sendDtmf(int code) method to send DMTF. but I dont know how can I varify whether It is actually sent or not. After implementing this, I am not getting any tone at reciever/sender side. Calling to this giving me no effect (As its background processing is not visible ). Can anyone please let me know how can I varify the same? Also please explain me usage of second method sendDtmf(int code, Message result).

like image 939
Learner Avatar asked Oct 21 '13 09:10

Learner


People also ask

Does SIP support DTMF Signalling?

The SIP INFO Method - DTMF feature allows the use of the SIP INFO method to send a DTMF digit to another gateway. The voice stream is established after a successful SIP 200 OK-ACK message sequence. Note: The 2020 IMG also supports sending DTMF digits using the SIP INFO Method - SUBSCRIBE/NOTIFY.

What is Inband DTMF in SIP?

Implementations of the Session Initiation Protocol (SIP) commonly use four methods for signaling digits between user agent servers and user agent clients: DTMF audio tones in the RTP stream (inband). This requires the use of lossless coders, such as µ-law or A-law.

How do I check DTMF?

In SIP, there defines 3 types of DTMF: RFC2833, Inband, Info. You might doubt how to distinguish or check them. Select the RFC2833 RTP event to check the details.


1 Answers

There are three main methods for sending DTMF with sip:

  1. in-band RTP payloads
  2. generated DTMF tones
  3. sip info messages (outdated and most likely not used)

Most likely it's using the in-band RTP payload packets. Altho most sip stacks I know have some sort of option to select the type of DTMF to send.

Sorry I don't know anything about the inbuilt Android SIP stack, so I can't answer questions directly about there implementation.

What I would do to check that the DTMF is sent correctly is use something like WireShark to capture the RTP audio stream. You can then use the wiresharks voip call graph analysis option which will display the DTMF events in the RTP!

VOIP Call Graph Analysis output

like image 167
Shane Powell Avatar answered Oct 01 '22 17:10

Shane Powell