aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-03 05:08:51 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-10-03 05:08:51 +0000
commit678f8fc892da32933a23771bc9faefaedf489aa7 (patch)
tree2b2dbe0890e6f3380a3a611ab7c8cb076123a0e1 /pbx
parentfa3d87e0a24e7bd36307da74ce47da63086af8e6 (diff)
Add '+foo' option, update sample config
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3888 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rwxr-xr-xpbx/pbx_config.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 6cac835a7..a6286c0a7 100755
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1649,6 +1649,7 @@ static int pbx_load_module(void)
char *stringp=NULL;
int ipri = -2;
char realext[256]="";
+ char *plus;
tc = strdup(v->value);
if(tc!=NULL){
stringp=tc;
@@ -1668,6 +1669,11 @@ static int pbx_load_module(void)
else
ast_log(LOG_WARNING, "Label missing trailing ')' at line %d\n", v->lineno);
}
+ plus = strchr(pri, '+');
+ if (plus) {
+ *plus = '\0';
+ plus++;
+ }
if (!strcmp(pri,"hint"))
ipri=PRIORITY_HINT;
else if (!strcmp(pri, "next") || !strcmp(pri, "n")) {
@@ -1680,7 +1686,7 @@ static int pbx_load_module(void)
ipri = lastpri;
else
ast_log(LOG_WARNING, "Can't use 'same' priority on the first entry!\n");
- } else {
+ } else {
if (sscanf(pri, "%i", &ipri) != 1) {
ast_log(LOG_WARNING, "Invalid priority '%s' at line %d\n", pri, v->lineno);
ipri = 0;
@@ -1722,6 +1728,8 @@ static int pbx_load_module(void)
while(*appl && (*appl < 33)) appl++;
pbx_substitute_variables_helper(NULL, ext, realext, sizeof(realext) - 1);
if (ipri) {
+ if (plus)
+ ipri += atoi(plus);
lastpri = ipri;
if (ast_add_extension2(con, 0, realext, ipri, label, cidmatch, appl, strdup(data), FREE, registrar)) {
ast_log(LOG_WARNING, "Unable to register extension at line %d\n", v->lineno);