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

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed May 29 09:00:54 CDT 2013


Author: oej
Date: Wed May 29 09:00:50 2013
New Revision: 390016

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=390016
Log:
And now the final hack in app_dial.

Modified:
    team/group/rana-moh-sip-transfer-1.8/apps/app_dial.c
    team/group/rana-moh-sip-transfer-1.8/channels/chan_sip.c

Modified: team/group/rana-moh-sip-transfer-1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/group/rana-moh-sip-transfer-1.8/apps/app_dial.c?view=diff&rev=390016&r1=390015&r2=390016
==============================================================================
--- team/group/rana-moh-sip-transfer-1.8/apps/app_dial.c (original)
+++ team/group/rana-moh-sip-transfer-1.8/apps/app_dial.c Wed May 29 09:00:50 2013
@@ -2952,6 +2952,11 @@
 
 				ast_channel_setoption(chan, AST_OPTION_OPRMODE, &oprmode, sizeof(oprmode), 0);
 			}
+			/* If the caller has put the line on local hold, make sure we do something about it. */
+			if (ast_channel_get_local_hold_state(chan)) {
+				ast_debug(4, "====>> Putting channel %s on remote hold since %s was locally held\n", peer->name, chan->name);
+				ast_channel_put_remote_on_hold(chan, chan->hold_state.mohsuggest);
+			}
 			res = ast_bridge_call(chan, peer, &config);
 		}
 

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=390016&r1=390015&r2=390016
==============================================================================
--- 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 Wed May 29 09:00:50 2013
@@ -20912,8 +20912,6 @@
 
 		if (!req->ignore && p->owner) {
 			int rpid_changed;
-			int caller_hold_state = 0;	/* True if the caller (requestor) is on hold when placing the call */
-			int dummy = sizeof(caller_hold_state);
 			struct ast_channel *bridgedchan = NULL;
 
 			rpid_changed = get_rpid(p, req);
@@ -20947,7 +20945,7 @@
 			/* Check if the calling channel is on hold */
 			if (p->owner && (bridgedchan = ast_bridged_channel(p->owner)) != NULL) {
 				ast_debug(3, "====> Checking for HOLD state on bridged channel %s\n", bridgedchan->name);
-				if (ast_get_local_hold_state(bridgedchan)) {
+				if (ast_channel_get_local_hold_state(bridgedchan)) {
 					ast_indicate(p->owner, AST_CONTROL_HOLD);
 					ast_debug(3, "====> Bridged channel was on hold, indicating on this channel too \n");
 				}




More information about the asterisk-commits mailing list