在 Linux 盒子 (Debian) 上记录失败的 SIP 呼叫 (sipcmd)

在 Linux 盒子 (Debian) 上记录失败的 SIP 呼叫 (sipcmd)

我在路由器 (Fritz!Box) 后面设置了一个小型 Raspberry Pi(带有 Debian 8),它会检查/分析每个 SIP 呼叫的特定电话线路的连接性或更确切地说是服务质量。我的电话线另一端有电话答录机。基本上,我需要知道什么时候电话线无法接通。

具体来说,Raspberry 每天使用 Sipcmd 程序调用该号码 3 次(https://github.com/tmakkonen/sipcmd) - 请参阅下面的代码。

定时任务:

0 8,14,20 * * * /usr/bin/sipcmd -P sip -u abc -c cba -w 192.168.8.10 -x "c010101010101;ws45000;h"

现在调用工作正常,但我需要诸如登录到文本文件之类的东西,当电话无法接通或相当,当电话号码无法接通时,这样它就像一个警报系统一样,只向我显示失败的情况。

有人有解决这个问题的方法吗?

答案1

好吧,我找到了解决我问题的方法。 Sipcmd 程序具有以下功能:

-o  --opallog       enable extra opal library logging to file

所以,我将我的 cronjob 更改为:

0 8,14,20 * * * /usr/bin/sipcmd -o ~/call.log -P sip -u abc -c cba -w 192.168.8.10 -x "c010101010101;ws45000;h"

现在,利用现有的日志文件,我可以使用一个函数来 grep 查找 SIP 状态代码,该代码告诉我呼叫已接通(或未接通)。

如果有人感兴趣,这里是 SIP 状态代码:

https://de.wikipedia.org/wiki/SIP-Status-Codes

每个人都取得了很大的成功。

相关内容