1

Ya tengo instalado Elastix v1.1 y ahora qué?¿

GUIA PARA LA PUESTA A PUNTO DE ELASTIX

Contenido:

1. Configuración de IP y otras minucias del sistema.

2. Configuración básica y creación de Extensiones.

3. Creación de IVR, Condiciones de Tiempo, y más.

4. Configuración de SPA3102 como línea PSTN de entrada y salida.

5. Creación de Servidor de FAX y prueba del mismo.

6. Configuración de Festival + Voces en Español.

7. Anexo I – Configuración de algunos accesos y wakeup.

1. Configuración de IP y otras minucias del sistema.

Una vez que tenemos instalado Elastix en el equipo y hacemos login, nos indica la IP que ha obtenido por DHCP. Necesitamos que esa IP sea fija/estática en todo momento.
Para ello nos vamos al Panel de Elastix, en mi caso http://192.168.2.42, hacemos login (usuario: admin password: palosanto) y nos dirigimos a Sistema – Red: Hacemos click sobre el dispositivo de Red, en mi caso “Ethernet 0”, lo ponemos en “Static” y ponemos una IP que nos interese, en mi caso 192.168.2.220

A partir de este momento tendremos que volver a entrar a través de http://192.168.2.220

Ahora nos dirigimos a Sistema – Preferencias – Idioma: Español y Fecha/Hora: lo configuramos correctamente todo.

2. Configuración básica y creación de Extensiones.

Ahora entramos en PBX que es donde se realizan todos los procesos relacionados con la telefonía IP. Supondremos que tenemos varios teléfonos, ya sean IP o softphones.

Lo primero es acudir a “Configuración General” y modificar los parámetros de “International Settings” y aplicamos cambios.

