Huawei E160EとHuawei K3765 "GSM"モデムを持っています。
問題は、これらのモデムで電話/音声通話を発信または受信するオーディオデータを送受信する方法ですか?
仕様( E160E 、 K3765 )およびATコマンドによると、どちらも音声通話をサポートしているようです。
発行中
AT^CVOICE?
結果は
^CVOICE:0,8000,16,20
OK
(どちらのモデムも同じ)。
両方のモデムは3つのUSBポートを提供します。これらを/dev/ttyUSB0
、/dev/ttyUSB1
、/dev/ttyUSB2
と呼びます(システムに他のUSBシリアルデバイスが存在しない場合)。 K3765はさらにcdc_ether
ethernetデバイスを登録します。 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
を使用するためのコメントを見つけました。 ffplay
は私のためにただ停止するだけで、コードを省略しても、それを試してみるほど多くを作ることはできません(ただし、プログラマーではなく、特にC
にはありません)。これは私のモデムにも当てはまります)。
インターネットでは、大きなソフトウェアパッケージ(たとえば、アスタリスク)を使用する以外に、実際にこれらのデバイスにオーディオを出し入れする方法についての情報は見つかりません。基本的な方法で動作します。
それでは、オーディオ通信は(これらの)Huawei GSMモデムでどのように機能しますか?
モデム情報:ATI
- commandの出力:
E160E:
Manufacturer: huawei
Model: E160X
Revision: 11.609.10.02.432
IMEI: 354765038021325
+GCAP: +CGSM,+DS,+ES
OK
K3765:
Manufacturer: huawei
Model: K3765
Revision: 11.126.03.06.00
IMEI: 353142047899771
+GCAP: +CGSM,+DS,+ES
OK
呼び出し後に電話をかけたり受けたりした後、次のコマンドを発行して、シリアルデバイスのオーディオ出力を有効にする必要があります(呼び出しごとに)
AT^DDSETEX=<number>
(私のデバイスでは、AT^DDSETEX=2
のみがサポートされ、2番目のシリアルインターフェイスとの間でオーディオを送信します。つまり、/dev/ttyUSB1
)。
次に、/dev/ttyUSB1
から読み取るとデータが得られ、/dev/ttyUSB1
にデータを書き込むと相手の電話に通知が届きます。
ノイズだけでなく、正しいものが聞こえるようにオーディオデータを正しく読み書きする方法を見つけることは、技術的な演習として残します;-)。
http://lists.ofono.org/pipermail/ofono/2012-March/012551.html のおかげで、これを試すアイデアを得ました。