Hi,
I’m working on a project where I need to use an ARI application on two different use cases:
- On the first one I need to receive two calls and join them on a bridge. When one of both calls hangs up, the other call should hung up too and the bridge should be destroyed.
- On the second one I need to perform a call from Asterisk to an endpoint and put in into a bridge. Again, when one of the bridge participants leave the bridge, the other calls should hang up and the bridge should be destroyed.
The logic is pretty easy in both cases, and I can initiate both kind of calls and communicate, but i’m having some troubles to hung up the calls:
- On the first case, when the call is supposed to be finished I try to remove the channel by using
DELETE channel/<channelId>
. Here, if the first user who hangs up first is the last one who joined the bridge, the other channel never hangs up (in this case, I have tested with both Zoiper5 and Linphone apps) although theDELETE /channel/<channelId>
method is called successfully and in fact the StasisEnd event is received. I have the following log of the Stasis events received from an execution of this type:
stasis_hangup_fail.txt (14.3 KB)
Note that although the StasisEnd event for the channel 1656425845.61 event is present, the softphone didn’t really hunged up.
- On the second case, I have tried creating the outgoing call with
POST /channels
and withPOST /channels/create
(followed by a posteriorPOST /dial
operation), specifying in both cases the endpoint, the ari app name, and the originator. However, when the sip agent receiving this outgoing call is the one which hungs up first, I don’t receive any kind of StasisEnd event on the ARI app, so I cannot hung up the call. Note that previous event are received, like the StasisStart or the JoinBridge ones. The only events I don’t receive are the ones associated with the hunging up process.
Does somebody know where could these problems come from?
Thanks a lot