.bridge = props->target_bridge,
};
- ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ if (transferee.bridge && transfer_target.bridge) {
+ ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ } else if (transferee.bridge) {
+ ast_bridge_lock(transferee.bridge);
+ } else if (transfer_target.bridge) {
+ ast_bridge_lock(transfer_target.bridge);
+ }
+
ast_bridge_publish_attended_transfer_bridge_merge(0, AST_BRIDGE_TRANSFER_SUCCESS,
&transferee, &transfer_target, props->transferee_bridge);
- ast_bridge_unlock(transferee.bridge);
- ast_bridge_unlock(transfer_target.bridge);
+
+ if (transferee.bridge) {
+ ast_bridge_unlock(transferee.bridge);
+ }
+ if (transfer_target.bridge) {
+ ast_bridge_unlock(transfer_target.bridge);
+ }
}
/*!
.bridge = props->transferee_bridge,
};
- ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ if (transferee.bridge && transfer_target.bridge) {
+ ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ } else if (transferee.bridge) {
+ ast_bridge_lock(transferee.bridge);
+ } else if (transfer_target.bridge) {
+ ast_bridge_lock(transfer_target.bridge);
+ }
+
ast_bridge_publish_attended_transfer_threeway(0, AST_BRIDGE_TRANSFER_SUCCESS,
&transferee, &transfer_target, &threeway);
- ast_bridge_unlock(transferee.bridge);
- ast_bridge_unlock(transfer_target.bridge);
+
+ if (transferee.bridge) {
+ ast_bridge_unlock(transferee.bridge);
+ }
+ if (transfer_target.bridge) {
+ ast_bridge_unlock(transfer_target.bridge);
+ }
}
/*!
.bridge = props->target_bridge,
};
- ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ if (transferee.bridge && transfer_target.bridge) {
+ ast_bridge_lock_both(transferee.bridge, transfer_target.bridge);
+ } else if (transferee.bridge) {
+ ast_bridge_lock(transferee.bridge);
+ } else if (transfer_target.bridge) {
+ ast_bridge_lock(transfer_target.bridge);
+ }
+
ast_bridge_publish_attended_transfer_fail(0, AST_BRIDGE_TRANSFER_FAIL,
&transferee, &transfer_target);
- ast_bridge_unlock(transferee.bridge);
- ast_bridge_unlock(transfer_target.bridge);
+
+ if (transferee.bridge) {
+ ast_bridge_unlock(transferee.bridge);
+ }
+ if (transfer_target.bridge) {
+ ast_bridge_unlock(transfer_target.bridge);
+ }
}
/*!