[asterisk-commits] rmudgett: trunk r210696 - in /trunk/channels: chan_dahdi.c sig_pri.c sig_pri.h

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Aug 5 17:46:40 CDT 2009


Author: rmudgett
Date: Wed Aug  5 17:46:37 2009
New Revision: 210696

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=210696
Log:
More changes from chan_dahdi that did not make it into sig_pri.

*  Q.SIG channel mapping option.
*  discardremoteholdretrieval option.
*  libPRI debug defines.
*  pri_set_overlapdial() now set correctly.
*  pthread creation of pri_ss_thread now matches.

Modified:
    trunk/channels/chan_dahdi.c
    trunk/channels/sig_pri.c
    trunk/channels/sig_pri.h

Modified: trunk/channels/chan_dahdi.c
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/channels/chan_dahdi.c?view=diff&rev=210696&r1=210695&r2=210696
==============================================================================
--- trunk/channels/chan_dahdi.c (original)
+++ trunk/channels/chan_dahdi.c Wed Aug  5 17:46:37 2009
@@ -437,10 +437,6 @@
 /*! \brief Protect the interface list (of dahdi_pvt's) */
 AST_MUTEX_DEFINE_STATIC(iflock);
 
-/* QSIG channel mapping option types */
-#define DAHDI_CHAN_MAPPING_PHYSICAL	0
-#define DAHDI_CHAN_MAPPING_LOGICAL	1
-
 
 static int ifcount = 0;
 
@@ -614,12 +610,6 @@
 };
 
 static struct dahdi_pri pris[NUM_SPANS];
-
-#if 0
-#define DEFAULT_PRI_DEBUG (PRI_DEBUG_Q931_DUMP | PRI_DEBUG_Q921_DUMP | PRI_DEBUG_Q921_RAW | PRI_DEBUG_Q921_STATE)
-#else
-#define DEFAULT_PRI_DEBUG 0
-#endif
 
 #else
 /*! Shut up the compiler */

Modified: trunk/channels/sig_pri.c
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/channels/sig_pri.c?view=diff&rev=210696&r1=210695&r2=210696
==============================================================================
--- trunk/channels/sig_pri.c (original)
+++ trunk/channels/sig_pri.c Wed Aug  5 17:46:37 2009
@@ -50,6 +50,12 @@
 
 /* define this to send PRI user-user information elements */
 #undef SUPPORT_USERUSER
+
+#if 0
+#define DEFAULT_PRI_DEBUG (PRI_DEBUG_Q931_DUMP | PRI_DEBUG_Q921_DUMP | PRI_DEBUG_Q921_RAW | PRI_DEBUG_Q921_STATE)
+#else
+#define DEFAULT_PRI_DEBUG 0
+#endif
 
 static int pri_matchdigittimeout = 3000;
 
@@ -695,7 +701,6 @@
 	int i, which=-1;
 	int numdchans;
 	pthread_t threadid;
-	pthread_attr_t attr;
 	char ani2str[6];
 	char plancallingnum[AST_MAX_EXTENSION];
 	char plancallingani[AST_MAX_EXTENSION];
@@ -1252,9 +1257,7 @@
 								pri->pvts[chanpos]->reverse_charging_indication = e->ring.reversecharge;
 #endif
 							}
-							pthread_attr_init(&attr);
-							pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-							if (c && !ast_pthread_create(&threadid, &attr, pri_ss_thread, pri->pvts[chanpos])) {
+							if (c && !ast_pthread_create_detached(&threadid, NULL, pri_ss_thread, pri->pvts[chanpos])) {
 								ast_verb(3, "Accepting overlap call from '%s' to '%s' on channel %d/%d, span %d\n",
 									plancallingnum, S_OR(pri->pvts[chanpos]->exten, "<unspecified>"),
 									pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span);
@@ -1268,7 +1271,6 @@
 									pri->pvts[chanpos]->call = NULL;
 								}
 							}
-							pthread_attr_destroy(&attr);
 						} else {
 							/*
 							 * Release the PRI lock while we create the channel
@@ -1732,7 +1734,7 @@
 				if (chanpos < 0) {
 					ast_log(LOG_WARNING, "Received NOTIFY on unconfigured channel %d/%d span %d\n",
 						PRI_SPAN(e->notify.channel), PRI_CHANNEL(e->notify.channel), pri->span);
-				} else {
+				} else if (!pri->discardremoteholdretrieval) {
 					struct ast_frame f = { AST_FRAME_CONTROL, };
 
 					sig_pri_lock_private(pri->pvts[chanpos]);
@@ -2353,9 +2355,13 @@
 			break;
 		}
 
-		/* Force overlap dial if we're doing GR-303! */
-		pri_set_overlapdial(pri->dchans[i], pri->overlapdial);
+		pri_set_overlapdial(pri->dchans[i], (pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING) ? 1 : 0);
+#ifdef HAVE_PRI_PROG_W_CAUSE
+		pri_set_chan_mapping_logical(pri->dchans[i], pri->qsigchannelmapping == DAHDI_CHAN_MAPPING_LOGICAL);
+#endif
+#ifdef HAVE_PRI_INBANDDISCONNECT
 		pri_set_inbanddisconnect(pri->dchans[i], pri->inbanddisconnect);
+#endif
 		/* Enslave to master if appropriate */
 		if (i)
 			pri_enslave(pri->dchans[0], pri->dchans[i]);
@@ -2366,7 +2372,7 @@
 			ast_log(LOG_ERROR, "Unable to create PRI structure\n");
 			return -1;
 		}
-		pri_set_debug(pri->dchans[i], 0);
+		pri_set_debug(pri->dchans[i], DEFAULT_PRI_DEBUG);
 		pri_set_nsf(pri->dchans[i], pri->nsf);
 #ifdef PRI_GETSET_TIMERS
 		for (x = 0; x < PRI_MAX_TIMERS; x++) {

Modified: trunk/channels/sig_pri.h
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/channels/sig_pri.h?view=diff&rev=210696&r1=210695&r2=210696
==============================================================================
--- trunk/channels/sig_pri.h (original)
+++ trunk/channels/sig_pri.h Wed Aug  5 17:46:37 2009
@@ -82,6 +82,10 @@
 #define SIG_PRI		DAHDI_SIG_CLEAR
 #define SIG_BRI		(0x2000000 | DAHDI_SIG_CLEAR)
 #define SIG_BRI_PTMP	(0X4000000 | DAHDI_SIG_CLEAR)
+
+/* QSIG channel mapping option types */
+#define DAHDI_CHAN_MAPPING_PHYSICAL	0
+#define DAHDI_CHAN_MAPPING_LOGICAL	1
 
 /* Overlap dialing option types */
 #define DAHDI_OVERLAPDIAL_NONE 0




More information about the asterisk-commits mailing list