Implementar un telular con un modem 3G en asterisk a bajo costo

En esta ocasión voy a mostrarles una instalación que tengo implementada con algunos clientes desde hace ya bastante tiempo, la instalación se trata de sacar llamadas por medio de un Telular “hechizo o casero”. Para los que no sepan que es un telular, lo definiremos como un dispositivo que es capaz de “adaptar” tecnología GSM con la red telefónica tradicional, en pocas palabras es un electrónico donde se coloca un chip de la compañía telefónica de nuestra preferencia que puede conectarse ya sea a nuestro conmutador telefónico tradicional o a nuestro conmutador IP.

La idea de esta implementación es poder abaratar costos en términos de llamadas a celular, ya que regularmente las llamadas entre usuarios de la misma compañía son más económicas. Un ejemplo muy claro de lo que menciono podría aplicarse para el caso de Movistar donde las llamadas a la comunidad movistar son gratuitas, esto abarata costos excesivamente ya que si dentro de la empresa todos los empleados cuentan con movistar, basta con definir una ruta de salida para que las llamadas que se realicen por el telular se generen sin costo.

Ahora bien, para poder implementar este Telular tendremos 2 alternativas a seguir, ya dependerá de los gustos y requerimientos del implementador decantarse por uno u otra:

  1. Telular con RasPBX
  2. Telular con Asterisk puro en la distribución de nuestra elección (debían, Ubuntu, fedora, centOS, etc.)

 

Requerimientos previos:

Para ello emplearemos un Dongle 3G, básicamente son aquellos que nos brindan las compañías telefónicas para poder acceder a internet móvil, muchas personas le denomina n comúnmente banda ancha, por si tienes duda a continuación tienes una imagen:

Modem 3G - Dongle USB Huawei E153
Modem 3G – Dongle USB Huawei E153

En este caso emplearemos un dongle marca Huawei modelo E153 de la compañía telefónica UNEFON, el inconveniente con este dongle al igual que la mayoría de los celulares que brinda esta compañía es que se encuentra bloqueado para ocuparlos con chips de diferente compañía, por lo cual para que nosotros podamos emplear este dongle con la compañía telefónica de nuestra preferencia deberemos “liberar ” el dongle para ello emplearemos el IMEI o realizar una “liberación” por IMEI como muchos la denominan.

Ahora bien para poder liberar el Dongle 3G ingresaremos en la siguiente página: www.modemunlock.com/huawei.php donde ingresaremos el IMEI de nuestro modem 3G y nos arrojara los respectivos códigos para poder “liberar” nuestro modem. Una vez tengamos esos códigos procederemos a instalar el software que acompaña a nuestro modem como si nos fuéramos a conectar a internet pero ingresaremos un chip de una compañía distinta, por ejemplo si nuestro modem es de la compañía telcel ingresaremos un chip de movistar, después en pantalla nos aparecerá un cuadro de dialogo  que nos solicitara un código de desbloqueo para poder liberar nuestro modem, ingresaremos el que obtuvimos en la página anterior y después de esto “en teoría” nuestro modem estará libre para poder ocuparlo a voluntad con cualquier compañía.  Ahora una vez libre nuestro modem procederemos a verificar si se encuentra habilitada la función de voz en nuestro modem, y en dado caso de que no estuviera habilitada implementaremos la función en nuestro modem.

Para ello emplearemos el software “Dc-unlocker” cuya función es verificar y/o habilitar la función de voz en nuestro modem, el proceso en general es muy sencillo e intuitivo. Y para asegurar que la voz se encuentre activada en nuestro modem procederemos a actualizar el firmware de  nuestro modem a la versión más reciente, para ello ingresaremos en www.dc-files.com y seleccionaremos el firmware adecuado para nuestro modem. De nueva cuenta el proceso, en general, es bastante intuitivo.
Ahora una vez que se tiene liberado el modem, actualizado el firmware y por supuesto habilitada la función de voz en nuestro modem huawei, procederemos a realizar la implementación de nuestro telular con asterisk.

Telular con Raspbx