Nos vamos a “Extensiones” y agregamos las extensiones que necesitemos, en mi caso 6 que las he numerado como, 101, 102, 103, 104, 105, 106. Para añadirlas simplemente hacemos click sobre “Add Extension”, Device: Generic SIP Device y Submit.
La información que nos interesa rellenar es:
User Extension: 101 (es el número de extensión)
Display Name: Recepcion (el nombre que queramos ponerle a la extensión)
secret: ***** (es la clave preferiblemente numérica para poder configurar luego los teléfonos)
en mi caso Habilito Voice Mail: Status “Enabled” y le pongo de password: **** (clave para poder acceder al VoiceMail -buzón de voz- de esta cuenta.

Procederemos de la misma forma para crear el resto de extensiones.

– Llegados a este punto, tan sólo tenemos que configurar en los teléfonos IP nuestro HOST: 192.168.2.220, usuario: 110 y password: ***** y deberían de hacer login en el sistema.

Una vez hecho login, las extensiones son funcionales a nivel internet y marcando los números deberíamos de poder hablar una con otra. :D

3. Creación de IVR, Condiciones de Tiempo, y más.

Para la creación del Menu se podría hacer de la forma lógica y explicativa e ir creando opciones y luego tener que volver para cambiarlas conforme se va avanzando o bien del tirón. En mi caso lo voy a explicar del tirón:

3.1. System Recordings / Grabaciones del Sistema

Supondremos que queremos que la centralita esté recepcionada por voz. Para ello he grabado varias locuciones:

“Mensaje de Bienvenida” Damos la bienvenida e informamos que se mantenga a la espera para ser atendido.
“Información del Horario” Informamos del horario de atención telefónica.
“Agentes Ocupados” Informamos que todos los agentes están ocupados y llame pasados unos minutos.

Los tendremos en WAV codificación PCM, 16 bits, 8000Hz

Para añadirlos tan simple como darle a “Examinar”, Upload, aceptamos el mensaje y luego le damos a “Save”. Este proceso lo haremos con todos los mensajes que queramos gestionar luego.

3.2. Announcements

Vamos a crear una locución + acción para que si una llamada está mucho tiempo en espera (eso lo definiremos más tarde), diga un mensaje y cuelge :D

Para ello vamos a Anuncios, Add:

Description: FinLlamada
Recording: Agentes Ocupados…
y marcamos: Terminate Call / Hangup 

3.3. Creacion de Colas / Queues

En mi caso voy a crear una Cola de Llamadas para ir enviando las llamadas a dicha cola y que se queden a la espera. Lo he denominado “ColaLlamadas” y le he asignado la extensión “700”. En “Static agents” he puesto las extensiones en las que va a sonar siempre el teléfono que son 101, 102, 103 y 104 (cada una en una línea aparte); max wait time: 10 minutes; Frequency: 45 segundos; Fail Over Destination: Announcements: FinLlamada.

Pasados 10 minutos de espera, lo manda al anuncio que recordamos decía una locución y colgaba :D

3.4. IVR

Ahora vamos a crear las voces de principio de llamada que en mi caso pueden ser 2. Si está dentro del horario laboral (esto se define más tarde) aparecerá una voz agradeciendo la llamada, informando de las extensiones y que si desea contactar con un operador espere. Para ello creamos el IVR: Bienvenida:

Name: Bienvenida
Timeout: 0
Enable Directory: NO
Announcement: Bienvenida….

Ahora podemos definir una serie de teclas especiales que van desde el 1 al 9 pasando por #; esto se define justo debajo de Return to IVR, hay un cuadrito, pues ponemos por ejemplo 0 (cero) en el primero y marcamos la opcion Queues: Colas de Llamadas 700.
Esto hará que mientras suena la locución, si el que llama pulsa 0 se manda directamente a la Cola sin necesidad de tener que escuchar todo el mensaje.

Es importante definir también en t, ponemos t debajo de Return to IVR y seleccionamos la Cola. t es de timeout o sea a donde queremos que vaya una vez que la locución termine.

Guardamos todo y aplicamos cambios.

Ahora otro IVR: Horario
Timeout: 4
Announcement: NuestroHorarioEs….
t -> Terminate Call: Hangup

Si nuestro interlocutor se topa con Horario, escucha el horario y despues se cuelga la llamada.

Todo esto que hemos creado todavía no es funcional, vamos a crear las condiciones de tiempo para según a la hora que llamen, se redirige la llamada a un IVR o a otro.

3.5. Time Conditions / Condiciones de Tiempo

Name: Horario
Time to start: 09:30
Time to finish: 13:30
Monday – Friday
Destination time if matches (si está dentro del horario entonces…): IVR (Bienvenida)
Destination Time if does not match (si está fuera del horario…): IVR (Horario)

Si el interlocutor llama a las 09:29, al no coincidir, le sonaría un mensaje con el horario y colgaría. En caso de llamar por ejemplo a las 10:47, pues le saldría el mensaje de Bienvenida y pasaría a la Cola de Llamadas en espera.

Pero todo esto sigue sin ser funcional. ¿Cómo hacerlo funcional? (A parte de tener que tener una línea de entrada de llamadas), pues tenemos que crear el Incoming Route

3.6. Rutas Entrantes

Añadimos nueva Ruta Entrante. Description: Llamadas. Set Destination: Time Conditions (Horario)

Esto hará que todas las llamadas entrantes sean desviadas a Horario y ahí se decida según la hora si va a un IVR o a otro :D

Ahora si. podemos coger un teléfono de nuestro Asterisk / Elastix y teclear el número de simulación de llamada entrante 7777. Debería salir una locución u otra según la hora :)

4. Configuración de SPA3102 como línea PSTN de entrada y salida.

He tenido varios quebraderos de cabeza configurando el SPA3102 pues lo tenía todo correcto pero no quería ir. Ya contaré el por qué. Hacemos lo que ponen en todos los tutoriales y va correctamente.

4.1. Configuración IP del SPA3102

Supondremos que lo tenemos enchufado al WAN, a la corriente, la linea PSTN y un teléfono analógico. Desde el teléfono marcamos lo siguiente:
(Suponiendo que no nos interese la configuración del SPA3102 y queremos dejarlo de fábrica hacemos lo siguiente)

