[asterisk-bugs] [JIRA] (ASTERISK-29516) app_senddtmf / local: Sending DTMF does not work when not answered

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Sat Feb 26 08:36:06 CST 2022


     [ https://issues.asterisk.org/jira/browse/ASTERISK-29516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Mudgett updated ASTERISK-29516:
---------------------------------------

    Description: 
For some reason, SendDTMF() does not work unless preceded by an Answer(). It does not work with Progress(), bizarrely enough. If the channel is not answered, the application will run for the right amount of time, but no audio is actually audible on the channel, even though all looks well from the CLI. This currently makes the application unsuitable for a number of applications.

This occurs even when the parent channel is answered:
{noformat}
[ctest1]
exten => s,1,Set(CDR_PROP(disable)=1)
	same => n,Progress()
	same => n,SendDTMF(${CALLERID(num)})
	same => n,Hangup()

[orig-line]
exten => _[A-D0-9*#s]!,1,Set(CDR_PROP(disable)=1)
	same => n,Answer()
	same => n,Dial(Local/s at ctest1/n)
	same => n,Wait(60)

[2021-07-09 12:39:57]     -- Executing [1 at orig-line-pjsip:1] Goto("PJSIP/ATAxLA1-00000170", "orig-line,1,1") in new stack
[2021-07-09 12:39:57]     -- Goto (orig-line,1,1)
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:1] Set("PJSIP/ATAxLA1-00000170", "CDR_PROP(disable)=1") in new stack
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:2] Answer("PJSIP/ATAxLA1-00000170", "") in new stack
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:3] Dial("PJSIP/ATAxLA1-00000170", "Local/s at ctest1/n") in new stack
[2021-07-09 12:39:57]     -- Called Local/s at ctest1/n
[2021-07-09 12:39:57]     -- Executing [s at ctest1:1] Set("Local/s at ctest1-0000046b;2", "CDR_PROP(disable)=1") in new stack
[2021-07-09 12:39:57]     -- Executing [s at ctest1:2] Progress("Local/s at ctest1-0000046b;2", "") in new stack
[2021-07-09 12:39:57]     -- Local/s at ctest1-0000046b;1 is making progress passing it to PJSIP/ATAxLA1-00000170
[2021-07-09 12:39:57]     -- Executing [s at ctest1:3] SendDTMF("Local/s at ctest1-0000046b;2", "4002702126") in new stack
[2021-07-09 12:40:01]     -- Executing [s at ctest1:4] Hangup("Local/s at ctest1-0000046b;2", "") in new stack
[2021-07-09 12:40:01]   == Spawn extension (ctest1, s, 4) exited non-zero on 'Local/s at ctest1-0000046b;2'
[2021-07-09 12:40:01]     -- No one is available to answer at this time (1:0/0/0)
[2021-07-09 12:40:01]     -- Executing [1 at orig-line:4] Wait("PJSIP/ATAxLA1-00000170", "60") in new stack
{noformat}

In this minimally reproducible example, no audio whatsoever is audible. If the Progress in ctest1 is changed to Answer, the DTMF is audible as expected.

  was:
For some reason, SendDTMF() does not work unless preceded by an Answer(). It does not work with Progress(), bizarrely enough. If the channel is not answered, the application will run for the right amount of time, but no audio is actually audible on the channel, even though all looks well from the CLI. This currently makes the application unsuitable for a number of applications.

This occurs even when the parent channel is answered:

[ctest1]
exten => s,1,Set(CDR_PROP(disable)=1)
	same => n,Progress()
	same => n,SendDTMF(${CALLERID(num)})
	same => n,Hangup()

