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.
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
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
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
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>
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!!!
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
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
HOLA, EXCELENTE INFO, BASTANTE SENCILLA Y CONCRETA.