A mi parecer esta funcionalidad es la más acertada para disponer de una instalación rápida y funcional. Para ello emplearemos una Raspberry Pi con una distribución modificada para brindar servicios de una central telefónica, básicamente está basada en Raspbian con asterisk 11 instalada, freepbx así como el modulo chan_dongle precargado.

Para comenzar deberemos contar con una raspberry pi (pueden comprarla en la tienda de su preferencia), así como también como con un Hub USB como el que se muestra a continuación:

Hub USB Raspberry Pi
Hub USB Raspberry Pi

Es muy importante que el Hub USB tenga alimentación externa ya que el modem 3G consume bastante energía y si este último se conecta directamente al puerto de la raspberry pi, podría dañar el puerto o simplemente no funcionar como se espera. Ahora una vez realizada la conexión con el Hub USB de por medio se procede a bajar y a instalar la imagen de Raspbx para ello ingresaremos en: http://www.raspberry-asterisk.org/downloads/ e instalaremos la imagen de Raspbx como si de cualquier otra imagen se tratase (puedes Googlear como instalar imagen de Raspberry Pi para conocer el proceso).

Ahora una vez instalada nuestra distro en nuestra flamante Raspberry Pi, procederemos a configurarla, para ello ingresaremos en ella por medio de SSH e ingresaremos el siguiente comando:

install-dongle

raspbx-dongle
raspbx-dongle

Una vez ingresado ese comando se nos presentara un proceso bastante intuitivo para la configuración de nuestro dongle o modem 3G, donde después de concluir en teoría tendríamos nuestro dongle listo para trabajar. Una vez configurado nuestro dongle ingresaremos en nuestra consola el siguiente comando para verificar que nuestro Dongle funciona de manera adecuada:

asterisk –rx “dongle show devices”

Que si todo ha ido bien nos arrojara una salida exitosa como la siguiente:

raspbx-status-dongle
raspbx-status-dongle

Ahora veremos que IP le fue asignada a nuestra amada Raspberry Pi e ingresaremos dicha dirección IP en nuestro navegador para poder crear nuestras reglas de marcado. Para ello nos dirigiremos a la siguiente opción: Connectivity > Trunks > Add Custom Trunk y lo rellenaremos con los siguientes datos:

configuracion-raspbx
configuracion-raspbx

Donde como se observa en la imagen anterior en Trunk Name ingresaremos el nombre que identificara a nuestra troncal y en la sección Custom Dial String ingresaremos:

dongle/dongle0/$OUTNUM$

Ya después solo nos restaría crear nuestras respectivas rutas de salida y seleccionar nuestra troncal en la ruta de salida, para fines de muestra les comparto la ruta de salida:

ruta-de-salida-raspbx
ruta-de-salida-raspbx

Con lo cual tendríamos nuestro telular funcionando sin problema alguno con una interface web para los que no están muy familiarizados con “asterisk puro”.

Telular con Asterisk puro

Esta opción a mi parecer no es para novatos ya que conlleva un poco mas de conocimiento sobre lo que se hace, por lo cual seré un poco menos específico y solo mencionare la metodología “general”. Para realizar la instalación deberemos de disponer de una distribución con un asterisk ya instalado, como opte por trabajar con un Debian la instalación de asterisk en Debian se realiza de la siguiente manera:

apt-get install asterisk asterisk-dev –y

NOTA: Se instalo el paquete dev por que vamos a compilar el modulo para el dongle y el mismo hace uso de las librerías de desarrollo de asterisk.

Una vez instalado asterisk se procederá a instalar chan_dongle que es el modulo que nos permite emplear nuestro modem 3G como ruta de salida para llamadas salientes.

Para ello ingresaremos los siguientes comandos en nuestra consola:

apt-get update && apt-get upgrade –y
apt-get install linux-headers-`uname -r` gcc g++ make libnewt-dev libncurses5-dev openssl libssl-dev zlib1g-dev

cd
wget https://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
tar -zxvf chan_donle_%VERSION.r%REVISION.tgz
cd chan_donle_%VERSION.r%REVISION

./configure
make
make install

Con lo cual si no nos arrojo error alguno la compilación nuestro dongle estará casi listo para realizar llamadas 🙂

