asterisk/cdr.conf

Fri, 22 Oct 2010 19:54:57 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 22 Oct 2010 19:54:57 +0200
changeset 281
acad5c9dea5f
permissions
-rw-r--r--

Correct dependencies and use a canonical package name.

michael@202 1 ;
michael@202 2 ; Asterisk Call Detail Record engine configuration
michael@202 3 ;
michael@202 4 ; CDR is Call Detail Record, which provides logging services via a variety of
michael@202 5 ; pluggable backend modules. Detailed call information can be recorded to
michael@202 6 ; databases, files, etc. Useful for billing, fraud prevention, compliance with
michael@202 7 ; Sarbanes-Oxley aka The Enron Act, QOS evaluations, and more.
michael@202 8 ;
michael@202 9
michael@202 10 ;[general]
michael@202 11
michael@202 12 ; Define whether or not to use CDR logging. Setting this to "no" will override
michael@202 13 ; any loading of backend CDR modules. Default is "yes".
michael@202 14 ;enable=yes
michael@202 15
michael@202 16 ; Define whether or not to log unanswered calls. Setting this to "yes" will
michael@202 17 ; report every attempt to ring a phone in dialing attempts, when it was not
michael@202 18 ; answered. For example, if you try to dial 3 extensions, and this option is "yes",
michael@202 19 ; you will get 3 CDR's, one for each phone that was rung. Default is "no". Some
michael@202 20 ; find this information horribly useless. Others find it very valuable. Note, in "yes"
michael@202 21 ; mode, you will see one CDR, with one of the call targets on one side, and the originating
michael@202 22 ; channel on the other, and then one CDR for each channel attempted. This may seem
michael@202 23 ; redundant, but cannot be helped.
michael@202 24 ;unanswered = no
michael@202 25
michael@202 26 ; Define the CDR batch mode, where instead of posting the CDR at the end of
michael@202 27 ; every call, the data will be stored in a buffer to help alleviate load on the
michael@202 28 ; asterisk server. Default is "no".
michael@202 29 ;
michael@202 30 ; WARNING WARNING WARNING
michael@202 31 ; Use of batch mode may result in data loss after unsafe asterisk termination
michael@202 32 ; ie. software crash, power failure, kill -9, etc.
michael@202 33 ; WARNING WARNING WARNING
michael@202 34 ;
michael@202 35 ;batch=no
michael@202 36
michael@202 37 ; Define the maximum number of CDRs to accumulate in the buffer before posting
michael@202 38 ; them to the backend engines. 'batch' must be set to 'yes'. Default is 100.
michael@202 39 ;size=100
michael@202 40
michael@202 41 ; Define the maximum time to accumulate CDRs in the buffer before posting them
michael@202 42 ; to the backend engines. If this time limit is reached, then it will post the
michael@202 43 ; records, regardless of the value defined for 'size'. 'batch' must be set to
michael@202 44 ; 'yes'. Note that time is in seconds. Default is 300 (5 minutes).
michael@202 45 ;time=300
michael@202 46
michael@202 47 ; The CDR engine uses the internal asterisk scheduler to determine when to post
michael@202 48 ; records. Posting can either occur inside the scheduler thread, or a new
michael@202 49 ; thread can be spawned for the submission of every batch. For small batches,
michael@202 50 ; it might be acceptable to just use the scheduler thread, so set this to "yes".
michael@202 51 ; For large batches, say anything over size=10, a new thread is recommended, so
michael@202 52 ; set this to "no". Default is "no".
michael@202 53 ;scheduleronly=no
michael@202 54
michael@202 55 ; When shutting down asterisk, you can block until the CDRs are submitted. If
michael@202 56 ; you don't, then data will likely be lost. You can always check the size of
michael@202 57 ; the CDR batch buffer with the CLI "cdr status" command. To enable blocking on
michael@202 58 ; submission of CDR data during asterisk shutdown, set this to "yes". Default
michael@202 59 ; is "yes".
michael@202 60 ;safeshutdown=yes
michael@202 61
michael@202 62 ; Normally, CDR's are not closed out until after all extensions are finished
michael@202 63 ; executing. By enabling this option, the CDR will be ended before executing
michael@202 64 ; the "h" extension so that CDR values such as "end" and "billsec" may be
michael@202 65 ; retrieved inside of of this extension.
michael@202 66 ;endbeforehexten=no
michael@202 67
michael@202 68 ;
michael@202 69 ;
michael@202 70 ; CHOOSING A CDR "BACKEND" (what kind of output to generate)
michael@202 71 ;
michael@202 72 ; To choose a backend, you have to make sure either the right category is
michael@202 73 ; defined in this file, or that the appropriate config file exists, and has the
michael@202 74 ; proper definitions in it. If there are any problems, usually, the entry will
michael@202 75 ; silently ignored, and you get no output.
michael@202 76 ;
michael@202 77 ; Also, please note that you can generate CDR records in as many formats as you
michael@202 78 ; wish. If you configure 5 different CDR formats, then each event will be logged
michael@202 79 ; in 5 different places! In the example config files, all formats are commented
michael@202 80 ; out except for the cdr-csv format.
michael@202 81 ;
michael@202 82 ; Here are all the possible back ends:
michael@202 83 ;
michael@202 84 ; csv, custom, manager, odbc, pgsql, radius, sqlite, tds
michael@202 85 ; (also, mysql is available via the asterisk-addons, due to licensing
michael@202 86 ; requirements)
michael@202 87 ; (please note, also, that other backends can be created, by creating
michael@202 88 ; a new backend module in the source cdr/ directory!)
michael@202 89 ;
michael@202 90 ; Some of the modules required to provide these backends will not build or install
michael@202 91 ; unless some dependency requirements are met. Examples of this are pgsql, odbc,
michael@202 92 ; etc. If you are not getting output as you would expect, the first thing to do
michael@202 93 ; is to run the command "make menuselect", and check what modules are available,
michael@202 94 ; by looking in the "2. Call Detail Recording" option in the main menu. If your
michael@202 95 ; backend is marked with XXX, you know that the "configure" command could not find
michael@202 96 ; the required libraries for that option.
michael@202 97 ;
michael@202 98 ; To get CDRs to be logged to the plain-jane /var/log/asterisk/cdr-csv/Master.csv
michael@202 99 ; file, define the [csv] category in this file. No database necessary. The example
michael@202 100 ; config files are set up to provide this kind of output by default.
michael@202 101 ;
michael@202 102 ; To get custom csv CDR records, make sure the cdr_custom.conf file
michael@202 103 ; is present, and contains the proper [mappings] section. The advantage to
michael@202 104 ; using this backend, is that you can define which fields to output, and in
michael@202 105 ; what order. By default, the example configs are set up to mimic the cdr-csv
michael@202 106 ; output. If you don't make any changes to the mappings, you are basically generating
michael@202 107 ; the same thing as cdr-csv, but expending more CPU cycles to do so!
michael@202 108 ;
michael@202 109 ; To get manager events generated, make sure the cdr_manager.conf file exists,
michael@202 110 ; and the [general] section is defined, with the single variable 'enabled = yes'.
michael@202 111 ;
michael@202 112 ; For odbc, make sure all the proper libs are installed, that "make menuselect"
michael@202 113 ; shows that the modules are available, and the cdr_odbc.conf file exists, and
michael@202 114 ; has a [global] section with the proper variables defined.
michael@202 115 ;
michael@202 116 ; For pgsql, make sure all the proper libs are installed, that "make menuselect"
michael@202 117 ; shows that the modules are available, and the cdr_pgsql.conf file exists, and
michael@202 118 ; has a [global] section with the proper variables defined.
michael@202 119 ;
michael@202 120 ; For logging to radius databases, make sure all the proper libs are installed, that
michael@202 121 ; "make menuselect" shows that the modules are available, and the [radius]
michael@202 122 ; category is defined in this file, and in that section, make sure the 'radiuscfg'
michael@202 123 ; variable is properly pointing to an existing radiusclient.conf file.
michael@202 124 ;
michael@202 125 ; For logging to sqlite databases, make sure the 'cdr.db' file exists in the log directory,
michael@202 126 ; which is usually /var/log/asterisk. Of course, the proper libraries should be available
michael@202 127 ; during the 'configure' operation.
michael@202 128 ;
michael@202 129 ; For tds logging, make sure the proper libraries are available during the 'configure'
michael@202 130 ; phase, and that cdr_tds.conf exists and is properly set up with a [global] category.
michael@202 131 ;
michael@202 132 ; Also, remember, that if you wish to log CDR info to a database, you will have to define
michael@202 133 ; a specific table in that databse to make things work! See the doc directory for more details
michael@202 134 ; on how to create this table in each database.
michael@202 135 ;
michael@202 136
michael@202 137 ;[csv]
michael@202 138 ;usegmtime=yes ; log date/time in GMT. Default is "no"
michael@202 139 ;loguniqueid=yes ; log uniqueid. Default is "no
michael@202 140 ;loguserfield=yes ; log user field. Default is "no
michael@202 141
michael@202 142 ;[radius]
michael@202 143 ;usegmtime=yes ; log date/time in GMT
michael@202 144 ;loguniqueid=yes ; log uniqueid
michael@202 145 ;loguserfield=yes ; log user field
michael@202 146 ; Set this to the location of the radiusclient-ng configuration file
michael@202 147 ; The default is /etc/radiusclient-ng/radiusclient.conf
michael@202 148 ;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf

mercurial