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.


miércoles, 21 de noviembre de 2007

Contraseñas en Trixbox

Hola,

La entrada de hoy va dedicada a la gestión de contraseñas en Trixbox y la creación de perfiles de administración para FreePBX.

Cuando instalamos Trixbox, todos los servicios quedan configurados con los usuarios y contraseñas de administración por defecto, como es lógico, si queremos proteger nuestro sistema deberemos cambiar estas contraseñas. En Trixbox hay bastantes contraseñas, y no es precisamente muy intuitiva su gestión. Vamos a intentar resumirlo en pocas palabras:

La primera y más importante contraseña a cambiar es la de administración (maint) del Trixbox. Cuando accedemos a la web principal y cambiamos a modo "admin", nos pide los datos del usuario administrador, que por defecto son: "maint"/"password".

Para cambiar esta contraseña tenéis que entrar como usuario root al sistema, por ejemplo, mediante SSH, y ejecutar el comando: "[..]#passwd-maint".

Sobre cómo cambiar además el nombre del usuario administrador para que sea distinto a "maint" hay una discusión aquí, pero mejor eso para cuando seamos mayores.

El segundo password que vamos a cambiar es del usuario administrador de FreePBX. Por defecto, una vez entrado como administrador del TrixBox, no nos pedirá el password de administrador de FreePBX, porque está tomando el password por defecto: "admin"/"amp111".

Para cambiar este password hay que tocar el fichero /etc/asterisk/manager.conf y en la entrada para el usuario [admin] cambiar el password al valor que queramos.

Una buena opción que da FreePBX es la gestión de perfiles de usuarios para distintos administradores. Por ejemplo, si distribuyes esta aplicación y la vendes como un paquete cerrado sólo tú como administrador tendrás el poder de cambiar cualquier valor de configuración para dejar el sistema listo para tu cliente. Sin embargo, a tu cliente puedes darle la opción de que él mismo pueda dar de alta extensiones, crear audioconferencias, etc, sin necesidad de que te moleste.

Para probar cómo funciona esto vamos a crear dos perfiles, uno el del administrador actual ("admin"), que tiene visibilidad de todo el sistema y otro que solo pueda acceder a la extensiones y a crear conferencias ("adminCliente").

Para ello tenemos que decirle primero que la información de los usuario la tome de la base de datos, para ello tenemos que modificar en el fichero /etc/amportal.conf la variable AUTHTYPE=database. En segundo lugar hay que modificar el fichero /etc/trixbox/httpconf/trixbox.conf y comentar las entradas correspondientes al usuario "admin". Debería quedar algo parecido a esto:

[trixbox1.local httpdconf]# cat trixbox.conf
#Password protect /var/www/html/admin
#

#AuthType Basic

#AuthName "Restricted Area"

#AuthUserFile /usr/local/apache/passwd/wwwpasswd
#Require user wwwadmin maint
#

#Password protect /var/www/html/maint
AuthType Basic
AuthName "Restricted Area"

AuthUserFile /usr/local/apache/passwd/wwwpasswd
Require user maint


Una vez modificado esto hay que reiniciar tanto FreePBX ([..]#amportal restart) y el httpd ([..]#/etc/init.d/httpd restart). Ahora ya desde el web, en el menú "Administrator" de FreePBX podemos dar de alta los usuarios que queramos.

Para ello basta introducir un nombre de usuario ("adminCliente") y password (que ahora se almacenará en la base de datos mysql) y seleccionar en "Admin Access" las opciones del menú que queremos que ese usuario pueda gestionar. Utilizando la tecla de control seleccionaremos "Extensions" y "Conferences".

Lógicamente a tu cliente "adminCliente" tendrás que decirle que para acceder a la gestión de esas opciones debe acceder a la URL http://[IP del servidor]/admin

Ojo ¡ No borres nunca el usuario "admin", será bastante complicado volver a tener el control del sistema.

El tercer password que podemos cambiar es de la base de datos mysql. Para ello entramos como usuario root mediante SSH y cambiamos el password del usuario por defecto (asteriskuser):

mysqladmin -u asteriskuser -p password xxxxx
(introducir password actual)


A continuación hay que modificar los siguientes ficheros:
(Importante: haced las modificaciones desde la conexión SSH, a través del web os dará problemas de permisos)

En /etc/amportal.conf:

AMPDBUSER=asteriskuser
AMPDBPASS=xxxxx

En /etc/asterisk/cdr_mysql.conf:

password=xxxxx
user=asteriskuser

En /etc/asterisk/res_mysql.conf:

dbuser = asteriskuser
dbpass = xxxxx

Una descripción (en inglés) más detallada de este paso la podéis encontrar aquí.

Finalmente vamos a ver cómo se cambian los password para las aplicaciones cliente Web-Meetme y ARI.

Estas aplicaciones son las que ve el cliente cuando se conecta a URL de nuestro servidor TrixBox. Para el caso del Web-Meetme, el usuario y password por defecto son "wmm@localhost"/"wmmpw".

El password para el usuario administrador del Web-Meetme (aquel que puede dar de alta nuevos usuarios), está en el fichero /var/www/html/web-meetme/trixbox-files/meetme.sql.

La única manera que he encontrado para modificar este password, una vez instalado, es acceder a la base de datos "meetme" como usuario root:

mysql meetme -u root -p

(el password por defecto para el usuario root en mysql es "passwr0d" (ojo que la "o" es un cero))

e introducimos el comando:

mysql> update user set password='xxxxx' where email='wmm@localhost';

y listo.

Nota: realmente aún no se para qué sirve el comando "[..]#passwd-meetme" y por tanto el usuario "meetme". Comentarios son bienvenidos :)

