在服务器 A 上收听来自带有星号的服务器 B 的语音消息

Listen voice messages on server A from server B with asterisk

我有 3 个服务器的 RealTime 星号。在数据库中,我只保留 sippearsvoicemail 框。语音邮件消息存储在系统 FILE_STORAGE.

服务器A和B用于通话和sip注册,服务器C为dundi。 目前一切正常。我可以从服务器 A 呼叫服务器 B。问题是当我给忙碌并在服务器 B 上注册的号码留言时.. 然后这个号码断开连接并在服务器 A 上注册 - >他不能收听消息,因为它存储在服务器 B..

如何让任何用户无论在哪个服务器上都能听到他的消息?

你有很多选择,大部分都在集群区域。

最简单的选项是:

  • 两台服务器上的 Glusterfs 设置,glusterfs 目录中的语音邮件。这个做故障转移

  • NFS/samba 在两台服务器上共享。

  • mysql master-master 复制,使用ODBC_STORAGE,将所有语音邮件放入db。如果您还希望从 Web 界面轻松访问您的语音文件和简单的 search/lookup/get 消息,则推荐使用此工具。强烈推荐使用 innodb 表和优化的 mysql 配置。

无论用户在哪个服务器上注册,都能收听它们的最简单方法是 NFS 和挂载,例如 /var/spool/asterisk/。在这种情况下,您需要安装一些额外的组件。 这是很棒的教程,您如何做到这一点: How to configure an NFS server and mount NFS shares - Ubuntu

另一种方法,如果您可以在集群中使用两台服务器并使用 rsync 创建主从。然后,您可以将每个 X minutes/hours/days 文件夹同步到远程服务器,以备不时之需。

rsync -a local_dir/ user@remote-host-ip:/path/to/dir