[SIP Beyond VoIP] Debugging DTMF for conference bridge app

Jason Ostrom jpo at pobox.com
Wed Dec 25 18:41:55 CET 2013


Hi Saúl,

Hope everyone on the list and you are having Merry Christmas or Happy Holidays.

Rather than try to verify the observer add correctly, I just started with troubleshooting why the 'sip-session' sample sipclients app is not receiving the DTMF with SIP Simple 1.0.0 code running on Debian Wheezy x64 using apt-get from repos.

I tried doing the debug / trace you mention below.  Here is what I found:

With --trace-notifications:
When I dial into conference bridge and hit DTMF from another phone, nothing prints to stdout.  In the line in the code, this line should be printing a notice, to either stdout or wherever logging is happening:  " send_notice('Got DMTF %s' % notification.data.digit)"
Question:  Does logging by default go to stdout or to a logfile?  There is a chance I'm not seeing anything on stdout because logging is going to a file that I don't know where yet.


With PJSIP logging (--trace-pjsip):

Very interesting, I'm getting messages to stdout that indicate bad RTP.  Every DTMF dialed gets a lot of stdout messages, exactly like this with bad pointer?  Look at this:


(5) 2013-12-25 17:38:00.201  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.201  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.201  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.201  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.204  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.204  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.220  strm0x40559c8 Jitter buffer empty (prefetch=0), plc invoked
(5) 2013-12-25 17:38:00.225  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.225  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.244  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.244  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.265  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.265  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.285  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.285  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.304  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.304  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.324  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.324  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.344  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.344  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.361  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.361  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.361  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.361  strm0x40559c8 Bad RTP pt 101 (expecting 0)
(5) 2013-12-25 17:38:00.361  strm0x40559c8 RTP status: badpt=-1, badssrc=0, dup=0, outorder=0, probation=0, restart=0
(4) 2013-12-25 17:38:00.361  strm0x40559c8 Bad RTP pt 101 (expecting 0)

How should I proceed further in trying to resolve this?  Looks like a bug with PJSIP or something like that?  Please help.


On Dec 23, 2013, at 2:14 AM, Saúl Ibarra Corretgé <saul at ag-projects.com> wrote:

> Hi,
> 
> On Dec 21, 2013, at 7:09 PM, Jason Ostrom <jpo at pobox.com> wrote:
> 
>> I have done the following in order to have SIP Simple print out the DTMF, and it is still not working.
>> 
>> 1.  Ported code from sip-session sample sipclients for DTMF receiving into other python script.  The code is listening for notification from the audio stream just as sip-session does.
>> 
> 
> How did you add the observer?
> 
>> 2.  Verified that the DTMF is being received as RFC 2833 and it is broadcasted by Asterisk.  Ran a wireshark trace and all digits are being received on host running sip simple SDK apps.
>> 
>> Problem is SIP Simple code is not able to detect DTMF, or at least my implementation.
>> 
>> Question:  How do I get the "sip-session" sample application to receive DTMF and print out each DTMF digit to stdout?  Does it do this by default?  How do I debug / print each RTP packet, because DTMF in RTP Payload is not detected?  I am trying to troubleshoot it, if I can just get sip-session to print each DTMF digit that is broadcasted by another conference user, then I can get the 'sip-session' DTMF receiving code working in the other python script.  Both scripts are successfully dialing into conference.  Other conference user inputs DTMF, and I can see Asterisk broadcasting, but nothing on receiving scripts.  Please let me know if any ideas.
>> 
> 
> You can enable notifications trace (see sip-session -h) and all notifications will be either dumped to a file or printed to stdout. You should see if DTMF is detected notifications getting fired. If it isn't detected, then you'd need to dig deeper and enable the PJSIP logs.
> 
> 
> Regards,
> 
> --
> Saúl Ibarra Corretgé
> AG Projects
> 
> 
> 



More information about the SIPBeyondVoIP mailing list