[Home]

Summary:ASTERISK-12008: rfc2833 DTMF problem
Reporter:Diego Viola (diegoviola)Labels:
Date Opened:2008-05-12 13:17:48Date Closed:2008-12-12 00:48:59.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/RTP
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) dtmf_with_rtp_and_dtmf_in_console_line.txt
( 1) dtmf_with_rtp_and_dtmf_in_console_line2.txt
( 2) rfc2833compensate_1.txt
( 3) rfc2833compensate_2.txt
( 4) rfc2833compensate_3.txt
( 5) rtp_debug_zoiper_dtmf.txt
Description:I have this in my dialplan:

exten => 123,1,Read(NUMBER,,9)
exten => 123,n,NoOp(${NUMBER})

And most of the time when I press "123" and then I press "123456789" I don't get the full digits.

I get something like:

   -- Executing [123@default:2] NoOp("SIP/diego.viola-10aadc00", "12389") in new stack

   -- Executing [123@default:2] NoOp("SIP/diego.viola-10a9cf30", "1234579") in new stack

   -- Executing [123@default:2] NoOp("SIP/diego.viola-10a9b1c0", "1234789") in new stack

   -- Executing [123@default:2] NoOp("SIP/diego.viola-10a8fae0", "123679") in new stack

I don't know if this is due to network problems, or not... but FreeSWITCH developers told me they can handle this just fine, and this is a serious issue because most of my users sometimes get back to me and say "hey my password doesn't work" and I think is because of this.

My Asterisk version is 1.4.19.1 and I compiled it with GCC 4.1.2, running on Linux 2.6.18 (x86_64) -- CentOS release 5 (Final)
Comments:By: Joshua C. Colp (jcolp) 2008-05-12 13:19:13

Please provide complete console output with rtp debug and dtmf logging (it can be enabled in logger.conf by adding it to the console line).

By: Diego Viola (diegoviola) 2008-05-12 13:46:21

http://pastebin.com/m57923229

By: snuffy (snuffy) 2008-05-13 07:10:15

pastebin shouldn't be used within bugs, since the paste isn't guaranteed that it will still be there in a few months. Please just add those as text files to the bug instead.

By: Diego Viola (diegoviola) 2008-05-13 09:26:43

Yeah, I just added a second file with the RTP debugging on, etc.

It's this file: dtmf_with_rtp_and_dtmf_in_console_line(2).txt

By: Diego Viola (diegoviola) 2008-05-13 10:31:28

The same thing happens on 1.6.0-beta8 too, hope to see it fixed in both.

By: Joshua C. Colp (jcolp) 2008-05-13 14:47:39

Please add rfc2833compensate=yes to your general section in sip.conf and retest.

By: Diego Viola (diegoviola) 2008-05-14 10:53:24

added

By: Joshua C. Colp (jcolp) 2008-05-14 10:54:27

So did this improve it... or what?

By: Diego Viola (diegoviola) 2008-05-14 11:03:54

