首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星号CDR数据库正确的CDR采集过程

星号CDR数据库正确的CDR采集过程
EN

Stack Overflow用户
提问于 2017-10-23 05:27:15
回答 1查看 222关注 0票数 1

首先,对这个复杂的长期问题的解释感到抱歉。

目前,我正在维护几个处理调用的asterisk服务器。目前,我正在每小时将CDR收集到集中式数据库。

这里的主要问题是跟踪copied记录和new记录。在我的设置中,每个asterisk CDR表都有id列作为主键。因此,在集中式表中,我处理这个id,并维护一个列以保留server_name。通过使用idserver_name,我可以识别每个asterisk服务器上一次收集的id号,然后收集所有高于id号的新CDR

这个过程并不完美,因为依赖这个id是不好的,它总是会增加。此外,我还需要将这个设置转换为REST API,并停止使用id

使用datetime范围来选择通话记录也不是什么好主意,因为我每小时都收集CDR的信息,如果duration的通话时间超过1小时,该怎么办?Asterisk CDR插入记录在调用结束时,datetime字段并不总是按升序排列。

我可以使用一个名为copied的标志,使用上面的datetime范围,并解决丢失的记录问题,但是它不适合REST APT,因为它是无状态的,不能保留标志。

现在我没有主意了..。想知道有没有更好的解决办法..。

希望有专家能帮我..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-26 04:46:35

这是一个非常具体的场景,但无论如何,我将在这里发布我的解决方案。

在分析了一些解决方案后,我想出了一个解决方案。我添加了名为inserttime的新列,其默认值为CURRENT_TIMESTAMP (如果使用postgres,则可能需要将其视为statement_timestamp())。因此,inserttime的作用就像id和时间变量一样,有些我可以使用API使用日期范围搜索CDR

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46882462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档