Asterisk - The Open Source Telephony Project GIT-master-80b953f
Loading...
Searching...
No Matches
cel_sqlite3_custom.c
Go to the documentation of this file.
1/*
2 * Asterisk -- An open source telephony toolkit.
3 *
4 * Copyright (C) 2007, Digium, Inc.
5 *
6 * Steve Murphy <murf@digium.com> borrowed code from cdr,
7 * Mark Spencer <markster@digium.com> and others.
8 *
9 * See http://www.asterisk.org for more information about
10 * the Asterisk project. Please do not directly contact
11 * any of the maintainers of this project for assistance;
12 * the project provides a web site, mailing lists and IRC
13 * channels for your use.
14 *
15 * This program is free software, distributed under the terms of
16 * the GNU General Public License Version 2. See the LICENSE file
17 * at the top of the source tree.
18 */
19
20/*! \file
21 *
22 * \brief Custom SQLite3 CEL records.
23 *
24 * \author Adapted by Steve Murphy <murf@digium.com> from
25 * Alejandro Rios <alejandro.rios@avatar.com.co> and
26 * Russell Bryant <russell@digium.com> from
27 * cdr_mysql_custom by Edward Eastman <ed@dm3.co.uk>,
28 * and cdr_sqlite by Holger Schurig <hs4233@mail.mn-solutions.de>
29 * \ingroup cel_drivers
30 *
31 * The logic for this module now resides in res/res_cdrel_custom.c.
32 *
33 */
34
35/*** MODULEINFO
36 <depend>res_cdrel_custom</depend>
37 <depend>sqlite3</depend>
38 <support_level>extended</support_level>
39 ***/
40
41#include "asterisk.h"
42
43#include <sqlite3.h>
44
45#include "asterisk/cel.h"
46#include "asterisk/module.h"
48
49#define CONFIG "cel_sqlite3_custom.conf"
50
51#define CUSTOM_BACKEND_NAME "CEL sqlite3 custom backend"
52
53static struct cdrel_configs *configs;
54
55/*!
56 * Protects in-flight log transactions from reloads.
57 */
59
60#define CDREL_RECORD_TYPE cdrel_record_cel
61#define CDREL_BACKEND_TYPE cdrel_backend_db
62
69
70static int unload_module(void)
71{
72 int res = 0;
73
77 if (res == 0) {
79 }
80
81 return res;
82}
83
94
95static int reload(void)
96{
97 int res = 0;
101 return res;
102}
103
104AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite3 Custom CEL Module",
105 .support_level = AST_MODULE_SUPPORT_EXTENDED,
106 .load = load_module,
107 .unload = unload_module,
108 .reload = reload,
109 .load_pri = AST_MODPRI_CDR_DRIVER,
110 .requires = "cel,res_cdrel_custom",
Asterisk main include file. File version handling, generic pbx functions.
Call Event Logging API.
static void custom_log(struct ast_event *event)
#define CDREL_RECORD_TYPE
static struct cdrel_configs * configs
#define CONFIG
static enum ast_module_load_result load_module(void)
#define CDREL_BACKEND_TYPE
static ast_rwlock_t configs_lock
static int unload_module(void)
static int reload(void)
#define CUSTOM_BACKEND_NAME
#define ast_rwlock_wrlock(a)
Definition lock.h:243
#define ast_rwlock_rdlock(a)
Definition lock.h:242
#define ast_rwlock_init(rwlock)
wrapper for rwlock with tracking enabled
Definition lock.h:231
#define ast_rwlock_destroy(rwlock)
Definition lock.h:240
#define ast_rwlock_unlock(a)
Definition lock.h:241
Asterisk module definitions.
@ AST_MODFLAG_LOAD_ORDER
Definition module.h:331
#define AST_MODULE_INFO(keystr, flags_to_set, desc, fields...)
Definition module.h:557
@ AST_MODPRI_CDR_DRIVER
Definition module.h:345
@ AST_MODULE_SUPPORT_EXTENDED
Definition module.h:122
#define ASTERISK_GPL_KEY
The text the key() function should return.
Definition module.h:46
ast_module_load_result
Definition module.h:68
@ AST_MODULE_LOAD_SUCCESS
Definition module.h:70
@ AST_MODULE_LOAD_DECLINE
Module has failed to load, may be in an inconsistent state.
Definition module.h:78
Protected header for the CDR and CEL Custom Backends.
int cdrel_logger(struct cdrel_configs *configs, void *data)
Log a record. The module's logging_cb must call this.
Definition loggers.c:270
int cdrel_reload_module(enum cdrel_backend_type backend_type, enum cdrel_record_type record_type, struct cdrel_configs **configs, const char *config_filename)
Perform module reload.
int cdrel_unload_module(enum cdrel_backend_type backend_type, enum cdrel_record_type record_type, struct cdrel_configs *configs, const char *backend_name)
Perform module unload.
struct cdrel_configs * cdrel_load_module(enum cdrel_backend_type backend_type, enum cdrel_record_type record_type, const char *config_filename, const char *backend_name, void *logging_cb)
Perform initial module load.
An event.
Definition event.c:81
Structure for rwlock and tracking information.
Definition lock.h:164