[asterisk-users] CDR replacement with CEL
Marek Červenka
cervajs2 at gmail.com
Thu Jul 14 08:52:53 CDT 2016
hi,
i'm trying replace CDR with CEL
reasons:
- minimize Stasis listeners (CDR)
- CEL, CDR produces "similar" data
- own logic of CDR meaning like "calldate,src,dst,direction,.." dst is
always first connected point in PBX - real user or IVR/queue etc.,
numbers are only attributes of object "user"
do you have any tips/logic/comments for this goal?
my custom cdr table
CREATE TABLE `cdr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT 'user id',
`tenant_id` int(11) NOT NULL COMMENT 'tenant id',
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '' COMMENT 'asterisk hangup cause',
`way` enum('loc','in','out') NOT NULL DEFAULT 'loc' COMMENT 'call direction (loc - local, in - incoming, out - outgoing)',
`trunk` varchar(80) NOT NULL COMMENT 'used SIP trunk',
`hangupcause` varchar(10) NOT NULL COMMENT 'hangup cause',
`hangupside` varchar(10) NOT NULL COMMENT 'hangup on which side',
`uniqueid` varchar(64) NOT NULL DEFAULT '',
`linkedid` varchar(64) NOT NULL,
`data` json NOT NULL COMMENT 'metadata',
`stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'creation date',
PRIMARY KEY (`id`),
KEY `dst` (`dst`),
KEY `uniqueid` (`uniqueid`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CEL pairing for simple call scenario
user_id = own variable (from cel userfield or CELGenUserEvent app)
tenant_id = own variable (from cel accountcode or CELGenUserEvent app)
calldate = eventtime
src = cid_num
dst = exten
duration = eventtime(event HANGUP) - eventtime(eventtype BRIDGE_ENTER) (no eventtype PICKUP,FORWARD,*TRANSFER) (or howto identify event RINGING?)
billsec = eventtime(event HANGUP) - eventtime(eventtype ANSWER) (no eventtype PICKUP,FORWARD,*TRANSFER)
way = own variable (CELGenUserEvent app)
disposition = extra: {"hangupcause":16,"hangupsource":"SIP/siptrunk-00000a80","dialstatus":"ANSWER"}
trunk = own variable (CELGenUserEvent app)
hangupcause = extra: {"hangupcause":16,"hangupsource":"SIP/siptrunk-00000a80","dialstatus":"ANSWER"}
hangupside = ???
More information about the asterisk-users
mailing list