A NULL bridge has special meaning in res_stasis for
unsubscribing. It means that a subscription to ALL
bridges should be removed. This should not be done
as part of the normal subscription management in
the res_stasis channel loop.
ASTERISK-26468
Change-Id: I6d5bea8246dd13a22ef86b736aefbf2a39c15af0
bridge = ao2_bump(stasis_app_get_bridge(control));
if (bridge != last_bridge) {
- app_unsubscribe_bridge(app, last_bridge);
+ if (last_bridge) {
+ app_unsubscribe_bridge(app, last_bridge);
+ }
if (bridge) {
app_subscribe_bridge(app, bridge);
}
ast_bridge_depart(chan);
}
- app_unsubscribe_bridge(app, stasis_app_get_bridge(control));
+ if (stasis_app_get_bridge(control)) {
+ app_unsubscribe_bridge(app, stasis_app_get_bridge(control));
+ }
ao2_cleanup(bridge);
/* Only publish a stasis_end event if it hasn't already been published */