Como obter entrada e saída de áudio dos modems Huawei GSM ao fazer uma chamada de voz?

4

Eu tenho um modem Huawei E160E e um Huawei K3765 "GSM".

A pergunta é: como enviar e receber dados de áudio colocando ou recebendo telefone / chamadas de voz com esses modems?

Ambos parecem suportar chamadas de voz, de acordo com as especificações ( E160E , K3765 ) e de acordo com os comandos AT:

Emitindo

AT^CVOICE?

resulta em

^CVOICE:0,8000,16,20

OK

(ambos os modems são os mesmos).

Ambos os modems fornecem 3 portas USB, chamo-lhes /dev/ttyUSB0 , /dev/ttyUSB1 , /dev/ttyUSB2 (assumindo que não exista nenhum outro dispositivo serial USB presente no sistema). O K3765 também registra um dispositivo ethernet cdc_ether . Eu estou usando o Linux.

Em /dev/ttyUSB0 e /dev/ttyUSB2 , posso colocar comandos AT e receber suas respostas; Além disso, /dev/ttyUSB2 relata mensagens de status (como ^RSSI:23 , ^BOOT:38021325,0,0,0,77 , ^SIMST:1 ou ^SRVST:2 ). O K3765 também relata por padrão quando há alguém chamando ( RING ), o E160E não.

Em ambos os modems, posso fazer chamadas com ATD<number>; e posso atender chamadas com ATA .

/dev/ttyUSB1 parece não fazer nada; simplesmente escrever para este arquivo não obterá dados nele, a leitura dele não tira nenhum dado.

Como é possível obter dados de áudio dentro e fora do (s) modem (s)?

Eu já encontrei esta pergunta do stackexchange e a resposta por Sai Chaitanya , bem como o comentário para usar ffmpeg /%código%. ffplay apenas empacota para mim, e com o código cortado eu não posso fazer muito para testá-lo (não um programador, e especificamente não em ffplay , embora; e não sei se isso se aplica ao meu modem ( s) em tudo).

Na internet eu não encontro informações sobre como realmente obter áudio dentro e fora desses dispositivos, além de usar grandes pacotes de software (asterisco, por exemplo) - o que eu não quero, a questão é como faça com que funcione da maneira básica.

Então, como a comunicação de áudio funciona com (aqueles) modems Huawei GSM?

Informações do modem: saída de C -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
    
por Golar Ramblar 21.04.2018 / 15:58

1 resposta

2

Depois de colocar ou receber uma chamada, a saída de áudio no dispositivo serial precisa ser ativada (a cada vez para cada chamada) emitindo

AT^DDSETEX=<number>

(para os meus dispositivos, apenas AT^DDSETEX=2 é suportado, o que direciona o áudio de e para a segunda interface serial, ou seja, /dev/ttyUSB1 ).

Em seguida, a leitura de /dev/ttyUSB1 fornece alguns dados e a gravação de material em /dev/ttyUSB1 transmite algum ruído no telefone do outro lado.

Agora, descobrir como ler e gravar corretamente os dados de áudio para que as coisas corretas possam ser ouvidas, e não apenas o ruído, seja deixado como um exercício técnico; -).

Graças ao link , onde tive a ideia de tentar isso.

    
por 21.04.2018 / 20:27