Я пытаюсь создать телефонную передачу через Wi-Fi. Я пытаюсь подключить программируемую гарнитуру Wi-Fi (она на самом деле не существует, на самом деле это компьютер с Linux) к мобильному телефону, который также является Wi-Fi. включен. (он также не существует, и это также компьютер с Linux). Это похоже на случай, когда у вас есть мобильный телефон, который связан с устройством сопряжения Bluetooth, и когда вы получаете телефонный звонок, вы можете контролировать установление и прерывание вызова с помощью самой гарнитуры. Разница в том, что я хочу использовать Wi-Fi вместо Bluetooth. Итак, что я сделал до сих пор, так это внедрил поток мультимедиа в Gstreamer, который может отправлять стереофонические голосовые сигналы по IP (т. Е. VoIP в локальной беспроводной сети). Вот конвейер отправителя:
gst-launch -v alsasrc ! audioconvert ! audio/x-raw-int,
channels=2,depth=16,width=16,rate=44100 ! rtpL16pay ! udpsink
host=192.168.178.110 port=5000 //sender
На приемном конце я сделал следующее: прослушивание UDP-порта для приема голосовых сигналов, декодирования и воспроизведения:
gst-launch udpsrc port=5000 ! "application/x-rtp,media=(string)audio,
clock-rate=(int)44100, encoding-name=(string)L16,
channels=(int)2, payload=(int)96" ! rtpL16depay !
audioconvert ! alsasink //receiver
Если я запускаю два потока вручную на каждом конце, я получаю свои стереофонические сигналы и, меняя два конвейера для запуска в отдельном Терминале на каждом компьютере Linux, я могу иметь Речь в реальном времени между двумя компьютерами Linux.
Проблема с этим заключается в том, что мне приходится вручную запускать конвейеры на каждом Linux, чтобы установить двунаправленное соединение, и, как мы все знаем при сопряжении Bluetooth, после сопряжения пользователи не должны делать никаких дополнительных шагов вручную для подключения мобильного телефона. с гарнитурой.Используется некоторый тип сигнализации, который инициализирует процесс отправки / получения на каждом конце.Это означает, что когда мобильный телефон звонит, гарнитура получает уведомление о поступлении входящего вызова на мобильный телефон.
Теперь мой вопрос заключается в том, как правильно этот процесс автоматизации, когда я хочу установить вызов с одного из компьютеров Linux на другой, другой конец уведомляется, что Linux с указанными символами (например, xxx.xxx. xxx.xxx IP и номер порта xxxx) пытается подключиться, и после подтверждения на другом конце вышеупомянутые конвейеры начинают потоковую передачу аудио, двунаправленно и когда один конец завершает разговор, завершение разговора.