[Asterisk-cvs] asterisk/channels chan_iax2.c,1.48,1.49

markster at lists.digium.com markster at lists.digium.com
Tue Sep 30 09:10:06 CDT 2003


Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv2194/channels

Modified Files:
	chan_iax2.c 
Log Message:
Minor IAX enhancments to support MusicOnHold


Index: chan_iax2.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_iax2.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- chan_iax2.c	8 Sep 2003 16:48:06 -0000	1.48
+++ chan_iax2.c	30 Sep 2003 14:11:17 -0000	1.49
@@ -32,6 +32,7 @@
 #include <asterisk/callerid.h>
 #include <asterisk/app.h>
 #include <asterisk/astdb.h>
+#include <asterisk/musiconhold.h>
 #include <arpa/inet.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -3989,12 +3990,22 @@
 				/* Do nothing */
 				break;
 			case IAX_COMMAND_QUELCH:
-				if (iaxs[fr.callno]->state & IAX_STATE_STARTED)
+				if (iaxs[fr.callno]->state & IAX_STATE_STARTED) {
 					iaxs[fr.callno]->quelch = 1;
+					if (ies.musiconhold) {
+						if (iaxs[fr.callno]->owner &&
+							iaxs[fr.callno]->owner->bridge)
+								ast_moh_start(iaxs[fr.callno]->owner->bridge, NULL);
+					}
+				}
 				break;
 			case IAX_COMMAND_UNQUELCH:
-				if (iaxs[fr.callno]->state & IAX_STATE_STARTED)
+				if (iaxs[fr.callno]->state & IAX_STATE_STARTED) {
 					iaxs[fr.callno]->quelch = 0;
+					if (iaxs[fr.callno]->owner &&
+						iaxs[fr.callno]->owner->bridge)
+							ast_moh_stop(iaxs[fr.callno]->owner->bridge);
+				}
 				break;
 			case IAX_COMMAND_TXACC:
 				if (iaxs[fr.callno]->transferring == TRANSFER_BEGIN) {




More information about the svn-commits mailing list