[orig-line]
exten => _[A-D0-9*#s]!,1,Set(CDR_PROP(disable)=1)
	same => n,Answer()
	same => n,Dial(Local/s at ctest1/n)
	same => n,Wait(60)

[2021-07-09 12:39:57]     -- Executing [1 at orig-line-pjsip:1] Goto("PJSIP/ATAxLA1-00000170", "orig-line,1,1") in new stack
[2021-07-09 12:39:57]     -- Goto (orig-line,1,1)
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:1] Set("PJSIP/ATAxLA1-00000170", "CDR_PROP(disable)=1") in new stack
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:2] Answer("PJSIP/ATAxLA1-00000170", "") in new stack
[2021-07-09 12:39:57]     -- Executing [1 at orig-line:3] Dial("PJSIP/ATAxLA1-00000170", "Local/s at ctest1/n") in new stack
[2021-07-09 12:39:57]     -- Called Local/s at ctest1/n
[2021-07-09 12:39:57]     -- Executing [s at ctest1:1] Set("Local/s at ctest1-0000046b;2", "CDR_PROP(disable)=1") in new stack
[2021-07-09 12:39:57]     -- Executing [s at ctest1:2] Progress("Local/s at ctest1-0000046b;2", "") in new stack
[2021-07-09 12:39:57]     -- Local/s at ctest1-0000046b;1 is making progress passing it to PJSIP/ATAxLA1-00000170
[2021-07-09 12:39:57]     -- Executing [s at ctest1:3] SendDTMF("Local/s at ctest1-0000046b;2", "4002702126") in new stack
[2021-07-09 12:40:01]     -- Executing [s at ctest1:4] Hangup("Local/s at ctest1-0000046b;2", "") in new stack
[2021-07-09 12:40:01]   == Spawn extension (ctest1, s, 4) exited non-zero on 'Local/s at ctest1-0000046b;2'
[2021-07-09 12:40:01]     -- No one is available to answer at this time (1:0/0/0)
[2021-07-09 12:40:01]     -- Executing [1 at orig-line:4] Wait("PJSIP/ATAxLA1-00000170", "60") in new stack

In this minimally reproducible example, no audio whatsoever is audible. If the Progress in ctest1 is changed to Answer, the DTMF is audible as expected.


> app_senddtmf / local: Sending DTMF does not work when not answered
> ------------------------------------------------------------------
>
>                 Key: ASTERISK-29516
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29516
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_senddtmf, Channels/chan_local
>    Affects Versions: 18.5.0
>            Reporter: N A
>            Assignee: Unassigned
>
> For some reason, SendDTMF() does not work unless preceded by an Answer(). It does not work with Progress(), bizarrely enough. If the channel is not answered, the application will run for the right amount of time, but no audio is actually audible on the channel, even though all looks well from the CLI. This currently makes the application unsuitable for a number of applications.
> This occurs even when the parent channel is answered:
> {noformat}
> [ctest1]
> exten => s,1,Set(CDR_PROP(disable)=1)
> 	same => n,Progress()
> 	same => n,SendDTMF(${CALLERID(num)})
> 	same => n,Hangup()
> [orig-line]
> exten => _[A-D0-9*#s]!,1,Set(CDR_PROP(disable)=1)
> 	same => n,Answer()
> 	same => n,Dial(Local/s at ctest1/n)
> 	same => n,Wait(60)
> [2021-07-09 12:39:57]     -- Executing [1 at orig-line-pjsip:1] Goto("PJSIP/ATAxLA1-00000170", "orig-line,1,1") in new stack
> [2021-07-09 12:39:57]     -- Goto (orig-line,1,1)
> [2021-07-09 12:39:57]     -- Executing [1 at orig-line:1] Set("PJSIP/ATAxLA1-00000170", "CDR_PROP(disable)=1") in new stack
> [2021-07-09 12:39:57]     -- Executing [1 at orig-line:2] Answer("PJSIP/ATAxLA1-00000170", "") in new stack
> [2021-07-09 12:39:57]     -- Executing [1 at orig-line:3] Dial("PJSIP/ATAxLA1-00000170", "Local/s at ctest1/n") in new stack
> [2021-07-09 12:39:57]     -- Called Local/s at ctest1/n
> [2021-07-09 12:39:57]     -- Executing [s at ctest1:1] Set("Local/s at ctest1-0000046b;2", "CDR_PROP(disable)=1") in new stack
> [2021-07-09 12:39:57]     -- Executing [s at ctest1:2] Progress("Local/s at ctest1-0000046b;2", "") in new stack
> [2021-07-09 12:39:57]     -- Local/s at ctest1-0000046b;1 is making progress passing it to PJSIP/ATAxLA1-00000170
> [2021-07-09 12:39:57]     -- Executing [s at ctest1:3] SendDTMF("Local/s at ctest1-0000046b;2", "4002702126") in new stack
> [2021-07-09 12:40:01]     -- Executing [s at ctest1:4] Hangup("Local/s at ctest1-0000046b;2", "") in new stack
> [2021-07-09 12:40:01]   == Spawn extension (ctest1, s, 4) exited non-zero on 'Local/s at ctest1-0000046b;2'
> [2021-07-09 12:40:01]     -- No one is available to answer at this time (1:0/0/0)
> [2021-07-09 12:40:01]     -- Executing [1 at orig-line:4] Wait("PJSIP/ATAxLA1-00000170", "60") in new stack
> {noformat}
> In this minimally reproducible example, no audio whatsoever is audible. If the Progress in ctest1 is changed to Answer, the DTMF is audible as expected.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list