[asterisk-commits] oej: branch group/rana-moh-sip-transfer-1.8 r390111 - in /team/group/rana-moh...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu May 30 04:25:07 CDT 2013


Author: oej
Date: Thu May 30 04:25:01 2013
New Revision: 390111

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=390111
Log:
Trying hard to separate the channels from each other.

Modified:
    team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c
    team/group/rana-moh-sip-transfer-1.8/main/cli.c

Modified: team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c?view=diff&rev=390111&r1=390110&r2=390111
==============================================================================
--- team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c (original)
+++ team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c Thu May 30 04:25:01 2013
@@ -23988,12 +23988,13 @@
 		ast_do_masquerade(target.chan1);
 
 
-		if (current->chan2 && target.chan2 && ast_channel_get_local_hold_state(current->chan2)) {
-			ast_debug(4, "====>> Putting channel %s on remote hold since %s was locally held\n", target.chan2->name, current->chan2->name);
+		/* After the masq, the old current->chan2 is now target.chan1 bridged to target.chan2 */
+		if (target.chan1 && target.chan2 && ast_channel_get_local_hold_state(target.chan1)) {
+			ast_debug(4, "====>> Putting channel %s on remote hold since %s was locally held\n", target.chan2->name, target.chan1->name);
 			ast_channel_put_remote_on_hold(target.chan2, target.chan2->hold_state.mohsuggest);
-		} else if (target.chan2 && current->chan2 && ast_channel_get_local_hold_state(target.chan2)) {
-			ast_debug(4, "====>> Putting channel %s on remote hold since %s was locally held\n", current->chan2->name, target.chan1->name);
-			ast_channel_put_remote_on_hold(current->chan2, current->chan2->hold_state.mohsuggest);
+		} else if (target.chan2 && target.chan1 && ast_channel_get_local_hold_state(target.chan2)) {
+			ast_debug(4, "====>> Putting channel %s on remote hold since %s was locally held\n", target.chan1->name, target.chan2->name);
+			ast_channel_put_remote_on_hold(target.chan1, target.chan1->hold_state.mohsuggest);
 		} else if (target.chan2) {
 			ast_indicate(target.chan2, AST_CONTROL_UNHOLD);
 		}

Modified: team/group/rana-moh-sip-transfer-1.8/main/cli.c
URL: http://svnview.digium.com/svn/asterisk/team/group/rana-moh-sip-transfer-1.8/main/cli.c?view=diff&rev=390111&r1=390110&r2=390111
==============================================================================
--- team/group/rana-moh-sip-transfer-1.8/main/cli.c (original)
+++ team/group/rana-moh-sip-transfer-1.8/main/cli.c Thu May 30 04:25:01 2013
@@ -1500,8 +1500,8 @@
 		c->fout & ~DEBUGCHAN_FLAG, (c->fout & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "",
 		(long)c->whentohangup.tv_sec,
 		cdrtime, c->_bridge ? c->_bridge->name : "<none>", ast_bridged_channel(c) ? ast_bridged_channel(c)->name : "<none>", 
-		ast_channel_get_local_hold_state(c) ? "Local" : "",
-		ast_channel_get_remote_hold_state(c) ? "Remote" : "",
+		ast_channel_get_local_hold_state(c) ? "Local" : "-",
+		ast_channel_get_remote_hold_state(c) ? "Remote" : "-",
 		c->context, c->exten, c->priority, c->callgroup, c->pickupgroup, ( c->appl ? c->appl : "(N/A)" ),
 		( c-> data ? S_OR(c->data, "(Empty)") : "(None)"),
 		(ast_test_flag(c, AST_FLAG_BLOCKING) ? c->blockproc : "(Not Blocking)"));




More information about the asterisk-commits mailing list