我对自动化 IP 电话非常感兴趣,目前我使用 PuTTY 通过简单的 AT 命令自动拨打电话到拨号调制解调器。然而,这是一种糟糕的方法,因为除了拨号和接听之外,它几乎什么都做不了;更糟糕的是,它只能拨打某些号码。
我尝试过的:
我有一个程序可以通过我的电脑以某种方式控制我的 IP 电话(级别太高,因为它没有 API)。使用 Wireshark,我能够捕获它发送到电话的数据包,我相信这些数据包会发出呼叫某个号码的命令。
此时,我认为我可以使用 Telnet 连接通过 PuTTY 发送从 Wireshark 获得的十六进制值。我遇到的第一个问题是我不确定端口号;但是我尝试了 23 和 80,在这两种情况下:当我输入时,按键会出现在 PuTTY 中。这肯定是个好兆头,对吧?不幸的是,大约 20 秒后,窗口会自动关闭。我通过浏览器进入了 IP 电话的本地网页,没有找到有关端口号的信息。
我还可以 ping 电话而无需指定端口号。
问题:
有人能解释为什么我的 PuTTY 会话会自动关闭和/或有自动化 IP 电话的替代解决方案吗?
答案1
看一下SKINNY(SCCP)协议:http://en.wikipedia.org/wiki/Skinny_Call_Control_Protocol。它是一种二进制协议(正如您在 Wireshark 捕获中看到的那样),因此您无法使用 PuTTY 通过类似 AT 的命令来命令您的手机。在 PuTTY 中输入十六进制数字是没用的,因为数据包中传输的数据不是十六进制数字,而是实际的二进制字节。此外,在 Wireshark 上捕获数据包时重新发送数据包可能不起作用,因为它们包含 IP 地址等数据,这些数据可能不是恒定的,具体取决于您的网络配置。