Habilitar modems USB para ser ocupados con Chan Dongle

BAM-modemUSB-chan_dongle

A lo largo de mi blog existen algunos artículos que tienen más consultas que otras, donde uno de los top es justamente mi artículo que habla sobre montar un telular en asterisk (si no sabes de que va puedes visitar el articulo), donde en su tiempo trate de documentarlo de la mejor manera para que, si se seguía al pie de la letra la persona que lo realizara no tuviera problema alguno.

Lo interesante, es que hace poco me contacto una persona que tenía demasiados problemas para poder implementar la función CHAN_DONGLE en asterisk, ya que según parece omití muchas situaciones que considere obvias, por eso escribo este post, para acortar cada vez más la estrecha línea entre darse de topes contra la pared y lograr tener un equipo asterisk listo para realizar llamadas a través de los modem USB – BAM (Banda Ancha Móvil).

BAM-modemUSB-chan_dongle
BAM-modemUSB-chan_dongle

Como muchos sabrán las compañías telefónicas brindan modems USB para poder conectarse a internet, recibir SMS e incluso poder ocuparse como medio de almacenamiento (con su respectiva microSD instalada). Tan solo basta en conectar el dispositivo a nuestra computadora para que la misma lo reconozca como una unidad de CR-ROM, donde una vez instalado el software para la conexión a internet NUNCA JAMAS se volverá a conectar de ese modo (CD-ROM), para todas las veces futuras se conectara en modo MODEM, brindándonos asi el acceso para poder navegar por internet con el chip de nuestra compañía telefónica.

Hasta ahora muy bonito, pero: ¿Qué pasa si conectas el MODEM USB al sistema Linux donde planeas hacer funcionar CHAN_DONGLE? Pues sí, en efecto adivinaron; no funcionara ya que el modem sera reconocido como un CD-ROM y nunca podremos ocuparlo como modem.

Afortunadamente para este tipo de situaciones “alguien más” trabajo en la solución y creo el proyecto USB_MODESWITCH que básicamente hace justo eso que necesitamos, hacer que nuestro dispositivo sea reconocido como un modem para que nosotros podamos ya sea: ocuparlo con nuestro CHAN_DONGLE o en su caso ocuparlo con nuestro amado minicom para poder ingresarle comandos AT para “configurarlo” a nuestro gusto y de paso deshabilitar la opción CD-ROM para siempre y garantizar así que SIEMPRE inicie como modem.

Ahora, una vez puesto todo en contexto procederemos a ejemplificar el problema y como es que se llega a la solución.

Partiremos de que actualmente tenemos una banda ancha móvil (BAM=ModemUSB) y que deseamos realizar la configuración del modem en nuestro amado sistema GNU/Linux, lo primero que haremos después de conectarlo sera ingresar el siguiente comando para ver cómo fue que nos lo reconoció:

lsusb

Como podemos observar nos lo reconoció como un:

Huawei Technologies Co., Ltd. Broadband stick (modem on)

chan_dongle_lsusb
chan_dongle_lsusb

Lo curioso e interesante es que en el sistema donde se inserto dicho modem (un ubuntu) el mismo fue reconocido como un CD-ROM y no hay manera de pasarlo a modo modem, prueba de ello a continuación:

mass-storage-USBDongle
mass-storage-USBDongle

Ahora es aquí donde el proyecto usb_modeswitch hace acto de aparición y nos ayuda a “convertir” nuestro CR-ROM en un modem, para ello si no lo tenemos instalado, en un sistema basado en Debian con gestor de paquetes dpkg lo instalaremos con el siguiente comando:

apt-get install usb-modeswitch

Lo cual nos instalara el software en nuestro equipo, lo siguiente sera generar el archivo de configuración para que nuestro modem sea reconocido por el sistema. Para ello nos dirigiremos a la siguiente página.

Como podremos observar en esa página se encuentran infinidad de modems enlistados, la pregunta sería: ¿Cómo encontrar la configuración que es válida para nuestro modem? En mi caso es un modem Huawei E153. Si son observadores verán que a la salida del comando lsusb nos brindó un ID 12d1:1446 esa sera justo el ID que buscaremos en la página anterior donde la configuración válida para mi modem es:

# Huawei E1550
# Huawei E1750
#
# Contributor: Anders Blomdell, Ahmed Soliman

DefaultVendor= 0x12d1
DefaultProduct= 0x1446

TargetVendor= 0x12d1
TargetProduct= 0x1001

MessageContent=”55534243123456780000000000000011060000000000000000000000000000″

Dice que dicha configuración es válida para un modem E1550 y para un E1750, eso no importa ya que el ID Vendor y el IDProduct es el mismo, por lo cual nos funcionara sin problemas.

Tan solo nos restara copiar el contenido del archivo en: /etc/usb_modeswitch.d/e153 , ese directorio no es obligatorio y yolo emplee para mantener el “orden” en mi equipo.

Posteriormente ejecutaremos el siguiente comando:

usb_modeswitch -c /etc/usb_modeswitch.d/e153

Con esto ya tendremos listo nuestro modem para ser utilizado como MODEM y en teoría con esto deberíamos poder ocuparlo sin problemas para realizar llamadas con nuestro CHAN_DONGLE (si no sabes a qué me refiero, lee el artículo que menciono al principio del articulo).

usb_modeswitch-chan_dongle
usb_modeswitch-chan_dongle

Ahora tan solo nos restara deshabilitar la función de CD-ROM para SIEMPRE y dejar la función solo modem habilitada, para ello nos auxiliaremos de minicom:

minicom -c on -D /dev/ttyUSB5

Y después ingresaremos este comando AT:

AT^U2DIAG=0

Con esto nuestro modem para las próximas veces que sea ocupado, independientemente de la computadora donde sea conectado se conectara solo como modem 🙂 .

Si tienes dudas o comentarios o simplemente tu proyecto no funciona, con gusto te puedes poner en contacto conmigo en la sección de contacto.