Dejaremos para otro momento cómo configurar Asterisk para que funcione Web-Meetme, para no desviarnos del tema de los passwords.

En el caso de ARI (o Voicemail and Recordings) hay que introducir como nombre de usuario la extensión asignada a dicho usuario (por ejemplo 200) y como contraseña, el password para voicemail configurado para dicha extensión, como se describió en la entrada anterior.


Espero que os sea de utilidad.

Un saludo, Alice.


domingo, 18 de noviembre de 2007

Voicemail / Buzón de voz

Hola,

Una entrada sencilla para hoy: cómo hacer uso del buzón de voz.

Para hacer uso del buzón de voz para una extensión es necesario primero habilitar esta propiedad para cada una de las extensiones.
Para habilitar esta características hay que acceder a las propiedades de la extensión correspondiente y al final aparece "Voicemail & Directory". Las opciones importantes son:

  • Status: Enabled
  • Voicemail Password: [password]
  • Email address: dirección@del.usuario
Tras aceptar y guardar los cambios, el usuario podrá acceder a su buzón de voz de dos maneras:

La primera opción es marcando el *97 (opción por defecto en Feature Codes). Desde éste número podremos acceder a todas las opciones de nuestro buzón de voz.

La segunda opción es a través del web. Cuando accedemos a http://[IP del servidor] accedemos al modo usuario y entre las opciones que nos aparecen tenemos "Voicemail and Recordings". Para acceder tendremos que introducir como nombre de usuario la extensión del teléfono establecida para el usuario, y como contraseña, la indica en Voicemail Password.

Desde esta pantalla podemos gestionar todos nuestros mensajes de voz:
  • eliminarlos
  • moverlos a diferentes carpetas
  • ver el registro de llamadas para esa extensión
  • activar el desvío de llamadas (siempre, si no disponible o si ocupado)
  • ver los códigos de marcación especiales definidos por la centralita
  • cambiar la contraseña
  • cambiar propiedades del registro de llamadas (grabaciones entrantes y salientes)
  • etc.
Para terminar, un enlace con información sobre cómo configurar el buzón de voz directamente desde los ficheros de configuración de Asterisk.

Bueno, es todo por hoy.
Hasta la próxima entrada.

Un saludo, Alice








sábado, 17 de noviembre de 2007

Primer paso

Hola,

La primera entrada sobre este blog trata sobre cómo instalar TrixBox y crear dos extensiones para poder realizar llamadas entre dos softphones.
Esto es lo primero que uno intenta hacer cuando instala una centralita VoIP como es Trixbox, los pasos serán los mínimos para que este escenario funcione y ya se analizarán opciones más avanzadas en diferentes capítulos.

