Esta sección está abierta a discusión. Puede no estar actualizada respecto al desarrollo de libsebi y hace referencia a una tecnología no presente en la rama principal de asterisk-es-rsp

CHANNEL SEBI

Descripción

Resumen

Ese modulo/canal sirve para trasformar los modems USB con conexión GSM para conectarse a internet
para usarlos como gateway GSM/SMS.

Características

Chan_sebi adapta nuestro módem USB para ser usado tanto para recibir como para realizar llamadas
y mensajes de texto SMS en nuestro servidor asterisk.

En principio se ha hecho pensando en los E169/K3520 de Huawei, modems estos que tienen capacidades
de llamada de voz. Internamente utilizan un chipset de Qualcomm (de la serie MSM7200). Con un modem
usb de estos modelos tenemos un gateway de voz que además no tiene que hacer conversiones de audio
como las que se hacen con un FXO analogico ni los problemas de señalización inherentes a los canales
analógicos, ya que toda la gestión de audio y de señalización se hace de forma digital (bien a
través del canal de audio, bien a través del canal de datos), pudiendo ser comparado a un router
RDSI⇒GSM de un puerto.

Advertencia

Chan_sebi está en actualmente en fase de desarrollo.

Todas las versiones de los parches son “release-candidate” por lo que no son recomendadas para
sistemas en producción.

Instalación

Preparación del sistema

Devices soportados

  • Módems huawei
    • k3520
    • e169

IMPORTANTE:
No todos los firmwares tienen soporte de voz activado. Con lo que puede que las llamadas no funcionen. Los firmwares posibles:

Paquetes necesarios

NOTA: Recomendamos la instalación directa por SVN para no tener que aplicar los parches.

Instrucciones instalación

Directamente desde el svn de asterisk-es-rsp en el branch beta testing de Odicha:

 team/Odicha/unestable/asterisk-addons-1.4.9
 team/Odicha/unestable/chan_sebi

Obtendremos las versiones ya parcheadas de asterisk-addons:

[root@asterisk-es-rsp ~]# svn checkout http://asterisk-es-rsp.irontec.com/svn/asterisk-es-rsp/team/Odicha/unestable/asterisk-addons-1.4.9 addons-sebi

Esto nos creará una carpeta addons-sebi con la siguiente estructura:

      addons-sebi

Instalación Libpri/Dahdi/Asterisk

Para poder utilizar chan_sebi es necesaria la instalación de asterisk, dahdi-linux, dahdi-tools y librpi. Nosotros recomendamos hacerlo directamente mediante la instalación completa de instalacion asterisk-es-rsp.

Una vez instalado seguimos con asterisk-addons:

[root@asterisk-es-rsp ~]# cd ../addons-sebi
[root@asterisk-es-rsp ~]# ./configure
[root@asterisk-es-rsp ~]# make menuselect; make clean && make && make install
[root@asterisk-es-rsp ~]# make config

Es importante pasa por el make menuselect y seleccionar chan_sebi, ya que este viene desactivado por defecto.

Permisos

Los puertos ttyUSBx que se crean al conectar el modem tienen que tener permiso de lectura y escritura para el usuario que ejecuta Asterisk, si no es así no será posible que Asterisk se comunique con el modem. Si no se ejecuta asterisk como root lo mejor es agregar el usuario que corre asterisk al grupo propietario de los puertos que en funcion de distros y kernels puede variar (en Fedora es uucp, por ej.). Algo como esto por ej.

[root@asterisk-es-rsp ~]# chmod 660 /dev/ttyUSB*
[root@asterisk-es-rsp ~]# chown asterisk:uucp /dev/ttyUSB*
[root@asterisk-es-rsp ~]# echo 'KERNEL=="ttyUSB[0-9*]", MODE="0660", OWNER="asterisk", GROUP="uucp"'  >>  /etc/udev/rules.d/92-sebi.rules

Configuración del Sistema

Configuración sebi.conf