Después una vez dentro de la carpeta que descomprimimos anteriormente nos dirigiremos a la carpeta /etc que contiene el archivo dongle.conf, dicho archivo lo copiaremos a la carpeta /etc/asterisk con el siguiente comando:

cp –v dongle.conf /etc/asterisk

Con lo cual habremos copiado nuestro archivo de configuración, ahora ya solo nos restara ingresar en la CLI de asterisk y cargar de manera manual el modulo. Para ingresar a la consola de asterisk ingresaremos con:

asterisk –rv

Y una vez dentro cargaremos el modulo de la siguiente manera:

module load chan_dongle.so

Una vez cargado el modulo saldremos de la CLI de asterisk con el comando exit, si todo ha ido bien al ingresar el siguiente comando:

asterisk –rx “dongle show devices”

Debería arrojarnos una salida similar a la siguiente:

raspbx-status-dongle
raspbx-status-dongle

Ahora ya tan solo nos restaría definir nuestras respectivas reglas de marcado en nuestros Dial Plan, para fines meramente didácticos les muestro parte de mi Dial Plan para sacar llamadas por nuestro “telular casero”:

dialplan-chan-dongle-asterisk
dialplan-chan-dongle-asterisk

Como podrán observar en la pantalla la parte importante es:

dial(Dongle/dongle0/${EXTEN})

Que básicamente la misma nos permite sacar llamadas por el modem 3G y así es como tenemos nuestro “telular casero” completamente funcional para ahorrar un poco en llamadas.

Si tienes alguna duda,  no fui claro en la explicación o te sale algún error desconocido. Por favor no dudes en colocar tus dudas en la sección de comentarios y con gusto te ayudare en lo que pueda 🙂