La primera vez que se me pasó por la cabeza probar esto de Asterisk lo primero que hice fue descargarme directamente el código fuente de la distribución de Asterisk (http://www.asterisk.org/), pero luego, a poco que buscas, encuentras que hay ya entornos basados en web que te ayudan a la configuración de esta herramienta. Entre las más destacadas están Trixbox (www.trixbox.org) y AsteriskNOW (http://www.asterisknow.org/).

El siguiente paso es cual de las dos elegir, haciendo una búsqueda rápida por la vez aparece muchas discusiones en foros y listas de correo sobre si una es mejor que la otra y algún artículo reciente sobre temas más sobre la competencia entre Digium y Fonality. Por lo que he podido deducir, a día de hoy, TrixBox parece estar algo más maduro que AsteriskNow, aunque dado que de detrás de éste último está la propia gente de Digium/Asterisk, no tardarán mucho en ponerse a la par.

Yo directamente me he decido por TrixBox, aunque espero poder añadir en próximas entregas experiencias sobre AsteriskNow. Esto es como todo, no importa lo que te digan, lo mejor es que lo pruebes tu mismo.

Bien, vayamos al grano, lo primero para montar el escenario más simple posible es descargarse de la web de TrixBox la imagen .iso con la última versión (2.2.5). Ten en cuenta que TrixBox es una distribución completa que contiene el sistema operativo (CentOS 5), el gestor web para asterisk (FreePBX 2.3) y el propio Asterisk (1.4). Todo esto gestionado a través del propio interfaz web de TrixBox.

Una vez descargado, creado el CD correspondiente, sobre una máquina "limpia" realizas la instalación (ojito que se formateará y perderás todo lo que tenga). Como en este caso, para la prueba, no tenemos tarjeta para telefonía analógica, la instalación no requiere ningún paso especial.


Una vez que está todo instalado correctamente podemos acceder a la interfaz de gestión del TrixBox accediendo por web a la dirección http://[IP del servidor]/, o desde el propio servidor con http://127.0.0.1 .

Por defecto el interfaz que aparece es que vería un usuario del servicio de VoIP y en próximas entradas veremos cómo funciona cada uno de los servicios que se ofrecen al usuario. Para acceder al modo administrador clickamos en el enlace correspondiente. A continuación nos pide el nombre de usuario administrador (maint) y la contraseña (password). La gestión los passwords en TrixBox no es sencilla y la discutiremos próximamente.

Una vez que hemos accedido nos aparece una interfaz web de gestión completa del servidor, incluso de la instalación de paquetes, lo que está realmente bien. Pero no nos desviemos que todo se verá en su momento.

En la pestaña "Asterisk", la primera entrada es "FreePBX", accedemos a esta opción. El password para el FreePBX es distinto, pero como está preconfigurado por defecto, de momento no nos lo pedirá. A continuación nos aparece la interfaz web para la gestión de Asterisk con todas las opciones disponibles en el menú de la izquierda. Dejaremos para otro día la instalación de nuevas y muy útiles extensiones que ofrece FreePBX y la creación de distintos usuarios administradores mediante perfiles, lo cual es muy útil si queremos que otros usuarios gestionen por si solos algunas opciones de configuración, por ejemplo, añadir extensiones, o crear conferencias de voz.

Bien, ya para terminar crearemos un par de extensiones y configuraremos dos clientes distintos softphone para cada una de las extensiones.

En el menú de extensiones seleccionamos como tipo de dispositivo "Generic SIP device", clickamos submit y rellenaremos, por ahora, los siguientes campos:

User Extensión: 200
Display Name: Alice
secret: xxxxx
(aseguraos que la opción "nat" está a "yes" si vais a probar los clientes desde casa y con vuestra conexión ADLS)

De momento con esto es suficiente para una extensión, repetimos el mismo paso para el usuaro Bob con extensión 201. Una vez grabados los cambios recuerda aplicar los cambios en la configuración de Asterisk "Apply Configuration Changes"

Bien, ahora toca configurar los clientes. En este caso he elegido dos aplicaciones softphone para Window$ (en cuanto pueda probaré alguno para Linux)

El primero es X-Lite (no entraré a valoras lo bueno o malo de cada uno, simplemente, de momento, que funcione). Una vez instalado, la configuración es muy sencilla, tal y como aparece en la imagen



Una vez configurado el cliente ya está "Ready" para realizar llamadas.

El segundo cliente as SJPhone. Para configurarlo, en el menú de Options-->Profiles creamos un nuevo perfil para nuestra configuración SIP. Al crear el perfil, el tipo será "Calls through SIP Proxy". Lo importante de configurar ahora es en la pestaña "SIP Proxy", ver imagen:



En la pestaña de Profile Options indicáis el nombre del usuario "Alice" y ya está configurado. Al intentar registrarse con el proxy os pedirá la contraseña de Alice.

Con estoy ahora mismo sólo pueden llamarse Alice y Bob, pero bueno, por algún sito hay que empezar.

Bien, pues es todo por hoy, espero que os sea de utilidad.

Un saludo, Alice.




Hola,

Bienvenidos a este blog sobre Asterisk y sobre VoIP.

Tras jugar un poco con la nueva versión de TrixBox me he dado cuenta de que realmente no hay mucha información en español sobre este tipo de plataformas, y la información que hay está muy dispersa y no del todo actualizada.

Mi idea sobre este blog es contar mi experiencia en el uso de Trixbox, los pasos que voy haciendo, los problemas que voy encontrando y las soluciones (si aparecen) que he aplicado.

Espero que os guste y que os sea de utilidad.

Un saludo.