kamailio如何将计费信息写入数据库

计费信息写入数据库可能是最方便的后端存储方式,使用SQL命令查询可以直接生成报告。因为,Kamailio本身没有SQL后端,通过连接方式实现了其内部DB API的No-SQL后端连接(例如Cassandra,MongoDB,文本文件),以此满足了与其他系统共享或进行自定义处理的需求。为了将计费记录写入数据库,每个SIP事务都必须用db_flag参数设置的标志进行标记。

340. modparam("acc", "db_flag", FLT_ACC)

就像在syslog存储方式中定义的一样,FLT_ACC在默认的kamailio.cfg中被定义为1。要获取更多的账户细节,用户需要设置参数db_extra, 默认的kamailio.cfg使用:

343.  modparam("acc", "db_extra",
344.  "src_user=$fU;src_domain=$fd;src_ip=$si;"
345.  "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")

对于已记录的INVITE事务,数据库记录如下:



id: 20 
method: INVITE
from_tag: vRn7KTHPr 
to_tag: caKaFr9jmDvSN 
callid: WtkExv-2o3
sip_code: 200 sip_reason: OK
time: 2015-01-01 11:21:54
src_ip: 192.168.178.48
dst_ouser: david 
dst_user: david
dst_domain: 192.168.178.54 
src_user: alice
src_domain: kamailio.lab

一旦通话结束,就会写入针对INVITE的BYE事务的另一条记录。

id: 21 
method: BYE
from_tag: caKaFr9jmDvSN 
to_tag: vRn7KTHPr 
callid: WtkExv-2o3
sip_code: 200 
sip_reason: OK
time: 2015-01-01 11:22:18
src_ip: 192.168.178.48
dst_ouser: david 
dst_user: david
dst_domain: 192.168.178.54
src_user: alice 
src_domain: kamailio.lab

在BYE记录中最重要的字段是时间,用于计算通话持续时间。如果用户要匹配属于同一通话的INVITE和BYE记录,匹配必须使用记录在数据库的callid、from_tag和to_tag的列进行匹配,系统才能确定是否属于同一呼叫记录。

这里要请注意,如果被叫方发送的BYE请求,则在BYE记录中的from_tag和to_tag的值进行互换(callee发送的BYE请求,根据RFC3261规范的字段),因此用户还需要进行交叉匹配(将INVITE的from_tag与BYE的to_tag匹配,将INVITE的to_tag与BYE的from_tag匹配)。这里的参数detect_direction可以设置为1,以便acc模块检测到BYE请求是否是由被叫方发送,并交换值以获得与INVITE相同的From和To属性和正确匹配。acc数据库表中列的含义在以下表中显示:

kamailio如何将计费信息写入数据库

作者:james.zhu
来源:SIP实验室

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • Kamailio 各种 log 参数设置

    kamailio 提供了非常强大的SIP软交换支持,支持了不同的业务模块。如果用户需要对Kamailio进行运维管理时,需要不同的系统日志排查手段和方法。用户通过不同的log日志来…

    2024年4月12日
  • 突破kamailio/OpenSIPS性能瓶颈的8个方向

    呼叫系统系统性能决定呼叫处理的cps,当然cps决定系统效率,决定公司营收。尽管kamalio处理性能已经非常强大,但是在实际生产中仍然需要面对性能瓶颈的问题。如果从比较高层的li…

    2023年5月26日
  • 在 Kamailio 中缓存数据库查询结果

    数据库查询是一项成本相对较高的操作。虽然在很多情况下绝对有必要这样做,但反复访问数据库以获取相同的信息却是一种糟糕的模式。在 Kamailio(至少对我来说)中,一个相当普遍的做法…

    2023年12月6日
  • Kamailio RPC over HTTP 简介

    简介 本文是关于如何通过 HTTP 在 Kamailio 上设置和使用 RPC 的基本概述。由于本示例极不安全,因此绝对不能在生产中使用。下一篇文章将介绍如何正确确保示例安全,以便…

    2023年10月10日
  • Kamailio v5.8.0 版本发布

    2024 年 3 月 7 日 Kamailio v5.8.0正式发布,这是一个新的重要版本,经过近10个月的联合开发和测试,增加了新的功能和改进。 简而言之,该主要版本带来了 4 …

    2024年3月11日
  • kamailio SIP安全基础讨论

    kamailio 软交换是运营级VOIP平台,安全问题是用户部署中面临的挑战。笔者在以前的文章中针对SIP安全输出了很多的文章,包括了使用外部网元SBC来保证UC的安全等传输。 我…

    2024年4月11日