Asterisk - The Open Source Telephony Project
18.5.0
|
FreeTDS CDR logger. More...
#include "asterisk.h"
#include "asterisk/config.h"
#include "asterisk/channel.h"
#include "asterisk/cdr.h"
#include "asterisk/module.h"
#include <sqlfront.h>
#include <sybdb.h>
Go to the source code of this file.
Data Structures | |
struct | cdr_tds_config |
Macros | |
#define | DATE_FORMAT "%Y/%m/%d %T" |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static char * | anti_injection (const char *, int) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
static int | execute_and_consume (DBPROCESS *dbproc, const char *fmt,...) |
static void | get_date (char *, size_t len, struct timeval) |
static int | load_module (void) |
static int | mssql_connect (void) |
static int | mssql_disconnect (void) |
static int | reload (void) |
static int | tds_error_handler (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr) |
static int | tds_load_module (int reload) |
static int | tds_log (struct ast_cdr *cdr) |
static int | tds_message_handler (DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line) |
static int | tds_unload_module (void) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "FreeTDS CDR Backend" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "30ef0c93b36035ec78c9cfd712d36d9b" , .support_level = AST_MODULE_SUPPORT_EXTENDED, .load = load_module, .unload = unload_module, .reload = reload, .load_pri = AST_MODPRI_CDR_DRIVER, .requires = "cdr", } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static const char | config [] = "cdr_tds.conf" |
static const char | name [] = "FreeTDS (MSSQL)" |
static struct cdr_tds_config * | settings |
static ast_mutex_t | tds_lock = { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP , NULL, {1, 0} } |
#define DATE_FORMAT "%Y/%m/%d %T" |
* * Table Structure for `cdr` * * Created on: 05/20/2004 16:16 * Last changed on: 07/27/2004 20:01 CREATE TABLE [dbo].[cdr] ( [accountcode] [varchar] (20) NULL , [src] [varchar] (80) NULL , [dst] [varchar] (80) NULL , [dcontext] [varchar] (80) NULL , [clid] [varchar] (80) NULL , [channel] [varchar] (80) NULL , [dstchannel] [varchar] (80) NULL , [lastapp] [varchar] (80) NULL , [lastdata] [varchar] (80) NULL , [start] [datetime] NULL , [answer] [datetime] NULL , [end] [datetime] NULL , [duration] [int] NULL , [billsec] [int] NULL , [disposition] [varchar] (20) NULL , [amaflags] [varchar] (16) NULL , [uniqueid] [varchar] (32) NULL , [userfield] [varchar] (256) NULL ) ON [PRIMARY]
Definition at line 75 of file cdr_tds.c.
Referenced by get_date().
|
static |
Definition at line 302 of file cdr_tds.c.
References ast_calloc, ast_log, buf, len(), LOG_ERROR, NULL, str, and strcasestr().
Referenced by tds_log().
struct ast_module* AST_MODULE_SELF_SYM | ( | void | ) |
|
static |
Definition at line 348 of file cdr_tds.c.
References ast_free, and ast_vasprintf.
Referenced by mssql_connect().
|
static |
Definition at line 336 of file cdr_tds.c.
References ast_copy_string(), ast_localtime(), ast_strftime(), ast_tvzero(), DATE_FORMAT, and NULL.
Referenced by tds_log().
|
static |
Definition at line 597 of file cdr_tds.c.
References ast_calloc_with_stringfields, ast_cdr_register(), ast_free, ast_log, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, ast_string_field_free_memory, ast_module_info::description, LOG_ERROR, name, NULL, tds_error_handler(), tds_load_module(), tds_log(), and tds_message_handler().
Referenced by unload_module().
|
static |
Definition at line 391 of file cdr_tds.c.
References ast_log, cdr_tds_config::charset, cdr_tds_config::connected, cdr_tds_config::database, dbopen(), cdr_tds_config::dbproc, execute_and_consume(), cdr_tds_config::has_userfield, cdr_tds_config::hostname, cdr_tds_config::language, LOG_ERROR, LOG_NOTICE, NULL, cdr_tds_config::password, cdr_tds_config::table, and cdr_tds_config::username.
Referenced by tds_load_module(), and tds_log().
|
static |
Definition at line 379 of file cdr_tds.c.
References cdr_tds_config::connected, cdr_tds_config::dbproc, and NULL.
Referenced by tds_load_module(), tds_log(), and tds_unload_module().
|
static |
Definition at line 592 of file cdr_tds.c.
References tds_load_module().
Referenced by unload_module().
|
static |
Definition at line 462 of file cdr_tds.c.
References ast_log, and LOG_ERROR.
Referenced by load_module().
|
static |
Definition at line 481 of file cdr_tds.c.
References ast_config_destroy(), ast_config_load, ast_log, ast_mutex_lock, ast_mutex_unlock, ast_string_field_init, ast_string_field_set, ast_true(), ast_variable_browse(), ast_variable_retrieve(), config, CONFIG_FLAG_FILEUNCHANGED, CONFIG_STATUS_FILEINVALID, CONFIG_STATUS_FILEUNCHANGED, cdr_tds_config::database, cdr_tds_config::hostname, cdr_tds_config::hrtime, cdr_tds_config::language, LOG_ERROR, LOG_NOTICE, mssql_connect(), mssql_disconnect(), NULL, cdr_tds_config::password, cdr_tds_config::table, tds_lock, and cdr_tds_config::username.
Referenced by load_module(), and reload().
|
static |
Definition at line 109 of file cdr_tds.c.
References accountcode, answer(), anti_injection(), ast_cdr_disp2str(), ast_channel_amaflags2string(), ast_free, ast_log, AST_MAX_USER_FIELD, ast_mutex_lock, ast_mutex_unlock, ast_tvdiff_us(), ast_tvzero(), cdr_tds_config::connected, cdr_tds_config::dbproc, done, end, get_date(), cdr_tds_config::has_userfield, cdr_tds_config::hostname, cdr_tds_config::hrtime, LOG_ERROR, LOG_NOTICE, mssql_connect(), mssql_disconnect(), NULL, cdr_tds_config::table, and tds_lock.
Referenced by load_module().
|
static |
Definition at line 473 of file cdr_tds.c.
References ast_debug, ast_log, and LOG_NOTICE.
Referenced by load_module().
|
static |
Definition at line 442 of file cdr_tds.c.
References ast_cdr_unregister(), ast_free, ast_mutex_lock, ast_mutex_unlock, ast_string_field_free_memory, mssql_disconnect(), name, and tds_lock.
Referenced by unload_module().
|
static |
Definition at line 627 of file cdr_tds.c.
References AST_MODFLAG_LOAD_ORDER, AST_MODPRI_CDR_DRIVER, AST_MODULE_INFO(), AST_MODULE_SUPPORT_EXTENDED, ASTERISK_GPL_KEY, load_module(), reload(), and tds_unload_module().
|
static |
|
static |
|
static |
Definition at line 78 of file cdr_tds.c.
Referenced by tds_load_module().
|
static |
Definition at line 77 of file cdr_tds.c.
Referenced by load_module(), and tds_unload_module().
|
static |
Definition at line 98 of file cdr_tds.c.
Referenced by process_config().
|
static |
Definition at line 96 of file cdr_tds.c.
Referenced by tds_load_module(), tds_log(), and tds_unload_module().