[asterisk-bugs] [JIRA] (ASTERISK-23727) Async AGI loop breaks when trying to stream missing file

Chico Manobela (JIRA) noreply at issues.asterisk.org
Tue May 13 09:26:43 CDT 2014


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

Chico Manobela commented on ASTERISK-23727:
-------------------------------------------

Thanks for your reply.
Question is, why do AsyncAGI needs to break the loop in case of failure to execute a command?
There is an event for each executed AGI, the event includes a result field that can be used to check the status of the command.
Breaking the loop can be done easily by AMI command on reaction to the AsyncExec event which had a "FAIL" result.
Keeping the loop in the current situation would request a complicated code.
Perhaps we should ask wheater the "intented result" is the correct one.
Anyways, this could easily be solved by using a similar approach as the "AGISIGHUP" channel variable.
I will open a feature request for that.

I didn't ask to change the behaviour "simply because I don't care for it"
I truely believe that breaking the loop due to error in command is wrong design for such async execution queue.


> Async AGI loop breaks when trying to stream missing file
> --------------------------------------------------------
>
>                 Key: ASTERISK-23727
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-23727
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_agi
>    Affects Versions: SVN, 1.8.27.0, 11.9.0, 12.2.0
>         Environment: CentOS 5
>            Reporter: Chico Manobela
>            Severity: Critical
>
> trying to stream a non existent file using AsyncAGI results in AsyncAGI loop breaks and  control returns to dial plan.
> to reproduce:
> 1. start async agi loop on call - AGI(agi:async)
> 2. from the cli try to stream file that doesn't exists:
> {noformat}
> asterisk*CLI> agi exec SIP/192.168.10.22-00000020 "STREAM FILE x 5"
> {noformat}
> Asterisk will print the normal warning:
> {noformat}
> [May  8 11:24:58] WARNING[6805][C-00000020]: file.c:701 ast_openstream_full: File x does not exist in any format
> <SIP/192.168.10.22-00000020>AGI Tx >> 200 result=-1 endpos=0
>     -- Executing [talk at pbxtel-incoming-async:3] 
> {noformat}
> Next thing asterisk does is to stop the loop and continue the dial plan:
> {noformat}
> Hangup("SIP/192.168.10.22-00000020", "") in new stack
>   == Spawn extension (pbxtel-incoming-async, talk, 3) exited non-zero on 'SIP/192.168.10.22-00000020'
> {noformat}



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



More information about the asterisk-bugs mailing list