Could not detect DTMF in out-of-Band RFC2833 in payloadType97

252 views
Skip to first unread message

Anake Sirinanthawit

unread,
Nov 10, 2014, 11:01:11 AM11/10/14
to sipme-med...@googlegroups.com

Hi  Yulian :

      According to the  previous  topic  that I have asked  about  how to  handle Media Format:97  in SDP response,  after  editing the code as you suggested, I have informed  the test result  that  Media server could  detect DTMF in RTP payload type telephone-event format97 very well.  

In fact,  in  previous test,  DTMF signal  appear in  both in-band  DTMF tone  and  out-of-band RFC2833 in payload type telephone-event 97.   

A couple of day ago, I just realized that when there is  no in-band  DTMF tone, DTMF only appear as out-of-band RFC2833 in payload type telephone-event 97,  Media server could not detect any DTMF digit coming.

But for the case of  telephone-event 101  in the same scenario,   no in-band  DTMF tone, DTMF only appear as out-of-band RFC2833 in payload type telephone-event 101, Media server could detect and send notify event perfectly.

I have attached  image  of  captured  2 RTP stream, the first one containing  DTMF in  telephone-event 97, the other one containing  DTMF in  telephone-event 101.

Please  give some advice solving this issue.

Thanks and Regards,
Anake
OOB_RFC2833_in_payloadType97.PNG
OOB_RFC2833_in_payloadType101.PNG

oifa.yulian

unread,
Dec 10, 2014, 6:13:33 AM12/10/14
to sipme-med...@googlegroups.com
Hello
I am sorry i can not not understand the problem.
1) When there is telephone-event 97 set in sdp with which identifier they are sent later?
If they are sent with 97 are they notified by server?
2) When there is 101 , why does it not appears as telephone-event but some dynamic Rtp?
Is this set in sdp , also are the oob packets notified by server in this case?

Also please add some logging here:
https://code.google.com/p/sipme-media-server/source/browse/io/rtp/src/main/java/ua/mobius/media/server/impl/rtp/RTPInput.java#208
To see if packets are processed to Dtmf Intput.

And here:
https://code.google.com/p/sipme-media-server/source/browse/io/rtp/src/main/java/ua/mobius/media/server/impl/rtp/RTPDataChannel.java#609
To see if packets is received

Best regards
Yulian Oifa

Anake Sirinanthawit

unread,
Dec 18, 2014, 7:09:38 AM12/18/14
to sipme-med...@googlegroups.com

Hi  Yulian :

          I have  attached  captured    .pcap  files  from  2 session  of test calls :  one  has  telephone-event 97 ,  another has  telephone-event 101.
so you can see  media format in SDP and  Payload type in RTP.

Before making these 2 test calls, I have add  logging lines as follow:

RTPInput.java

    public void write(RtpPacket event)     {

                //obtain payload       

                event.getPyalod(data, 0);

                 logger.debug("RTPInput data length is " + data.length);

                if(data.length==0)

                                return;

                }

RTPDataChannel.java

    if (format != null && format.getFormat().matches(dtmf)){

                                                                                logger.debug("RTPDataChannel format match dtmf");

                                                                                input.write(rtpPacket);

    }  

 

Server log  from these 2 tests call  are  attached.

 

You can see that

In  session call of  event 101,  processed   pass to Dtmf Intput and provide these lines:

[RTPInput] …   RTPInput data length is 4

[RTPDataChannel] …  RTPDataChannel  format match dtmf


But in  session call of  event 97 
 no these 2  lines,   instead  there is

[JitterBuffer]   drop packet: dead line=74088, packet time=74080, seq=… , payload length=4, format=97 AudioFormat[telephone-event,8000,16,mono]

hope these help  investigating the issue.

Thanks and Regards,
Anake

 

MediaServerLog_callSessionEvent101.txt
MediaServerLog_callSessionEvent97.txt
JSR309App_payload101.pcapng
JSR309App_payload97.pcapng

oifa.yulian

unread,
Mar 19, 2015, 8:36:02 AM3/19/15
to sipme-med...@googlegroups.com
Hello and sorry for late response.
Please try to change the following code:
https://code.google.com/p/sipme-media-server/source/browse/spi/src/main/java/ua/mobius/media/server/spi/format/AudioFormat.java#138
instead of :
if (f.sampleRate != this.sampleRate) return false;
set :

if (this.sampleRate!=0 && f.sampleRate!=0 && f.sampleRate != this.sampleRate) return false;

Instead of
if (f.sampleSize != this.sampleSize) return false;
set:
if (this.sampleSize!=-1 && f.sampleSize!=-1 && f.sampleSize != this.sampleSize) return false;

And instead of
if (f.channels != this.channels) return false;
set:

if (this.channels!=-1 && f.channels!=-1 && f.channels != this.channels) return false;

If this does not help,please add log here :
https://code.google.com/p/sipme-media-server/source/browse/io/rtp/src/main/java/ua/mobius/media/server/impl/rtp/RTPDataChannel.java#607
Please log all the rptFormats , and also log the payload type.


Best regards
Yulian Oifa
Reply all
Reply to author
Forward
0 new messages