我想要做的是将运行 Asterisk+FreePBX 的系统中的呼叫者 ID (CID) 信息发送到我网络上的所有 (3) 个 MythTV 前端系统。我希望 CID 信息能够弹出到正在发生的任何事件之上(例如,无论是在菜单上,还是在播放录音)。最终可能还会有其他信息,但目前 CID 是一个很好的开始。
libnotify 样式的通知很好(尽管我可能需要增加文本大小才能看到它)。我当时想的是咆哮,但在 Linux 上这似乎并不存在。
理想情况下,我只需要对整个网络进行某种广播,例如,从 FreePBX 系统我可以运行如下命令:
notify --broadcast --title "Incoming Call" "Smith J\n613-555-1234"
然后在任何 mythtv 前端,它都会出现在屏幕上的某个地方。
注意:神话通知插件,我在之前的设置中使用过,但它有一个严重的限制(我相信是基于 MythTV 的 OSD 工作方式),它只能在视频播放期间显示通知:在菜单中则不行。我还记得要正确显示是一件很麻烦的事:它使用 XML 进行消息传递,然后使用 XSLT 更改为 mythtv 的 XML 格式。如果您想显示一些略有不同的内容,您必须制作少量新的 XML 文件,即使这样,让“callerid-from-phonebook.xml”消息实际呈现到(远程)“callerid-from-phonebook-osd.xml”文件进行显示也是一种黑魔法。
答案1
您可以使用命令行通知工具来完成此操作。
- 在网络上的所有系统上安装包“libnotify-bin”,它提供了一个名为“notify-send”的工具。
- 在网络上的所有系统上安装 ssh 服务器,并确保它们配置为允许无密码 ssh 登录(请参阅http://www.debian-administration.org/articles/152了解更多信息)。
在您的服务器上设置通知脚本以执行通知发送,如下所示:
ssh username@system1 ‘notify-send “来自 Smith J\n613-555-1234 的来电”’
ssh username@system2 ‘notify-send “来自 Smith J\n613-555-1234 的来电”’
这将导致名为“system1”和“system2”的系统上弹出通知。