HOWTO + Review: chan_mobile

Hace ya tiempo que escribí un howto para utilizar chan_cellphone con Asterisk, pero como comenté hace poco, ya no es necesario parchear nada, ya que el nuevo chan_mobile viene incluido en la rama trunk de asterisk-addons.

En este post voy a comentar la manera de realizar la instalación, así como los resultados de las pruebas realizadas y una sección TODO, en la que indicaré pruebas que me gustaría realizar.

HOWTO

Lo primero que tenemos que hacer es preparar nuestra máquina para funcionar con los dispositivos bluetooth. Para ello, añadiremos los siguientes repositorios a nuestro fichero /etc/apt/sources.list:

#bluetooth
deb http://bluez.sourceforge.net/download/debian/ ./
deb-src http://bluez.sourceforge.net/download/debian/
./

A continuación, instalamos los paquetes necesarios:

apt-get install bluetooth bluez-utils libbluetooth2 libbluetooth2-dev

Una vez tenemos los paquetes necesarios instalados, configuramos el subsistema bluetooth editando el fichero /etc/bluetooth/hci.conf, dejándolo así:

options {
autoinit yes;
security auto;
pairing multi;
passkey «1234»;
}
device {
name «asteriskpbx»;
class 0x000100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
}

Reiniciamos el subsistema bluetooth:

#/etc/init.d/bluetooth restart

Para más información acerca de este fichero, podéis preguntarle al señor man. 🙂

Ya tenemos el subsistema bluetooth listo, ya podemos comenzar a instalar Asterisk. El chan_mobile solo esta disponible en la versión trunk de asterisk-addons, por lo que realizaremos una instalación de Asterisk bajándolo del servidor SVN:

#cd /usr/src
#svn co http://svn.digium.com/svn/zaptel/trunk zaptel-trunk
#cd zaptel-trunk
#./configure
#make && make install


#cd ..
#svn co http://svn.digium.com/svn/asterisk/trunk asterisk-trunk
#cd asterisk-trunk
#./configure
#make && make install

#cd ..
#svn co http://svn.digium.com/svn/asterisk-addons/trunk asterisk-adons-trunk
#cd asterisk-addons-trunk
#./configure
#make menuselect

Aquí nos aseguramos de que chan_mobile esta marcado, y acontinuación ejecutamos:

#make && make install && make samples

Ya tenemos Asterisk listo, comencemos la configuración del chan_mobile!

Lo primero que necesitamos saber es la dirección MAC del adaptador bluetooth que hemos conectado a nuestro servidor, que podemos obtener ejecutando:

#hcitool dev

Obtendremos una salida como esta:

asterisk-debian:/etc/asterisk# hcitool dev
Devices:
hci0 00:02:72:C9:6E:33

Ahora editamos el fichero mobile.conf y añadimos una sección con la configuración de nuestro adaptador:

[adapter]
id=bluekosa
address=00:02:72:C9:6E:33

Ya tenemos el adaptador «bluekosa» conectado, ahora tenemos que localizar el móvil. Para ello arrancamos Asterisk y desde el CLI ejecutamos:

*CLI>mobile search

Del resultado de la búsqueda, anotamos la MAC del dispositivo y el puerto que utiliza. A continuación paramos Asterisk y editamos otra vez el fichero mobile.conf y añadimos la sección correspondiente al teléfono:

[n70]
address=00:17:4B:13:71:CC
port=1
context=incoming-mobile
adapter=bluekosa

Ahora ejecutamos el siguiente comando, de manera que nuestro servidor sea visible. Después lo emparejamos con nuestro móvil, utilizando la contraseña que indicamos en el fichero /etc/bluetooth/hci.conf (passkey).

dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable

Ya podemos arrancar Asterisk, y si todo ha ido bien, podremos ver algo parecido a esto:

scr1.jpg

Ya casi esta, solo nos queda configurar el dialplan para hacer y recibir llamadas con el móvil. Para recibir llamadas, creamos el contexto inoming-mobile que hemos especificado en el fichero mobile.conf, por ejemplo yo he realizado las pruebas así:

[incoming-mobile]
exten => s,1,Answer
exten => s,n,Playback(demo-congrats)
exten => s,n,Echo

De esta manera podemos comprobar tanto el envío como la recepción de audio. Para las llamadas salientes, podemos utilizar esta configuración:

exten => _0X.,1,Dial(Mobile/n70/${EXTEN:1})

Voila! Ya tenemos nuestro Asterisk con chan_mobile funcionando! 😀

Review

Las pruebas realizadas han sido sencillas, hacer y recibir llamadas con un softphone en un PC, a través del móvil que estaba encima de la mesa 🙂

Los resultados han sido muy buenos, la calidad era perfecta (he llamado a mi padre y ni se ha dado cuenta xD).

PERO PERO PERO, me he encontrado con una pequeña pega: al llamar a un teléfono fijo, no se detectaba el colgado. Esto al parecer es un pequeño bug, así que espero que se resuelva pronto. No obstante, las llamadas a móviles funcionan correctamente.

ToDo

Me hubiera gustado probar el envío y recepción de SMS, pero al hacer el scan con Asterisk, este me dice que no tengo esa posibilidad… no se si es por el adaptador o por el móvil, así que haré más pruebas…

También me hubiera gustado probar un manos libres bluetooth, y recibir con él llamadas, pero no tengo ninguno… A alguien le sobra uno? 🙂

Y hasta aquí hemos llegado, espero que os sirva y que disfrutéis tal y como yo lo he hecho haciendo pruebas y escribiendo estas líneas. Njoy! 😀

58 thoughts on “HOWTO + Review: chan_mobile

  1. Hola Lista..!
    Gracias por el aporte a la comunidad asterisk, quisiera hacer la misma pregunta que HaShaKo
    isnet*CLI> mobile search
    All Bluetooth adapters are in use at this time.

    cual fue la solucion a este problema..?? no tengo entorno grafico corriendo, quien me puede decir cuales posibles aplicaciones podrian estar utilizando el bluetooth si por defecto tengo instalado trixbox 2.6 con asterisk Asterisk 1.4.22-4.
    Saludos a todos y gracias por su aporte.!
    HAMS

  2. Hola Hector:

    Yo usé una Debian y no tuve problemas… no obstante, ha habido muchos cambios en chan_mobile, por lo que te recomendaría que lo probaras en un Asterisk 1.6 a ver…

  3. Hola, saghul gracias por tu howto, solo queria preguntar que hardware utilizaste.
    Lo que es yo, utilice un bluetooth corriente y un celular samsung y se escucha pesimo.
    Gracias

Deja un comentario

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