%20.png)
Estou tentando construir uma transmissão de telefonia via Wi-Fi O que estou tentando fazer é conectar um fone de ouvido Wi-Fi programável (na verdade não existe, na verdade é um computador Linux) com um celular que também seja Wi-Fi habilitado.(isso também não existe e também é um computador Linux). É como o caso em que se tem um celular emparelhado com um dispositivo de emparelhamento Bluetooth e quando você recebe uma ligação você pode controlar o estabelecimento da chamada e o aborto usando o próprio fone de ouvido. a diferença é que quero usar Wi-Fi em vez de Bluetooth. Então, o que fiz até agora foi implementar um fluxo de mídia no Gstreamer que pode enviar sinais de voz estéreo por IP (ou seja, VoIP em uma rede sem fio local). Aqui está o pipeline do remetente:
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
E no lado receptor eu fiz o seguinte, ouvir em uma porta UDP para receber os sinais de voz e fazer a decodificação e reproduzi-los:
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
Se eu executar os dois fluxos manualmente em cada extremidade, recebo meus sinais estéreo e, trocando os dois pipelines para serem executados em um terminal separado em cada computador Linux, posso ter uma fala em tempo real entre os dois computadores Linux.
O problema com isso é que eu tenho que executar os pipelines manualmente em cada Linux para estabelecer uma conexão bidirecional e como todos sabemos em um emparelhamento Bluetooth, após o emparelhamento nenhuma outra etapa precisa ser feita manualmente pelos usuários para conectar o celular com o fone de ouvido. É usado algum tipo de sinalização que inicializa o processo de envio / recebimento em cada extremidade. Isso significa que quando o celular toca, o fone de ouvido é notificado de que uma chamada está chegando no celular.
Agora minha dúvida é qual é a maneira correta de fazer esse processo de automação que quando eu quiser estabelecer uma chamada de um dos computadores Linux para o outro, a outra extremidade seja notificada que um Linux com caracteres especificados (por exemplo xxx.xxx. xxx.xxx IP e número da porta xxxx) está tentando se conectar e, após o reconhecimento da outra extremidade, os pipelines mencionados acima iniciam o streaming do áudio, bidirecionalmente e desligam quando uma extremidade encerra a conversa.