****73738# -> 1 (Esto borra toda la información del SPA3102)
****110# (Nos informa de la IP WAN)
****7932# -> 1# -> 1 (Habilita la configuración Web a través de la boca WAN)

Ahora a través de la IP accedemos al SPA3102 y configuramos lo siguiente:

Admin Login + Advanced Login

Wan Setup: Static IP
Rellenamos los 3 campos de Static IP Settings en mi caso, Static IP: 192.168.2.221, NetMask: 255.255.255.0, Gateway: 192.168.2.100

Lan Setup: Networking Service: Bridge

Voice – PSTN Line:

Line Enable: Yes
SIP Port: 5061
Proxy and Registration / Proxy: 192.168.2.200 (elastix ip)
Register: Yes
Make Call Without Register: Yes
Ans Call Withoput Register: Yes
Display Name: PSTN
User ID: pstn
Password: *****
Dial Plan 2: (S0<:192.168.2.220&gt;)
VoIP-To-PSTN Gateway Enable: Yes
One Stage Dialing: yes
Line 1 VoIP Caller DP: none
VoIP Caller Default DP: none
Line 1 Fallback DP: none
PSTN-To-VoIP Gateway Enable: yes
PSTN Caller Auth Method: none
PSTN Ring Thru Line 1: no
PSTN CID For VoIP CID: yes
PSTN Caller Default DP: 2
VoIP Answer Delay: 1
PSTN Answer Delay: 3

Esta es la parte de configuración del SPA3102 conectado a una línea telefónica normal. Las pruebas las estuve haciendo conectando el SPA3102 directamente a una extensión de la centralita DKDA. De este modo podía recibir llamadas pero no me dejaba hacerlas. El problema estaba en los voltajes de las líneas. En la pantalla de información se puede ver el voltaje de la línea y cambia según esté conectado a la centralita o a la linea y según si está en llamada o en espera. Un valor que a mi me ha ido bien conectado a la DKDA ha sido Line-In-Use Voltage: 10

¿Cómo rutear la llamada entrante por el SPA-3000 utilizando INBOUND ROUTES?