Yes, it improved it, now I get this:

   -- Executing [123@default:1] Read("SIP/diego.viola-15889dd0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-15889dd0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-15889dd0' status is 'UNKNOWN'
   -- Saved useragent "Zoiper for Windows rev.650" for peer kannan.ramakrishnan
[May 14 11:23:52] NOTICE[11415]: chan_sip.c:15011 handle_request_subscribe: Received SIP subscribe for peer without mailbox: jaizon.lubaton
   -- Executing [123@default:1] Read("SIP/diego.viola-1589e120", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- Saved useragent "Zoiper for Windows rev.650" for peer piyush.patil
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1589e120", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1589e120' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-15889dd0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-15889dd0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-15889dd0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1588b690", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588b690", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588b690' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-158a2460", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-158a2460", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-158a2460' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1589f9e0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1589f9e0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1589f9e0' status is 'UNKNOWN'
[May 14 11:24:55] NOTICE[11415]: chan_sip.c:15011 handle_request_subscribe: Received SIP subscribe for peer without mailbox: adil.wali
   -- Executing [123@default:1] Read("SIP/diego.viola-1588e110", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588e110", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588e110' status is 'UNKNOWN'

By: Diego Viola (diegoviola) 2008-05-14 11:05:52

Now I don't lose any digits...

By: Diego Viola (diegoviola) 2008-05-14 11:07:00

dev2*CLI>


   -- Executing [123@default:1] Read("SIP/diego.viola-1588b690", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588b690", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588b690' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1589f2e0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1589f2e0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1589f2e0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1588e810", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588e810", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588e810' status is 'UNKNOWN'
[May 14 11:26:53] NOTICE[11415]: chan_sip.c:15011 handle_request_subscribe: Received SIP subscribe for peer without mailbox: jaizon.lubaton
   -- Executing [123@default:1] Read("SIP/diego.viola-1588b690", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588b690", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588b690' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1589f2e0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1589f2e0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1589f2e0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1588e810", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588e810", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588e810' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1588b690", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1588b690", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1588b690' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-1589c860", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
[May 14 11:27:55] NOTICE[11415]: chan_sip.c:15011 handle_request_subscribe: Received SIP subscribe for peer without mailbox: adil.wali
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-1589c860", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-1589c860' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-158a0ba0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-158a0ba0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-158a0ba0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-158a68c0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
[May 14 11:28:19] NOTICE[11415]: chan_sip.c:15011 handle_request_subscribe: Received SIP subscribe for peer without mailbox: luis.flores
   -- User entered '123456789'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-158a68c0", "123456789") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-158a68c0' status is 'UNKNOWN'

By: Joshua C. Colp (jcolp) 2008-05-14 11:07:04

So due to dropped packets on your network you need to have that option enabled. As long as at least 1 DTMF packet is received it will work.

By: Diego Viola (diegoviola) 2008-05-14 11:09:13

ok, thanks



By: Joshua C. Colp (jcolp) 2008-05-14 11:12:29

Closed as rfc2833compensate is able to compensate for the dropped RFC2833 packets.

By: Diego Viola (diegoviola) 2008-06-08 21:22:37

I just updated my asterisk to 1.4.20.1 a while ago and I still get the same problem with Zoiper (using SIP protocol), and Skype (when I dial in), even with rfc2833compensate=yes in sip.conf

I don't get this problem using X-Lite.



By: Diego Viola (diegoviola) 2008-06-08 21:50:08

This is what I get with Zoiper:

[Jun  8 22:13:02] NOTICE[13601]: chan_sip.c:15092 handle_request_subscribe: Received SIP subscribe for peer without mailbox: diego.viola
   -- Executing [123@default:1] Read("SIP/diego.viola-06412090", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '111122223'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-06412090", "111122223") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-06412090' status is 'UNKNOWN'
[Jun  8 22:13:21] NOTICE[13601]: chan_sip.c:14033 handle_request_invite: Call from 'diego.viola' to extension '123456789' rejected because extension not found.
   -- Executing [123@default:1] Read("SIP/diego.viola-063e6fa0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '111122223'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-063e6fa0", "111122223") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-063e6fa0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-063e6fa0", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '111122223'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-063e6fa0", "111122223") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-063e6fa0' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-06410380", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '111122223'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-06410380", "111122223") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-06410380' status is 'UNKNOWN'
   -- Executing [123@default:1] Read("SIP/diego.viola-06412090", "NUMBER||9") in new stack
   -- Accepting a maximum of 9 digits.
   -- User entered '111122223'
   -- Executing [123@default:2] NoOp("SIP/diego.viola-06412090", "111122223") in new stack
 == Auto fallthrough, channel 'SIP/diego.viola-06412090' status is 'UNKNOWN'

By: Joshua C. Colp (jcolp) 2008-06-10 08:00:43

Please provide an rtp debug with Zoiper connected and hitting DTMF digits.

By: Diego Viola (diegoviola) 2008-06-10 10:53:37

I just added the file: rtp_debug_zoiper_dtmf.txt, please let me know if you need anything else.



By: Diego Viola (diegoviola) 2008-06-12 14:05:41

Upgraded to 1.4.21 and the problem is still there.



By: John Todd (jtodd) 2008-12-12 00:48:59.000-0600

In TRUNK as of this date, I could not reproduce.  I also was using zoiper for Mac (2.07 library revision 1809)

exten => 888,1,Answer()
exten => 888,n,Read(FOO,,5)
exten => 888,n,NoOp(${FOO})
exten => 888,n,Hangup

Entered: 12354 on zoiper keypad.  Distilled RFC messages from general RTP output.

Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053253, ts 1329664875, len 000004, mark 0, event 00000001, end 0, duration 00000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053257, ts 1329665515, len 000004, mark 0, event 00000001, end 0, duration 00500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053260, ts 1329665995, len 000004, mark 0, event 00000001, end 0, duration 01000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053263, ts 1329666475, len 000004, mark 0, event 00000001, end 1, duration 01500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053278, ts 1329668875, len 000004, mark 0, event 00000002, end 0, duration 00000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053281, ts 1329669355, len 000004, mark 0, event 00000002, end 0, duration 00500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053284, ts 1329669835, len 000004, mark 0, event 00000002, end 0, duration 01000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053287, ts 1329670315, len 000004, mark 0, event 00000002, end 1, duration 01500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053309, ts 1329673835, len 000004, mark 0, event 00000003, end 0, duration 00000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053312, ts 1329674315, len 000004, mark 0, event 00000003, end 0, duration 00500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053315, ts 1329674795, len 000004, mark 0, event 00000003, end 0, duration 01000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053318, ts 1329675275, len 000004, mark 0, event 00000003, end 1, duration 01500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053350, ts 1329680395, len 000004, mark 0, event 00000005, end 0, duration 00000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053353, ts 1329680875, len 000004, mark 0, event 00000005, end 0, duration 00500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053356, ts 1329681355, len 000004, mark 0, event 00000005, end 0, duration 01000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053359, ts 1329681835, len 000004, mark 0, event 00000005, end 1, duration 01500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053390, ts 1329686795, len 000004, mark 0, event 00000004, end 0, duration 00000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053393, ts 1329687275, len 000004, mark 0, event 00000004, end 0, duration 00500)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053396, ts 1329687755, len 000004, mark 0, event 00000004, end 0, duration 01000)
Got  RTP RFC2833 from   10.10.3.4:8000 (type 101, seq 053400, ts 1329688395, len 000004, mark 0, event 00000004, end 1, duration 01500)
   -- User entered '12354'
   -- Executing [888@test:3] NoOp("SIP/2204-82e312354") in new stack
   -- Executing [888@test:4] Hangup("SIP/2204-82e3b014", "") in new stack
 == Spawn extension (test, 888, 4) exited non-zero on 'SIP/2204-82e3b014'