On Tue, Sep 13, 2022 at 11:49 AM Antony Stone < antony.st...@asterisk.open.source.it> wrote:
> Hi. > > I have a dialplan which accepts an inbound call and dials out to another > number, automatically bridging the channels together when the second call > is > answered. > > I then have a facility for the caller to put the call on hold (which uses > ChannelRedirect() in the dialplan to play music on hold to the callee, and > some beeps to the caller), and resume it again (which uses Bridge() in the > dialplan to re-join the two channels). > > This works fine. > > If the calleR hangs up (after resuming the call again, so the channels are > bridged) the dialplan somewhat unexpectedly (to me) goes to the h@Hold > extension (where Hold is the context I use to do the ChannelRedirect()s on > the > two legs of the call). > > I can cope with this; at least it tells me the call has been hung up and > allows the dialplan to do some "end of call" processing. > > However, if the calleE hangs up instead, no hangup extension is called at > all, > so my dialplan cannot tell that the call has ended (which is important, > because it has to send data to another application at both call start and > call > end). > > The only thing I do see is the h@Hold extension being activated, but at > the > time when the channels are bridged back together again to resume the call, > and > the channel name which is passed to h@Hold is a Surrogate/... channel. > > I guess it's correct that when hold music stops and the channels are re- > bridged, the Surrogate channel has in fact hung up, but the timing of this > is > nothing to do with the actual end of the call. > > What do I need to do to get dialplan control passed to somewhere or other > when > the "real" callee channel hangs up? > > > Incidentally, if the call comes in, gets answered, and then the callee > hangs > up, without the channels ever having been put on hold, the dialplan does > go to > the h@DialOn extension (where DialOn is the context in which the second > call > is dialled out to the callee). This doesn't happen if the channels have > been > redirected and then bridged back together again, though. > > > I know there is an F() parameter to the Dial() command which can pass the > callee to a context/extension when the caller hangs up, but I don't see > any > equivalent for when the callee hangs up. > > > Does anyone have some helpful ideas on how to detect callee hangup in this > situation? > Do hangup handlers[1] work for the situation? They follow channels as things move around, including masquerades and such. [1] https://wiki.asterisk.org/wiki/display/AST/Hangup+Handlers -- Joshua C. Colp Asterisk Project Lead Sangoma Technologies Check us out at www.sangoma.com and www.asterisk.org
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- Check out the new Asterisk community forum at: https://community.asterisk.org/ New to Asterisk? Start here: https://wiki.asterisk.org/wiki/display/AST/Getting+Started asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users