Как управлять входом и выходом звука из и в файл модемов Huawei GSM? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть USB-ключ Huawei E173, подключенный к Raspberry PI. Я пытаюсь использовать устройство для совершения и приема звонков.

Для моих целей необходимо (i) сохранить звук вызова в файл и (ii) отправить звук на телефонный вызов из входной файл.

Насколько я понял (я не могу найти официального руководства), ключ E173 устанавливает три новых устройства (пожалуйста, поправьте меня, если я ошибаюсь):

  • /dev/ttyUSB0 для команд
  • /dev/ttyUSB1 для голосовых данных
  • /dev/ttyUSB2 для уведомлений

Чтобы включить телефонные звонки, я запускаю следующие команды: AT+CLIP=1, AT+CRC=1, AT+CNMI=1,2 на /dev/ttyUSB0. Кроме того, если я запускаю AT^CVOICE?, я получаю ^CVOICE:0,8000,16,20. Наконец, когда я делаю / принимаю звонки, я запускаю AT^DDSETEX=2 на /dev/ttyUSB0, чтобы включить пересылку звука на порт /dev/ttyUSB1.

На этом этапе я застрял.

Я знаю, что есть другие похожие сообщения, пытающиеся перенаправить вход микрофона и выход динамиков на ключ, но моя цель - сохранить разговор в файл (во время разговора я пытался запустить cat /dev/ttyUSB1 > filename.raw, но файл не может быть открыт с помощью стандартного программного обеспечения, следовательно, как я могу его преобразовать?) и одновременно отправить голос из файла (в каком формате? Я попытался отправить обратно filename.raw в /dev/ttyUSB1 с cat filename.raw > /dev/ttyUSB1, но вся система зависает).

Как мне сохранить аудио в файл и отправить аудио из файла?

Я нашел некоторые ресурсы на Inte rnet пытаюсь объяснить для подобных устройств, что звук должен быть отправлен в моно, с цифровой частотой 8000 Гц и оцифрован в 16 бит. Если посмотреть на результат выполнения команды AT^CVOICE?, такие параметры должны применяться и в моем случае. Кроме того, тот же ресурс сообщает, что «аудиоданные должны подаваться на аудиопорт модема пакетами по 320 байтов каждые 0,02 секунды». Я пробовал применить даже такой подход, но безуспешно.

...