diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-03 05:08:51 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-03 05:08:51 +0000 |
commit | 678f8fc892da32933a23771bc9faefaedf489aa7 (patch) | |
tree | 2b2dbe0890e6f3380a3a611ab7c8cb076123a0e1 /pbx/pbx_config.c | |
parent | fa3d87e0a24e7bd36307da74ce47da63086af8e6 (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/pbx_config.c')
-rwxr-xr-x | pbx/pbx_config.c | 10 |
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); |