Iam正在开发VOIP平台,该平台将允许用户使用我的服务同时拨打100个电话。

星号将所有调用详细记录存储在CDR表中。我想知道在哪里保留此表的最佳位置,以实现系统的最佳体系结构。

我应该将其保留在Asterisk Box上并运行cron使其与数据库服务器同步,还是应该直接通过Asterisk Box调用数据库服务器,并通过Asterisk直接将所有数据直接记录在数据库中。

所有人都认为这两种架构都各有利弊。我想在专家的帮助下向我提出建议,这将是长期可扩展性和可持续性的最佳途径。

最佳答案

最好的体系结构是在不同节点中使用分布式节点(服务器),即PBX,Web服务器和DB服务器。每次调用后,PBX都会填充您的CDR表(必须在数据库服务器中),您可以从Web服务器中获取这些记录,以进行报告和计费。

不建议使用Cron同步数据库表,因为它也会消耗系统资源和带宽(因为该cron每次消耗系统资源并与Db同步都会运行,从而导致带宽占用)
因此,使用上述定义的体系结构,您可以节省将在运行cron时使用的系统资源。

其次,如果将CDR与PBX放在同一节点上,则由于cron会节省系统资源,但是要进行报告和计费,您必须从该节点获取数据,因此您无法保存带宽,这种模式有一个主要缺点,因为当前您正在谈论如果同时拥有100个电话,如果您有1000个或更多电话,该怎么办?

在这种情况下,您一定要使用PBX群集,在这种情况下,您将需要由PBX群集同步的集中式DB服务器。

因此,在所有方面,我建议的体系结构都能完美满足您的需求。
正如该问题所述,您只需要进行数百个并发调用,就可以将单个节点用于DB&Web服务器,而将PBx用于其他节点

10-08 16:53