2015-07-31 2 views

ответ

1

Да, это возможно, если вы просто хотите инициировать и принимать голосовой вызов. Вы не сможете обрабатывать аудио с помощью программного обеспечения.


Самый простой способ сделать это состоит в использовании AT commands. Предполагая, что у завершающего модема есть номер телефона 1234, затем на начальном этапе запуска ATD1234; (обратите внимание, что точка с запятой на конце требуется для голосового вызова. Без этого модем будет вместо этого выполнять вызов с коммутацией каналов).

Тогда на конечной стороне есть несколько способов. Самое простое - установить регистр S0 на что-то отличное от нуля, например. ATS0=2, который автоматически ответит на входящий вызов после двух звонков (подробнее см. Главу 6.3.8 Автоматический ответ в V.250).

Обратите внимание, что S0 применяется ко всем типам вызовов, поэтому он также попытается ответить на вызовы данных. Если вы хотите быть немного более изощренным, вы можете включить незапрашиваемый результирующий код с AT+CRC=1 (см. 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 
$ 
+0

сколько USB-модемы можно подключить к одному компьютеру, если моя цель состоит в том, чтобы подражать, как много звонков насколько возможно? – Herokiller

+0

В Linux есть место для устройств с 256 '/ dev/ttyACM * ', и с двумя выделенными на телефоне должно быть 128 модемов, хотя могут быть и другие внутренние ограничения, о которых я не знаю. В окнах ответ может быть только одним, если вам не повезло, и драйвер очень нежесткий. – hlovdal

Смежные вопросы