[svn-commits] rmudgett: branch rmudgett/align_analog r296081 - /team/rmudgett/align_analog/...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Nov 24 12:25:41 CST 2010


Author: rmudgett
Date: Wed Nov 24 12:25:37 2010
New Revision: 296081

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=296081
Log:
Absorb begin/end DTMF event if PRI overlap dialing.

Modified:
    team/rmudgett/align_analog/channels/chan_dahdi.c

Modified: team/rmudgett/align_analog/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/align_analog/channels/chan_dahdi.c?view=diff&rev=296081&r1=296080&r2=296081
==============================================================================
--- team/rmudgett/align_analog/channels/chan_dahdi.c (original)
+++ team/rmudgett/align_analog/channels/chan_dahdi.c Wed Nov 24 12:25:37 2010
@@ -7689,21 +7689,32 @@
 		} else
 #endif	/* defined(HAVE_PRI) */
 		{
+			/* Unmute conference */
 			dahdi_confmute(p, 0);
 			p->subs[idx].f.frametype = AST_FRAME_DTMF_END;
 			p->subs[idx].f.subclass.integer = res & 0xff;
-		}
-		dahdi_handle_dtmf(ast, idx, &f);
+			dahdi_handle_dtmf(ast, idx, &f);
+		}
 		return f;
 	}
 
 	if (res & DAHDI_EVENT_DTMFDOWN) {
 		ast_debug(1, "DTMF Down '%c'\n", res & 0xff);
-		/* Mute conference */
-		dahdi_confmute(p, 1);
-		p->subs[idx].f.frametype = AST_FRAME_DTMF_BEGIN;
-		p->subs[idx].f.subclass.integer = res & 0xff;
-		dahdi_handle_dtmf(ast, idx, &f);
+#if defined(HAVE_PRI)
+		if (dahdi_sig_pri_lib_handles(p->sig)
+			&& !((struct sig_pri_chan *) p->sig_pvt)->proceeding
+			&& p->pri
+			&& (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
+			/* absorb event */
+		} else
+#endif	/* defined(HAVE_PRI) */
+		{
+			/* Mute conference */
+			dahdi_confmute(p, 1);
+			p->subs[idx].f.frametype = AST_FRAME_DTMF_BEGIN;
+			p->subs[idx].f.subclass.integer = res & 0xff;
+			dahdi_handle_dtmf(ast, idx, &f);
+		}
 		return &p->subs[idx].f;
 	}
 




More information about the svn-commits mailing list