[Asterisk-cvs] asterisk/channels chan_zap.c,1.440,1.441

mattf at lists.digium.com mattf at lists.digium.com
Thu May 12 10:59:28 CDT 2005


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

Modified Files:
	chan_zap.c 
Log Message:
enable/disable facility ies


Index: chan_zap.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_zap.c,v
retrieving revision 1.440
retrieving revision 1.441
diff -u -d -r1.440 -r1.441
--- chan_zap.c	11 May 2005 15:03:11 -0000	1.440
+++ chan_zap.c	12 May 2005 15:05:25 -0000	1.441
@@ -57,7 +57,7 @@
 #include <ctype.h>
 #ifdef ZAPATA_PRI
 #include <libpri.h>
-#ifndef PRI_AOC_UNITS
+#ifndef PRI_FACILITY_ENABLE
 #error "You need newer libpri"
 #endif
 #endif
@@ -256,6 +256,7 @@
 static char idleext[AST_MAX_EXTENSION];
 static char idledial[AST_MAX_EXTENSION];
 static int overlapdial = 0;
+static int facilityenable = 0;
 static char internationalprefix[10] = "";
 static char nationalprefix[10] = "";
 static char localprefix[20] = "";
@@ -384,6 +385,7 @@
 	int prilogicalspan;						/* Logical span number within trunk group */
 	int numchans;							/* Num of channels we represent */
 	int overlapdial;						/* In overlap dialing mode */
+	int facilityenable;						/* Enable facility IEs */
 	struct pri *dchans[NUM_DCHANS];			/* Actual d-channels */
 	int dchanavail[NUM_DCHANS];				/* Whether each channel is available */
 	struct pri *pri;						/* Currently active D-channel */
@@ -1912,6 +1914,9 @@
 		pri_sr_set_bearer(sr, p->digital ? PRI_TRANS_CAP_DIGITAL : ast->transfercapability, 
 					(p->digital ? -1 : 
 						((p->law == ZT_LAW_ALAW) ? PRI_LAYER_1_ALAW : PRI_LAYER_1_ULAW)));
+		if (p->pri->facilityenable)
+			pri_facility_enable(p->pri->pri);
+
 		if (option_verbose > 2)
 			ast_verbose(VERBOSE_PREFIX_3 "Requested transfer capability: 0x%.2x - %s\n", ast->transfercapability, ast_transfercapability2str(ast->transfercapability));
 		dp_strip = 0;
@@ -6655,6 +6660,7 @@
 						pris[span].minunused = minunused;
 						pris[span].minidle = minidle;
 						pris[span].overlapdial = overlapdial;
+						pris[span].facilityenable = facilityenable;
 						strncpy(pris[span].idledial, idledial, sizeof(pris[span].idledial) - 1);
 						strncpy(pris[span].idleext, idleext, sizeof(pris[span].idleext) - 1);
 						strncpy(pris[span].internationalprefix, internationalprefix, sizeof(pris[span].internationalprefix)-1);
@@ -10154,7 +10160,9 @@
 					ast_log(LOG_WARNING, "'%s' is not a valid ISDN timer configuration string\n", v->value);
 #endif /* PRI_GETSET_TIMERS */
 #endif /* ZAPATA_PRI */
-			
+
+			} else if (!strcasecmp(v->name, "faclityenable")) {
+				facilityenable = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "cadence")) {
 				/* setup to scan our argument */
 				int element_count, c[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};




More information about the svn-commits mailing list