struct ast_config *cfg;
char *s;
- ast_log(LOG_WARNING, "reading enum config\n");
-
cfg = ast_load(ENUM_CONFIG);
if (cfg) {
if (!(s=ast_variable_retrieve(cfg, "general", "h323driver"))) {
ast_destroy(cfg);
return 0;
}
- ast_log(LOG_WARNING, "Error reading enum config\n");
- return -1;
+ ast_log(LOG_NOTICE, "No ENUM Config file, using defaults\n");
+ return 0;
}
*/
int fd = -1;
int fmts = -1;
- char filename2[256];
- char lang2[MAX_LANGUAGE];
+ char filename2[256]="";
+ char filename3[256]="";
+ char *endpart;
int res;
ast_stopstream(chan);
/* do this first, otherwise we detect the wrong writeformat */
if (chan->generator)
ast_deactivate_generator(chan);
if (preflang && strlen(preflang)) {
- snprintf(filename2, sizeof(filename2), "%s/%s", preflang, filename);
+ strncpy(filename3, filename, sizeof(filename3) - 1);
+ endpart = strrchr(filename3, '/');
+ if (endpart) {
+ *endpart = '\0';
+ endpart++;
+ snprintf(filename2, sizeof(filename2), "%s/%s/%s", filename3, preflang, endpart);
+ } else
+ snprintf(filename2, sizeof(filename2), "%s/%s", preflang, filename);
fmts = ast_fileexists(filename2, NULL, NULL);
- if (fmts < 1) {
- strncpy(lang2, preflang, sizeof(lang2)-1);
- snprintf(filename2, sizeof(filename2), "%s/%s", lang2, filename);
- fmts = ast_fileexists(filename2, NULL, NULL);
- }
}
if (fmts < 1) {
strncpy(filename2, filename, sizeof(filename2)-1);