[asterisk-bugs] [JIRA] (ASTERISK-25307) Hangup on channel using FastAGI does not hang up child channels

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Wed Sep 9 17:18:33 CDT 2015


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

Richard Mudgett commented on ASTERISK-25307:
--------------------------------------------

Looks like app_dial needs to check if the channel is hung up before doing anything.

In the log what seems to be happening is the AGI sends the "EXEC Dial" command after the calling channel has hung up.  Dial then proceeds to dial the requested channel on behalf of a hung up channel.  Since the AGI EXEC command is allowed to be executed in DeadAGI mode the dial application needs to prevent use when the channel has hung up.  It makes no sense for Dial to be executed in the "h" exten which is effectively what is happening in DeadAGI mode.

> Hangup on channel using FastAGI does not hang up child channels
> ---------------------------------------------------------------
>
>                 Key: ASTERISK-25307
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25307
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/General
>    Affects Versions: 11.4.0
>         Environment: CentOS 6.6, 64 bit
>            Reporter: David Cunningham
>            Assignee: Rusty Newton
>         Attachments: hangup1.txt.gz
>
>
> We have the following scenario:
> 1. Call comes in to [from-internal] context in Asterisk, FastAGI is called.
> 2. While AGI is processing call the caller hangs up. In Asterisk trace we see the CANCEL and a HANGUP received on the channel.
> 3. AGI implements a hunt group by doing Dial() on multiple Local channels, one for each destination.
> 4. Asterisk calls FastAGI for each hunt group destination.
> 5. AGI for each destination does a Dial() to a SIP destination to call telephone.
> 6. Telephones all ring.
> 7. When one telephone answers it's call immediately drops, and the other telephones stop ringing.
> Our question is why the Dial() at step 3, or even at step 5, does not immediately exit (presumably with a DIALSTATUS of CANCEL).
> We do try to detect the hangup within the AGI and exit before doing the Dial(), but however close we get it there's always a chance of a CANCEL being received between our check and the Dial(). But why does the Dial() run instead of immediately exiting?
> Thank you.



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



More information about the asterisk-bugs mailing list