[asterisk-bugs] [JIRA] (ASTERISK-26718) ARI: Bridge destroying doesn't work as expected
Marin Odrljin (JIRA)
noreply at issues.asterisk.org
Fri Jan 13 08:48:10 CST 2017
Marin Odrljin created ASTERISK-26718:
----------------------------------------
Summary: ARI: Bridge destroying doesn't work as expected
Key: ASTERISK-26718
URL: https://issues.asterisk.org/jira/browse/ASTERISK-26718
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Resources/res_ari, Resources/res_stasis
Affects Versions: 14.2.1
Environment: Debian 8
Reporter: Marin Odrljin
There is an unexpected behavior when destroying a bridge from ARI. My scenario is following:
1. IN call comes to stasis app
2. app creates bridge and adds channel to it
3. app creates new OUT channel for dialing and adds it to the same bridge
4. app dials on out channel
5. when one of the channels disconnects, app tries to destroy a bridge. After that, following events are received from asterisk:
- 'ChannelLeftBridge' for IN channel
- 'ChannelLeftBridge' for OUT channel
6. app hangup other channel
The problem is that 'BridgeDestroyed' event never comes. In version 13, as I recall, this event was sometimes fired, sometimes not, but bridge was in most cases or always destroyed. But in v 14, bridge is not really destroyed, it is still listed with ari/bridges request. E.g. response is following:
{
"video_mode": "talker",
"name": "CONF-1484303820.435",
"id": "C-1-40",
"bridge_class": "stasis",
"technology": "simple_bridge",
"bridge_type": "mixing",
"creator": "Stasis",
"channels": []
}
As you can see, creator is Stasis, and there are no channels inside. Looks
like that bridge is not properly destroyed on delete http command and it
will hang forever in asterisk. Good thing is that app can later again create
bridge with the same ID, so this problem is not fatal, but it's not nice to
see a lot of 'hanging' unused bridges.
> What happens if you remove each channel from the bridge, hang them up, and then destroy the bridge? Does that work as expected?
> Joshua Colp
I just tried it and everything seems to be fine if channels are removed from
bridge before it is destroyed. Strange thing is that destroying is also
proper if both channels are still in and connected, but if one disconnects
and destroying is made with other channel still in the bridge, then channel
is properly removed but bridge is not deleted. Theoretically my app could
remove other channel before destroying a bridge, but this seems to me
unnecessary since destroying of the bridge is doing it, and I'm then just
adding additional logic without a reason. Do you agree?
> It is a reasonable expectation that destroying the bridge in this state
should result in the behavior you expect. Please file an issue[1].
> Joshua Colp
And here it is...
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list