Si hicimos un make samples al instalar asterisk-addons ya tendremos un fichero sebi.conf que tendremos que adaptar.

    [huawei1]
    imei=35XXXXXXXXXXX  ; imei of modem
    ;pin=1234   ; pin (use only if sim card has pin request enabled)
    csca=+34607003110  ; SMS centre number (Vodafone ES – example)
    sms=yes    ; Enable sms send/receive
    voice=yes   ; Enable voice for calls
    context=from-pstn  ; dialplan context for incoming calls
    group=1    ; this phone is in channel group 1
    volume=5   ; Modem Volume (1-5)
    language=es   ; Channel language
    ;nocallsetup=yes  ; set this only if you want override call status notifications

El campo imei del canal es el que combina la información de configuración del módem con el equipo físico. No olviden que el numero de puerto ttyUSB depende del orden en que se cargan o de la cantidad de dispositivos usb que están conectados en cada momento. Los demás campos de configuración creo que están claros, prácticamente se describen solos. Es interesante hacer notar que el nombre del canal lo asignamos nosotros libremente en el identificador de sección (en el ejemplo [huawei1])

Generación de sebi_devices.conf

Si lo instalamos y arrancamos, si tenemos todo correcto, el canal analizará los dispositivos usb que tenemos conectados y generará un fichero /etc/asterisk/sebi_devices.conf que contendrá algo similar a esto:

    [2-1]
    data = /dev/ttyUSB2
    voice = /dev/ttyUSB1
    imei = 35413702XXXXXXX

Enviar y recibir SMS

Para enviar y recibir sms, usaremos convenciones muy similares a las de chan_mobile. Para recibir un sms y guardarlo en la base de datos tendremos las instruccciones correspondientes en el dialplan (por cierto, solo procesa sms recibidos mientras está activo, por el momento)

    [from-pstn]
    exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
    exten => sms,n,Set(DB(SMS/${SMSSRC})=${SMSTXT})      
    exten => sms,n,Hangup

Para enviar un sms desde el CLI:

[root@asterisk-es-rsp ~]# originate sip/109 application SebiSendSMS huawei1|647324xxx|”texto de prueba del sms”

Troubleshooting

Asegurar una correcta detección por el Kernel

Añadimos la siguiente regla udev para que el Kernel nos coja correctamente el dispositivo (en este caso el K3520). Esto debería funcionar para todos los kernels.

/etc/udev/rules.d/99-huawei.rules:

# k3520
SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001", RUN+="/bin/mknod /dev/ttyUSB0 c 188 0", GROUP="dialout"
SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001", RUN+="/bin/mknod /dev/ttyUSB1 c 188 1", GROUP="dialout"
SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001", RUN+="/bin/mknod /dev/ttyUSB2 c 188 2", GROUP="dialout"
SUBSYSTEM=="block", ACTION=="add", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001", OPTIONS="ignore_device"
SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001", RUN+="/sbin/modprobe -q usbserial vendor=0x12d1 product=0x1001"

Kernel inferior a 2.6.20

  El S.O. debe ser capaz de montar los subid 00, 01 y 02 del modem huawei como usbTTYx. Los kernels antiguos (por debajo de 2.6.20 generalmente)
  no son capaces de hacerlo automaticamente por lo que habrá que modificar algunas cosas para que se detecten de la forma adecuada y sean cargados 
  por usbserial. Normalmente es suficiente con /sbin/modprobe usbserial vendor=0×12d1 product=0×1003  o bien /sbin/modprobe usbserial vendor=0×12d1 
  product=0×1001 dependiendo de si el modem es 1001 (169,k3520,e270,etc…) o es 1003 (e220…). A veces también entran en conflicto con el driver de
  option resolviendose añadiendo al blacklist el modulo ”option”. Si aun asi sigue intentando cargar puede intentar resolverse eliminando el fichero 
  option.ko y ejecutando un depmod después.
  

Envio massivo de SMS

 Podría chan_sebi utilizarse para el envio massivo de SMS?
 Chan_sebi está pensado para dar solución a uno o dos dispositivos módem USB. Por lo tanto no es adecuado para el envio massivo de SMS.
 Más de 6 u 8 aparatos se sale del ámbito para el que esta pensado eso.
 Para más te recomendaríamos un banco GSM profesional.
 
canales/chan_sebi.txt · Última modificación: 2010/04/26 07:59 por manwe
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki