... dándole más canales a nuestro RaspberryPi.
Buenas tardes, para un plan malévolo que estoy preparando, necesito que mi RaspberryPi tenga capacidad GSM de comunicación, lo que viene a ser enviar/recibir llamadas y enviar/recibir SMS (de los que se pagan). Y puestos a pedir, si consigo hacerlo reutilizando algún cacharrito de algún proyecto anterior, pues mejor que mejor. Así que me he puesto a buscar ...y me he encontrado con el chan_dongle (web) que nos da GSM en los modems 3G de Huawei, que resulta que ya tenia uno desde hace un siglo:
Ese modelo es el Huawei k3520, que es compatible 100% con el chan_dongle, aquí tienes más modelos. La ventajas de estos dispositivos es que son muy baratos (~30€), comparados con lo que cuesta un GSM-SIP( que viene a ser una barbaridá). Como además son USB, podemos poner varios cientos de ellos conectados a nuestro RaspberryPi, en mi caso he conectado sólo uno y he necesitado un HUB USB alimentado.
Los pasos que he seguido son:
- Tener Asterisk en correcto funcionamiento, en mi caso es la versión 11, aquí tienes unas muy buenas instrucciones de como instalar Asterisk.
- Parar Asterisk:
/etc/init.d/asterisk stop
- Descargar y compilar:
apt-get install usbutils cd /usr/src/ wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.2.5.tar.bz2 wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20121109.tar.bz2 tar -jxvf usb-modeswitch-1.2.5.tar.bz2 tar -jxvf usb-modeswitch-data-20121109.tar.bz2 cd usb-modeswitch-1.2.5 make all make install cd ../usb-modeswitch-data-20121109 make install cd ..
- Activar modo modem (OJO aquí):
lsusb | grep Huawei #Bus 001 Device 010: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem usb_modeswitch -v 0x12d1 -p 0x1001 -H -s 5 -M 55534243000000000000000000000011060000000000000000000000000000
- Instalar chan_dongle (para Asterisk 11, insisto):
cd /usr/src/asterisk/asterisk-11.1.2/ wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip unzip asterisk11.zip cd asterisk-chan-dongle-asterisk11/ aclocal autoconf automake -a ./configure make all make install
- /etc/asterisk/dongle.conf:
[general] interval=15 [defaults] context=dongle-incoming group=0 rxgain=0 txgain=0 autodeletesms=yes resetdongle=yes u2diag=-1 usecallingpres=yes callingpres=allowed_passed_screen disablesms=no language=es smsaspdu=yes mindtmfgap=45 mindtmfduration=80 mindtmfinterval=200 callwaiting=auto disable=no initstate=start exten=entrante dtmf=relax [dongle0] audio=/dev/ttyUSB1 data=/dev/ttyUSB2
- /etc/asterisk/extensions.conf
[dongle-incoming] exten => sms,1,Set(sms=${SMS}) same => n,NoOp(el mensaje del ${CALLERID(num)}: ${SMS}) same => n,Goto(nulo,s,1) exten => entrante,1,NoOp(llamada entrante por el Dongle USB) same => n,Answer() same => n,Dial(SIP/1002&SIP/Juanmol,${TIMEOUT},${opc}) same => n,Goto(nulo,s,1)
Y ya está, sorprendentemente fácil. Arrancamos Asterisk y en la consola probamos:
raspberrypi*CLI> dongle show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 0 Free 9 5 4 vodafone ES K3520 11.314.21.31.00 353436333212201 214062201179907 Unknown
Evidentemente no tengo Vodafone, tengo Pepephone y el dongle esta liberado. Llamamos con:
raspberrypi*CLI> originate dongle/dongle0/666555444 application musiconhold
y aquí vemos como se recibe un sms:
raspberrypi*CLI> [dongle0] Got SMS from +34666777888: 'Hola, esto es un sms con tíldés y eñes' -- Executing [sms@dongle-incoming:1] Set("Local/sms@dongle-incoming-00000000;1", "sms=Hola, esto es un sms con tíldés y eñes") in new stack -- Executing [sms@dongle-incoming:2] NoOp("Local/sms@dongle-incoming-00000000;1", "el mensaje del +34666777888: Hola, esto es un sms con tíldés y eñes") in new stack -- Executing [sms@dongle-incoming:3] Goto("Local/sms@dongle-incoming-00000000;1", "nulo,s,1") in new stack -- Goto (nulo,s,1) -- Executing [s@nulo:1] Hangup("Local/sms@dongle-incoming-00000000;1", "") in new stack == Spawn extension (nulo, s, 1) exited non-zero on 'Local/sms@dongle-incoming-00000000;1' -- Executing [h@nulo:1] Hangup("Local/sms@dongle-incoming-00000000;1", "") in new stack == Spawn extension (nulo, h, 1) exited non-zero on 'Local/sms@dongle-incoming-00000000;1' raspberrypi*CLI>
Genial, perfecto, superfácil y barato. Os recomiendo leer la documentación, vienen más configuraciones y ejemplos.
Hola.
ResponderEliminarUna pregunta: seguiría sirviendo el dongle como módem 3g o al estar utilizándose como gateway gsm se anula la conectividad?
Gracias y felicidades por el blog tan interesante que tienes!
no lo he probado, tengo pendiente probar el modem como modem. Me gustaría pensar que puedes hacer las dos cosas a la vez, como hace Orange o Vodafone en los ADSL domésticos sin línea.
EliminarExacto, yo hasta donde se, en UMTS (3G) voz y datos viajan por diferentes canales y que no pueden estar ambos al mismo tiempo, osea, mientras estas llamando se te corta los datos eso en 3G CDMA pero en 3G GSM si que se puede.
EliminarEntonces como respuesta a tu pregunta, si y no, sí porque puedes usar para ambos, y no porque no puedes usar ambos al mismo tiempo, ésto no por el modem o móvil, si no por la tecnología en si, y depende de tu operadora y su sistema que usan por debajo. Yo por ej. soy de Bolivia y no puedo usar Datos y Voz al mismo tiempo con mi operadora Tigo (millicom)
Al parecer me hice un lío explicando pero si hay cualquier duda con gusto la responderé lo que sepa ya que acabo de terminar la carrera de redes y teleco y sólo se teoría jeje :D
Saludos!
PD me leí tu configuración por encima, ahí llamas al número y éste te envía simplemente un sms no? Pensé que saldría la llamada a través del módem, de cualquier forma tenía pensado implementar ésto con llamadas y sms, cuando tenga listo les aviso.
Gracias a los dos.
ResponderEliminarHola! Estupendo blog!
ResponderEliminarCon respecto a lo de utilizar el modem como modem, quizá esto te sirva:
http://www.instructables.com/id/Raspberry-Pi-as-a-3g-Huawei-E303-wireless-Edima/#step1
Saludos.
Gracias!
EliminarHola buenas tardes
ResponderEliminarTengo problema al ejecutar make ya que me da un error que no puedo solucionar.
Alguno me podra ayudar??
http://pastebin.com/Jgtvv8Qg
Gracias de antemano
Hola,
ResponderEliminarLa entrada de tu blog me ha ayudado bastante pero aún tengo problemas para echar andar mi dongle. Tengo una duda ¿Es necesario cambiar a modo modem el dongle para usar chan_dongle?
Es el e153 el que estoy usando actualmente.
Saludos,
No he probado ese modelo, pero te diría que si. Supongo que se hace para poder enviar comandos AT más fácilmente.
EliminarSaludos
ResponderEliminarEl costo del envio del sms, seria lo que mi compañia telefonica cobre por sms enviado?.
Gracias