diff -ru ../asterisk-1.4.14/./main/config.c ./main/config.c --- ../asterisk-1.4.14/./main/config.c 2007-11-12 15:16:18.000000000 -0500 +++ ./main/config.c 2008-03-07 14:19:36.000000000 -0500 @@ -1013,15 +1013,15 @@ if ((fd = mkstemp(fntmp)) > 0 && (f = fdopen(fd, "w")) != NULL) { if (option_verbose > 1) ast_verbose(VERBOSE_PREFIX_2 "Saving '%s': ", fn); - fprintf(f, ";!\n"); - fprintf(f, ";! Automatically generated configuration file\n"); - if (strcmp(configfile, fn)) - fprintf(f, ";! Filename: %s (%s)\n", configfile, fn); - else - fprintf(f, ";! Filename: %s\n", configfile); - fprintf(f, ";! Generator: %s\n", generator); - fprintf(f, ";! Creation Date: %s", date); - fprintf(f, ";!\n"); + //fprintf(f, ";!\n"); + //fprintf(f, ";! Automatically generated configuration file\n"); + //if (strcmp(configfile, fn)) + // fprintf(f, ";! Filename: %s (%s)\n", configfile, fn); + //else + // fprintf(f, ";! Filename: %s\n", configfile); + //fprintf(f, ";! Generator: %s\n", generator); + //fprintf(f, ";! Creation Date: %s", date); + //fprintf(f, ";!\n"); cat = cfg->root; while(cat) { /* Dump section with any appropriate comment */ @@ -1030,8 +1030,8 @@ if (cmt->cmt[0] != ';' || cmt->cmt[1] != '!') fprintf(f,"%s", cmt->cmt); } - if (!cat->precomments) - fprintf(f,"\n"); + //if (!cat->precomments) + // fprintf(f,"\n"); fprintf(f, "[%s]", cat->name); if (cat->ignored) fprintf(f, "(!)"); diff -ru ../asterisk-1.4.14/./pbx/pbx_config.c ./pbx/pbx_config.c --- ../asterisk-1.4.14/./pbx/pbx_config.c 2007-10-31 13:49:39.000000000 -0400 +++ ./pbx/pbx_config.c 2008-03-07 14:17:16.000000000 -0500 @@ -2358,10 +2358,13 @@ struct ast_config *cfg; char *cat, *chan; const char *zapchan; + const char *pikachan; const char *hasexten; char tmp[256]; char iface[256]; char zapcopy[256]; + char pikacopy[256]; + char pika_dev[256]; char *c; int len; int hasvoicemail; @@ -2421,6 +2424,21 @@ chan = strsep(&c, ","); } } + pikachan = ast_variable_retrieve(cfg, cat, "pikachan"); + if (!pikachan) + pikachan = ast_variable_retrieve(cfg, "general", "pikachan"); + if (!ast_strlen_zero(pikachan)) { + ast_copy_string(pikacopy, pikachan, sizeof(pikacopy)); + c = pikacopy; + chan = strsep(&c, ","); + while (chan) { + if (sscanf(chan, "%s", pika_dev)) { + snprintf(tmp, sizeof(tmp), "PIKA/%s", pika_dev); + append_interface(iface, sizeof(iface), tmp); + } + chan = strsep(&c, ","); + } + } if (!ast_strlen_zero(iface)) { /* Only create a context here when it is really needed. Otherwise default empty context created by pbx_config may conflict with the one explicitly created by pbx_ael */