miércoles, 28 de noviembre de 2007

Conectando dos Asterisk con IAX2

Hola a tod@s,

Una nueva entrada sobre cómo configurar un enlace troncal IAX entre dos servidores Asterisk. Para probar esto vamos a configurar dos servidores Asterisk. Una vez configurado haremos que todos los números que empiecen con un determinado prefijo los encaminaremos por este nuevo enlace IAX2.

El primer servidor, donde está conectado el usuario Alice, lo denominaremos "alice_server", el segundo, donde está conectado Bob, lo denominaremos "bob_server". Aplicaremos la configuraciones sobre "alice_server" y la configuración de "bob_server" será análoga. Para el enrutamiento de las llamadas, en "alice_server" estableceremos que todas las llamadas que comiencen por "3" seguidas por dos dígitos (3XX) sean enviadas a "bob_server". Por ejemplo, la extensión de Bob en "bob_server" será, por ejemplo, 301.

Lo primero que vamos a hacer es crear el nuevo enlace (Trunk) para conectar los servidores. Accederemos, en "alice_server" FreePBX, al menú Trunk y pulsaremos "Add IAX2 Trunk". Además de indicar campos como un nombre ("to_bob_server"), indicar el llamante que verá el usuario llamado (Outbound Caller ID) o el número máximo de canales permitido sobre este enlace, se pueden identificar las reglas para tratar las llamadas salientes (Dial Rules), por ejemplo añadir o eliminar prefijos al número. En esta primera entrada dejaremos este campo vacío.

Lo importante aquí es establecer el tipo de servidor IAX, y el nombre de usuario y contraseña del propio servidor y el del otro extremo. Estas propiedades serán utilizadas para la autenticación mutua entre los servidores.

En el campo "Outgoing Settings" hay que indicar las propiedades del servidor IAX que hay al otro extremo ("bob_server"), por ejemplo:

host=XX.XX.XX.XX
secret=bob_server_pw
type=friend
username=bob_server

Aquí se indica que el otro extremo puede enviar y recibir llamadas ("friend"), su dirección IP ("XX.XX.XX.XX"), el nombre de usuario y la contraseña de acceso en el otro extremo ("bob_server/bob_server_pw")

En la campo "User Context" de "Incoming Settings" indicaremos el nombre de nuestro usuario, por ejemplo "alice_server" y en el campo detalles algo parecido a esto:

context=from-trunk
secret=alice_server_pw
type=friend



El contexto por defecto es "from-trunk" y el password para el usuario local es "alice_server_pw". El servidor local también puede enviar y recibir llamadas ("friend").

Una vez configurado el enlace, el último paso es crear una ruta saliente (Outbound Routes) para indicar que todas las llamadas dirigidas a números del tipo 3XX se encaminarán por el nuevo enlace creado.

Indicaremos un nombre de ruta (Route Name) y, opcionalmente, un password que el sistema pedirá al usuario llamante en el caso de que se aplique esa ruta saliente. De momento, las únicas opciones que vamos a tocar son Dial Patterns y Trunk Sequence.

En el primero pondremos algo como esto: "0|3XX", indicando que el patrón de llamadas a las que se les aplicará esta ruta será un 3 seguido de dos números enteros. En el segundo seleccionaremos el nuevo enlace creado "IAX2/to_bob_server".

Una vez aplicados todos los cambios, Alice y Bob podrán establecer una llamada a través del nuevo enlace troncal.

Eso es todo, espero que os sea útil.

Un saludo, Alice

sábado, 24 de noviembre de 2007

Web-Meetme

Hola,

Hoy una entrada dedicada a Web-Meetme, la aplicación para permitir a los usuario crear conferencias de audio a través del interfaz web.

Antes de nada recordar la versiones con las que estamos trabajando:
TrixBox 2.2.5
FreePBX 2.3
Asterisk 1.4

Toda, que no mucha, la información relacionada con Web-Meetme está en /var/www/html/web-meetme/trixbox-files/README

La idea de Web-Meetme es definir una extensión genérica, que será la que tendrán que marcar los usuarios, para, a continuación, introducir el número de la conferencia a la cual quieren conectarse.

Desde el entorno web, lo más directo es entrar en FreePBX y desde aquí creamos una ruta entrante (Inbound Routes). Pulsamos "Add Incoming Route", damos una descripción a la nueva entrada y un número a la extensión genérica para las conferencias, por ejemplo, 269.

A continuación nos vamos al final de la página y en "Set Destination" seleccionamos la opción "Custom App", en la caja de texto hay que introducir: "custom-meetme3,s,1". Ojo con el "3", que en alguna documentación no aparece.

Si aceptamos (Submit) la entrada y vamos a la opción "Feature Codes", podremos ver que automáticamente se ha añadido una entrada en "Misc Applications" para la nueva extensión.

Bien, hasta aquí la parte del servidor, ahora toca el cliente.

Los usuarios que pueden crear conferencias tienen que estar registrados además en Web-Meetme, y tiene que darlos de alta el administrador (usuario/contraseña = wmm@localhost/wmmpwd). Indicaciones sobre cómo cambiar la contraseña por defecto del usuario administrador (wmm@localhot/wmmpwd) la podéis encontrar en la última entrada de este blog.

Crear usuario es muy sencillo, basta con dar una dirección de correo y un password. Por defecto hay un usuario pre-configurado: tim@localhost/1234, usaremos éste.

Bien, si entramos con el usuario tim e intentamos añadir una nueva conferencia nos pedirá los siguientes datos:

  • Conference Name: sobran las palabras.
  • Conference Owner: es un identificador interno del usuario que crea la conferencia, se puede poner lo que se quiera.
  • Conference Number: número de la conferencia, será el que tengan que marcar los usuarios tras llamar la extensión 269 para entrar en la conferencia.
  • Moderator PIN: PIN de acceso para el moderador.
  • Moderator Options: Announce indica la entrada en la conferencia del moderador, Record es bastante descriptivo ....
  • User PIN: PIN de acceso para los usuarios.
  • User Options: se puede indicar que se anuncie su entrada, que sólo pueda recibir el audio o que tenga que esperar a que el moderador esté conectado.
  • Start Time: tiempo de comienzo de la conferencia.
  • Duration: pues eso...
  • Recurs: programación de repeticiones periódicas de la conferencia (por ejemplo, semanalmente)
  • Max Participants: bastante claro también ....

A continuación puedes indicar usuarios a los que el sistema enviará un email de invitación a al conferencia. El contenido del mensaje es el que aparece al pulsar "Add Conference". Ojo, que algunos campos están sin actualizar.

Un enlace a un manual de usuario (inglés) lo podéis encontrar aquí

Una vez creada la conferencia ya podemos probarlo. Para ello nos conectamos a través de un usuario SIP, marcamos el 269, a continuación la recepcionista digital nos dice que introduzcamos el número de la conferencia (Conference Number), y a continuación el User PIN. Nos pedirá además que grabemos nuestro nombre, que será anunciado al resto de los miembros de la conferencia cuando se conecte.

Bueno, eso es todo por hoy.

Hasta la próxima, Alice.