我正在使用 cdr_adaptive_odbc 将 CDR 写入 mssql 表。从某种意义上说,这很好,因为记录是在调用之后写入的。
但是我想在来电时写一个 cdr_record ,然后再接听/中止。
原因:我想在我们的 CRM 系统中添加一个功能:单击此按钮并查看来电的电话号码,其中 CDR 记录正在“响铃”或其他东西。然后将电话号码与客户记录匹配,并在屏幕上显示来电者信息。
(我不想把数字推送到 CRM,它必须是拉动)
我试过这个:
exten => 13,1,noop()
same => n,forkcdr()
same => n,Wait(2)
same => n,dial(SIP/L13)
same => n,hangup()
但这不会在数据库中创建新记录。
我没有使用 CDR,而是将 CEL 记录到表中。然后我可以看到启动的调用(事件类型 1,CHANNEL_START),并查看linkedid 是否有对应的事件类型为 4 ANSWER 的事件和事件类型为 2 CHANNEL_END 的事件
然后,我找到具有该电话号码的最新客户 ID(客户可能使用同一个号码多次注册),并显示相应的名称。
我终于(只是为了好玩)展示了 CDR 记录中的通话时间和性格。
您可以使用 forkCDR 应用程序在启动时删除另一个 cdr