[asterisk-commits] mmichelson: branch mmichelson/transfer r386409 - /team/mmichelson/transfer/main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Apr 23 18:54:56 CDT 2013


Author: mmichelson
Date: Tue Apr 23 18:54:53 2013
New Revision: 386409

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=386409
Log:
Change from doing a bridge removal to changing the state of the bridge_channel.

I still see a crash when attempting to do a blind transfer. I think the issue
might be that the bridge is trying to write to a bridge_channel that has disappeared.
This may point to a refcounting issue in my code, or it could be that I'm attempting
to do something in a bridge action that is not accounted for in the other bridging
code.


Modified:
    team/mmichelson/transfer/main/bridging.c

Modified: team/mmichelson/transfer/main/bridging.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/transfer/main/bridging.c?view=diff&rev=386409&r1=386408&r2=386409
==============================================================================
--- team/mmichelson/transfer/main/bridging.c (original)
+++ team/mmichelson/transfer/main/bridging.c Tue Apr 23 18:54:53 2013
@@ -1990,8 +1990,8 @@
 		struct blind_transfer_data *blind_data)
 {
 	if (!strncmp(ast_channel_name(bridge_channel->chan), blind_data->transferee_name, sizeof(blind_data->transferee_name))) {
-		ast_after_bridge_set_goto(bridge_channel->chan, blind_data->context, blind_data->exten, 1);
-		ast_bridge_remove(bridge_channel->bridge, bridge_channel->chan);
+		ast_explicit_goto(bridge_channel->chan, blind_data->context, blind_data->exten, 1);
+		ast_bridge_change_state(bridge_channel, AST_BRIDGE_CHANNEL_STATE_HANGUP);
 	}
 }
 
@@ -2050,6 +2050,7 @@
 		break;
 	case AST_BRIDGE_ACTION_BLIND_TRANSFER:
 		bridge_channel_blind_transfer(bridge_channel, action->data.ptr);
+		break;
 	default:
 		break;
 	}




More information about the asterisk-commits mailing list