22 thoughts on “Implementar un telular con un modem 3G en asterisk a bajo costo

  1. Hola disculpa mi ignorancia, puedo hacer algo parecido para conectar una laptop con un punto de venta bancario y hacer que funcione? Me explico, tengo un punto de venta y no tengo línea telefónica, podría esto servirme para solucionar?

    GRACIAS

    1. @jm:

      Seria cuestion de que dieras mas detalles técnicos con respecto a que es lo que quieres hacer y con que es con lo que cuentas. De primer instancia si es lo que me imagino. Claro que se puede. 🙂

      Bytez!

  2. Hola, muchas gracias por responder:

    Voy a tratar de explicarme mejor. En mi trabajo poseemos terminales bancarios convencionales, de los que además de una fuente eléctrica, hay que conectarlos a la línea telefónica para que funcionen. El caso es que muchas veces tenemos que trabajar fuera y no siempre puedo contar con el terminal inalámbrico para poder cobrar. Vivo en Venezuela y los bancos no tienen puntos de venta, no hay telular ni $ ni comida ni nada. Viendo lo que haces, me preguntaba si puedo conectar un terminal bancario alámbrico convencional a mi laptop y usar la conección del modem gsm 3g con el que usualmente me conecto, para poder realizar cobros a través del terminal como si se tratara de uno inalámbrico, pero usando la laptop como sustituta de la línea telefónica que necesito en el caso de los terminales convencionales.

    Muchas gracias

    jm

    1. @jm

      Teoricamente hasta doonde alcanzo a ver, seria posible… Habria que analizar como es que funciona la terminal t en base a ello ver manera de emular la solución, seria fundamentalmente hacer prueba y error.

      Saludos!

    2. Buen dia amigo, mira estoy que hago eso q tu piensa hacer. compatir la internet del modem 3g al puerto lan ethernet de la lapto, pero tengo una duda si los datos de conexion de los puntos de ventas tienen ya predeterminado la direccion del servidor al cual hara la conexion con el banco.

  3. holaa amigo. muy interesante este truco.. Dime algo esto serviria igual para un punto de venta.? como se si mi modem realmente funciona para este fin amigo? es un huawei e1756 agradecido con tu respuesta

  4. Hola! no logro que se muestre el dongle0 (dongle show devices). Algun consejo o guia donde leer?
    Mi única intención es enviar mensajes de textos, pero aun no logro que asterisk me reconozca el modem… Desde ya muchas gracias!

    root@raspbx:/# lsusb
    Bus 001 Device 007: ID 12d1:1c05 Huawei Technologies Co., Ltd. E173s 3G broadband stick (modem on)
    Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
    Bus 001 Device 004: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
    Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. LAN9500 Ethernet 10/100 Adapter / SMSC9512/9514 Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    =========================================================================
    Connected to Asterisk 11.21.0 currently running on raspbx (pid = 1872)
    [2016-09-06 14:31:37] WARNING[3547]: at_response.c:390 at_response_error: [dongle0] Dongle has NO voice support

    raspbx*CLI> dongle show devices
    ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number
    dongle0 0 Not connec 0 0 0 NONE Unknown

    1. Welcome to RasPBX – Asterisk for Raspberry Pi

      root@raspbx:~# asterisk -vvvvvr

      =========================================================================
      Connected to Asterisk 11.21.0 currently running on raspbx (pid = 1872)
      — [dongle0] Trying to connect on /dev/ttyUSB2…
      — [dongle0] Dongle has connected, initializing…
      [2016-09-06 15:10:22] WARNING[4661]: at_response.c:390 at_response_error: [dongle0] Dongle has NO voice support
      — [dongle0] Error initializing Dongle
      — [dongle0] Dongle has disconnected

  5. Buen día amigo cuantos módem o lineas podría implementar o conectar a mis servidor asterix serian equivalentes a la cantidad de puertos USB o habría alguna limitante de sotfware

    1. @Fernando,

      Hasta donde yo tengo entendido es como mencionas; equivalente al número de puertos USB que tengas. Yo personalmente no he realizado la prueba, seria cuestión de que probaras y nos dijeras si tuviste algún problema.

      Bytez!

  6. Hola dexter hace como un año leí este tutorial tuyo y luego lo volví a buscar pero la pagina estaba caída, me parece interesante ya que en venezuela un telular con linea lo venden hoy 20 de diciembre de 2016 hasta en 1,000,000 de bolivares lo que es para un pequeño comerciante algo imposible, lo mas facil en cualquier país seria pedir una linea telefónica pero aquí es imposible… yo estuve pensando en la posibilidad de implementar este telular para un punto de venta con un pentium 4 que uso de servidor casero y un módem zte mf626 y hacer un tutorial y que la gente pudiese reproducirlo, pero para que te den el punto de venta debes hacer todo el papeleo esperar unos meses y tener una linea telefónica o ir al banco telular en mano para que te lo configuren, así que se me quitaron las ganas de hacer nada, aquí aplican la desesperanza aprendida como método de control, no voy a publicar mi nombre pero te dejo mi correo, saludos

  7. hola amigo segui el tutorial muchas gracias lo tengo montado en centos con asterisk puro todo perfecto puedo enviar y recibir llamadas soy de venezuela me gustaria saber si el amigo que tambien comento que es de aqui de venezuela pudo hacer algo con el punto de venta. ya que yo ya tengo montado el sistema pero me gustaria saber si funcionaria con el punto hasta donde tengo entendido hay que ponerle un chip con un numero fijo por ejemplo aca en venezuela para mi localidad es 0262 y actualemente en mercadolibre se consiguen esas lineas fijas seria cuestion de meterla en el modem yo estoy dispuesto a hacer ese gasto de comprar la linea pero aqui la situacion es muy dificil por ejemplo para que tenga una idea para comprar un telular tiene que reunir 12 sueldos minimos trabajar todo un a#o solo para comprar eso. si tienes alguna experiencia con el amigo que tambien se encuentra en la misma situacion que yo me gustaria saber si pudo lograr que funcione o algo parecido ya que estoy a la espera de que me llegue el punto pero eso se tarda muchísimo y si la linea no funciona no me dan el punto. . muy agradecido desde ya con usted amigo

    1. @Xavier Villalobos:

      Para saber si podemos hacerlo funcionar necesitamos que tengas fisicamente el POS, lo que ocurre es que en “teoria” no es posible ya que el POS ocupa un modem para su funcionamiento y el VOIP comprime los datos, esa es la teoria pero seria cuestion de probar. Espero tus comentarios.

      Bytez!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *