2009-06-29 18:05:27 +00:00
|
|
|
;
|
2026-01-27 12:57:21 -07:00
|
|
|
; Asterisk Channel Event Logging (CEL) - Custom Sqlite3 Backend
|
2009-06-29 18:05:27 +00:00
|
|
|
;
|
|
|
|
|
|
2026-01-27 12:57:21 -07:00
|
|
|
; This is the configuration file for the customizable Sqlite3 backend for CEL
|
|
|
|
|
; logging.
|
2009-06-26 15:28:53 +00:00
|
|
|
;
|
2026-01-27 12:57:21 -07:00
|
|
|
; Legacy vs Advanced Mappings
|
2009-06-26 15:28:53 +00:00
|
|
|
;
|
2026-01-27 12:57:21 -07:00
|
|
|
; Legacy mappings are those that are defined using dialplan functions like
|
|
|
|
|
; CALLERID and CHANNEL and require a VERY expensive function replacement
|
|
|
|
|
; process at runtime for every record output.
|
|
|
|
|
;
|
|
|
|
|
; Advanced mappings are those that are defined by a simple list of field names
|
|
|
|
|
; and uses significantly less resources at runtime.
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
; Each category in this file represents a separate Sqlite3 database file.
|
|
|
|
|
; A filename that starts with a forward-slash '/' will be treated as an absolute
|
|
|
|
|
; path name. If it doesn't, it must be a file name with no directory separators
|
|
|
|
|
; which will be placed in the /var/log/asterisk directory. If the database
|
|
|
|
|
; file doesn't already exist, it will be created.
|
|
|
|
|
;
|
|
|
|
|
; Previous versions of Asterisk limited the output to a single database file
|
|
|
|
|
; named "master" which was shared with CDR Sqlite3 logging. That is no longer
|
|
|
|
|
; the case.
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
; There are several "special" variables created by this module that can be used
|
|
|
|
|
; in a mapping, both legacy and advanced:
|
2012-01-13 17:36:44 +00:00
|
|
|
;
|
|
|
|
|
; eventtype - The name of the CEL event.
|
|
|
|
|
; eventtime - The timestamp of the CEL event.
|
2012-02-01 17:42:15 +00:00
|
|
|
; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event.
|
2012-01-13 17:36:44 +00:00
|
|
|
; userdeftype - User defined event type name from CELGenUserEvent().
|
|
|
|
|
; eventextra - Extra data included with this CEL event, typically along with
|
|
|
|
|
; an event of type USER_DEFINED from CELGenUserEvent().
|
|
|
|
|
; BRIDGEPEER - Bridged peer channel name at the time of the CEL event.
|
|
|
|
|
; CHANNEL(peer) could also be used.
|
|
|
|
|
;
|
2026-01-27 12:57:21 -07:00
|
|
|
; Legacy Mappings
|
|
|
|
|
;
|
|
|
|
|
; Within a legacy mapping, use the CALLERID() and CHANNEL() functions or
|
|
|
|
|
; the special variables above to retrieve values from the CEL event.
|
|
|
|
|
;
|
|
|
|
|
; NOTE: If your legacy mapping uses only those two functions and the special
|
|
|
|
|
; variables, the module will attempt to strip the functions and create a much
|
|
|
|
|
; faster advanced mapping for it. However, we urge you to create a real advanced
|
|
|
|
|
; mapping and not rely on this process. If the mapping contains something not
|
|
|
|
|
; recognized it will go the slower legacy route.
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
;[cel_master]
|
|
|
|
|
;table = cel ; The name of the table in the database into which records
|
|
|
|
|
; are to be written. If the table doesn't already exist,
|
|
|
|
|
; it will be created.
|
|
|
|
|
|
|
|
|
|
;columns = eventtype, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra
|
|
|
|
|
; The column names to receive the fields. If the table doesn't already exist,
|
|
|
|
|
; it will be created with these columns. If the table does exist, this list
|
|
|
|
|
; MUST match the existing columns or the config will fail to load.
|
|
|
|
|
; The column names do NOT have to match the field names however.
|
|
|
|
|
|
|
|
|
|
values = '${eventtype}','${eventtime}','${CALLERID(name)}','${CALLERID(num)}','${CALLERID(ANI)}','${CALLERID(RDNIS)}','${CALLERID(DNID)}','${CHANNEL(context)}','${CHANNEL(exten)}','${CHANNEL(channame)}','${CHANNEL(appname)}','${CHANNEL(appdata)}','${CHANNEL(amaflags)}','${CHANNEL(accountcode)}','${CHANNEL(uniqueid)}','${CHANNEL(userfield)}','${BRIDGEPEER}','${userdeftype}','${eventextra}'
|
|
|
|
|
; The list of fields to write into the columns.
|
|
|
|
|
; Each field MUST be enclosed in single-quotes and the fields separated
|
|
|
|
|
; by commas. Additionally, the number of fields specified MUST match the
|
|
|
|
|
; number of columns or the config will fail to load.
|
|
|
|
|
|
|
|
|
|
;busy_timeout = 1000 ; The number of milliseconds to wait for a database operation
|
|
|
|
|
; to complete before an error is returned.
|
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
; Advanced Mappings
|
|
|
|
|
;
|
|
|
|
|
;[cdr_advanced]
|
|
|
|
|
;table = cel ; The name of the table in the database into which records
|
|
|
|
|
; are to be written. If the table doesn't already exist,
|
|
|
|
|
; it will be created.
|
|
|
|
|
|
|
|
|
|
;columns = eventtype, literal, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra
|
|
|
|
|
; The column names to receive the fields. If the table doesn't already exist,
|
|
|
|
|
; it will be created with these columns. If the table does exist, this list
|
|
|
|
|
; MUST match the existing columns or the config will fail to load.
|
|
|
|
|
; The column names do NOT have to match the field names however.
|
|
|
|
|
|
|
|
|
|
;fields = eventtype, "some literal", eventtime, name, num, ani, rdnis, dnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra
|
|
|
|
|
; The "fields" parameter differentiates this mapping as an Advanced one
|
|
|
|
|
; as opposed to "values" used above.
|
|
|
|
|
;
|
|
|
|
|
; This is the list of fields to include in the record. The field names are the
|
|
|
|
|
; same as in the legacy mapping but without any enclosing dialplan functions or
|
|
|
|
|
; quotes. You can specify literals to be placed in the output record by
|
|
|
|
|
; double-quoting them. There is also some special notation available in the
|
|
|
|
|
; form of "qualifiers". A qualifier is a list of tags, separated by the '^'
|
|
|
|
|
; character and placed directly after the field name and enclosed in parentheses.
|
|
|
|
|
;
|
|
|
|
|
; The default output format for the "EventTime" timestamp field is the "%Y-%m-%d %T"
|
|
|
|
|
; strftime string format however you can also format the field as an int64 or a
|
|
|
|
|
; float: `eventtime(int64)` or `eventtime(float)`.
|
|
|
|
|
;
|
|
|
|
|
; Unlike CDRs, the "amaflags" field is output as its numerical value by default
|
|
|
|
|
; for historical reasons. You can output it as its friendly string with
|
|
|
|
|
; `amaflags(amaflags)`. This will print "DOCUMENTATION" instead of "3" for instance.
|
|
|
|
|
;
|
|
|
|
|
; If you need to combine flags, use the caret '^' symbol: `eventtime(int64^noquote)`
|
|
|
|
|
;
|
|
|
|
|
; Final notes about "fields":
|
|
|
|
|
; Field names and qualifiers aren't case sensitive.
|
|
|
|
|
; You MUST use commas to separate the fields.
|
|
|
|
|
; You MUST use double-quotes to indicate literal fields.
|
|
|
|
|
; Whitespace in "fields" is ignored except in literals.
|
|
|
|
|
|
|
|
|
|
;busy_timeout = 1000 ; The number of milliseconds to wait for a database operation
|
|
|
|
|
; to complete before an error is returned.
|
|
|
|
|
|