我有 3 个哑 GSM 继电器来控制大门。如果设备通讯录中的人打电话,大门就会打开。电话会被拒绝(在我的国家,未接通或通话时间少于 5 秒的电话是免费的)。
这种设置的问题在于,被拒绝的呼叫不会出现在操作员的呼叫数据寄存器 (CDR) 中,因此也不会出现在在线声明中。我无法检查究竟是谁在特定时间打开了门。
作为一种解决方法,我为这 3 个号码启用了 SIP。操作员同时将来电通过无线方式路由到 GSM 调制解调器和 SIP 帐户,我可以在那里看到来电显示。
问题是,现在我必须使用 3 部装有运营商 SIP 应用的旧 Android 手机来记录来电。虽然可以,但这是一个奇怪且不方便的临时解决方案。此外,它破坏了我邻居的用户体验 - 他们已经习惯了他们的电话被 GSM 中继立即挂断,现在他们会听到铃声,直到 SIP 应用决定拒绝来电。
我有一台旧上网本,上面安装了 FreePBX 发行版。我将向其中添加这 3 个 SIP 帐户。我需要有关如何配置 Asterisk 以在其 MySQL 数据库中记录每个传入 SIP 呼叫的呼叫者 ID 及其日期和时间的建议,等待几秒钟拒绝称呼。我稍后会编写一个简单的 Perl 脚本来查看这个数据库并为我制作一份简洁的 HTML 报告。
我知道这一定非常简单,但这种设置对于 Asterisk 来说是一种奇怪的用例,而且我找不到任何现有的 HOWTO。
PS 编辑 GSM 中继固件使其接受并立即拒绝呼叫不是一个选项——它是专有的。