[asterisk-dev] [Code Review] Fix double DTMF digits when 'dtmfmode=inband' and client sends both 'inband' and 'SIP INFO' packets

Alec Davis reviewboard at asterisk.org
Fri Oct 19 03:25:54 CDT 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2165/
-----------------------------------------------------------

(Updated Oct. 19, 2012, 3:25 a.m.)


Review request for Asterisk Developers.


Changes
-------

Testing: dtmfmode=auto is the only issue, now if only SIP INFO is sent by client they are ignored.

sip.conf	client	client	client
dtmfmode	inband	rfc2833	info
  auto		0	1	1	emits warning, and works     - didn't work before changes
  rfc2833	0	1	1	emits warning, and works     - didn't work before changes

  rfc2833	1	1	1	emits warning, and works     - didn't work before changes
  inband	1	1	1	emits warning, and works     - didn't work before changes
  auto		1	1	1	emits warning, and works     - didn't work before changes
  info		1	1	1	No warning, and works        - did work before changes

  info		1	0	1	No warning, and works        - did work before changes
  inband	1	0	1	emits warning, and works     - didn't work before changes
  auto		1	0	1	emits warning, and works     - didn't work before changes
  rfc2833	1	0	1	emits warning, doesn't work! - didn't work before changes

  auto		0	0	1	emits warning, DOESN'T WORK! - DID WORK before changes


Summary
-------

Asterisk 1.8.16.0

file:/var/log/asterisk/dtmf when only '2' was hit once
[2012-10-17 19:46:17.879406] DTMF[17084] channel.c: DTMF begin '2' received on SIP/822-00000000
[2012-10-17 19:46:17.879467] DTMF[17084] channel.c: DTMF begin ignored '2' on SIP/822-00000000
[2012-10-17 19:46:17.950953] DTMF[17084] channel.c: DTMF end '2' received on SIP/822-00000000, duration 800 ms
[2012-10-17 19:46:17.951004] DTMF[17084] channel.c: DTMF end passthrough '2' on SIP/822-00000000
[2012-10-17 19:46:18.019135] DTMF[17084] channel.c: DTMF end '2' received on SIP/822-00000000, duration 51 ms
[2012-10-17 19:46:18.019228] DTMF[17084] channel.c: DTMF end passthrough '2' on SIP/822-00000000


In ASTERISK-20218 the attached file it can be seen that both PA2P.rtf has both 'inband' and 'SIP INFO' set. 


This addresses bug ASTERISK-20218.
    https://issues.asterisk.org/jira/browse/ASTERISK-20218


Diffs (updated)
-----

  branches/1.8/channels/chan_sip.c 375136 

Diff: https://reviewboard.asterisk.org/r/2165/diff


Testing
-------

Asterisk SVN-branch-1.8-r375111M

I was able to verify the same conditions on a Grandstream GXP2000.

Below is after proposed patch:

file:/var/log/asterisk/dtmf when '820' was entered

[2012-10-17 20:16:18.883821] DTMF[23460] channel.c: DTMF begin '8' received on SIP/822-00000004
[2012-10-17 20:16:18.883868] DTMF[23460] channel.c: DTMF begin ignored '8' on SIP/822-00000004
[2012-10-17 20:16:18.963537] DTMF[23460] channel.c: DTMF end '8' received on SIP/822-00000004, duration 89 ms
[2012-10-17 20:16:18.963559] DTMF[23460] channel.c: DTMF end passthrough '8' on SIP/822-00000004
[2012-10-17 20:16:19.263805] DTMF[23460] channel.c: DTMF begin '2' received on SIP/822-00000004
[2012-10-17 20:16:19.263851] DTMF[23460] channel.c: DTMF begin ignored '2' on SIP/822-00000004
[2012-10-17 20:16:19.363423] DTMF[23460] channel.c: DTMF end '2' received on SIP/822-00000004, duration 89 ms
[2012-10-17 20:16:19.363444] DTMF[23460] channel.c: DTMF end passthrough '2' on SIP/822-00000004
[2012-10-17 20:16:19.643830] DTMF[23460] channel.c: DTMF begin '0' received on SIP/822-00000004
[2012-10-17 20:16:19.643876] DTMF[23460] channel.c: DTMF begin ignored '0' on SIP/822-00000004
[2012-10-17 20:16:19.783561] DTMF[23460] channel.c: DTMF end '0' received on SIP/822-00000004, duration 140 ms
[2012-10-17 20:16:19.783582] DTMF[23460] channel.c: DTMF end passthrough '0' on SIP/822-00000004


Console:

    -- Executing [s at voicemail-main:2] VoiceMailMain("SIP/822-00000004", "") in new stack
    -- <SIP/822-00000004> Playing 'vm-login.gsm' (language 'en')
[2012-10-17 20:16:18.935436] WARNING[23399]: chan_sip.c:19239 handle_request_info: Ignoring DTMF_INFO message as DTMF_INBAND is set on channel SIP/822-00000004
[2012-10-17 20:16:19.325618] WARNING[23399]: chan_sip.c:19239 handle_request_info: Ignoring DTMF_INFO message as DTMF_INBAND is set on channel SIP/822-00000004
[2012-10-17 20:16:19.734910] WARNING[23399]: chan_sip.c:19239 handle_request_info: Ignoring DTMF_INFO message as DTMF_INBAND is set on channel SIP/822-00000004
    -- <SIP/822-00000004> Playing 'vm-password.gsm' (language 'en')
asterix*CLI>


Thanks,

Alec

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20121019/901e4bef/attachment-0001.htm>


More information about the asterisk-dev mailing list