Eu não sei exatamente como solucionar o problema que estou tendo, por isso vou perguntar aqui.
Eu tenho um modem USB 3G conectado a uma máquina física server4
executando o ProxMox OS baseado no Debian Wheezy, e posso enviar SMS com ele usando apenas gsmsendsms
.
echo "Message" | gsmsendsms -d /dev/ttyUSB0 -b 19200 <phone number>
Isso funciona bem. Agora eu tenho uma máquina virtual (Ubuntu Server 14.04) instalada em um servidor físico diferente server1
também rodando o Proxmox baseado no Debian Wheezy, e eu quero que esta máquina virtual acesse o modem USB em server4
.
Até agora eu tentei usar ser2net
on server4
para 'compartilhar' o modem USB através da rede usando esta linha em config
:
2000:raw:0:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT banner
qual deve fazer o trabalho pelo que eu consegui entender sobre ser2net
.
Na máquina virtual, tentei usar socat
para adicionar um dispositivo virtual vinculado ao modem USB compartilhado:
socat pty,link=/dev/virtualcom0,raw tcp:server4:2000
que parece fazer o trabalho, pois o dispositivo virtualcom0
aparece em /dev
. No entanto, se eu tentar enviar um SMS usando virtualcom0
, recebo um erro engraçado:
user@vm:~$ echo "SMS Test Message!" | sudo gsmsendsms -d /dev/virtualcom0 -b 19200 <phone number>
gsmsendsms[ERROR]: clearing DTR failed (errno: 22/Invalid argument)
Eu uso exatamente o mesmo comando do servidor físico em que o modem USB está conectado, mas ele falha, e o googling 'gsmsendsms errno 22' não foi muito produtivo.
No final, gostaria de fazer um modem USB conectado ao físico server4
acessível para o Zabbix, que é executado em uma máquina virtual em server1
. Se houver uma maneira melhor de fazer isso do que usar ser2net
e socat
, estou pronto para tentar outra coisa.