aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-29 12:24:01 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-29 12:24:01 +0000
commitaaf61b07bcba2d54e373dc483359f9d9605102ac (patch)
treeebb1cb6193690290e69c70b313351bd248cc22d3 /pbx
parent899628dd4331baeb6228a0ed089b6dd523c19084 (diff)
Bugfix for 7813 applied to trunk as per patch supplied by stevens
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@41267 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r--pbx/pbx_config.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 6d612eff9..9916d4a30 100644
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -782,9 +782,12 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
}
/* fireout general info */
- fprintf(output, "[general]\nstatic=%s\nwriteprotect=%s\n\n",
+ fprintf(output, "[general]\nstatic=%s\nwriteprotect=%s\nautofallthrough=%s\nclearglobalvars=%s\npriorityjumping=%s\n\n",
static_config ? "yes" : "no",
- write_protect_config ? "yes" : "no");
+ write_protect_config ? "yes" : "no",
+ autofallthrough_config ? "yes" : "no",
+ clearglobalvars_config ? "yes" : "no",
+ ast_true(ast_variable_retrieve(cfg, "general", "priorityjumping")) ? "yes" : "no");
if ((v = ast_variable_browse(cfg, "globals"))) {
fprintf(output, "[globals]\n");
@@ -850,6 +853,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
const char *sep, *cid;
char *tempdata = strdup(ast_get_extension_app_data(p));
char *s;
+ const char *el = ast_get_extension_label(p);
+ char *label = calloc(1, 128);
if (!tempdata) { /* XXX error duplicating string ? */
incomplete = 1;
@@ -864,11 +869,18 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
} else {
sep = cid = "";
}
- fprintf(output, "exten => %s%s%s,%d,%s(%s)\n",
+ if (el) {
+ if (snprintf(label, 127, "(%s)", el) != (strlen(el)+2)) {
+ incomplete = 1; /* error encountered or label > 125 chars */
+ label = NULL;
+ };
+ };
+ fprintf(output, "exten => %s%s%s,%d%s,%s(%s)\n",
ast_get_extension_name(p), sep, cid,
- ast_get_extension_priority(p),
+ ast_get_extension_priority(p), (label)?label:"",
ast_get_extension_app(p), tempdata);
free(tempdata);
+ if (label) free(label);
}
}
}