Las troncales son el medio que
permite comunicar a Asterisk con el mundo exterior o PSTN, son los canales de
comunicación de entrada y salida de llamadas, también permiten la comunicación
hacia otras PBX, tradicionales o IP.
El tipo de troncal a utilizar,
dependerá de la manera que el proveedor brinda el servicio de telefonía.
Tradicionalmente el servicio es entregado por medio de líneas de cobre, fibra
óptica, redes IP, por medio de Internet o enlaces dedicados de datos; con la
opción de redes IP, no es necesario instalar ningún hardware de comunicación en
Asterisk.
Troncales SIP (SIP Trunk): se
transporta la voz por medio de las redes IP, se puede utilizar Internet para
establecer los enlaces, de esta manera se podrán tener números telefónicos de
cualquier parte del mundo sin importar la ubicación geográfica. La cantidad de
canales dependerá del ancho de banda del enlace IP.
Troncales Digitales (Puertos E1):
Es el método más utilizado por los proveedores para la entrega de los servicios
telefónicos, utiliza medios físicos para el transporte de la voz como cable de
cobre o fibra óptica, se debe instalar una tarjeta en el servidor para configurar
el troncal.
Troncales Análogas (Puertos FXO):
Es la manera tradicional de recibir las líneas telefónicas. Por cada línea es necesario un puerto, por
ejemplo si hay 4 líneas telefónicas es necesario utilizar un adaptador con 4
puertos FXO.
El tipo de troncal determina el
número de llamadas simultaneas, por ejemplo, en una troncal digital E1 permite
hasta un máximo de 30 llamadas por enlace.
En una troncal análoga FXO solo
permite una llamada por enlace.
En troncales SIP, en teoría no hay límite de
llamadas simultaneas, el limite lo impone el ancho de banda de la red IP, y es
recomendable realizar menos de 150 llamadas simultaneas.
Las rutas son reglas que indican por
cual troncal se deberán enviar las llamadas en base a ciertos patrones de
marcado del dialplan. También se utilizan rutas para
recibir llamadas, cuando una llamada entrante es recibida en una troncal se
requiere que estas sean direccionadas a un numero de extensión, como también
puede ser a un IVR, para esto se requiere que se cree un plan de marcado para
llamadas entrantes.
Por ejemplo, el proveedor
VozToVoice, el cual se va a utilizar como ejemplo, requiere que la sintaxis para marcar cualquier
numero sea: 00 + código país + numero.
Para configurar el troncal SIP,
se utilizara, en este caso, el proveedor SIP VozToVoice. Para utilizar este
proveedor se puede abrir una cuenta desde esta página. Una vez que la cuenta ha
sido activada, habrá 1 dólar de crédito para realizar las llamadas por medio de
este proveedor.
en el archivo sip.conf se configura lo siguiente:
;register => username:password@your.sip.provider
[voztovoice]
username=
type=friend
secret=
host=sip.voztovoice.eu
fromuser=
context=voztovoice
qualify=yes
disallow=all
allow=ulaw
allow=alaw
trustrpid = yes
sendrpid = yes
directmedia = no
en el archivo extensions.conf se configura lo siguiente:
#include llamadas_externas.conf
archivo llamadas_externas.conf
#include llamadas_externas.conf
archivo llamadas_externas.conf
[supervisor]
exten => _00.,1,Dial(SIP/voztovoice/${EXTEN},30)
exten => _00.,1,Dial(SIP/voztovoice/${EXTEN},30)
exten => _3XXXXXXXXX,1,Dial(SIP/voztovoice/0057${EXTEN},30)
exten =>
_[12,4-9]XXXXXX,1,Dial(SIP/0057${EXTEN}@voztovoice,30)
Contexto [desvio_llamadas]
Las llamadas con destino a una extensión, se podrán desviar a una serie de números que se hayan definido previamente.
Contexto [desvio_llamadas]
Las llamadas con destino a una extensión, se podrán desviar a una serie de números que se hayan definido previamente.
Include=> desvio_llamadas
AstDB: Asterisk Database
Se permitirá a los agentes o el supervisor activar y desactivar la funcionalidad en cualquier momento, el valor 0 significa desactivado, el valor 1 significa activado.
Se organiza en familias, y dentro de una familia se pueden tener diversas claves, y para cada clave un solo valor.
*CLI> database put familia clave valor
*CLI> database show
*CLI> database show familia
Set(var=${DB(familia/clave)})
Set(DB(familia/clave)=${var})
[desvio_llamadas]
;Activar FollowMe
exten => *00,1,NoOp (activando followme)
same => n,Set(DB(FM/${CALLERID(num)})=1)
same => n,Playback(beep)
same => n,hangup
;Desactivar FollowMe
exten => *01,1,NoOp (desactivando followme)
same => n,Set(DB(FM/${CALLERID(num)})=0)
same => n,Playback(beep)
same => n,hangup
La aplicación Gotoif:
literalmente es: ve al destino indicado, (destino
1) si la expresión es verdadera, sino ve al destino 2 si la expresión es
(falsa). Si la segunda prioridad no se especifica, el dialplan continúa con la
prioridad que sigue. (Mostrar los dos ejemplos en el dial plan)
[desvio_llamadas]
exten => 345,1,Set(TEST=1)
same => n,GotoIf($[${TEST} = 1]?comadrejas:iguanas)
same => n(comadrejas),Playback(weasels-eaten-phonesys)
same => n,Hangup()
same => n(iguanas),Playback(office-iguanas)
same => n,Hangup()
Configuración del archivo followme.conf
[4001]
musicclass=> default
context=> desvio_llamadas
number=> 4010,15
number=> 00573155768698,15
se llamará el numero 4010
primero y después al número celular por 15 segundos
[desvio_llamadas]
exten => _40XX,1,Answer()
same => n,GotoIf($[${DB(FM/${EXTEN})} =
1]?FM)
same =>
n,Dial(SIP/${EXTEN},15,hHkKtTwWxXhHkKtTwWxX)
same => n,Hangup
same => n(FM),FollowMe(${EXTEN})
same => n,Hangup
Contexto [limitar_llamadas]
Limita el número de canales utilizados en las llamadas entrantes y salientes. A
través de estas dos funciones, es posible limitar el número de canales
utilizados en las llamadas entrantes y salientes. Por ejemplo, para limitar a 2
el número de llamadas simultaneas por extensión y también limitar a 2 las
llamadas simultáneas por la troncal. Se
configura el dialplan donde si una extensión intenta sacar la tercera llamada
simultánea, se le avise que no es posible, y si los 2 canales de la troncal se
están utilizando, informar que no hay más canales disponibles
GROUP([category])
Set(GROUP(voip)=voztovoice)
Set(GROUP(salida)=${CALLERID(num)})
GROUP_COUNT([groupname][@category])
Set(trunksal=${GROUP_COUNT(voztovoice@voip)})
Set(extsal=${GROUP_COUNT(${CALLERID(num)}@salida)})
Gotoif($[${extsal} > 2 | ${trunksal} > 2]?busy)
Dial(SIP/voztovoice/${EXTEN})
Hangup
(busy),Playback(all-outgoing-lines-unavailable)
No hay comentarios:
Publicar un comentario