Datos personales

miércoles, 8 de diciembre de 2010

Ekiga, sipdroid y PBXes

PBXes es un sistema de centralita (PBX) virtual que nos permite, entre otras cosas, acceder a funcionalidades avanzadas desde nuestro cliente SIP.

En este artículo exploramos la utilización de PBXes como puente para hacer y recibir llamadas VoIP desde un teléfono Android. También veremos como conectar con usuarios que disponen de cuenta en Ekiga.

Escenario

  • Operador: Vodafone España
  • Teléfono: HTC Magic (Android 1.6)
  • Ekiga 2.0.12 sobre Debian Lenny

Crear y configurar cuenta en PBXes

En primer lugar, crearemos un usuario en http://www.pbxes.com.

A los efectos del ejemplo, nuestro usuario se llamará manolo y, al terminar el proceso de alta, recibiremos el identificador SIP manolo@pbxes.org.

Configurar una extensión

El siguiente paso consiste en crear un número de extensión dentro de nuestra cuenta. Esta extensión se asociará posteriormente con el teléfono móvil y también se usará como destino para las llamadas entrantes.

Escogemos "Internos->Añadir Interno" y seleccionamos "SIP". Sólo es necesario asignar un número de extensión, un texto identificativo de nuestra elección y una contraseña para acceder a la extensión.

Estos datos los usaremos después para configurar el cliente sipdroid en nuestro teléfono. A los efectos de nuestro ejemplo, el número interno será 100.

Configurar enlaces con el exterior

El siguiente paso es configurar un enlace "trunk" para poder hacer y recibir llamadas.

En nuestro caso vamos a configurar una conexión con ekiga.net, para lo cual escogeremos "Troncales -> Agregar troncal" y "Agregar troncal SIP; una vez ahí configuraremos de esta forma con nuestro usuario en Ekiga.net:


Establecer ruta para llamadas entrantes

Para poder recibir llamadas será necesario establecer una ruta DID. Se permite hacer enrutamiento en base a distintos parámetros: troncal por el que entra la llamada, identificador del usuario remoto, etc.

Por simplicidad, vamos a enrutar todas las llamadas entrantes  incondicionalmente a una extensión interna (la que luego asociaremos al teléfono).

Escogemos "Rutas DID -> Add Incoming Route" y configuramos de esta forma:


Instalar y configurar sipdroid

La instalación de sipdroid se lleva a cabo directamente desde Market.

Una vez instalada, configuraremos una cuenta SIP indicando los siguientes datos:
  • Authorization username: El identificador de usuario la extensión interna que queremos asociar al teléfono. Este identificador está compuesto por nuestro nombre de usuario en pbxes.com y el número de extensión (en nuestro caso, manolo-100).
  • Contraseña: La que hayamos asociado al identificador de la extensión.
  • Protocolos: WLAN y/o 3G

Probando la configuración

Desde nuestro cliente Ekiga, simplemente llamaremos empleando el identificador SIP que tenemos en PBXes (manolo@pbxes.org). La llamada se tiene que enrutar al número interno que configuramos en los pasos anteriores y, por lo tanto, será recibida en el terminal Android.

En el caso de sipdroid, no se puede llamar a identificadores SIP directamente desde el teclado telefónico de Android. Tendremos que agregar a un contacto una nueva dirección de chat. En nuestro caso, manolo@ekiga.net.

Una vez hecho esto, abriremos el contacto en cuestión y escogeremos "Chatear". Si todo funciona correctamente, la llamada entrará en Ekiga.

Conectar Ekiga a PBXes

Adicionalmente, podemos crear una segunda extensión y conectar Ekiga directamente a PBXes:


Con dos extensiones podemos jugar con las opciones de enrutamiento de llamadas entrantes para que, por ejemplo, las llamadas en horario laboral entren por Ekiga y el resto por el móvil.

Referencias

sábado, 27 de noviembre de 2010

Automatización de escritorio en Debian Lenny

Introducción


Para los que se pasan el día escribiendo "novelas" en el ordenador y echan de menos que su cliente de correo (por ejemplo) no disponga de un sistema de macros, resultará interesante la utilidad Autokey.

