Discado automático
Archivos .call
Se utilizan para iniciar llamadas desde una aplicación externa.
Son archivos de texto que al copiarse en el directorio /var/spool/asterisk/outgoing, Asterisk notará su presencia e inmediatamente activará la extensión en la prioridad especificada en el archivo .call.
Generalmente, se combinan con el programador de tareas de Linux: el cron.
Algunos ejemplos de uso son: soluciones de callback, despertador telefónico, anuncios automáticos.
Discado automático: ejemplo
En el siguiente ejemplo: se llama al 43424444 en el canal Zap/1Dahdi/1 y envía la llamada al contexto [mensajes-salida], extensión 84, Prioridad 1:
Archivo mensaje.call
Channel: Zap/1Dahdi/1/43424444
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: mensajes-salida
Extension: 84
Priority: 1
extensions.conf
[mensajes-salida]
exten => 84,1,Playback(anuncio)
exten => 84,2,Playback(vm-goodbye)
exten => 84,3,Hangup
Manejo de colas
El sistema de colas en Asterisk se compone de:
Llamadas entrantes que son ubicadas en una cola.
Miembros que contestan las llamadas en la cola (extensiones o bien usuarios que se loguean como agentes).
Una estrategia sobre cómo manejar la cola y repartir las llamadas entre los miembros
Música que se reproduce durante la espera en la cola.
Anuncios para miembros y emisores de llamadas.
Manejo de colas: Config
La configuración de las colas se define:
Estáticamente: en el archivo queues.conf
Dinámicamente: la configuración se almacena en una BD, disponibilizando los cambios sin necesidad de realizar un reload.
La configuración de los agentes se define en el archivo agents.conf.
Manejo de colas: agentes
Los agentes atienden las llamadas de una cola específica.
Un agente debe realizar un login (llamando a una extensión especial que contiene la aplicación AgentLogin) indicando que está listo para tomar llamadas.
Los miembros son aquellos canales disponibles que están activamente atendiendo la cola. Pueden ser tanto agentes como también canales regulares (sip/juan).
Manejo de colas: estrategias
Las llamadas son distribuidas entre los miembros de una cola siguiendo alguna de las siguientes estrategias:
ringall: hace sonar todos los canales disponibles hasta que alguno responda (configuración por defecto).
roundrobin: hace sonar cada interfaz disponible por turnos.
leastrecent: hace sonar la interfaz que fue menos recientemente llamada por esta cola.
fewestcalls: hace sonar la interfaz con la menor cantidad de llamadas completas.
random: hace sonar una interfaz al azar.
rrmemory: igual que el round robin pero recuerda cual fue el último teléfono que atendió una llamada y continúa con el siguiente.
Manejo de colas: penalties y priorities
Penalty: se le asigna una penalidad a cada agente, de manera tal que primero se derivan las llamadas (vía la estrategia definida) a los agentes con el menor valor de penalidad. En el caso de estar todos ocupados, se continúa con la siguiente penalty y así sucesivamente.
Ejemplo: sólo si la telefonista está ocupada, se deriva el llamado a la oficina.
Priority: se le asigna una prioridad a cada llamada entrante, permitiendo situarla en un lugar más adelante de la cola (no siempre al final).
Ejemplo: las llamadas al nro. 110 tienen más prioridad que las del 111.
Manejo de colas: aplicaciones
Aplicaciones principales, utilizadas en extensions.conf:
Queue: aplicación utilizada para encolar una llamada (toma como parámetro las colas definidas en queue.conf).
AddQueueMember: agrega dinámicamente un miembro a la cola.
RemoveQueueMember: remueve dinámicamente un miembro de la cola.
AgentLogin: login de un agente a una cola.
Manejo de colas: CLI
Comandos relacionados de la CLI:
show agents: muestra los agentes .
show queues: lista todas las colas.
show queue: muestra datos de una cola en particular.
queue add member: agrega un miembro a la cola.
queue remove member: elimina un miembro de la cola.
Manejo de colas: ejemplo
queue.conf
[MyQueue] ; nombre de la cola
music=default ; musica que coloca antes que lo atiendan
strategy=ringall ; estrategia de ring
timeout=15 ; tiempo maximo de ring a un miembro
retry=5 ; tiempo de espera hasta reintentar con otro miembro
wrapuptime=0 ; tiempo de espera luego de intentar con todos los miembros
maxlen = 0 ;
announce-frequency = 0 ; cantidad de veces que sale el anuncio
announce-holdtime = no ; si dice el tpo de espera aproximado
member => Agent/1001,1
member => Agent/1002,1
member => Agent/1003,1
Manejo de colas: ejemplo
agents.conf
[agents]
agent => 1001,1111,Juan
agent => 1002,2222,Pedro
agent => 1003,3333,Pablo
extensions.conf
exten => 2020,1,Answer
exten => 2020,3,Wait(2)
exten => 2020,4,SetMusicOnHold(default)
exten => 2020,5,Queue(MyQueue|r)
exten => 2020,6,Hangup
ENUM
ENUM proviene de tElephone Number Mapping.
Se asocian los números telefónicos convencionales (E.164) a nombre DNS en .e164.arpa.
+34 944012345 ? 5.4.3.2.1.0.4.4.9.4.3. e164.arpa
El servidor DNS que alberga la entrada, tiene registrados los servicios (sip, mail, http) publicados para dicho número.
Ejemplo de entrada en Bind:
$ORIGIN 5.4.3.2.1.0.4.4.9.4.3.e164.arpa.
NAPTR 10 100 "u" "E2U+sip" "!^.*$!sip:fulano@foo.com!" .
NAPTR 10 101 "u" "E2U+msg" "!^.*$!mailto:fulano@foo.com!" .
– Prioridad 1: contactar vía SIP con fulano@foo.com
– Prioridad 2: contactar por correo con fulano@foo.com
Página siguiente |