【发布时间】:2015-07-31 04:11:36
【问题描述】:
我想使用 GSM 调制解调器从一个号码向另一个带有号码的 GSM 调制解调器拨打语音电话。有可能吗?我可以使用什么软件?
【问题讨论】:
标签: driver gsm modem 3g mobile-phones
我想使用 GSM 调制解调器从一个号码向另一个带有号码的 GSM 调制解调器拨打语音电话。有可能吗?我可以使用什么软件?
【问题讨论】:
标签: driver gsm modem 3g mobile-phones
是的,假设您只想发起和接收语音呼叫,这是可能的。您将无法使用软件处理音频。
最简单的方法是使用AT commands。假设终接调制解调器的电话号码是 1234,然后在始发端运行 ATD1234;(请注意,最后需要分号才能进行语音呼叫。没有它,调制解调器将改为进行电路交换数据呼叫)。
那么在终止端有几种方法。最简单的方法是将S0 寄存器设置为不同于零的值,例如ATS0=2 将在响铃两声后自动接听来电(更多详细信息请参阅V.250 中的6.3.8 自动接听章节)。
但请注意,S0 适用于所有类型的呼叫,因此它也可能会尝试应答数据呼叫。如果您想更复杂一点,您可以使用AT+CRC=1 启用+CRING 未经请求的结果代码(有关详细信息,请参阅27.007),然后编写一个监控UR 代码的程序,并在收到+CRING: VOICE 时手动回答拨打ATA。
除了UR码的监控,所有的AT指令都可以通过atinout程序很方便的发送出去。采取最简单的方法是在终止端运行
$ echo ATS0=1 | atinout - /dev/your_modem_device -
ATS0=1
OK
$
在始发端运行
$ echo 'AT1234;' | atinout - /dev/your_modem_device -
ATD123;
OK
$
【讨论】:
/dev/ttyACM* 设备的空间,每部手机分配两个应该可以提供 128 个调制解调器,尽管可能还有其他我不知道的内部限制。在 Windows 上,如果您运气不好并且驱动程序非常不灵活,那么答案可能只有一个。