[asterisk-commits] oej: branch oej/rana-moh-queue-transfer-1.8 r393120 - in /team/oej/rana-moh-q...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jun 28 08:28:21 CDT 2013


Author: oej
Date: Fri Jun 28 08:28:18 2013
New Revision: 393120

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=393120
Log:
Ready for tests

Modified:
    team/oej/rana-moh-queue-transfer-1.8/channels/chan_sip.c
    team/oej/rana-moh-queue-transfer-1.8/channels/sip/include/sip.h
    team/oej/rana-moh-queue-transfer-1.8/res/res_musiconhold.c

Modified: team/oej/rana-moh-queue-transfer-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-moh-queue-transfer-1.8/channels/chan_sip.c?view=diff&rev=393120&r1=393119&r2=393120
==============================================================================
--- team/oej/rana-moh-queue-transfer-1.8/channels/chan_sip.c (original)
+++ team/oej/rana-moh-queue-transfer-1.8/channels/chan_sip.c Fri Jun 28 08:28:18 2013
@@ -23882,7 +23882,12 @@
 	target.chan2 = ast_bridged_channel(targetcall_pvt->owner);	/* Asterisk to target */
 	if (target.chan2) {
 		ast_channel_ref(target.chan2);
-	}
+	} else {
+		/* Target chan1 is running a one-legged call, maybe queue or IVR */
+		/* If this channel is serviced by music, we need to make sure that it 
+		   continues */
+		ast_copy_string(target.chan1_musicclass, ast_moh_query(target.chan1), sizeof (target.chan1_musicclass));
+	}  
 
 	if (!target.chan2 || !(target.chan2->_state == AST_STATE_UP || target.chan2->_state == AST_STATE_RINGING) ) {
 		/* Wrong state of new channel */
@@ -23979,6 +23984,9 @@
 
 		if (current->chan2 && current->chan2->_state == AST_STATE_RING) {
 			ast_indicate(target.chan1, AST_CONTROL_RINGING);
+		}
+		if (!ast_strlen_zero(target.chan1_musicclass)) {
+			ast_moh_start(target.chan1, target.chan1_musicclass, target.chan1_musicclass);
 		}
 
 		if (target.chan2) {

Modified: team/oej/rana-moh-queue-transfer-1.8/channels/sip/include/sip.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-moh-queue-transfer-1.8/channels/sip/include/sip.h?view=diff&rev=393120&r1=393119&r2=393120
==============================================================================
--- team/oej/rana-moh-queue-transfer-1.8/channels/sip/include/sip.h (original)
+++ team/oej/rana-moh-queue-transfer-1.8/channels/sip/include/sip.h Fri Jun 28 08:28:18 2013
@@ -789,6 +789,8 @@
 	uint32_t seqno;              /*!< Sequence number */
 	char *park_exten;
 	char *park_context;
+	char chan1_musicclass[MAX_MUSICCLASS];	/* Music class if chan2 is one-legged and getting
+						   serviced by MOH */
 };
 
 /*! \brief Parameters to the transmit_invite function */

Modified: team/oej/rana-moh-queue-transfer-1.8/res/res_musiconhold.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-moh-queue-transfer-1.8/res/res_musiconhold.c?view=diff&rev=393120&r1=393119&r2=393120
==============================================================================
--- team/oej/rana-moh-queue-transfer-1.8/res/res_musiconhold.c (original)
+++ team/oej/rana-moh-queue-transfer-1.8/res/res_musiconhold.c Fri Jun 28 08:28:18 2013
@@ -1547,11 +1547,16 @@
 	if (!chan) {
 		return NULL;
 	}
+	if (!ast_test_flag(chan, AST_FLAG_MOH)) {
+		ast_debug(2, "===> Not currently playing music \n");
+		return NULL;
+	}
 	ast_channel_lock(chan);
 	ast_channel_unlock(chan);
 	if (chan->music_state) {
 		state = chan->music_state;
 		if (state->class) {
+			ast_debug(2, "===> Playing music - class %s \n", state->class->name);
 			return state->class->name;
 		}
 	}




More information about the asterisk-commits mailing list