如何在星号中记录调用(SIP)请求



是否可以将SIP请求记录到星号中的数据库?我对这些细节感兴趣:

  • 时间戳
  • sip方法
  • 状态代码
  • 来源号/扩展
  • 目的地号/扩展名

我很确定可以将queue_log事件转换为sip请求并从中获取上述信息。但是,由于并非每个呼叫都通过呼叫队列,因此该解决方案对我不起作用。

也许可以使用AMI实现?还是编写自定义拨号平面?请分享您对此问题的想法。

无法做到这一点。

Asterisk除非已打开SIP调试,否则不会记录SIP消息。

如果您需要在消息级别上进行控制,请查看Kamailio/opensips项目。

我曾经为客户工作的客户工作时间统计。为了使一切正确,我们必须将CDR,CELS和QUEUE_LOGS组合在一起。最后,这是一个非常复杂的系统,但是当时我们还没有看到另一种路要走。好吧,我们做到了,但这并不可行。

您可以问的最简单的问题之一是:谁(a)打电话给谁(b),谁回答了电话(c)。如果您可以回答此问题,您基本上可以回答哪个客户(a),呼叫哪个扩展名(b)可能反映了客户的兴趣。要找出工作量发生的位置,您必须具有最终扩展名(c)。

听起来很简单,这很难做到,具体取决于客户的设置。如果您具有诸如ISDN的混合技术,用于出站通话,而SIP(Asterisk/Freeswitch)用于入站(公司内),您可能会发现甚至根本没有可用的呼叫详细记录。

>

即使对于入站sip电话,我也可以告诉你,在某些情况下,发现正确的a,b,c扩展是非常困难的 !!!首先,您必须知道,在内部星号上知道两个所谓的"腿",其中两个腿代表两个频道之间的桥梁(如果我错了,请纠正我)。我不是这里的专家,但将其视为两个端点互相交谈。在该术语中,没有"最初称为扩展B"。另外,CEL和CDR也不会将其相关。CDR中有" DST"one_answers" SRC"字段,但实际上"频道"one_answers" DstChannel"对您来说更有价值。" dstChannel"有时看起来像" sip/dialnumber@foobar",但前提是您的sip帐户以某种方式与给定的数字相关(Extension = DialNumber)。请注意,客户通常不在乎扩展名或DialNumber之间的区别,但是在SIP中,您必须关心。

如果您使用自定义CDR变量,真正有帮助的是。配置您的星号以使用" custom_cdr"驱动程序进行CDR记录,也许是" Custom_cel"进行CEL记录。然后,您可以在拨号平面中设置CDR变量,并自动写入CDR/CEL后端记录设施(例如ODBC)。

作为要考虑的最后一点:考虑A,B和C为个人。让B打电话B.让B搁置A,然后向C人询问她是否可以因自己的经验而接管。将呼叫从a< -> b传输到a< -> c(b挂断)。您认为您从中获得了多少个CDR和多少个CEL?这些领域如何填充?在CDR中,这看起来像是与B一直在与B进行交谈。只有查看卡尔斯,您会发现有一个转移事件为您提供暗示。(对不起,如果从我的记忆中,现在可能完全不同)。

有了这个相当可怕的答案,我敦促您在需求工程上花费很长时间,而不是从Asterisk和Kamailio开始。询问客户想要用您的解决方案覆盖的用例。相信我,你不能掩盖一切。考虑使用灵活的数据格式来存储您的统计信息。考虑基于文档的数据库,例如mongodb。

如果您想从纯星号开始,则应使用AMI。也许有一些自定义的过程收听事件,将它们汇总并通过缓存使它们可用,因此您不必查询AMI并将负载放在星号上。

我希望这会有所帮助,但您可能正在尝试取得完全不同的东西。:)

玩得开心。

让我们使用 asterisk -r

连接星号服务器

然后在上键入命令 SIP SET DEBUG。您可以找到运行日志和所有SIP请求。

您能清除一件事吗?您只需要日志吗?如果是这样,请按照以下步骤

  1. 打开sip.conf并制作sipdebug =是的,以便在调试文件中记录sip消息
  2. 打开asterisk.conf并检查astlogdir。它将为您提供调试文件位置。如果愿意,可以更改位置。
  3. open logger.conf并添加日志类型在debug =>下要拥有的任何日志例如调试=>注意,警告,错误,详细,dtmf
  4. 重新启动星号过程以使此更改有效。

除此之外,如果我需要存储额外的数据,或者如果想对呼叫进行操作,然后我使用自定义功能编写自己的拨号计划,然后使用MySQL数据库存储所需的数据。如果您想编写自己的应用程序,则需要在系统上安装星号和星号 - addon,并根据您的系统类型开始在asterisk-addon/apps dir下编写自己的应用程序,并将共享库放在lib或lib64中。进行任何类型的更改后,不要忘记重新启动星号。让我知道我是否能够清除您的疑问。

最新更新