[asterisk-commits] branch kpfleming/vldtmf r8958 - /team/kpfleming/vldtmf/channel.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue Jan 31 14:21:07 MST 2006


Author: kpfleming
Date: Mon Jan 30 19:43:26 2006
New Revision: 8958

URL: http://svn.digium.com/view/asterisk?rev=8958&view=rev
Log:
don't send AST_FRAME_DTMF to channels that want DTMF begin/end instead

Modified:
    team/kpfleming/vldtmf/channel.c

Modified: team/kpfleming/vldtmf/channel.c
URL: http://svn.digium.com/view/asterisk/team/kpfleming/vldtmf/channel.c?rev=8958&r1=8957&r2=8958&view=diff
==============================================================================
--- team/kpfleming/vldtmf/channel.c (original)
+++ team/kpfleming/vldtmf/channel.c Mon Jan 30 19:43:26 2006
@@ -2252,7 +2252,7 @@
 	if (chan->fout & 0x80000000)
 		ast_frame_dump(chan->name, fr, ">>");
 	CHECK_BLOCKING(chan);
-	switch(fr->frametype) {
+	switch (fr->frametype) {
 	case AST_FRAME_CONTROL:
 		/* XXX Interpret control frames XXX */
 		ast_log(LOG_WARNING, "Don't know how to handle control frames yet\n");
@@ -2270,11 +2270,15 @@
 			res = 0;
 		break;
 	case AST_FRAME_DTMF:
-		ast_clear_flag(chan, AST_FLAG_BLOCKING);
-		ast_mutex_unlock(&chan->lock);
-		res = do_senddigit(chan,fr->subclass);
-		ast_mutex_lock(&chan->lock);
-		CHECK_BLOCKING(chan);
+		if (chan->tech->send_digit_begin)
+			res = 0;
+		else {
+			ast_clear_flag(chan, AST_FLAG_BLOCKING);
+			ast_mutex_unlock(&chan->lock);
+			res = do_senddigit(chan, fr->subclass);
+			ast_mutex_lock(&chan->lock);
+			CHECK_BLOCKING(chan);
+		}
 		break;
 	case AST_FRAME_TEXT:
 		if (chan->tech->send_text)



More information about the asterisk-commits mailing list