Index: asterisk.c =================================================================== RCS file: /usr/cvsroot/asterisk/asterisk.c,v retrieving revision 1.144 diff -u -r1.144 asterisk.c --- asterisk.c 26 Mar 2005 07:16:18 -0000 1.144 +++ asterisk.c 31 Mar 2005 09:29:07 -0000 @@ -1955,6 +1955,7 @@ printf(term_quit()); exit(1); } + ast_cdr_init_subsystem(); #if 0 /* This should no longer be necessary */ /* sync cust config and reload some internals in case a custom config handler binded to them */ Index: cdr.c =================================================================== RCS file: /usr/cvsroot/asterisk/cdr.c,v retrieving revision 1.32 diff -u -r1.32 cdr.c --- cdr.c 29 Mar 2005 06:16:49 -0000 1.32 +++ cdr.c 31 Mar 2005 09:29:08 -0000 @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include #include @@ -809,4 +811,35 @@ ret = newcdr; } return ret; +} + +/*--- show_cdrdrivers: CLI command to list all available and + active CDR drivers */ +static int show_cdrdrivers(int fd, int argc, char *argv[]) +{ +#define FORMAT "%-10.10s %-50.50s\n" + + struct ast_cdr_beitem *i; + + i = bes; + ast_cli(fd, FORMAT, "Name", "Description"); + ast_cli(fd, FORMAT, "----", "-----------"); + while(i) { + ast_cli(fd, FORMAT, i->name, i->desc); + i = i->next; + } + return RESULT_SUCCESS; +} + +static char show_cdrdrivers_usage[] = +"Usage: show cdrdrivers\n" +" Shows available CDR drivers registered and active in your Asterisk server.\n"; + +static struct ast_cli_entry cli_show_cdrdrivers = + { { "show", "cdrdrivers", NULL }, show_cdrdrivers, "Show active CDR drivers", show_cdrdrivers_usage }; + +/*--- ast_cdr_init_subsystem: Initialize CDR subsystem in Asterisk */ +void ast_cdr_init_subsystem(void) +{ + ast_cli_register(&cli_show_cdrdrivers); }