我有一个华为 E160E 和一个华为 K3765“GSM”调制解调器。
问题是:如何使用这些调制解调器发送和接收音频数据,拨打或接听电话/语音电话?
根据规范(E160E、K3765)和 AT 命令,两者似乎都支持语音通话:
发行
AT^CVOICE?
Run Code Online (Sandbox Code Playgroud)
结果是
^CVOICE:0,8000,16,20
OK
Run Code Online (Sandbox Code Playgroud)
(两个调制解调器相同)。
两个调制解调器都提供 3 个 USB 端口,我将它们称为/dev/ttyUSB0
, /dev/ttyUSB1
, /dev/ttyUSB2
(假设系统中没有其他 USB 串行设备)。K3765 额外注册了一个cdc_ether
以太网设备。我正在使用 Linux。
在两者上/dev/ttyUSB0
,/dev/ttyUSB2
我都可以放置 AT 命令并接收它们的答案;另外,/dev/ttyUSB2
报告状态消息(如^RSSI:23
,^BOOT:38021325,0,0,0,77
,^SIMST:1
或^SRVST:2
)。当有人打电话时,K3765 也会默认报告(RING
) 时,,而 E160E 不会。
在两个调制解调器上,我都可以使用 拨打电话,ATD<number>;
也可以使用 接听电话ATA
。
/dev/ttyUSB1
似乎什么都不做;简单地写入这个文件不会得到任何数据,从它读取不会得到任何数据。
如何将音频数据传入和传出调制解调器?
我已经找到了这个 stackexchange 问题和Sai Chaitanya的答案以及使用ffmpeg
/的评论ffplay
。 …