aboutsummaryrefslogtreecommitdiffstats
path: root/doc/billing.txt
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-01 17:49:02 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-01 17:49:02 +0000
commit0c43a5ab3637e311a9232ae77ecd8e7f05c2f8cc (patch)
tree7232cd823d72b5a6ef890d323283b7974188da47 /doc/billing.txt
parentfa9fd8ae706c13f63d7db560596ea10b44c8c69d (diff)
- Removing the "README." from the name of the README files.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@9047 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'doc/billing.txt')
-rw-r--r--doc/billing.txt120
1 files changed, 120 insertions, 0 deletions
diff --git a/doc/billing.txt b/doc/billing.txt
new file mode 100644
index 000000000..b3f60a733
--- /dev/null
+++ b/doc/billing.txt
@@ -0,0 +1,120 @@
+Asterisk billing support - Call Detail Records
+----------------------------------------------
+Asterisk generates Call Detail Records in a database or in a comma
+separated text file.
+
+ * cdr_csv supports comma separated text file storage, this is the
+ default driver
+ * cdr_manager supports CDR information via the AMI, The Asterisk Manager
+ interface
+ * cdr_odbc supports UnixODBC databases, see http://www.unixodbc.org
+ for an updated list of supported databases, from MySQL to MsSQL
+ and text files.
+ * cdr_tds supports FreeTDS databases (Among them MS SQL)
+ NOTE: Please read README.tds for information on possible
+ problems with the FreeTDS driver
+ * cdr_sqlite supports SQlite
+ * cdr_pgsql supports PostgreSQL
+
+In the asterisk-addons subversion repository, there's a cdr_mysql driver for
+MySQL.
+
+Applications
+------------
+
+ * SetAccount Set account code for billing
+ * SetAMAFlags Sets AMA flags
+ * NoCDR Make sure no CDR is saved for a specific call
+ * ResetCDR Reset CDR
+ * ForkCDR Save current CDR and start a new CDR for this call
+ * Authenticate Authenticates and sets the account code
+ * SetCDRUserField Set CDR user field
+ * AppendCDRUserField Append data to CDR User field
+
+For more information, use the "show application" command.
+You can set default account codes and AMA flags for devices in
+channel configuration files, like sip.conf, iax.conf etc.
+
+
+Fields of the CDR in Asterisk
+-----------------------------
+
+ 1. accountcode: What account number to use, (string, 20 characters)
+ 2. src: Caller*ID number (string, 80 characters)
+ 3. dst: Destination extension (string, 80 characters)
+ 4. dcontext: Destination context (string, 80 characters)
+ 5. clid: Caller*ID with text (80 characters)
+ 6. channel: Channel used (80 characters)
+ 7. dstchannel: Destination channel if appropriate (80 characters)
+ 8. lastapp: Last application if appropriate (80 characters)
+ 9. lastdata: Last application data (arguments) (80 characters)
+ 10. start: Start of call (date/time)
+ 11. answer: Answer of call (date/time)
+ 12. end: End of call (date/time)
+ 13. duration: Total time in system, in seconds (integer), from dial to hangup
+ 14. billsec: Total time call is up, in seconds (integer), from answer to hangup
+ 15. disposition: What happened to the call: ANSWERED, NO ANSWER, BUSY
+ 16. amaflags: What flags to use: DOCUMENTATION, BILL, IGNORE etc,
+ specified on a per channel basis like accountcode.
+ 17. user field: A user-defined field, maximum 255 characters
+
+In some cases, uniqueid is appended:
+
+ * uniqueid: Unique Channel Identifier (32 characters)
+ This needs to be enabled in the source code at compile time
+
+
+ONE IMPORTANT NOTE: If you are trying to collect records on IAX to IAX calls
+you need to be aware that by default, IAX will attempt to transfer calls
+in this situation (if DTMF is not required). When the transfer is completed
+the call is dumped from the middle machine and thus the call detail records
+will report a short call time. If you want detailed records you must
+turn off IAX transfer, but unless your servers are very close together, you
+will definitely get a latency hit from doing so.
+
+____________________________________
+CDR Variables
+------------------------------------
+
+If the channel has a cdr, that cdr record has its own set of variables which
+can be accessed just like channel variables. The following builtin variables
+are available.
+
+${CDR(clid)} Caller ID
+${CDR(src)} Source
+${CDR(dst)} Destination
+${CDR(dcontext)} Destination context
+${CDR(channel)} Channel name
+${CDR(dstchannel)} Destination channel
+${CDR(lastapp)} Last app executed
+${CDR(lastdata)} Last app's arguments
+${CDR(start)} Time the call started.
+${CDR(answer)} Time the call was answered.
+${CDR(end)} Time the call ended.
+${CDR(duration)} Duration of the call.
+${CDR(billsec)} Duration of the call once it was answered.
+${CDR(disposition)} ANSWERED, NO ANSWER, BUSY
+${CDR(amaflags)} DOCUMENTATION, BILL, IGNORE etc
+${CDR(accountcode)} The channel's account code.
+${CDR(uniqueid)} The channel's unique id.
+${CDR(userfield)} The channels uses specified field.
+
+In addition, you can set your own extra variables by using Set(CDR(name)=value).
+
+______________________________
+cdr_csv2
+------------------------------
+
+This module is an experimental new cdr module to demonstrate the cdr vars.
+usage(
+
+*) Create a file called cdr.conf and place it in your /etc/asterisk (or wherever your config files are) in the [cdr_csv2] section.
+*) Add an entry called format to indicate any format you want for the output.
+
+The following format string will emulate the regular cdr file format:
+[cdr_csv2]
+
+format => "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}"
+
+You can put anything you want as the value of format incuding new cdr vars you make up or any global variables.
+