11-05-2010 09:04 AM - edited 03-12-2019 09:33 AM
CDR - Test Document
This document is applicable to the appliance model of Cisco Unified Communications Manager (i.e. CUCM version 5.x and later).
Cisco Unified Communications Manager produces two types of records which store call history and diagnostic information, as follows:
Both CDRs and CMRs together are referred to as CDR data. CDR data provides a record of all calls that have been made or received by users of the CallManager system. CDR data is useful primarily for generating billing records; however, it can also be used for tracking call activity, diagnosing certain types of problems and capacity planning.
CDRs contain information about call origination, call destination, the date and time the call was started, the time it actually connected, and the time it ended. A call is considered started or originated when the caller goes off-hook. The call is considered ended when either the caller or the called party goes on-hook. CMRs contain information about the amount of data sent and received, jitter, latency, and lost packets.
A CallManager service parameter called 'CDR Log Calls with Zero Duration Flag' determines whether CDRs for calls that were never connected or were connected for less than a second are generated. Examples:
Note:
The CDR Log Calls with Zero Duration Flag service parameter is valid only when the CDR Enabled Flag service parameter is set to True. If CDR generation is disabled, the setting of the CDR Log Calls with Zero Duration Flag service parameter has no significance.
CallManager always generates CDR data for calls that have a duration of 0 seconds and terminate because of an error condition of some sort, regardless of the setting of the CDR Log Calls with Zero Duration Flag service parameter. Calls to busy destinations or bad phone numbers are examples of this type of call. The duration of these calls is 0 because they were never connected, but their CDRs are generated anyway.
CallManager does not generate CDRs for calls that terminate normally and have a duration of 0 seconds, unless the CDR Log Calls with Zero Duration Flag service parameter is set to True. When CDR generation is enabled, CallManager generates a CDR for each call that was connected for 1 second or more.
Under System -> Service Parameters
Select a server from the drop down box and then select the CallManager service
Set the ‘Call Diagnostics Enabled’ parameter to either:
---- or ----
Enabled Regardless of CDR Enabled Flag (generates CMRs without regard to the setting in the CDR Enabled Flag service parameter).
Under System -> Enterprise Parameters, there are two parameters related to CDR:
This parameter specifies the time interval for collecting CDR data. For example, if this value is set to 1, each file will contain 1 minute of CDR data (CDRs and CMRs, if enabled). The CDR database will not receive the data in each file until the interval has expired, so consider how quickly you want access to the CDR data when you decide what interval to set for this parameter. The minimum value is 1 (which is also the default). Maximum is 1440. The unit of measure for this required field represents a minute.
This parameter provides a unique identifier for the cluster. Because the parameter gets used in CDRs, collections of CDRs from multiple clusters can be traced to the sources.The default value specifies StandAloneCluster. The maximum length comprises 50 characters andprovides a valid cluster ID that comprises any of the following characters: A-Z, a-z, 0-9, . -.
Runs as a network service on every node in a cluster (including the Publisher).
We need to dig a bit deeper into the CDR Repository Manager Directory structure to understand how CDR flat files are handled.
The CDR Repository Manager Directory Structure as described below exists only on the Publisher.
Everything under /var/log/active/cm/cdr_repository
admin:file list activelog /cm/cdr_repository
<dir> car
<dir> destination1
<dir> destination2
<dir> destination3
<dir> preserve
<dir> processed
<dir> tmp
<dir> trans
dir count = 8, file count = 0
admin:
trans – files being received from CM node
tmp – files waiting to be processed
preserve/yyyymmdd – files to be sent out and/or to be loaded by CAR
processed/yyyymmdd – files successfully sent to all destinations and loaded by CAR (if CAR is not activated and no billing server is configured, files are put here directly)
destinationX/yyyymmdd – contains symbolic links to files under preserve. CDR Repository Manager service uses these soft-links to determine what files need to be transfered to billing server.
car/yyyymmdd – contains symbolic links to files under preserve. CAR Scheduler service uses these soft-links to determine what files need to be processed by the CDR Loader.
In regular working scenarios:
Once CDR Agent on the node running the CallManager service sends the files to the Publisher, they are stored in the 'preserve/yyyymmdd' directory on the Publisher. If CAR is activated, symbolic links will be created to these files in the 'car/yyyymmdd' location. If billing servers are configured, symbolic links to these files will also be created in the 'destinationX/yyyymmdd' location (where X can be 1,2,3 --- since at most 3 billing servers can be configured).
The files will remain in the 'preserve' location until CDR Loader processes these files and enters corresponding records into the CDR database. Once the CDR files are processed, they are moved to the 'processed' location.
In addition to CDR Loading being enabled, if Billing Servers are configured, the CDR files will continue to remain in the 'preserve' location until both operations are completed -- i.e. until both CDR Loading and transfering file to the billing server are completed.
Hence, in typical working scenarios, all the CDR flat files will in the 'processed' location as opposed to the 'preserve' location. This signifies that all operations for those files have been completed.
To better understand the service interaction, assume there are two servers in the cluster - one Publisher and one Subscriber. Assume CallManager service is running only on the Subscriber. Here's how CDR, CMR files are managed:
Note:
- For every node that runs the CallManager service, the CDR Agent service on that node is responsible for transfering the flat files to the cdr_respository structure on the Publisher. If the CallManager service runs on the Publisher as well, then the CDR Agent service on the Publisher will transfer the flat files to the cdr_repository directory structure on the Publisher.
The system can send CDR files to up to three preconfigured destinations (billing servers) using FTP/SFTP. The CDR Repository Manager on the Publisher is responsible for transferring the CDR files to the billing servers.
Cisco allows you to use any SFTP server product but recommends SFTP products that have been certified with Cisco through the Cisco Technology Developer Partner program (CTDP). CTDP partners, such as GlobalSCAPE, certify their products with specified version of Cisco Unified Communications Manager. For information on which vendors have certified their products with your version of Cisco Unified Communications Manager, refer to the following URL:
http://www.cisco.com/pcgi-bin/ctdp/Search.pl
For information on using GlobalSCAPE with supported Cisco Unified Communications versions, refer to the following URL:
http://www.globalscape.com/gsftps/cisco.aspx
Cisco uses the following servers for internal testing. You may use one of the servers, but you must contact the vendor for support:
•Open SSH (refer to http://sshwindows.sourceforge.net/)\
•Cygwin (refer to http://www.cygwin.com/)
•Titan (refer to: http://www.titanftp.com/)
Configuration screenshots:
From Cisco Unified Communications Manager CDR Analysis and Reporting page, navigate to System > Scheduler > CDR Load as seen in the screenshot below:
The following screen is displayed:
Disable Loading - To disable CDR data loading. Use this option if you do not want CDR data to be loaded into the CAR database. Changes take effect at midnight. You'll also need to use this option if manual purge operation is to be performed (loader should be disabled prior to executing the purge operation). You can force the change to take effect immediately by stopping and restarting the CAR Scheduler service.
Continuous Loading 24/7 - Enables the CDR Loader to run continuously 24 hours a day, 7 days a week to load CDRs into the CAR database. This choice represents the default setting for the CDR Load Scheduler.
Note : If this option is chosen, it takes precedence over and ignores the other CDR and CMR load parameters on the screen, such as Time, Loading Interval, Duration, and Uninhibited Loading.
Load CDR Only - Check this box to load only CDR records into the CAR database. With this option, CMR records do not load into the CAR database. This choice represents the default setting for the CDR Load Scheduler. You must manually uncheck the Load CDR only check box to force the CMR records to load with the CDR records.
-- Navigate to: http://www.cisco.com/en/US/products/sw/voicesw/ps556/prod_maintenance_guides_list.html
-- Search for 'Cisco Unified CDR Analysis and Reporting Administration Guide' for the appropriate CUCM release
Excellent !
Great Document
This will be a great help
Appreciated your help
Excellent!
Thanks for sharing, I got answers of all my questions.
Very nyc document [+5]
Regards
Deepak
Excellent Post, Congratulation!!
Hi
Can we take 3 months before user reports from the CDR.
What is the capacity of the CDR to save the user reports.
Regards,
Vengatesh SR
Hi Guys,
First of all, great document.
Second of all, I need some help.
Yesterday I have had to collect some cdr dumps and it worked ok, however the dates came with an unknown format, do you guys have any idea to solve it?
I'm going to appreciate any help!
Regards,
Marcos
dateTimeOrigination |
1476403280 |
1476403222 |
1476403200 |
1476403238 |
1476403256 |
1476403262 |
1476403235 |
1476403251 |
Hi Marcos,
You need to use the UTC Date Time Converter to convert the above mentioned field information to actual Date Time format. You can use this small link: http://www.epochconverter.com/
Or if you want, you can go for a 3rd party billing application such as below:
http://www.commsouth.com/commcontrol-call-accounting-software.php
Regards,
Prasana Kumar.P
prasana@commsouth.com
(Please rate if useful)
Hi Guys,
Can we take 3 months before user reports from the CDR.
What is the capacity(storage) of the CDR to save the user reports.
Thanks nphansal for the documentation.
I am just wondering if anyone know what models of endpoints will write CMR/CDDR and which ones won't and where to find that list.
For example, recently in the Jabber 11.7 release notes, it mentions Jabber will start creating CMR if you are running firmware version 11.7 and up. My trial and error approach told me that some of the Telepresence / Collaboration room end points like the old EX60 and the new DX70 will not, but it would be nice to if there exist a defined to know which model/firmware version will and won't create CMR. Thanks in advance.
The document is quite helpful.
Yet we want to retrieve call data like from number, to number, call duration, call start time and call end time programatically.
Is there any available api to be called to retrieve CDR datas or any available methods which gives us a CDR data
Please let us know if there is any such api or methods.
THANKS IN ADVANCE
Great ;) Thanks for sharing!
Excellent documentation
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: