diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c index cca1e871445c7ec966d426442ccb46ea8636318d..61880246ccf72a08170542529a2d94f572ae0b05 100644 --- a/cdr/cdr_csv.c +++ b/cdr/cdr_csv.c @@ -50,6 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") static int usegmtime = 0; static int loguniqueid = 0; static int loguserfield = 0; +static int loaded = 0; static char *config = "cdr.conf"; /* #define CSV_LOGUNIQUEID 1 */ @@ -316,6 +317,7 @@ static int csv_log(struct ast_cdr *cdr) static int unload_module(void) { ast_cdr_unregister(name); + loaded = 0; return 0; } @@ -326,15 +328,23 @@ static int load_module(void) if(!load_config(0)) return AST_MODULE_LOAD_DECLINE; - if ((res = ast_cdr_register(name, ast_module_info->description, csv_log))) + if ((res = ast_cdr_register(name, ast_module_info->description, csv_log))) { ast_log(LOG_ERROR, "Unable to register CSV CDR handling\n"); - + } else { + loaded = 1; + } return res; } static int reload(void) { - load_config(1); + if (load_config(1)) { + loaded = 1; + } else { + loaded = 0; + ast_log(LOG_WARNING, "No [csv] section in cdr.conf. Unregistering backend.\n"); + ast_cdr_unregister(name); + } return 0; } diff --git a/configs/cdr.conf.sample b/configs/cdr.conf.sample index c2882c1f0dc52371e437d6ef248d0a0e22fb0d8d..693b2809288534678bd5ec71866f54ce289d8123 100644 --- a/configs/cdr.conf.sample +++ b/configs/cdr.conf.sample @@ -136,8 +136,8 @@ [csv] usegmtime=yes ; log date/time in GMT. Default is "no" -loguniqueid=yes ; log uniqueid. Default is "no -loguserfield=yes ; log user field. Default is "no +loguniqueid=yes ; log uniqueid. Default is "no" +loguserfield=yes ; log user field. Default is "no" ;[radius] ;usegmtime=yes ; log date/time in GMT