SMDR output from asterisk


Is there a way to get SMDR output from asterisk for inbound and outbound calls. We are thinking to switch to asterisk but we have a third party which accepts SMDR to record calls and other valuable information.

Any ideas?

I confess, I have no knowledge of the difference between SMDR and CDR.

What are you requiring in SMDR records that you’re not getting from CDR records that Asterisk is generating currently - via its CDR or CEL (Channel Event Logging) facilities?

Hi Malcolm,
My recording software uses SMDR to record calls and other information like ANI, DNIS etc. The ini file shows this… what does the CDR stream look like?



and CEL looks like: … and+Fields

As I understand it, SMDR is a generic, US, term for call logging data files, and doesn’t, at least strongly, imply any particular format.

SMDR(Station Message Detail Record) and CDR (Call Detail Record) both are the same. SMDR word mostly use for the EPBX call data record and CDR we are using in asterisk. Yes, you can get the CDR data from asterisk in two way either in text file or in the database directly.

Generally asterisk stored the CDR data in the “/var/log/asterisk/cdr-csv” folder. You get the CDR data from Master.csv file.

You have to store CDR data directly into the database, you have to do the following things in cdr_mysql.conf file


all the CDR data will store in the mycalldata mysql database and table name is cdr. you have to create the cdr table and the cdr structure is as below

    Field  		Type  		Collation  		Attributes  	Null  	Default  	
uniqueid 	        varchar(32) 	latin1_swedish_ci 			No 			
userfield 	        varchar(255) 	latin1_swedish_ci 			No 			
accountcode 	varchar(20) 	latin1_swedish_ci 			No 			
src 		        varchar(80) 	latin1_swedish_ci 			No 			
dst 		        varchar(80) 	latin1_swedish_ci 			No 			
dcontext 	        varchar(80) 	latin1_swedish_ci 			No 			
clid 		        varchar(80) 	latin1_swedish_ci 			No 			
channel 	        varchar(80) 	latin1_swedish_ci 			No 			
dstchannel 	varchar(80) 	latin1_swedish_ci 			No 			
lastapp 	        varchar(80) 	latin1_swedish_ci 			No 			
lastdata 	        varchar(80) 	latin1_swedish_ci 			No 			
calldate 	        datetime 						                No 	0000-00-00 00:00:00
duration 	        int(11) 						                Yes 	0 		
billsec 	        int(11) 						                Yes 	0 		
disposition 	varchar(45) 	latin1_swedish_ci 		        No 			
amaflags 	        int(11) 						                No 	0 		
starttime 	        datetime 						                Yes 	NULL 		
endtime 	       datetime 						                Yes 	NULL 		


SMDR and CDR are not the same
SMDR is centered on the station, while CDR is centered on the call. That is why they are called what they’re called.
SMDR, generally, is produced in real time while cdr, generally, is produced upon completion of a call. Most SMDR consumers are real time applications such as CRM, operator console, other applications that act on information while a call is still in progress; most CDR consumers are reporting applications such as LD billing, hospitality PMS, traffic studies.