[Asterisk-cvs] asterisk/pbx pbx_config.c,1.45,1.46

markster at lists.digium.com markster at lists.digium.com
Sat Oct 2 16:41:27 CDT 2004


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

Modified Files:
	pbx_config.c 
Log Message:
Allow "n" or "next" and "s" or "same" in dialplan logic priorities


Index: pbx_config.c
===================================================================
RCS file: /usr/cvsroot/asterisk/pbx/pbx_config.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- pbx_config.c	7 Sep 2004 01:22:57 -0000	1.45
+++ pbx_config.c	2 Oct 2004 20:43:16 -0000	1.46
@@ -3,9 +3,9 @@
  *
  * Populate and remember extensions from static config file
  * 
- * Copyright (C) 1999, Mark Spencer
+ * Copyright (C) 1999-2004, Digium, Inc.
  *
- * Mark Spencer <markster at linux-support.net>
+ * Mark Spencer <markster at digium.com>
  *
  * This program is free software, distributed under the terms of
  * the GNU General Public License
@@ -1618,6 +1618,7 @@
 	struct ast_context *con;
 	char *start, *end;
 	char realvalue[256];
+	int lastpri = -2;
 
 	cfg = ast_load(config);
 	if (cfg) {
@@ -1658,7 +1659,17 @@
 								pri="";
 							if (!strcmp(pri,"hint"))
 								ipri=PRIORITY_HINT;
-							else {
+							else if (!strcmp(pri, "next") || !strcmp(pri, "n")) {
+								if (lastpri > -2)
+									ipri = lastpri + 1;
+								else
+									ast_log(LOG_WARNING, "Can't use 'next' priority on the first entry!\n");
+							} else if (!strcmp(pri, "same") || !strcmp(pri, "s")) {
+								if (lastpri > -2)
+									ipri = lastpri;
+								else
+									ast_log(LOG_WARNING, "Can't use 'same' priority on the first entry!\n");
+							} else {
 								if (sscanf(pri, "%i", &ipri) != 1) {
 									ast_log(LOG_WARNING, "Invalid priority '%s' at line %d\n", pri, v->lineno);
 									ipri = 0;
@@ -1700,6 +1711,7 @@
 							while(*appl && (*appl < 33)) appl++;
 							pbx_substitute_variables_helper(NULL, ext, realext, sizeof(realext) - 1);
 							if (ipri) {
+								lastpri = ipri;
 								if (ast_add_extension2(con, 0, realext, ipri, cidmatch, appl, strdup(data), FREE, registrar)) {
 									ast_log(LOG_WARNING, "Unable to register extension at line %d\n", v->lineno);
 								}




More information about the svn-commits mailing list