Autokey permite definir macros que se expanden de forma automática en cualquier aplicación de nuestro escritorio. Estas macros pueden consistir incluso en scripts Python.

NOTAS:
  • Los usuarios de Windows y Mac pueden usar Autohotkey o TextExpander, respectivamente.
  • Los autores de Autokey perecen recomendar IronAHK como un auténtico sustitudo de Autohotkey, pero al estar basado en .NET me parece demasiado pesado para lo que yo necesito.

Instalación en Debian Lenny

Dado que no existe paquete para Lenny, recompilaremos el paquete disponible para Squeeze.

Bajamos el paquete fuente desde http://packages.debian.org/source/squeeze/autokey, lo extraemos y entramos al subdirectorio generado durante este proceso:

$ dpkg-source -x autokey_0.71.0-1.dsc
$ cd autokey-0.71.0/

Editamos el fichero debian/control para sustituir las dependencias python > 2.6 por dependencias python > 2.5.

También se podría aprovechar para declarar la dependencia con los paquetes python-simplejson (sin el cual, la aplicación se instala, pero no se ejecuta) y python-xlib (necesario para instalar).

Compilamos el paquete y lo instalamos:

$ sudo aptitude install build-essential cdbs wmctrl python-simplejson python-xlib
$ cd autokey-0.71.0/
$ dpkg-buildpackage
$ cd ..
$ sudo dpkg -i autokey-common_0.71.0-1_all.deb
$ sudo dpkg -i autokey-gtk_0.71.0-1_all.deb

Una vez terminado el proceso, aparecerá la entrada correspondiente en el menú "Accesorios". Este es un pantallazo de la ventana principal de la aplicación:


La forma de configurarla es bastante intuitiva, por lo que no me voy a extender más. Los detalles están en el Wiki.

Referencias

viernes, 19 de noviembre de 2010

bash: autocompletado para clusterSSH

En esta entrada vimos como activar en bash el completado automático para el comando tsclient.

En el caso de la utilidad cssh, se trata de hacer lo mismo, pero usando este script:

_bash_completion_cssh()
{
        local cur prev opts
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"

        local clusters=$(grep clusters ~/.csshrc |  cut -d' ' -f '3-')
        COMPREPLY=($(compgen -W "${clusters}" -- ${cur}))
        return 0
}
complete -F _bash_completion_cssh cssh

Referencias

jueves, 4 de noviembre de 2010

bash: Autocompletado para tsclient

Utilizo habitualmente la utilidad tsclient para administrar sistemas windows y su interfaz no es demasiado cómoda a la hora de escoger alguna de las conexiones que ya tengo guardadas en el directorio ~/.tsclient

El siguiente script bash activará el autocompletado para el comando tsclient, de forma que, la primera pulsación del tabulador mostrará directamente la opción -x y la segunda listará las conexiones que tenemos disponibles dentro de ~/.tsclient.

_bash_completion_tsclient()
{
 local cur prev opts
 COMPREPLY=()
 cur="${COMP_WORDS[COMP_CWORD]}"
 prev="${COMP_WORDS[COMP_CWORD-1]}"

 opts="-x"

 case "${prev}" in
  -*)
    local conexiones=$(ls ~/.tsclient/*.rdp)
    COMPREPLY=($(compgen -W "${conexiones}" -- ${cur}))
    return 0;
    ;;
  *)
  ;;
 esac

 COMPREPLY=($(compgen -W "${opts}" -- ${cur}))  
 return 0
}
complete -F _bash_completion_tsclient tsclient

Para que los cambios sean permanentes, crearemos el fichero /etc/bash_completion.d/tsclient y reinicaremos nuestro shell.

Para probarlo inmediatamente en la sesión activa basta con ejecutar:

$. /etc/bash_completion.d/tsclient

En caso de problemas, lo primero que hay que comprobar es que el siguiente código está habilitado en ~/.bashrc o en /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

Para ver la lista de reglas que tenemos habilitadas en nuestra sesión ejecutaremos el comando complete -p

Referencias