我有 2 个星号服务器(server_A 和 server_B),我在这两个服务器上都以 MySql 存储 CDR 记录。我的问题:当用户从server_A呼叫来自server_B时,有没有办法从两个服务器加入CDR记录?
在这种情况下,您可以通过在 asterisk.conf 文件中设置 systemname(针对每个框)来自动将系统标识符附加到唯一 ID 的前面:
[options]
systemname=server_A
更多信息:
- http://ofps.oreilly.com/titles/9780596517342/asterisk-DB.html#setting_systemname
对于每个 SIP 设备,请确保定义:
accountcode=the_user_id+the_server_id
。或。。。
setvar=user_server=the_user_id+the_server_id
。您自然会用有意义的数据替换"the_user_id+the_server_id"。
然后,您可以调整MySQL CDR,以便将"帐户代码"或"user_server"存储为字段。 如果你想变得非常聪明 - 无论如何这可能是数据容错的好主意 - 在两个服务器之间设置MySQL复制,以便您实际上写入相同的数据库/表以获取CDR数据。
延伸阅读:
- http://www.voip-info.org/wiki/view/Asterisk+variables
- http://onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html