[asterisk-commits] russell: branch 1.8 r279916 - in /branches/1.8/channels: chan_dahdi.c sig_pri.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jul 27 14:51:01 CDT 2010


Author: russell
Date: Tue Jul 27 14:50:56 2010
New Revision: 279916

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=279916
Log:
Fix inband DTMF detection on outgoing ISDN calls.

This is a regression from the sig_pri split from chan_dahdi.  When a call is
first initiated, the inband DTMF detector is not enabled if it's an outgoing
ISDN call.  However, it needs to be turned on once the media path starts up.
This handling was put back in the open_media() callback of chan_dahdi.  In
sig_pri, open_media() calls were added to a few places where it was needed,
including handling of PRI_EVENT_RINGING, PRI_EVENT_PROGRESS, and
PRI_EVENT_PROCEEDING.

Thanks to rmudgett for helping me with the patch!

Modified:
    branches/1.8/channels/chan_dahdi.c
    branches/1.8/channels/sig_pri.c

Modified: branches/1.8/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_dahdi.c?view=diff&rev=279916&r1=279915&r2=279916
==============================================================================
--- branches/1.8/channels/chan_dahdi.c (original)
+++ branches/1.8/channels/chan_dahdi.c Tue Jul 27 14:50:56 2010
@@ -2504,6 +2504,11 @@
 	}
 	if (res < 0) {
 		ast_log(LOG_WARNING, "Unable to set gains on channel %d\n", pvt->channel);
+	}
+
+	if (pvt->dsp_features && pvt->dsp) {
+		ast_dsp_set_features(pvt->dsp, pvt->dsp_features);
+		pvt->dsp_features = 0;
 	}
 }
 #endif	/* defined(HAVE_PRI) */

Modified: branches/1.8/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/sig_pri.c?view=diff&rev=279916&r1=279915&r2=279916
==============================================================================
--- branches/1.8/channels/sig_pri.c (original)
+++ branches/1.8/channels/sig_pri.c Tue Jul 27 14:50:56 2010
@@ -4907,6 +4907,17 @@
 						pri_queue_control(pri, chanpos, AST_CONTROL_RINGING);
 						pri->pvts[chanpos]->alerting = 1;
 
+						if (
+#ifdef PRI_PROGRESS_MASK
+							e->ringing.progressmask & PRI_PROG_INBAND_AVAILABLE
+#else
+							e->ringing.progress == 8
+#endif
+							) {
+							sig_pri_open_media(pri->pvts[chanpos]);
+						}
+
+
 #ifdef SUPPORT_USERUSER
 						if (!ast_strlen_zero(e->ringing.useruserinfo)) {
 							struct ast_channel *owner;
@@ -4965,6 +4976,7 @@
 						pri_queue_control(pri, chanpos, AST_CONTROL_PROGRESS);
 						pri->pvts[chanpos]->progress = 1;
 						sig_pri_set_dialing(pri->pvts[chanpos], 0);
+						sig_pri_open_media(pri->pvts[chanpos]);
 					}
 					sig_pri_unlock_private(pri->pvts[chanpos]);
 				}
@@ -4998,6 +5010,7 @@
 						pri_queue_control(pri, chanpos, AST_CONTROL_PROGRESS);
 						pri->pvts[chanpos]->progress = 1;
 						sig_pri_set_dialing(pri->pvts[chanpos], 0);
+						sig_pri_open_media(pri->pvts[chanpos]);
 					}
 					sig_pri_unlock_private(pri->pvts[chanpos]);
 				}




More information about the asterisk-commits mailing list