星号现在写cdr

我使用cdr_adaptive_odbc将CDR写入mssql表。 这个工作很好,就是在通话之后写下logging。

但是,我想写一个cdr_record来电时,在它被应答/中止之前。

原因:我想在我们的CRM系统中添加一个function:点击这个button,看到来电的电话号码,CDRlogging是“响铃”或什么的。 然后将电话号码与客户logging进行匹配,并在屏幕上显示来电者信息。

(我不想把这个数字推到CRM上,那就得拉一下)

我试过这个:

exten => 13,1,noop() same => n,forkcdr() same => n,Wait(2) same => n,dial(SIP/L13) same => n,hangup() 

但是这不会在数据库中创build新的logging。

我没有使用CDR,而是将CELlogging到表格中。 然后,我可以看到已启动的呼叫(eventtype 1,CHANNEL_START),并查看linkedid是否具有事件types4 ANSWER和事件types2 CHANNEL_END的相应事件

然后,我find最新的客户编号与该电话号码(客户可能注册多个时间使用相同的号码),并显示相应的名称。

我终于(只是踢)显示CDRlogging的谈话时间和性格。

 SELECT TOP 10 a.cid_num, a.eventtime 'begin', b.eventtime 'answer', c.eventtime 'end', mk.maxid, navn, cdr.duration, cdr.billsec, cdr.disposition FROM asteriskcel a LEFT JOIN asteriskcel b ON b.eventtype = 4 -- ANSWER AND b.linkedid = b.uniqueid AND b.linkedid = a.linkedid LEFT JOIN asteriskcel c ON c.eventtype = 2 -- CHANNEL_END AND c.linkedid = c.uniqueid AND c.linkedid = a.linkedid LEFT JOIN (SELECT RIGHT(telefon, 8) tlf, Max(id) maxid FROM t_kunder GROUP BY RIGHT(telefon, 8)) mk ON RIGHT(a.cid_num, 8) = mk.tlf LEFT JOIN t_kunder k ON mk.maxid = k.id LEFT JOIN bit_cdr cdr ON cdr.linkedid = a.linkedid WHERE a.eventtype = 1 -- CHANNEL_START AND a.linkedid = a.uniqueid AND a.context = 'default' ORDER BY a.eventtime DESC 

您可以使用forkCDR应用程序在开始时删除其他cdr