En el SPA, hay que cambiar:
(S0<:yy.yy.yy.yy) por
(S0<:DID#@yy.yy.yy) donde DID# es por ejemplo el numero de telefono de la linea o cualquier otro string.

Ahora en INBOUND ROUTES se puede utilizar en el campo DID el parametro DID# que utilizamos en la configuracion del FXO para rutear la llamada. (Donde DID# = 666666666 por ejemplo)

4.2. Configuración en Asterisk / Elastix

Ahora tenemos que crear un Trunk en Asterisk para que nos permita tanto recibir como hacer llamadas a través de esta pasarela PSTN. Para ello nos vamos a Troncales – Add SIP Trunk:

Maximum channels: 1
Dial Rules: .

Outgoing Settings:
Trunk Name: pstn
PEER details:
allow=ulaw
call-limit=50
canreinvite=no
context=from-trunk
disallow=all
dtmfmode=rfc2833
host=192.168.2.221
incominglimit=1
nat=never
port=5061
qualify=yes
secret=**** (el mismo que pusimos en el spa3102)
type=friend
username=pstn

Incoming Settings, todo en blanco, Register string, en blanco. Submit Changes y aplicamos.

La prueba de fuego. De esta forma deberíamos de poder recibir llamadas . Pues ale. A llamarnos nos toca y RING!

Ahora falta poder realizar llamadas.

4.3. Rutas Salientes

Vamos a definir una ruta para las llamadas salientes, para comunicarnos con el exterior a través de nuestro SPA3102. Vamos a Rutas Salientes y hacemos click sobre una ruta que ya existe: 0 9_outside. Rellenamos como Dial Patterns:

6XXXXXXXX
8XXXXXXXX
9XXXXXXXX

y en trunk sequence ponemos sólamente SIP/pstn

Guardamos y aplicamos y ahora si. Cogemos un teléfono de nuestra nueva centralita y probamos a llamarnos al movil, tarda un poco y RING!!! :D

5. [PARA LUEGO]

6. Configuración de Festival + Voces en Español.

6.1. Haciendo funcionar Festival / Text2wav

Se supone que Elastix en su versión 1.1-6 ya lleva integrado Festival pero yo lo he estado probando y no hay forma de que funcione. No me habla :D
Para hacerlo funcionar en mi caso ha sido de la siguiente forma. Nos vamos a /var/lib/asterisk/agi-bin/ editamos el demoagi.php y ponemos lo siguiente:

#!/usr/bin/php -q
<?php
require(“/var/lib/asterisk/agi-bin/phpagi.php”);
error_reporting(E_ALL);
$agi = new AGI();
$agi->answer();
$agi->text2wav($argv[1]) ;
#$agi->hangup();
?>

Ahora tenemos que revisar los ficheros de configuración del text2wav empleado a través de php, para ello nos vamos a /etc/asterisk/ y editamos y verificamos phpagi.conf que en mi caso no estaba bien y lo he puesto como:

[festival]
text2wave=/usr/src/festival/bin/text2wave
tempdir=/var/lib/asterisk/sounds/tmp/

También debemos de crear la carpeta /var/lib/asterisk/sounds/tmp/ y asignarle los permisos adecuados.

Haciendo esto, nuestra centralita ya debería de ser capaz de hablar, en inglés pero algo es algo.

Para poder probarlo editamos extensions_custom.conf y debajo de [from-internal-custom] ponemos:

exten => 1235,1,Answer
exten => 1235,2,AGI(demoagi.php|”Esto es una prueba de voz de asterisk.”)
exten => 1235,3,Hangup()

Guardamos y nos vamos a PBX – Herramientas – Asterisk-Cli y ejecutamos: dialplan reload (aunque si no funciona es posible que tengamos que reiniciar puesto que hemos modificado algún fichero más que los dialplan)

Con esto y marcando la extensión 1235, deberíamos escuchar con una macarrónica pronunciación en inglés el texto “Esto es una prueba de voz de asterisk”.

6.2. Voces en Español para Asterisk / Festival / Text2wav

Importante decir que la configuración por defecto del text2wav de php-agi hace que una frase se guarde en cache temporal durante 1 mes, si cambiamos la voz y el texto a decir es el mismo, lo coge de la caché y no lo pronuncia con la voz nueva por lo que para las pruebas iniciales, deberemos borrar frecuentemente el contenido de: /var/spool/asterisk/tmp/ (y en caso que no exista crearlo con los permisos adecuados)

Para poner las voces en español básicas hay que descomprimir el fichero festvox_ellpc11k.tar.gz en la carpeta /usr/share/festival/voices/spanish/el_diphone/

El fichero de configuración para poner la voz preferente es voices.scm localizado en /usr/share/festival/, casi por el final aparece “(defvar default-voice-priority-list”, pues después del siguiente ‘( ponemos el_diphone, quedando así más o menos:


the default voice. [see Site initialization]”)

(defvar default-voice-priority-list
  ‘(el_diphone
    kal_diphone
    cmu_us_bdl_arctic_hts

y más adelante quedaría asi con las voces medio decentes que vamos a poner a continuación:


the default voice. [see Site initialization]”)

(defvar default-voice-priority-list
  ‘(JuntaDeAndalucia_es_pa_diphone
    JuntaDeAndalucia_es_sf_diphone
    el_diphone
    kal_diphone
    cmu_us_bdl_arctic_hts

Para instalar las voces de JuntaDeAndalucia, tenemos un completo manual aqui y el para los que no tengan Festival instalado aqui.

Y una vez instalado todo y reiniciado el equipo, ahora al marcar 1235 debería hablarnos en un Español medio entendible.

7. Anexo I – Configuración de algunos accesos y wakeup.

7.1. Pasando llamadas a otras extensiones

Los teléfonos que estoy empleando en las pruebas es un Linksys SP941 y OKI 3130IF- VoIP Phone, me encuentro con la pega que si descuelgo una llamada entrante y quiero pasarlo a otra extensión por defecto sólo está habilitado el Blind Transfer mediante las teclas ##, es decir trasferencia blindada sin poder comunicarme yo con la extensión antes de pasarla. Para modificar esto y poder hablar con la extensión y al colgar que se pase la llamada hay que habilitar las Attended Transfer, para ello editamos el archivo features.conf y lo dejamos algo asi como lo siguiente o como queramos:

[featuremap]
blindxfer => *#  ; Blind Transfer
disconnect => **  ; Disconnect Call
automon => *1   ; One Touch Record
atxfer => #   ; Attended Xfer

Ahora, cuando tenemos una llamada y queremos pasarlo a otra extensión simplemente marcamos #numeroext. y decimos, es fulanito de tal y al colgar se pasa la llamada.

7.2. Servicio Despertador 

Y ya que estamos, podemos editar el extensions_custom.conf y debajo de [from-internal-custom] poner:

exten => *62,1,Answer
exten => *62,2,AGI(wakeup.php)
exten => *62,3,Hangup

para habilitar el WakeUp o lo que es lo mismo, servicio de despertador.

7.3. Quiero añadirme temporalmente a la Cola de Llamadas!

Pues simplemente llama a NUMEROCOLA* en mi caso 700* y te pedirá número de agente (extensión). Para desconectarte como agente, NUMEROCOLA**, en mi caso 700**

7.4. Llamadas en espera

Por defecto están desabilitadas. Una forma rápida de activarlas en marcando *70 desde la extension que queremos llamada en espera.

7.5. Dial plan para telefono

Un dial plan que funciona bien es: (*x.|xx.|x.*|**|x.**)

 

Tutorial por Eduardo / Nick: Antikton (c) 2008

0

Fax con Elastix

Tras haber conseguido con un SPA3102 + Elastix que las llamadas entren y salgan tanto directamente en línea como a través de una Centralita DKDA (la cual me volvió loco pues no hacía llamadas salientes), hoy he configurado para recibir faxes.

Creo que al estar a través de SPA3102 no discrimina las llamadas por lo que para las pruebas he puesto un inbound route para que todo entre a la extensión de fax de asterisk y :-O entro! que ilusión! :_)

Una centralita con su menu de voz, sus horarios, sus líneas y ahora sus faxes! :D

Poco a poco voy aprendiendo más sobre Asterisk. Desde luego ya podría ofrecer soluciones profesionales más o menos sencillas aunque las complicadas serían mejor pues supondrían un reto y me encantan los quebraderos de cabeza porque siempre llegan a buen puerto.

0

Centralita Telefónica con Elastix

Estos días he estado en el trabajo estudiando el tema de las Centralitas IP y más específicamente con la distribución de Elastix.

Elastix y otras distribuciones del tipo Trixbox están diseñadas para facilitar la configuración de las mismas. Todas se basan en Asterisk que está basado en ficheros planos de texto para su configuración. Los verdaderos gurús del tema son los que editan a mano todos esos ficheros para hacer maravillas; no obstante los entornos GUI que ofrecen estas distribuciones cada vez ofrecen funcionalidades más potentes.

Así pues en menos de una hora se puede instalar Elastix en un PC y configurarlo para una oficina con varias extensiones de tal forma que:

– Si llama en horario laboral sale un mensaje de bienvenida y posteriormente suena una musiquita de espera.

– Si llama fuera de horario laboral, sale un mensaje anunciando el horario laboral y cuelga.

– Cuando el cliente llama puede contactar con diferentes departamentos pulsando los números o llamar directamente a una extensión.

– Asimismo las extensiones pueden llamarse entre si y realizar llamadas internas / pasar llamadas / etc.

¿Qué obtenemos de mejora respecto a una centralita normal/básica?

– Mayor información al cliente y más si llama fuera de horario. Esto para mi ya es un punto muy fuerte.

– Posibilidad de agrupar departamentos, así como crear extensiones sin fin. Si el día de mañana hace falta una nueva extensión porque ha entrado un empleado más a trabajar, simplemente se conecta el Teléfono IP a la red y se configura su extensión.

– Posibilidad de contactar el cliente directamente con el departamento que le interese, evitando así tener una persona “pasa llamadas”. Esto para mi también es un punto muy fuerte.

– Posibilidad de tener varias lineas de salida tanto de fijo como de móvil y optimizar automáticamente las llamadas de tal forma que segun a donde llame sale por un sitio u otro, siempre el más barato.

– Como añadidos indicar que se pueden agregar buzones de voz a cada extensión.

– Hacer sonar sólo a los teléfonos que nos interese y no todos.

– Infinito :)

0

Windows Home Server

Pues ya salió el parche en versión beta del Windows Home Server que corrige entre otras cosas el bug de corrupción de datos, algo muy grave aunque sólo pasaba en casos muy excepcionales pero no merecía la pena arriesgarse pues los datos son algo de un valor incalculable

[por cierto y continuando con el tema de los datos, ha salido un nuevo virus/troyano que se cuela en el PC, codifica los ficheros importantes tipo documentos, musica, fotos, etc. y para poderlos decodificar tienes que comprar un programa. Hasta la fecha no hay posibilidad de saltar la codificación por lo que es muy peligroso teniendo en cuenta que juega con lo que más queremos en el mundo informático y son los datos personales]

Así que ni corto ni perezoso y armándome de mucha paciencia me he dispuesto a vaciar los 6 discos duros de mi servidor como he podido en los 2 discos duros externos que tengo, y he procedido a instalar el Windows Home Server.

Primeros problemas que me he topado. Tras 2 horas de instalación y configuración resulta que en el momento de ejecutar el Power Pack 1 (que es el que incluye el parche) me decía que no se había realizado la configuración inicial del servidor. Efectivamente no la había hecho porque al intentar configurarlo me daba error. Mucho tiempo haciendo pruebas para nada, así que lo mejor ha sido volverlo a instalar, otras 2 largas horas de instalación y lo primero de todo probar si se podía realizar la configuración inicial. Todo perfecto!

Luego a bajar todos los updates y a instalar el Power Pack 1 y a volver a poner la información de manera más ordenada pues mis discos duros son un caos y ahora parece que estará mejor ordenado.

Nota Adicional: Realmente pensé que formateaba todos los discos duros así que desconecté alguno antes de la instalación. Una vez instalado los he activado y se pueden acceder perfectamente de forma independiente por lo que no hacía falta vaciar toda la información. Simplemente copias lo que tengas a la zona de WHS y una vez que esté todo, lo agregas al array de discos.

Maravillas: Lo novedoso de este sistema operativo servidor en plan casero es su manera de manejar el espacio. Todos los discos duros que vayas agregando se suman a un array con lo que obtenemos una unidad de tamaño gigante. ¿Y si me voy quedando sin espacio? pues agregamos un disco duro más, y automáticamente se suma ese espacio al total, nada de unidades por aqui y por allá. El disco duro puede ser interno ide, sata, etc. externo usb, etc. :) Si, esto lo puede hacer cualquier sistema operativo pero es que además le puedes decir que haya mirror de datos! :-O Con lo que obtenemos un servidor de espacio “ilimitado” con una sola “unidad” y que podemos ampliar en cualquier momento además de hacer duplicado de datos. Yo soy feliz :) Además si en los equipos de casa le instalas el Connector (un programita residente), se encarga él solito de hacer copias completas de cada PC, al estilo ghost pero lo hace sólo, es fácil, etc. SIN PREOCUPACIONES, NI TENER QUE ACORDARSE DE LAS COSAS :)
Se puede hacer Escritorio Remoto, instalar cualquier software (está basado en Windows 2003 Server), creo que hace streaming (aun no lo he probado) en plan Media Server para consolas tipo XBOX 360, PS3, …

Y nada más, parece que lo vendo pero no, simplemente que me encanta su método de gestión del espacio.

Saludos.