[asterisk-bugs] [JIRA] (ASTERISK-29516) app_senddtmf: Does not work without answer supervision

N A (JIRA) noreply at issues.asterisk.org
Fri Jul 9 08:17:33 CDT 2021


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=255593#comment-255593 ] 

N A commented on ASTERISK-29516:
--------------------------------

Essentially the two I just mentioned.
This issue does *not* occur directly on the PJSIP channel driver. If a call comes into Asterisk, Progress, SendDTMF, Answer, SendDTMF - they both work. So this issue is not PJSIP related.
I looked in app_dial and I don't see anything in that file at least that would be inhibiting DTMF from going back in the other direction.

I always answer channels on the actual channel driver as soon as they come into Asterisk, first thing, and do actual call processing in the dialplan, so these are with that in mind (that PJSIP itself is "up"):
- Dialing a Local channel that doesn't answer but does Progress. No audio audible. If Answered, audible.
- Originating a Local channel into a ConfBridge and then having both the PJSIP and originated channel join the bridge. The local channel DTMF isn't audible with Progress, but is with Answer.

If SendDTMF is indeed happily sending DTMF as the case seems to be, then somehow it seems to be getting "eaten up" in the unanswered Local channel. Obviously audible is audio so if I created a bunch of DTMF audio files and played those with Playback(,noanswer), that would work around the issue by sending it in band instead of as DTMF frames. I can't really think of further bridging scenarios that are radically different, but it seems potentially Local related, same underlying issue for both cases, and I could confirm the issue is resolved if a patch were available.

> app_senddtmf: Does not work without answer supervision
> ------------------------------------------------------
>
>                 Key: ASTERISK-29516
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29516
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_senddtmf
>    Affects Versions: 18.5.0
>            Reporter: N A
>            Assignee: N A
>
> 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.



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



More information about the asterisk-bugs mailing list