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_odbc supports UnixODBC databases, see http://www.unixodbc.org for an updated list of supported databases, from MySQL to MsSQL and text files. Applications ------------ * Asterisk cmd setaccount: Set account code for billing * Asterisk cmd NoCDR: Make sure no CDR is saved for a specific call * Asterisk cmd resetCDR: Reset CDR * Asterisk cmd authenticate - Authenticates and sets the account code * Asterisk cmd SetCDRUserField - Set CDR user field * Asterisk cmd AppendCDRUserField - Append data to CDR User field For more information, use the "show application" command. 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. ---------------- 2004-01-17/v0.7.1