aboutsummaryrefslogtreecommitdiffstats
path: root/configs
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2009-06-26 15:28:53 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2009-06-26 15:28:53 +0000
commitac3b35dcc792329046ec2532ff204962c895ee98 (patch)
treea28e9113cf1daf97e45a8fc6d41a52c76ac69836 /configs
parentd13a40e1cfe5f54bfb4d1aacd2c63e7859e010bc (diff)
Merge the new Channel Event Logging (CEL) subsystem.
CEL is the new system for logging channel events. This was inspired after facing many problems trying to represent what is possible to happen to a call in Asterisk using CDR records. For more information on CEL, see the built in HTML or PDF documentation generated from the files in doc/tex/. Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard work developing this code. Also, thanks to Matt Nicholson (mnicholson) and Sean Bright (seanbright) for their assistance in the final push to get this code ready for Asterisk trunk. Review: https://reviewboard.asterisk.org/r/239/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203638 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'configs')
-rw-r--r--configs/cel.conf.sample103
-rw-r--r--configs/cel_adaptive_odbc.conf.sample106
-rw-r--r--configs/cel_custom.conf.sample20
-rw-r--r--configs/cel_pgsql.conf.sample58
-rw-r--r--configs/cel_sqlite3_custom.conf.sample7
-rw-r--r--configs/cel_tds.conf.sample69
6 files changed, 363 insertions, 0 deletions
diff --git a/configs/cel.conf.sample b/configs/cel.conf.sample
new file mode 100644
index 000000000..66d63d695
--- /dev/null
+++ b/configs/cel.conf.sample
@@ -0,0 +1,103 @@
+;
+; Asterisk Channel Event Logging
+;
+; Channel Event Logging is a mechanism to provide fine-grained event information
+; that can be used to generate billing information. Such event information can
+; be recorded to databases and files via pluggable backend modules.
+;
+
+[general]
+
+; CEL Activation
+;
+; Use the 'enable' keyword to turn CEL on or off.
+;
+; Accepted values: yes and no
+; Default value: no
+
+;enable=yes
+
+; Application Tracking
+;
+; Use the 'apps' keyword to specify the list of applications for which you want
+; to receive CEL events. This is a comma separated list of Asterisk dialplan
+; applications, such as Dial, Queue, and Park.
+;
+; Accepted values: A comma separated list of Asterisk dialplan applications
+; Default value: none
+;
+; Note: You may also use 'all' which will result in CEL events being reported
+; for all Asterisk applications. This may affect Asterisk's performance
+; significantly.
+
+apps=dial,park
+
+; Event Tracking
+;
+; Use the 'events' keyword to specify the list of events which you want to be
+; raised when they occur. This is a comma separated list of the values in the
+; table below.
+;
+; Accepted values: A comma separated list of one or more of the following:
+; ALL -- Generate entries on all events
+; CHAN_START -- The time a channel was created
+; CHAN_END -- The time a channel was terminated
+; ANSWER -- The time a channel was answered (ie, phone taken off-hook)
+; HANGUP -- The time at which a hangup occurred
+; CONF_ENTER -- The time a channel was connected into a conference room
+; CONF_EXIT -- The time a channel was removed from a conference room
+; CONF_START -- The time the first person enters a conference room
+; CONF_END -- The time the last person left a conference room (and
+; turned out the lights?)
+; APP_START -- The time a tracked application was started
+; APP_END -- the time a tracked application ended
+; PARK_START -- The time a call was parked
+; PARK_END -- Unpark event
+; BRIDGE_START -- The time a bridge is started
+; BRIDGE_END -- The time a bridge is ended
+; 3WAY_START -- When a 3-way conference starts (usually via attended xfer)
+; 3WAY_END -- When one or all exit a 3-way conference
+; BLINDTRANSFER -- When a blind transfer is initiated
+; ATTENDEDTRANSFER -- When an attended transfer is initiated
+; TRANSFER -- Generic transfer initiated; not used yet...?
+; HOOKFLASH -- So far, when a hookflash event occurs on a DAHDI
+; interface
+; USER_EVENT -- Triggered from the dialplan, and has a name given by the
+; user
+;
+; Default value: none
+; (Track no events)
+
+events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_START,BRIDGE_END
+
+; Date Format
+;
+; Use the 'dateformat' keyword to specify the date format used when CEL events
+; are raised.
+;
+; Accepted values: A strftime format string (see man strftime)
+;
+; Example: "%F %T"
+; -> This gives the date and time in the format "2009-06-23 17:02:35"
+;
+; If this option is not specified, the default format is "<seconds>.<microseconds>"
+; since epoch. The microseconds field will always be 6 digits in length, meaning it
+; may have leading zeros.
+;
+;dateformat = %F %T
+
+;
+; Asterisk Manager Interface (AMI) CEL Backend
+;
+
+[manager]
+
+; AMI Backend Activation
+;
+; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface
+; on or off.
+;
+; Accepted values: yes and no
+; Default value: no
+
+;enabled=yes
diff --git a/configs/cel_adaptive_odbc.conf.sample b/configs/cel_adaptive_odbc.conf.sample
new file mode 100644
index 000000000..a909efe04
--- /dev/null
+++ b/configs/cel_adaptive_odbc.conf.sample
@@ -0,0 +1,106 @@
+;
+; This configuration defines the connections and tables for which CEL records may
+; be populated. Each context specifies a different CEL table to be used.
+;
+; The columns in the tables should match up word-for-word (case-insensitive)
+; to the CEL variables set in the dialplan. The natural advantage to this
+; system is that beyond setting up the configuration file to tell you what
+; tables to look at, there isn't anything more to do beyond creating the
+; columns for the fields that you want, and populating the corresponding
+; CEL variables in the dialplan.
+;
+; Please note that after adding columns to the database, it is necessary to
+; reload this module to get the new column names and types read.
+;
+; Warning: if you specify two contexts with exactly the same connection and
+; table names, you will get duplicate records in that table. So be careful.
+;
+; CEL FIELDS:
+; eventtype
+; CEL_CHANNEL_START = 1
+; CEL_CHANNEL_END = 2
+; CEL_HANGUP = 3
+; CEL_ANSWER = 4
+; CEL_APP_START = 5
+; CEL_APP_END = 6
+; CEL_BRIDGE_START = 7
+; CEL_BRIDGE_END = 8
+; CEL_CONF_START = 9
+; CEL_CONF_END = 10
+; CEL_PARK_START = 11
+; CEL_PARK_END = 12
+; CEL_BLINDTRANSFER = 13
+; CEL_ATTENDEDTRANSFER = 14
+; CEL_TRANSFER = 15
+; CEL_HOOKFLASH = 16
+; CEL_3WAY_START = 17
+; CEL_3WAY_END = 18
+; CEL_CONF_ENTER = 19
+; CEL_CONF_EXIT = 20
+; CEL_USER_DEFINED = 21
+; CEL_LINKEDID_END = 22
+; CEL_BRIDGE_UPDATE = 23
+; CEL_PICKUP = 24
+; CEL_FORWARD = 25
+; eventtime (timeval, includes microseconds)
+; userdeftype (set only if eventtype == USER_DEFINED)
+; cid_name
+; cid_num
+; cid_ani
+; cid_rdnis
+; cid_dnid
+; exten
+; context
+; channame
+; appname
+; appdata
+; accountcode
+; peeraccount
+; uniqueid
+; linkedid
+; amaflag (an int)
+; userfield
+; peer
+
+
+;[first]
+;connection=mysql1
+;table=cel
+
+;[second]
+;connection=mysql1
+;table=extracel
+
+;[third]
+;connection=sqlserver
+;table=AsteriskCEL
+;usegmtime=yes ; defaults to no
+;alias src => source
+;alias channel => source_channel
+;alias dst => dest
+;alias dstchannel => dest_channel
+;
+; Any filter specified MUST match exactly or the CDR will be discarded
+;filter accountcode => somename
+;filter src => 123
+;
+; Additionally, we now support setting static values per column. Reason
+; for this is to allow different sections to specify different values for
+; a certain named column, presumably separated by filters.
+;static "Some Special Value" => identifier_code
+
+
+; On Wednesday 10 September 2008 21:11:16 Tilghman Lesher wrote:
+; (this module patterned after the CDR module)
+; I thought that the sample cdr_adaptive_odbc.conf was rather clear, but
+; apparently not. The point of this module is to allow you log whatever you
+; like in terms of the CDR variables. Do you want to log uniqueid? Then simply
+; ensure that your table has that column. If you don't want the column, ensure
+; that it does not exist in the table structure. If you'd like to call uniqueid
+; something else in your table, simply provide an alias in the configuration
+; file that maps the standard CDR field name (uniqueid) to whatever column
+; name you like.
+
+At the current time, channel variables are not published with the events.
+If you wish to store variables, put them in the channel userfield and
+extract them from there.
diff --git a/configs/cel_custom.conf.sample b/configs/cel_custom.conf.sample
new file mode 100644
index 000000000..0c0ca1c1a
--- /dev/null
+++ b/configs/cel_custom.conf.sample
@@ -0,0 +1,20 @@
+;
+; Asterisk Channel Event Logging - Custom CSV Backend
+;
+; This is the configuration file for the customizable CSV backend for CEL
+; logging.
+;
+; In order to create custom CSV logs for CEL, uncomment the template below
+; (Master.csv) and start Asterisk. Once CEL events are generated, a file will
+; appear in the following location:
+;
+; /var/log/asterisk/cel-custom/Master.csv
+;
+; (Note that /var/log/asterisk is the default and may differ on your system)
+;
+; You can also create more than one template if desired. All logs will appear
+; in the cel-custom directory under your Asterisk logs directory.
+;
+
+[mappings]
+;Master.csv => "${eventtype}","${eventtime}","${CALLERID(name)}","${CALLERID(num)}","${CALLERID(ANI)}","${CALLERID(RDNIS)}","${CALLERID(DNID)}","${CHANNEL(exten)}","${CHANNEL(context)}","${CHANNEL(channame)}","${CHANNEL(appname)}","${CHANNEL(appdata)}","${CHANNEL(amaflags)}","${CHANNEL(accountcode)}","${CHANNEL(uniqueid)}","${CHANNEL(linkedid)}","${CHANNEL(peer)}","${CHANNEL(userfield)}"
diff --git a/configs/cel_pgsql.conf.sample b/configs/cel_pgsql.conf.sample
new file mode 100644
index 000000000..446105435
--- /dev/null
+++ b/configs/cel_pgsql.conf.sample
@@ -0,0 +1,58 @@
+; Sample Asterisk config file for CEL logging to PostgresSQL
+;
+; CEL field names:
+;
+; eventtype
+; CEL_CHANNEL_START = 1
+; CEL_CHANNEL_END = 2
+; CEL_HANGUP = 3
+; CEL_ANSWER = 4
+; CEL_APP_START = 5
+; CEL_APP_END = 6
+; CEL_BRIDGE_START = 7
+; CEL_BRIDGE_END = 8
+; CEL_CONF_START = 9
+; CEL_CONF_END = 10
+; CEL_PARK_START = 11
+; CEL_PARK_END = 12
+; CEL_BLINDTRANSFER = 13
+; CEL_ATTENDEDTRANSFER = 14
+; CEL_TRANSFER = 15
+; CEL_HOOKFLASH = 16
+; CEL_3WAY_START = 17
+; CEL_3WAY_END = 18
+; CEL_CONF_ENTER = 19
+; CEL_CONF_EXIT = 20
+; CEL_USER_DEFINED = 21
+; CEL_LINKEDID_END = 22
+; CEL_BRIDGE_UPDATE = 23
+; CEL_PICKUP = 24
+; CEL_FORWARD = 25
+; eventtime (timeval, includes microseconds)
+; userdeftype (set only if eventtype == USER_DEFINED)
+; cid_name
+; cid_num
+; cid_ani
+; cid_rdnis
+; cid_dnid
+; exten
+; context
+; channame
+; appname
+; appdata
+; accountcode
+; peeraccount
+; uniqueid
+; linkedid
+; amaflag (an int)
+; userfield
+; peer
+
+
+[global]
+;hostname=localhost
+;port=5432
+;dbname=asterisk
+;password=password
+;user=postgres
+;table=cel ;SQL table where CEL's will be inserted
diff --git a/configs/cel_sqlite3_custom.conf.sample b/configs/cel_sqlite3_custom.conf.sample
new file mode 100644
index 000000000..a6ee11e8d
--- /dev/null
+++ b/configs/cel_sqlite3_custom.conf.sample
@@ -0,0 +1,7 @@
+;
+; Mappings for sqlite3 config file
+;
+;[master] ; currently, only file "master.db" is supported, with only one table at a time.
+;table => cel
+;columns => eventtype, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer
+;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)}','${CHANNEL(peer)}'
diff --git a/configs/cel_tds.conf.sample b/configs/cel_tds.conf.sample
new file mode 100644
index 000000000..399093b47
--- /dev/null
+++ b/configs/cel_tds.conf.sample
@@ -0,0 +1,69 @@
+;
+; Asterisk Channel Event Logging (CEL) - FreeTDS Backend
+;
+
+;[global]
+
+; Connection
+;
+; Use the 'connection' keyword to specify one of the instance names from your
+; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk
+; configuration file, but one specific to the FreeTDS library. See the FreeTDS
+; documentation on 'freetds.conf' for more information:
+;
+; http://www.freetds.org/userguide/freetdsconf.htm
+;
+; Accepted values: One of the connections specified in freetds.conf
+
+;connection=ConnectionFromFreeTDSConf
+
+; Database Name
+;
+; The 'dbname' keyword specifies the database name to use when logging CEL
+; records.
+;
+; Accepted values: Any valid database name
+
+;dbname=MalicoHN
+
+; Database Table Name
+;
+; The 'table' keyword identifies which database table is used to log CEL
+; records.
+;
+; Accepted value: Any valid table name
+; Default value: If not specified, a table named 'cel' is assumed
+
+;table=cel
+
+; Credentials
+;
+; The 'username' and 'password' keywords specify the user credentials that
+; Asterisk should use when connecting to the database.
+;
+; Accepted value: Any valid username and password
+
+;username=mangUsr
+;password=
+
+; Language
+;
+; The 'language' keyword changes the language which are used for error and
+; information messages returned by SQL Server. Each database and user has their
+; own default value, and this default can be overriden here.
+;
+; Accepted value: Any language installed on the target SQL Server.
+; Default value: Server default
+
+;language=us_english
+
+; Character Set
+;
+; The 'charset' setting is used to change the character set used when connecting
+; to the database server. Each database and database user has their own
+; character set setting, and this default can be overriden here.
+;
+; Accepted value: Any valid character set available on the target server.
+; Default value: Server setting
+
+;charset=BIG5