我有一个有趣的问题要告诉你。我一直在检查我的服务器监控和通知系统(基于 Nagios),并意识到如果我们的互联网连接中断,它无法通知我。我已经有一个调制解调器在备用 POTS 线路上监听(通过 CentOS 5),以便在互联网中断时我可以拨入。我想知道我是否可以想出一个脚本(Shell、Python 等),它可以拨出并在接听时播放录音消息(我猜是波形文件)。我知道 Windows 支持通过语音调制解调器进行语音呼叫,我想知道 Linux 是否存在解决方案...
我知道 asterisk 可能可以做到这一点,但这不是有点过分吗(一个功能齐全的 VOIP 系统只是为了一个希望永远不会被使用的通知机制)?而且这不会干扰调制解调器作为备用网络接口(通过 mgetty 生成的 PPP)的主要功能吗?
我搜索了一番,但并没有找到太多答案。我知道如何从命令行拨号,但只能作为调制解调器(而不是语音)。最糟糕的情况是,我可以将其设置为调制解调器拨号,然后才意识到如果我接到一个带有调制解调器声音的电话,那就是通知……任何见解都将不胜感激……
答案1
Linux 使用vgetty
调制解调器传输语音数据(主要用作应答机)。看起来有一个CPAN 上的 perl 模块它附带一个您想要的示例脚本。
Callme 脚本
在源代码分发的示例子目录中有一个 callme.pl 脚本。该脚本拨打给定的号码并播放给定的消息。使用以下命令运行它:
vm shell -S /usr/bin/perl callme.pl <number> <message>.rmd
答案2
我使用外部服务器来运行 Nagios 的附加实例,这是在完全失败的情况下的最后手段通知。
我希望我能回答你关于调制解调器音频播放的问题。我想说这应该很简单,但我对这方面的知识正在生疏。以前语音调制解调器专为播放音频而出售。
如果我是你,我会尝试使用控制台软件重定向音频播放。我认为这可能非常简单。我可能会在有空的时候做更多研究。
答案3
我在快速搜索中发现了这一点:
答案4
在谷歌搜索时偶然发现了这个问题,并发现虽然我特别想捕获/重放语音样本,但一条简单的短信可能适合您的情况。
我使用华为调制解调器(USB 加密狗)作为 Raspberry Pi 上的短信中心,并配有 CSP 提供的免费 SIM 卡,这样我就可以向它发送短信,它会回复有关系统的基本信息。我猜它可以轻松修改为在 Nagios 检测到互联网故障时发送短信!
请注意,您需要一张普通手机 SIM 卡(而不是仅数据/平板电脑 SIM 卡)才能发送短信。
我使用了此处的博客文章:http://hristoborisov.com/index.php/projects/turning-the-raspberry-pi-into-a-sms-center-using-python/
...具体使用了这个示例代码在 github 上。
为了防止链接腐烂,要点是使用serial
python 中的库 ( import serial
) 并向调制解调器发送常规调制解调器 AT 命令。将调制解调器置于文本模式,然后使用以下字符串发送测试消息:
AT+CMGF=1\r
AT+CMGS="07123456789"\r
some message here.<Ctrl-Z>