[asterisk-bugs] [JIRA] (ASTERISK-26016) Dialplan execution error in h ext
gzivdo (JIRA)
noreply at issues.asterisk.org
Thu May 12 01:02:56 CDT 2016
[ https://issues.asterisk.org/jira/browse/ASTERISK-26016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
gzivdo updated ASTERISK-26016:
------------------------------
Description:
Asterisk after last h ext start execute _. ext from next priority number.
Sample dialplan to reproduce:
{code}
[ivr]
exten => _.,1,Answer
same => n,Set(isstored=1)
same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes)
same => n,Set(LIMIT_WARNING_FILE=beep)
same => n,agi(/etc/asterisk/agi-timelimit-and-subscribe.py)
same => n,hangup()
exten => h,1,NOOP(timelimit hangup isstored=${isstored}, call_id=${id1})
same => n,GotoIf($["${isstored}" == "1"]?end)
same => n,AGI(/etc/asterisk/timelimit-hangup.agi)
same => n(end),Noop(hangup timelimit end)
{code}
Dialplan debug:
-- Executing [123 at ivr:1] Answer("SIP/101-00000024", "") in new stack
> 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
-- Executing [123 at ivr:2] Set("SIP/101-00000024", "isstored=1") in new stack
-- Executing [123 at ivr:3] Set("SIP/101-00000024", "LIMIT_PLAYAUDIO_CALLER=yes") in new stack
-- Executing [123 at ivr:4] Set("SIP/101-00000024", "LIMIT_WARNING_FILE=beep") in new stack
-- Executing [123 at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
-- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
> 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
/etc/asterisk/agi-timelimit-and-subscribe.py: Client 101 remaining time -53.8578059673
-- Playing './ivrmenu/noquota' (escape_digits=) (sample_offset 0)
-- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 4
== Spawn extension (ivr, 123, 5) exited non-zero on 'SIP/101-00000024'
-- Executing [h at ivr:1] NoOp("SIP/101-00000024", "timelimit hangup isstored=1, call_id=") in new stack
-- Executing [h at ivr:2] GotoIf("SIP/101-00000024", "1?end") in new stack
-- Goto (ivr,h,4)
-- Executing [h at ivr:4] NoOp("SIP/101-00000024", "hangup timelimit end") in new stack
-- Executing [h at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
-- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
-- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 0
-- Executing [h at ivr:6] Hangup("SIP/101-00000024", "") in new stack
As we see here, it should stop at h at ivr:4, but it execute non existing h at ivr:5 and h at ivr:6, which is _.,5 and _.6.
agi just stream one audio in that case, do verbose output once and exit with agi hangup
was:
Asterisk after last h ext start execute _. ext from next priority number.
Sample dialplan to reproduce:
[ivr]
exten => _.,1,Answer
same => n,Set(isstored=1)
same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes)
same => n,Set(LIMIT_WARNING_FILE=beep)
same => n,agi(/etc/asterisk/agi-timelimit-and-subscribe.py)
same => n,hangup()
exten => h,1,NOOP(timelimit hangup isstored=${isstored}, call_id=${id1})
same => n,GotoIf($["${isstored}" == "1"]?end)
same => n,AGI(/etc/asterisk/timelimit-hangup.agi)
same => n(end),Noop(hangup timelimit end)
Dialplan debug:
-- Executing [123 at ivr:1] Answer("SIP/101-00000024", "") in new stack
> 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
-- Executing [123 at ivr:2] Set("SIP/101-00000024", "isstored=1") in new stack
-- Executing [123 at ivr:3] Set("SIP/101-00000024", "LIMIT_PLAYAUDIO_CALLER=yes") in new stack
-- Executing [123 at ivr:4] Set("SIP/101-00000024", "LIMIT_WARNING_FILE=beep") in new stack
-- Executing [123 at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
-- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
> 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
/etc/asterisk/agi-timelimit-and-subscribe.py: Client 101 remaining time -53.8578059673
-- Playing './ivrmenu/noquota' (escape_digits=) (sample_offset 0)
-- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 4
== Spawn extension (ivr, 123, 5) exited non-zero on 'SIP/101-00000024'
-- Executing [h at ivr:1] NoOp("SIP/101-00000024", "timelimit hangup isstored=1, call_id=") in new stack
-- Executing [h at ivr:2] GotoIf("SIP/101-00000024", "1?end") in new stack
-- Goto (ivr,h,4)
-- Executing [h at ivr:4] NoOp("SIP/101-00000024", "hangup timelimit end") in new stack
-- Executing [h at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
-- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
-- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 0
-- Executing [h at ivr:6] Hangup("SIP/101-00000024", "") in new stack
As we see here, it should stop at h at ivr:4, but it execute non existing h at ivr:5 and h at ivr:6, which is _.,5 and _.6.
agi just stream one audio in that case, do verbose output once and exit with agi hangup
> Dialplan execution error in h ext
> ---------------------------------
>
> Key: ASTERISK-26016
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-26016
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: PBX/pbx_config
> Affects Versions: 11.13.1
> Environment: Debian 8, asterisk from package repository
> Reporter: gzivdo
>
> Asterisk after last h ext start execute _. ext from next priority number.
> Sample dialplan to reproduce:
> {code}
> [ivr]
> exten => _.,1,Answer
> same => n,Set(isstored=1)
> same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes)
> same => n,Set(LIMIT_WARNING_FILE=beep)
> same => n,agi(/etc/asterisk/agi-timelimit-and-subscribe.py)
> same => n,hangup()
> exten => h,1,NOOP(timelimit hangup isstored=${isstored}, call_id=${id1})
> same => n,GotoIf($["${isstored}" == "1"]?end)
> same => n,AGI(/etc/asterisk/timelimit-hangup.agi)
> same => n(end),Noop(hangup timelimit end)
> {code}
> Dialplan debug:
> -- Executing [123 at ivr:1] Answer("SIP/101-00000024", "") in new stack
> > 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
> -- Executing [123 at ivr:2] Set("SIP/101-00000024", "isstored=1") in new stack
> -- Executing [123 at ivr:3] Set("SIP/101-00000024", "LIMIT_PLAYAUDIO_CALLER=yes") in new stack
> -- Executing [123 at ivr:4] Set("SIP/101-00000024", "LIMIT_WARNING_FILE=beep") in new stack
> -- Executing [123 at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
> -- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
> > 0x7fc18c016660 -- Probation passed - setting RTP source address to xxx
> /etc/asterisk/agi-timelimit-and-subscribe.py: Client 101 remaining time -53.8578059673
> -- Playing './ivrmenu/noquota' (escape_digits=) (sample_offset 0)
> -- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 4
> == Spawn extension (ivr, 123, 5) exited non-zero on 'SIP/101-00000024'
> -- Executing [h at ivr:1] NoOp("SIP/101-00000024", "timelimit hangup isstored=1, call_id=") in new stack
> -- Executing [h at ivr:2] GotoIf("SIP/101-00000024", "1?end") in new stack
> -- Goto (ivr,h,4)
> -- Executing [h at ivr:4] NoOp("SIP/101-00000024", "hangup timelimit end") in new stack
> -- Executing [h at ivr:5] AGI("SIP/101-00000024", "/etc/asterisk/agi-timelimit-and-subscribe.py") in new stack
> -- Launched AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py
> -- <SIP/101-00000024>AGI Script /etc/asterisk/agi-timelimit-and-subscribe.py completed, returning 0
> -- Executing [h at ivr:6] Hangup("SIP/101-00000024", "") in new stack
> As we see here, it should stop at h at ivr:4, but it execute non existing h at ivr:5 and h at ivr:6, which is _.,5 and _.6.
> agi just stream one audio in that case, do verbose output once and exit with agi hangup
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list