diff --git a/doc/README.cdr b/doc/README.cdr
index c2a63ed81d3620ed37695444f7e359c3523ebfa4..d6c9c03985fe94537c6f616ab82378797143b520 100755
--- a/doc/README.cdr
+++ b/doc/README.cdr
@@ -1,9 +1,55 @@
-Asterisk now generates Call Detail Records.  See include/asterisk/cdr.h for
-all the fields which are recorded.  By default, records in comma-separated
-values will be created in /var/log/asterisk/cdr-csv.  You can specify 
-account codes and AMA (Automated Machine Accounting) flags on a per-channel
-(Zaptel et al) or per-user (IAX) basis to help with accounting.  Look
-at the top of cdr/cdr_csv.c to see the format for the records.  
+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 accound 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: Anwer 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
@@ -12,3 +58,6 @@ 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