Вы находитесь на странице: 1из 31

PRIMER TOMO

En 1849 Antonio Meucci,

Un hecho curioso que desat mucha polmica es que otro inventor llamado Elisha Gray
tambin trat de patentar un invento similar tan solo unas pocas horas despus de Bell.
Los dos inventores entraron en una conocida disputa legal que finalmente Bell gan.

En 1891 se invent un telfono automtico Ya para finales de la segunda guerra mundial


que permita el servicio telefnico llegaba a millones de
marcar directamente. abonados.
En 1947, cientficos de Bell inventan el
transistor y cambian el curso de la historia de la
humanidad. En 1948 ganan el Premio Nobel
por su trabajo.
velocidad del sonido, esto es a 1,244 Km/h (o los telfonos comerciales solo transmiten un
340 m/s) rango aproximado de 400Hz a 4kHz.
20Hz a 20kHz. Todo un abanico de sonidos!

Teorema de Nyquist
f m 2 BW s Nyquist como mnimo deberamos muestrear al
doble de la frecuencia mayor, es decir a
8,000Hz.

Redes orientadas a circuitos Redes orientadas a paquetes


Las redes orientadas a circuitos (circuit Una red de paquetes es una red que por un
switched) son aquellas donde se establece un mismo medio trafica simultneamente
circuito exclusivo o dedicado entre los nodos diferentes flujos de informacin. Para hacer
antes de que los usuarios se puedan esto divide el trfico de cada flujo de
comunicar. informacin en fragmentos o paquetes que enva
intercaladamente. Luego, en el destino
Este tipo de redes es el tradicionalmente usado los paquetes se reensamblan para reproducir el
por compaas telefnicas alrededor del mensaje original.
mundo y es el mismo que us Bell en sus
inicios; obviamente guardando las distancias
tecnolgicas correspondientes.

Red Pblica Telefnica (PSTN)


La Red Pblica Telefnica o PSTN (por sus siglas en ingls) es esencialmente una red
basada en circuitos.
Circuitos analgicos Sealizacin analgica
Los circuitos analgicos son Para que las llamadas telefnicas funcionen correctamente es
comnmente pares de cobre que necesario contar con
llegan a los abonados del indicaciones o seales elctricas que nos permitan
servicio telefnico y por donde se intercambiar informacin entre el
transmite la seal elctrica de la voz abonado y la OC.
de manera
analgica. Existen bsicamente 3 mtodos de sealizacin analgica
que la industria ha
desarrollado a travs de los aos. Estos se llaman loop start,
ground start y kewlstart.
La diferencia entre loop start y ground start radica en la manera en la que el telfono
requiere tono de marcado a la OC (proceso tambin llamado seizure). Ground start
requiere tono de marcado aterrizando (de all el trmino ground) uno de los conductores
de la lnea telefnica mientras que loop start lo hace realizando un corto circuito entre
ambos conductores (es decir creando un lazo o loop).
Kewlstart es una evolucin de loop start que le aade un poco ms de inteligencia a la
deteccin de desconexiones (colgado de la llamada) pero bsicamente sigue siendo un
loop start.
Debido a que ground start no es muy comn en nuestros das, casi siempre nos veremos
usando loop start.

El progreso de una llamada lo podemos dividir en seis instancias:


colgado (on-hook),
descolgado,
marcacin,
conmutacin,
ringado y
conversacin.

Marcacin
La marcacin puede ser por pulsos o por tonos. Los pulsos ya casi no se usan y fueron
populares en los tiempos de los telfonos de disco. Los tonos son pares de frecuencias
asociadas con los dgitos telefnicos.

DTMFs
Muchas veces es necesario enviar dgitos a travs de la lnea telefnica tanto para
marcar como en medio de una conversacin. Con esta finalidad se pensaron los DTMFs.
DTMF es un acrnimo de Dual-Tone Multi-Frequency. Es decir que cada DTMF es en
realidad dos tonos mezclados enviados simultneamente por la lnea telefnica. Esto se
hace as para disminuir los errores.

Convertidor de 2 a 4 hilos
Un componente importante de un telfono es el convertidor de dos a cuatro hilos,
conocido tambin como dispositivo 2H/4H, bobina hbrida o simplemente hbrido. Este
dispositivo es necesario para separar la seal de audio de ida de la de venida ya que son
dos participantes en una conversacin y solo existe un par de cables para esto.
Circuitos digitales
La base DS-0 Circuitos T-carrier y E-carrier
Para decirlo simple, DS-0 es un canal digital de Los circuitos T-carrier (o portadora-T) fueron
64Kbit/s. diseados como nomenclatura para
circuitos digitales mutiplexados y fueron
desarrollados por Bell Labs
T-carrier es el popular T1 (y su contraparte E1)

Un T1 un E1 est compuesto por 32 DS-0 s


es un circuito digital compuesto de 24 DS-0 s
Protocolos de Sealizacin Digital
CAS (Channel Associated Sgnaling) CCS (Common Channel Signaling).CCS)
CAS ISDN
robbed-bit y es usado en circuitos T1 ISDN (Integrated Services Digital Network) nos permite
y E1 alrededor del mundo. transmitir voz y datos
Robbed-bit toma (o roba, de all simultneamente sobre pares telefnicos de cobre con
su nombre) el octavo bit de cada calidad superior a las lneas
canal de telefnicas analgicas.
comunicacin cada seis frames y lo El objetivo de ISDN fue el de facilitar las conexiones
reemplaza por informacin de digitales para poder ofrecer una
sealizacin. El bit amplia gama de servicios integrados a los usuarios.
original robado simplemente se
pierde. ISDN establece dos tipos de interfaces para cumplir con
este fin.
BRI: Basic Rate Interface
PRI: Primary Rate Interface

BRI estuvo orientada a hogares.

PRI es la opcin para usuarios de mayor envergadura


como negocios o empresas pues
puede aglutinar ms canales B.

La diferencia es que mientras CAS transmite la sealizacin en el mismo canal en que viaja la
informacin, CCS la transmite en un canal separado.

VOIP
Protocolos de sealizacin
Algunos son:
SIP
IAX
H.323
MGCP
SCCP
Entre estos los ms populares en el mbito de Asterisk son SIP e IAX.

Protocolos de transporte de voz


Este protocolo se llama RTP (Real-time Transport
Protocol) y funcin es simple: transportar la voz con el menor retrazo posible.
Protocolos de transporte de bajo nivel como TCP y UDP de plataforma IP

El protocolo IP (Internet Protocol) es un protocolo que trabaja a nivel de red donde la


informacin se enva en paquetes llamados paquetes IP.
Direccin IP
Una direccin IP es un nmero nico que provee adems informacin de cmo ubicar al
equipo que la posee.
Paquete IP

Mscara de red y clculo de direccin de red


cmo se obtiene la informacin de a qu red pertenece una direccin IP para que un ruteador pueda
encaminar correctamente un paquete a destino.
La mscara de red es un nmero de 32 bits al igual que una direccin IP.
Protocolos de transporte
Protocolo TCP Protocolo UDP
El protocolo IP no garantiza que los datos UDP (User Datagram Protocol) es otro protocolo
lleguen a destino. de transporte. Se diferencia con TCP
Solo hace su mejor esfuerzo para que lleguen. en que a este protocolo no le importa si los datos
Por lo tanto era necesario un protocolo que se llegan con errores o no y tampoco le
encargue de controlar la transmisin de importa si llegan en secuencia.
datos y por esta razn se dise lo que se llama
Transmission Control Protocol o UDP divide la informacin en paquetes, tambin
simplemente protocolo TCP llamados datagramas, para ser transportados
TCP ayuda controlando que los datos dentro de los paquetes IP a su destino.
transmitidos se encuentren libre de errores y Al no ser necesario incluir mucha
sean informacin de control, el protocolo UDP
recibidos por las aplicaciones en el mismo orden reduce la
en que fueron enviados. cantidad de informacin extra en los paquetes
por lo que es un protocolo ms rpido que
TCP y adecuado para transmisin de
informacin que debe ser transmitida en tiempo
real como la voz.

Codificacin de la voz
Codecs
La palabra codec proviene de abreviar las palabras COdificacin y DECodficacin. Su funcin
principal es la de adaptar la informacin digital de la voz para obtener algn beneficio. Este
beneficio en muchos casos es la compresin de la voz de tal manera que podamos utilizar menos
ancho de banda del necesario.

Algunos codecs, soportados por Asterisk y comnmente usados en comunicaciones de


VoIP, son G.711, G.729, GSM,
G.711 G.729 GSM
G.711 es uno de los codecs ms Tambin se trata de una Muchas personas suelen
usados de todos los tiempos y recomendacin ITU cuyas preguntar si el codec GSM tiene
proviene de un estndar implementaciones ha sido algo que ver con el estndar
ITU-T que fue liberado en histricamente licenciadas, o de comunicaciones celulares y
1972. Viene en dos sabores sea que hay que pagar por ellas. la respuesta es que s.
llamados u-law y a-law. La ventaja en la utilizacin de El estndar que define la
Una de sus caractersticas es la G.729 radica principalmente en tecnologa celular GSM (Global
calidad de voz debido a que su alta compresin y por System for Mobile
casi no la comprime. Utiliza ende bajo consumo de ancho communications) incluye este
64kbit/s, es decir un muestreo de bandaG.729 utiliza 8kbit/s codec.
de 8 bits a 8kHz. por cada canal. Si
comparamos este valor con el
de G.711
notaremos que consume 8 veces
menos ancho de banda
La ventaja de este codec tambin es su compresin. Acerca de la calidad de voz...
bueno, ya habremos hablado por un celular GSM alguna vez.

Comandos bsicos
A continuacin una lista de los comandos bsicos ms usados:
Comando
ls ls -la Lista los archivos y sus atributos
cd Cambia de directorio
cd .. Cambia al directorio padre
cat Muestra el contenido de un archivo en la
pantalla
pwd Muestra la ruta actual
cp Copia un archivo o grupo de ellos
mv Mueve un archivo. Tambin se lo usa para
renombrar archivos
rm Elimina un archivo
tail -f nombre_archivo Muestra las ltimas lneas de un archivo
mkdir Crea un directorio
tar nombre_archivo.tar.gz
top Lista los archivos en el directorio actual
-xvzf Descomprime un archivo tar.gz
Muestra un reporte en tiempo real de los

Directorio
sbin Incluye binarios que pueden ejecutados solo por el administrador
bin Contiene binarios necesarios para el correcto funcionamiento del sistema. Los binarios de esta
carpeta pueden tambin ser utilizados por los usuarios del sistema
boot Este directorio contiene el kernel y otros archivos necesarios al momento de arranque
dev Este directorio contiene archivos que representan dispositivos de hardware.
Recordemos que en Linux prcticamente todo es un archivo
etc Este directorio contiene bsicamente archivos de configuracin para todo el sistema
home Aqu residen los directorios de los usuarios. Por ejemplo, el directorio /home/jorge es el
directorio del usuario jorge
lib Contiene bsicamente las libreras compartidas que requieren los programas. Algo anlogo a los
archivos .dll en Windows
lost+found Cuando por alguna razn el sistema de archivos se corrompe y hay que repararlo; los
resultados de esa reparacin se guardan en este directorio
mnt Este es un lugar comn para montar otros sistemas de archivos o dispositivos. Por ejemplo una
unidad de CDROM o un PEN DRIVE
opt Este directorio contiene paquetes de software que normalmente no son parte de la instalacin
original
proc Es un directorio virtual (ya que realmente reside en la memoria) donde el kernel y drivers
escriben archivos para que otros programas los puedan leer. Por ejemplo, aqu es donde los
drivers de zaptel escriben ciertos archivos en la ruta /proc/zaptel/
root Este es el directorio del usuario root ya que este no tiene uno del tipo /home/root
tmp Este directorio temporales
usr Es uno de los ms importantes directorios y contiene informacin para ser compartida como
programas que pueden ser usados por los usuarios del sistema, la documentacin de dichos
programas y hasta libreras relacionadas, etc. contiene archivosEste directorio usualmente no
contiene informacin que cambie constantemente
var Contiene informacin en constante cambio como logs o colas de emails. Por ejemplo, aqu
reside el log de asterisk en la ruta /var/log/asterisk/full

Representacin numrica de permisos

Permisos
En Linux cada directorio o archivo tiene permisos de acceso y estos permisos pueden
ser de bsicamente 3 tipos:
52
lectura
escritura
ejecucin
El comando chmod tambin se puede usar recursivamente para cambiar los permisos de
todos los archivos dentro de una carpeta. Esto se hace con la opcin R. Por ejemplo:
chmod R 755 nombre_carpeta/

Para cambiar el dueo y grupo asociado con un archivo determinado podemos usar el
comando chown. Por ejemplo para cambiar los permisos del archivo anterior al usuario
y grupo root ejecutamos lo siguiente.
# ls -la archivo_prueba
-rwxr-xr-x 1 edgar edgar 0 2008-09-19 04:23 archivo_prueba
# chown root.root archivo_prueba
# ls -la archivo_prueba
-rwxr-xr-x 1 root root 0 2008-09-19 04:24 archivo_prueba

Breve historia de Asterisk


Asterisk fue concebido y desarrollado por Mark Spencer. En un principio por una
necesidad personal pues necesitaba una central telefnica para la pequea empresa de
soporte que estaba fundando llamada Linux Support Services.
En 1999, cuando tuvo un cdigo digno de mostrar al mundo decidi liberarlo bajo licencia
GPL.
se top con el proyecto Zaptel, un proyecto de cdigo abierto creado por Jim Dixon,
Que tena el objetivo de crear drivers abiertos para tarjetas
telefnicas de computadora. A partir de all Asterisk y Zaptel caminaran de la mano;

En el 2002 Linux Support Services se convertira en Digium,

Funcionamiento de Asterisk
Encendido y apagado

# amportal stop

Para encenderlo:
# amportal start

Para reiniciarlo:
# amportal restart

Directorios de Asterisk
/etc/asterisk/ Aqu residen los archivos configuracin de asterisk
/usr/lib/asterisk/modules/ Este directorio contiene los mdulos de sterisk
/usr/sbin/ Aqu reside el binario de Asterisk
/var/log/asterisk/ Contiene los logs de Asterisk
/var/lib/asterisk/agi-bin/ Directorio donde residen los scripts AGI
/var/lib/asterisk/mohmp3 Carpeta que contiene Msica en espera
archivos PAra
/var/lib/asterisk/sounds Sonidos queutiliza Asterisk archivos prompts de voz
/var/spool/asterisk/ Directorio donde Asterisk guarda archivos que genera producto de su
funcionamiento como voicemails y grabaciones de llamadas
/var/run/ Archivos con informacin de PIDs
/var/log/asterisk/ Aqu residen los archivos de log de /var/log/asterisk/full o Aqu residen los el
log de texto de CDRs

Estructura modular
Asterisk utiliza la idea de mdulos para extender su funcionalidad. Es tan importante la
funcionalidad residente en los mdulos que sin ellos Asterisk por si solo no cumplira
ninguna funcin interesante.
Estos mdulos residen en la carpeta /usr/lib/asterisk/modules/ y son archivos con extensin .so

Los mdulos pueden ser controlados a travs del archivo de configuracin


modules.conf.

El proyecto Zaptel, ahora DAHDI


Bsicamente Zaptel es un conjunto de drivers para controlar hardware telefnico como
tarjetas PCI que nos permiten conectarnos a la PSTN.
Estos drivers se comunican con Asterisk a travs de un mdulo de Asterisk llamado
chan_zap.so que se configura a travs del archivo zapata.conf.

Configuracin de Asterisk
Archivos de configuracin

ruta /etc/asterisk.

extensions.conf Aqu reside el plan de marcado. En Elastix este archivo incluye otros ms para
organizar el plan de marcado de mejor manera. Estos archivos adicionales empiezan con la cadena
extensions_
sip.conf Aqu se definen los endpoints SIP
iax.conf Aqu se definen los endpoints IAX
zapata.conf Archivo de configuracin de los canales tipo ZAP. Aqu se puede troncalizar
dichos canales y configurar algunos parmetros

Contextos
Bsicamente los contextos sirven para agrupar lgica de plan de marcado.
Cada contexto debe llevar un nombre nico y este nombre va encerrado entre los
smbolos [ y ].

Contextos reservados
Hay dos nombres de contextos que estn reservados para un propsito especial y son

[general]
[globals]

Instrucciones
Los contextos contienen instrucciones. Estas instrucciones son lneas de plan de
marcado que tienen la siguiente sintaxis.

exten => nombre_extension, prioridad, aplicacin

Nombre de Extensin
El nombre de extensin es un identificador numrico de la extensin.
La extensin s significa cualquier extensin.
[prueba]
exten => s,1,Answer()
exten => s,2,noOp(Prueba)

Prioridad
La prioridad indica el orden en el que debe ser ejecutada una instruccin dentro de un
contexto.

Por ejemplo, el siguiente plan de marcado:


exten => s,1,NoOp(Hola este es solo un ejemplo)
exten => s,2,NoOp(para demostrar)
exten => s,3,NoOp(como usar la prioridad n)

Podra ser escrito de la siguiente manera usando la prioridad n.


exten => s,1,NoOp(Hola este es solo un ejemplo)
exten => s,n,NoOp(para demostrar)
exten => s,n,NoOp(como usar la prioridad n)

Variables
Las variables en el plan de marcado son un concepto similar a las variables en un
lenguaje de programacin.
${NOMBRE}

Donde nombre es el nombre de la variable. Las variables pueden ser de tres tipos:
Globales
Son las variables definidas en la seccin [globals] del extensions.conf. La
palabra global quiere decir que pueden ser referenciadas desde cualquier lugar.
De canal
Son las variables que se pueden definir usando el comando (o aplicacin) "Set".
Pre-definidas
Asterisk se encarga de administrar algunos nombres de variables por su cuenta.
${CALLERID}
${CALLERIDNAME}
${CALLERIDNUM}
${CHANNEL}
${CONTEXT}
${EPOCH}
${EXTEN}
${SIPUSERAGENT}
${UNIQUEID}

Aplicaciones ms comunes
Answer
Sintaxis: Answer([delay])
Contesta un canal si este est timbrando.
Background
Sintaxis:
Background(filename1[&filename2...][|opciones[|langoverride ][|context]])
Reproduce un listado de archivos de audio en el fondo
Esta aplicacin es tpicamente usada para reproducir el mensaje de bienvenida de un
IVR.
Playback
Sintaxis: Playback(filename1[&filename2...][,options])
Reproduce uno o ms archivos de audio.

Hangup
Sintaxis: Hangup()
Cuelga el canal y retorna -1
Goto
Sintaxis: Goto([[context|]extension|]priority)
Salta la ejecucin del plan de marcado a un contexto, extensin y prioridades dados.

Dial
Sintaxis: Dial(type/identifier, timeout, options, URL)
Este comando es el que hace la magia. Marca un canal especificado y lo vincula con el
canal corriente.

Comandos del CLI


agi debug Permite habilitar el debug de scripts AGI. Se apaga con agi debug off
core set debug channel Habilita el debug en un canal determinado
core set debug Permite cambiar el nivel de debugging. Se apaga con core set debug off
core set verbose Incrementa la intensidad del logging. Muy til en diagnstico
core show channels Muestra informacin de los canales activos en el instante de ejecutar el
comando
dialplan reload Recarga todo el plan de marcado
dialplan show Muestra el plan de marcado
help Muestra un listado con todos comandos de CLI disponibles
iax2 set debug Habilita el debug a nivel de IAX2. Se deshabilita con el comando iax2 set
debug off
iax2 show peers Muestra los peers definidos y alguna informacin adicional como el IP desde
donde se conectan, el estatus, entre otros datos
iax2 show registry Muestra informacin de registro IAX2 e informacin como el estatus y el IP a
la que se trata de conectar module reload Recarga todos los mdulos de Asterisk. til para aplicar
los cambios hechos en los archivos de configuracin pri debug span Habilita debug de un span
determinado de una interfase PRI
restart gracefully Reinicia Asterisk de manera ordenada
restart now Reinicia Asterisk de manera brusca
restart when convenient Reinicia Asterisk cuando no haya actividad en la central. Adecuado en
ambientes de produccin donde no tenemos otra opcin que reiniciar la central pero no queremos
tampoco que se corten llamadas
sip set debug ip Habilita debug de SIP a nivel de una direccin IP especfica
sip set debug peer Habilita debug de SIP a nivel de un peer especfico
sip show peers Muestra un listado con todos los peers SIP configurados e informacin de cada uno
de ellos como el estatus
sip show registry Muestra un listado con los registros SIP e informacin relevante de cada uno de
ellos
stop gracefully Detiene Asterisk de manera ordenada
stop now Detiene Asterisk de manera brusca
stop when convenient Detiene Asterisk cuando no haya actividad en la central. Adecuado en
ambientes de produccin donde no tenemos otra opcin que reiniciar la
central pero no queremos tampoco que se corten llamadas
zap show channels Muestra un listado de los canales ZAP y algunos parmetros de
funcionamiento.
zap show status Muestra un listado de los dispositivos ZAP y un reporte de alarmas y errores
Elastix: Configuracin Bsica

El usuario y contrasea por defecto para ingreso al sistema son los siguientes:
Usuario:admin
Contrasea:palosanto

Configuracin de red
Host: Nombre del Servidor, por ejemplo: pbx.example.com
Puerta de Enlace: Direccin IP de la Puerta de Enlace (Gateway)
DNS Primario: (DNS) Primario Direccin IP del Servidor de Resolucin de Nombres
DNS Secundario: Direccin IP del Servidor de Resolucin de Nombres
(DNS) Secundario o Alternativo.

Creando una extensin


soportadas: SIP, IAX2, ZAP y
Custom.

Generic SIP Device: El SIP es el protocolo estndar para los telfonos VoIP y
ATA. La mayora de telfonos IP soportan SIP.
Generic IAX2 Device: IAX es el protocolo Inter Asterisk Exchange, un
nuevo protocolo apoyado solamente por algunos dispositivos (Por ejemplo, los
telfonos basados en PA1688, y el IAXy ATA).

Configuraciones generales
Opciones del comando Dial (Dial command options)
La mayora de opciones son configuradas en tr, lo cual significa que la persona que
recibe la llamada puede transferirla usando el feature configurado para esta
funcionalidad. La r significa que enviar un ring al llamante y no pasa ningn audio
hasta la llamada sea contestada.

Configuracin de colas
Las colas consisten en grupos de usuarios para los cuales se definen ciertas polticas (o
estrategias) principalmente en lo que tiene que ver con llamadas entrantes.
Una poltica o estrategia define la manera como se distribuyen las llamadas entrantes a
la cola entre los miembros o agentes.
ringall: ring all available channels until one answers (default)
roundrobin: take turns ringing each available interface (deprecated in 1.4, use
rrmemory)
leastrecent: ring interface which was least recently called by this queue
fewestcalls: ring the one with fewest completed calls from this queue
random: ring random interface
rrme

Grabacin de mensaje de bienvenida


Antes de Crear un IVR es necesario tener un mensaje de bienvenida. Por lo tanto hay
que grabar uno cargar uno ya existente.
Para acceder a este mdulo dirjase al Men PBX, aparecer por defecto la seccin
Configuracin PBX, en el panel izquierdo escoja la opcin System Recordings
(Grabaciones del Sistema).
Configurar un IVR de bienvenida

Salas de conferencias
Primero hay que aclarar que en Elastix se pueden administrar dos tipos de cuartos de
conferencia: Los cuartos de conferencia permanentes y los cuartos de conferencia
temporales. El primer tipo se puede administrar bajo el men PBX => PBX
Configuration => Conferences, mientras que el segundo se puede administrar bajo el
men PBX => Conferencias.
Los campos requeridos para agregar una conferencia son:
Nombre de la Conferencia: Necesario para identificar la conferencia
Nmero de la conferencia: Se provee un nmero aleatorio para la conferencia
usted puede cambiarlo si no est siendo usado por otra conferencia
Tiempo Inicio (PST/PDT): Tiempo de inicio de la conferencia
Mximo Participantes:
No se podrn invitar ms participantes una vez se
completo el nmero mximo de participantes.

Parqueo de llamadas
Un lote de llamadas es una extensin virtual con msica en espera. Es decir que si se
llama a esta extensin oiremos msica en espera. A esta accin se le llama parquear una
llamada.
Enable Parking Lot Feature:
Seleccionando esta opcin con un visto se habilitarn la funcionalidad de parqueo de
llamadas.
Parking Lot Extension:
Indica la extensin que servir para parqueo de llamadas. Generalmente indica el primer
slot de canales de parqueo.
Number Slots:
Indica el nmero de slots disponibles para parquear llamadas.
Parking Timeout:
El perodo de tiempo que una llamada puede permanecer parqueada. Si se alcanza este
tiempo se intentar retornar la llamada al origen.
Parking Lot Context:
Este es el contexto para las llamadas parquedas. Por defecto este contiene el contexto
parkedcalls y no deber ser cambiado.
Destination for Orphaned Parked Calls:
Indica el destino de una llamada cuando la llamada no puede ser parqueada y el
llamador orginal tampoco puede ser alcanzado. Los destinos posibles pueden ser: Un
anuncio, un IVR, Terminar la llamada, una extensin, una cola, una conferencia una
aplicacin personalizada.

Msica en espera
En esta seccin se puede configurar el Music On Hold que debera ser tocado, cuando
se coloca una llamada en espera. Se pueden configurar varios archivos de audio y
pueden ser usados en Colas.
Upload a .wav or .mp3 file:
Simplemente mediante el botn browse selecciono el archivo .mp3 .wav. Luego hago
clic en upload y debera aparecer el archivo disponible en la lista de archivos de
MOH que se muestran debajo de la opcin de cargado de archivo.

Flash Operator Panel (FOP)


El Flash Operator Panel del Men PBX del Elastix es un manejador en flash de
extensiones en Asterisk para monitorear los canales y terminales que se producen en un
servidor con Asterisk. Es una herramienta muy til para una recepcionista o para
cualquiera que quiera tener una visin grafica del funcionamiento telefnico de la
empresa.

Funciones de transferencia de llamadas


Por omisin Elastix viene configurado la funcionalidad de transferencia de llamada de
la siguiente forma:
Transferencia ciega
Para trasferir una llamada de una manera ciega se debe digitar: ## seguido del nmero
de extensin a donde se va a transferir la llamada.
Transferencia atendida
Para transferir una llamada de manera atendida se debe digitar: *2, seguido de la extensin.
Si desea cambiar estos
/etc/asterisk/features.conf
features es necesario modificar el archivo

Configuracin de hardware
Tipos de tarjetera y fabricantes

Analgico
o FXO(ROJOS) Digital
o FXS (VERDES) o E1/T1/J1
Nota: En caso de instalar hardware FXS es muy o BRI
comn que se requiera
conectar un cable de poder a la tarjeta pues hay
que recordar que las interfaces
FXS deben proveer potencia elctrica a los
dispositivos que se conecten a ella.

Deteccin de hardware
Esta interfase se puede acceder desde el men System Hardware Detector. Para
detectar nuevo hardware basta con presionar el botn Detectar Nuevo Hardware.

Configuracin de interfaces digitales a bajo nivel


Configuracin de los drivers de Zaptel
Como ya habamos visto en el archivo zaptel.conf se configura la tarjetera o
hardware presente en el servidor; al menos los dispositivos que usan los drivers Zaptel.

Configuracin de troncales
zapata.conf
Asterisk cuenta con un mdulo llamado chan_zap que sirve para conectarse con los
drivers de Zaptel y de esta manera conectar Asterisk con hardware telefnico. Este
mdulo se configura a travs de un archivo llamado zapata.conf
Algunos parmetros importantes
signaling
define la sealizacin de cada canal o grupo de canales. Lo ms comn
que veremos para circuitos analgicos ser fxs_ls y para circuitos digitales pri_cpe
switchtype
Este parmetro es para circuitos digitales y especifica el tipo de switch PRI usado.

Algunos cambios que se darn con el cambio de Zaptel a DAHDI


cambios de nombre a tener en cuenta
Personalizando los archivos de configuracin TELEFONOS
Existen ocasiones en que es necesario personalizar ciertos parmetros en los archivos de
configuracin para los telfonos IP. Se piensa hacer una interfaz para ello en versiones
futuras, pero para alguien que tiene conocimientos de Linux podr hacerlo editando los
archivos plantillas de configuracin que estn en la ruta de la central Elastix
/var/wwww/html/modules/endpoint_configuration/libs/vendors/

Ruteo de llamadas
Rutas Entrantes
Esta opcin permite configurar el destino de las llamadas que ingresan por una
determinada troncal. Cuando una llamada ingresa al servidor, Asterisk puede darse
cuenta si coinciden el DID el CallerID de la troncal el nmero de la troncal en caso
de que sea una de tipo ZAP con la informacin de la llamada entrante.
DID Number:
Para un peer de tipo SIP IAX, el DID es proporcionado por el proveedor y
generalmente esta asociado al nmero de cuenta. Por ejemplo si su cuenta es
'85679432', poniendo este dato en el campo DID, las llamadas entrantes deberan
matchear esta informacin y dirigirse al destino configurado.
Caller ID Number:
El CID Number es el Caller ID que es recibido por Elastix. Este dato no es confiable ya
que es fcilmente spoofable. Al dejarlo en blanco matchea cualquier Caller ID.

Rutas Salientes
Mediante las rutas salientes podemos indicar por que troncal troncales deben ser
enviadas las llamadas.

Dial Patterns:
Patrn
X Representa cualquier dgito de 0-9
Z Representa cualquier dgito de 1-9
N Representa cualquier dgito de 2-9
[1237-9] Representa cualquier dgito entre corchetes
. Representa uno o ms caracteres
| Separa el nmero ubicado a la izquierda del nmero
marcado.
Por ejemplo: 9|NXXXXXX debera
representar los nmeros marcados como 92234567
pero slo debera pasar 2234567

Troncales
Una troncal es aquella que permite llevar una llamada a cualquier proveedor de servicio
de voz a cualquier dispositivo que reciba su intento de llamada y la gestione a otro
destino. Alguno de los tipos de troncales son:
ZAP
IAX2
SIP
Custom

Outbound Caller ID:


En esta opcin especificamos el caller ID con el que se quiere que salga una llamada
que es colocada en esta troncal.
Troncales de tipo IAX y SIP

Funcionamiento freePBX

freePBX es un poderoso software de configuracin de Asterisk que ha sido integrado


como parte de la distro Elastix.

software que se encarga de generar


los archivos de configuracin de Asterisk incluido el plan de marcado en base a la
configuracin ingresada por el usuario desde el Web.

Para realizar esta difcil tarea freePBX la divide en dos pasos:

1. Recaba la configuracin deseada por el usuario en una base de datos de


configuracin. En el caso de Elastix se usa el motor de base de datos MySQL.

2. Luego convierte esa informacin almacenada en MySQL principalmente en


archivos de configuracin a travs de una herramienta de parsing llamada
retrieve_conf

Organizacin de archivos
/var/www/html/admin/ El directorio principal donde reside el
GUI de freePBX
/var/www/html/panel/ Directorio del Flash Operador Panel. En
realidad se trata de otro proyecto independiente pero relacionado.

/etc/asterisk/ El directorio donde residen los archivos de


configuracin de Asterisk que escribe

/var/lib/asterisk/agi-bin/ Aqu residen los scripts AGI de Asterisk.


freePBX cuenta con algunos scripts en esta carpeta como el dialparties.agi
/var/lib/asterisk/bin/ Algunos binarios utilizados por freePBX. Algunos de ellos son links
simblicos a las carpetas de los mdulos
/var/lib/asterisk/sounds/ Aqu residen los sonidos que se utilizan en el plan de marcado por
freePBX
/var/lib/asterisk/sounds/custom/ Aqu residen los sonidos que han sido creados por el usuario.
Por ejemplo cuando se crea un IVR de bienvenida

/usr/local/sbin/ Aqu reside el script amportal. Se encuentra en esta carpeta porque puede ser
manipulado solo por root

/var/spool/asterisk/voicemail/ Directorio donde voicemails


/var/spool/asterisk/monitor/ En este directorio se almacenan las grabaciones de voz
/var/log/asterisk/cdr-csv/ Directorio donde se escriben los CDRs en formato texto

Configuracin
amportal.conf
El archivo /etc/amportal.conf es un archivo de texto plano ledo por freePBX para recabar
informacin general de configuracin.

retrieve_conf: generador del plan de marcado


retrieve_conf es un programa escrito en PHP que se encarga de generar el plan de
marcado a partir de la informacin almacenada en la base de datos.

dialparties.agi
Se trata de un script AGI, escrito en PHP, que se invoca desde el plan de marcado
cuando se quiere hacer una llamada.

Estructura de un mdulo de freePBX


Los mdulos de freePBX tienen la siguiente estructura mnima de archivos.

module.xml Contiene informacin del mdulo en formato XML


page.nombredelmodulo.php Es el archivo principal del mdulo escrito en PHP. Como es de
imaginar, la palabra nombredelmodulo debe ser reemplazada por el respectivo nombre del mdulo.
functions.inc.php Se trata bsicamente de una librera de funciones PHP. Funciones tanto para
uso del mdulo como para que puedan ser compartidas por otros componentes de freePBX
install.sql Contiene sentencias SQL que se ejecutarn sobre la base de datos al instalar el
mdulo. Bsicamente para crear las tablas necesarias para el mdulo
uninstall.sql Contiene las sentencias SQL necesarias para desinstalar el mdulo. Bsicamente
para remover las tablas creadas
install.php Script PHP para ser ejecutado al momento de instalacin del mdulo
uninstall.php Script PHP para ser ejecutado al momento de desinstalacin del mdulo

Calidad de voz
Sntomas que afectan la calidad de voz

Eco
El eco es uno de los sntomas ms comunes y es muy fcil reconocerlo. Se produce
cuando una parte de la seal de ida se refleja en la seal de vuelta.
Hay algunas causas del eco pero una de las ms comunes se produce en las lneas
analgicas cuando se combinan las seales en el convertidor hbrido o convertidor de 2
4 hilos ya que es muy difcil separar las seales de ida y de vuelta de manera eficaz.
El problema se agrava cuando la impedancia de la lnea telefnica vara mucho.
in embargo, existe una forma de acoplar estas impedancias lo mejor posible.
Para lneas con problemas se recomienda ejecutarlo en horas no laborables una
vez por semana. El comando es el siguiente.
fxotune -i 5
hacer prueba y error enviando una seal pura por
la lnea y escuchando el retorno. Esto lo hace muchas veces para cada lnea hasta
encontrar el mejor valor de ganancia, el cual escribe en un archivo ubicado en
/etc/fxotune.conf hacer prueba y error enviando una seal pura por
la lnea y escuchando el retorno. Esto lo hace muchas veces para cada lnea hasta
encontrar el mejor valor de ganancia, el cual escribe en un archivo ubicado en
/etc/fxotune.conf
fxotune -s

Bajo nivel o volumen


Muchas redes telefnicas de baja calidad atenan la seal de manera significativa
haciendo que oigamos un volumen muy bajo.
El parmetro para modificar la ganancia de la seal de transmisin se llama txgain y
el que sirve para modificar la ganancia de la seal de recepcin se llama rxgain.
Ambos se pueden modificar en el archivo zapata.conf.
Retardo
El retardo no es otra cosa que la demora de la voz en llegar a destino. Usualmente el
retardo es menor a un segundo y si es menor a 200 ms pasa casi desapercibido.

Distorsin de la voz
En esta categora recaen diferentes problemas. Sin embargo uno comn es el de los
usuarios que reportan algo como se escucha robotizado.

Comunicacin entrecortada
Un problema muy molestoso por cierto que normalmente est relacionado con la
prdida de paquetes. A su vez la prdida de paquetes puede ser causada por diferentes
problemas en la red, siendo el ms comn el de redes con una latencia elevada o ancho
de banda limitado.
Por lo general si la latencia de la red es siempre (no hablo del promedio) de menos de
150 ms y el canal de comunicaciones no se encuentra saturado podemos estar tranquilos
de que los problemas de comunicacin entrecortada no nos quitarn el sueo.

Jitter
El jitter es un parmetro muy importante cuando se habla de calidad de voz en redes de
paquetes. El jitter se define como la variabilidad del retardo y normalmente est en el
orden de los milisegundos.
Este parmetro es necesario para analizar la calidad de voz pues conocer que tenemos
un promedio de retardo bajo no es suficiente para garantizar una buena calidad. Por
qu?

Cmo medir la calidad de voz


En efecto existen algunos intentos de estandarizar la medicin
de la calidad de voz. Uno de los ms conocidos es la famosa escala MOS que se basa en
mediciones subjetivas y tambin se encuentra el modelo E que ya pone en el tapete
algunos parmetros objetivos como el retardo o la prdida de paquetes.
Escala MOS
La escala MOS es realmente una recomendacin de la ITU. Especficamente la
recomendacin ITU-T P.800 y describe una escala de calidad de voz basada en la toma
de muestras subjetivas que se realizan con una serie de tcnicas llamadas ACR
(Absolute Category Rating).

Modelo E
El modelo E es un modelo ms matemtico y objetivo de medicin de la calidad de voz
basado en algunos parmetros de red como el retardo, el jitter y la prdida de paquetes.

el modelo E dice que la calidad de voz queda


representada por un parmetro R. Luego veremos como traducir ese parmetro R a la
escala MOS, pero primero veamos cmo se calcula R.
R=R0ISIdIe+A
Donde,
R 0 es la relacin seal-a-ruido (signal-to-noise ratio)
I S es la degradacin por conversin (la degradacin que sufre la seal en su conversin
a un formato paquetizado para poder transmitirla en una red de paquetes)
I d representa el retardo
I e representa la degradacin introducido por los equipos de red. Bsicamente este factor
depende del codec y de las prdidas de red

Canceladores de eco
Cmo funciona un cancelador de eco?
Es muy importante saber cmo funcionan los canceladores de eco para entender cmo
sacarles el mximo provecho y quin sabe, para tener las bases para disear el nuestro
propio o modificar alguno existente. A fin de cuentas estamos hablando de cdigo
abierto verdad?
Un cancelador de eco parte de un principio lgico muy sencillo. Si se refleja una parte
de la seal de ida en la de regreso, entonces para eliminar el eco debera bastar con
restar la seal de ida (en cierta proporcin) a la seal de regreso.

El estndar G.168
Hace algunos aos el ITU lanz una especificacin que define los parmetros de lo que
debe ser un cancelador de eco. Podramos decir que el documento es una
recomendacin. Por lo tanto, si un cancelador de eco est en concordancia con dicha
recomendacin se dice que es G.168 compatible (compliant with G.168). Sin embargo,
G.168 es una especificacin tcnica compleja y no es cosa fcil determinar si un
cancelador de eco es compatible o no. Existen empresas inclusive que se dedican al
trabajo de revisar si un cancelador de eco es compatible o no con G.168.

Protocolos VoIP al descubierto

Protocolo SIP
El protocolo SIP (Session Initialization Protocol) es un protocolo de sealizacin
(application-layer control) creado para administrar sesiones multimedia entre dos o ms
partes. Muchos se confunden pensando en que el protocolo SIP es quien transporta la
voz propiamente dicha pero no es as, esta labor la realiza otro protocolo que veremos
ms adelante; de lo que s se encarga SIP es de la comunicacin necesaria para
establecer una llamada, modificarla, as como para finalizarla.
El protocolo SIP fue diseado con la premisa de la simplicidad en mente, se trata de un
protocolo de texto con mensajes de comunicacin sencillos. Inclusive SIP comparte
algunos cdigos de estatus con HTTP como el familiar 404: Not found
Detalles del protocolo
RTP es el portador de la voz y el video.
SDP se usa para negociar las capacidades de los endpoints.
Usa dos importantes protocolos como RTP/RTCP y SDP.
La ltima versin del estndar es la RFC3261.
Basado en texto, lo que nos permite entender los mensajes de una manera
relativamente fcil.
Mtodos

INVITE Invita a un usuario a una llamada


ACK Facilita el confiables
BYE Termina una conexin entre usuarios o
declina una llamada
CANCEL Termina un requerimiento o bsqueda por
un usuario
OPTIONS Solicita informacin acerca capacidades del servidor SIP
REGISTER Registra una ubicacin de usuario
INFO Usado para sealizacin en mitad de sesin. Para intercambiar informacin

RESPUESTAS
1xx Informational (e.g. 100 Trying, 180 Ringing)
2xx Successful (e.g. 200 OK, 202 Accepted)
3xx Redirection (e.g. 302 Moved Temporarily)
4xx Request Failure (e.g. 404 Not Found, 482 Loop Detected)
5xx Server Failure (e.g. 501 Not Implemented)
6xx Global Failure (e.g. 603 Decline)

Protocolo IAX
El protocolo IAX (Inter-Asterisk eXchange) es un protocolo de sealizacin creado por
Mark Spencer, el mismo creador de Asterisk, con el objetivo de solucionar algunos
problemas existentes con otros protocolos. El protocolo todava no es un estndar pero
pretende serlo a travs de un proceso de estandarizacin en la IETF.
En esencia IAX presenta tres ventajas muy interesantes sobre otras alternativas como
SIP.
Consume menos ancho de banda
Soluciona mejor problemas de NAT
Pasa ms fcilmente a travs de firewalls
Si reflexionamos acerca de estas ventajas nos daremos cuenta rpidamente que resultan
perfectas para troncalizacin entre dos servidores Elastix. En otras palabras, es
recomendable el uso de IAX para interconectar dos o ms servidores Elastix entre si.

Fases de una llamada IAX


Una llamada IAX tiene tres fases:
Establecimiento de la llamada
Para iniciar una llamada el equipo que la inicia (equipo A) le enva un mensaje NEW al
equipo B y ste ltimo responde con un mensaje ACCEPT.
Llamada en curso
Si se contest la llamada se inicia el intercambio de audio mediante unos paquetes
llamados frames
Colgado
Para terminar la llamada cualquiera de las partes involucradas debe enviar un mensaje
HANGUP.
Frames IAX
Para intercambiar el audio entre los participantes de la llamada se utilizan dos tipos de
frames llamados Full y Mini. Tambin se les suelen llamar F y M.
Una conversacin est compuesta en su mayora por frames tipo Mini cuya virtud es
(como su nombre lo sugiere) ser ligeros. Esto quiere decir que tienen una cabecera
pequea (de 4 bytes), lo cual ayuda a ahorrar ancho de banda. De cuando en cuando se
intercambian frames tipo Full, los cuales conllevan adicionalmente informacin de
sincronizacin para mantener sincronizados a ambos puntos.

Protocolo RTP
RTP es el protocolo que se encarga de transportar la voz propiamente dicha. Muchas
personas se confunden y piensan que ese es el trabajo de SIP pero no es as. Una vez
que SIP establece una llamada es RTP quien toma la posta para transportar la voz a su
destino.
RTP trabaja sobre UDP y por lo tanto no hay mucho control de transmisin. Es decir
que el equipo emisor enva la voz hacia el otro extremo con la esperanza de que llegue,
pero no espera recibir confirmacin de esto y a decir verdad tampoco hay tiempo para
hacerlo pues la voz necesita ser transmitida en tiempo real. Si un paquete de voz se
Estructura de un paquete RTP
Un paquete RTP se compone de un encabezado y la data (o payload). En encabezado
contiene alguna informacin interesante

Ahora s pasemos a explicar qu informacin contiene un encabezado RTP.


V es el nmero de versin. Este campo es de 2 bits de longitud y su valor
contenido siempre es el nmero 2.
P o padding es un bit que indica si hay relleno al final de la data o no. Si el bit
est en uno quiere decir que si hay relleno. El relleno no es otra cosa que bytes
adicionales al final del payload.
X o extensin es un bit que indica si hay extensin del encabezado
CC es un identificador de 4 bits que indica el conteo CSRC
M o marcador de un bit
PT o tipo de carga til (Payload Type) es un identificador de 7 bits que nos
indica el tipo de carga til que contiene este paquete RTP. Ejemplos de tipos son
G729, GSM, PCMU (G711 u-law), entre otros.
Nmero de Secuencia (sequence number) es un nmero entero que identifica
cada paquete del presente flujo de datos. Este es un identificador secuencial que
se incrementa en uno con cada paquete transmitido. Ocupa 16 bits.
Timestamp representa el instante de tiempo (en formato timestamp) en el que se
comenz a muestrear la data que est siendo transmitida en el payload. Ocupa 32
bits.
SSRC identifica la fuente de sincronizacin ya que el mismo equipo puede estar
hablando con diferentes fuentes de paquetes RTP. Es un nmero aleatorio de
32 bits por lo que hay la posibilidad (aunque la probabilidad es baja) de que este
nmero se repita entre dos fuentes. Existen mecanismos para resolver este
problema.
CSRC es un nmero de 32 bits que identifica las fuentes contribuyentes para el
payload

Interpretando el log

que tanto el nivel de detalle, as como el tipo de


informacin que se escribe en los archivos de log son controlados desde el archivo
/etc/asterisk/logger.conf.
Donde los niveles de debugging pueden ser los siguientes:
debug
notice
warning
error
verbose

El archivo /var/log/asterisk/full
Como vimos en el ltimo ejemplo, por omisin en Elastix tenemos un archivo de log
llamado full donde Asterisk escribe informacin de su funcionamiento.

Observar el log interactivamente Si queremos ver interactivamente solo los


tail -f /var/log/asterisk/full errores podemos aadir el siguiente filtro.
tail -f /var/log/asterisk/full | grep ERROR
Si queremos adems ver los WARNINGs
podemos modificar ligeramente el filtro de la
siguiente manera.
tail -f /var/log/asterisk/full | grep -E
"(ERROR|WARENING)"

Control externo de Asterisk


Asterisk AGI
AGI (Asterisk Gateway Interface) es una manera de interactuar con Asterisk desde un
programa de lnea de comandos. Este programa puede ser escrito en prcticamente
cualquier lenguaje y es invocado por Asterisk desde el dialplan.
Los programas o scripts AGI son muy populares y Elastix viene con algunos
preinstalados en la carpeta /var/lib/asterisk/agi-bin/
Ejecucin de scripts AGI
Los scripts AGI se comunican con Asterisk a travs de STDIN, STDOUT y STDERR.

Algo muy importante a notar es que los scripts AGI deben ser ejecutables por el usuario
asterisk as que es bueno asegurarse de que esto suceda.
# chown asterisk.asterisk script_prueba.agi
# chmod 755 script_prueba.agi
Luego de esto ya podemos ejecutar el script AGI desde el dialplan para que haga algo
til. Esto se lo hace gracias a la funcin AGI(). A continuacin un ejemplo.
exten => 6789,1,Answer
exten => 6789,2,AGI(script_prueba.agi)

Ejemplo sencillo de script AGI


Lo que haremos ser algo muy bsico, un script que reproduzca un nmero cuando
marquemos una extensin determinada. A continuacin el cdigo en PHP.

#!/usr/bin/php -q
<?php
echo "SAY NUMBER 1234 \n";
sleep(4);
?>

Asterisk AMI
AMI (Asterisk Manager Interface por sus siglas en ingls) es una manera de
comunicarse con Asterisk a travs del protocolo IP. Digamos que es un concepto similar
a AGI pero mientras que AGI est pensado para comunicaciones locales AMI puede ser
ejecutado desde equipos remotos. Es esto ltimo lo que lo convierte en una herramienta
poderosa.
Gracias a AMI se pueden desarrollar poderosas aplicaciones cliente que pueden
ejecutarse en otros computadores, liberando con esto de carga al servidor Asterisk.
Debido a que a travs de AMI equipos remotos estn en la capacidad de controlar
Asterisk se requiere que estos equipos se autentiquen. Estos usuarios, claves y permisos
se definen en un archivo llamado manager.conf

Probando desde telnet


No necesitamos de un programa sofisticado para probar si podemos interactuar con el
AMI. Una manera sencilla de hacerlo es a travs del programa telnet disponible en
casi cualquier computador.
Primero nos conectamos al propio servidor Elastix a travs de una sesin telnet. Para
esto ejecutamos lo siguiente desde la lnea de comandos.

[root@elastix ~]# telnet 127.0.0.1 5038


SEGUNDO TOMO
variable como ${EXTEN} y eliminar

algunos dgitos al principio del nmero ya que estos muchas veces son prefijos
telefnicos.
La sintaxis usada para eliminar dgitos al inicio y/o al final de una variable es
${EXTEN:x:y}

Donde x representa el nmero de dgitos que se eliminarn al principio


y representa el nmero de dgitos que se extraern de dicha variable

Para concatenar dos o mas variables simplemente debemos escribirlas juntas


exten => s,n,SetVar(VAR_CONCAT=${VAR1}${VAR2}${VAR3})

Expresiones
Una expresin es una combinacin de variables y operadores que producen un
resultado.

Las macros no son otra cosa que aplicaciones definidas por el usuario. Una de las
grandes ventajas de esto es que nos permiten reutilizar cdigo de plan de marcado.

Veamos a continuacin la definicin de una macro muy usada en el plan de marcado


propuesto por freePBX y que sirve para colgar una llamada.

; What to do on hangup.
[macro-hangupcall]
exten => s,1,ResetCDR(w)
exten => s,n,NoCDR()

Aparte de los argumentos del tipo ${ARGn} existen otras variables disponibles en el
contexto de una macro. Estas variables son las siguientes.
Nombre variable
${MACRO_CONTEXT} Descripcin
${MACRO_EXTEN} La extensin desde donde se llam a la
macro
${MACRO_PRIORITY} La prioridad en la extensin donde se
llam a la macro
El contexto de la extensin desde donde
se llam a la macro

AstDB
Asterisk cuenta con una pequea base de datos a la que se puede acceder desde el plan
de marcado a travs de algEl CID Number es el Caller ID que es recibido por Elastix. Este dato
no es confiable ya
que es fcilmente spoofable. Al dejarlo en blanco matchea cualquier Caller ID.
SEGUNDO TOMOunas aplicaciones destinadas a este fin.
reside en /var/lib/asterisk/astdb

Aplicaciones para administrar AstDB


A continuacin algunas aplicaciones que nos servirn para administrar AstDB desde el
plan de marcado.
Aplicacin Descripcin
DBdel Elimina una clave de la base de datos
DBdeltree Elimina una familia de la base de datos
DBget Obtiene un valor de la base de datos. Para
esto debemos proporcionarle la clave
correspondiente.
DBput Almacena un valor en la base de datos

El plan de marcado escrito por freePBX reside principalmente en los archivos


extensions.conf y extensions_additional.conf

Macro
[macro-dial] Descripcin
[macro-exten-vm] Timbra a una extensin y si dicha extensin est
ocupada o no contesta enva la llamada al casillero de
voz (voicemail)
[macro-vm] Llama sistema de casillero de voz y permite acceder a
un IVR personal
[macro-rg-group] Timbra grupos de telfonos (ring groups)
[macro-outisbusy] Informa al cliente que los canales de salida estn
ocupados
[macro-hangupcall] Cuelga una llamada. Bsicamente resetea los CDRs
antes de colgar.
[macro-dialout] Permite marcar hacia afuera y elimina el prefijo.
[macro-record-enable] Revisa si una llamada tiene habilitada la grabacin de
llamadas y procede a la grabacin de ser el caso
Se usa para timbrar a una o ms extensiones. Toma
como argumentos las variables $DIAL_TIMER,
$DIAL_OPTIONS, $EXT1, $EXT2, $EXT3, etc

extensions_additional.conf
Prcticamente cada entidad o caracterstica configurable desde la interfase Web de
freePBX est especificada aqu. Por ejemplo, en este archivo se definen los servicios,
las salas de conferencia, las extensiones mismas, los IVRs, los accesos DISA, las rutas
salientes, las rutas entrantes, las colas, los ring-groups, etc.

Trataremos de dar una idea al lector de qu significan los diferentes contextos que aqu
se pueden encontrar.
Cmo proceder
extensions.conf?

No es recomendado cambiar el archivo extensions.conf debido a que freePBX


podra sobrescribirlo durante una operacin de actualizacin. Qu hacer entonces?

Existe un archivo llamado extensions_override_freepbx.conf que puede


ser utilizado para este fin.

Arquitectura del sistema de email


Un sistema de correo electrnico est conformado por varios componentes. Los
principales son el MUA (Mail User Agent), el MTA (Mail Transfer Agent) y el MDA
(Mail Delivery Agent)

El MUA es el programa con el que se genera el correo electrnico y generalmente


reside en el computador del cliente, por ejemplo el Microsoft Outlook

Elastix utiliza como MTA al Postfix y como MDA al Cyrus IMAP, quien tambin
provee los servicios de POP e IMAP.
Configurando el sistema de correo
electrnico de Elastix

1 se debe elegir el men Email y luego la opcin Domains


Para crear un nuevo dominio se utiliza el botn Create Domain
2 El siguiente paso es crear las cuentas de correo electrnico. Para ello, en el mismo men
Email se debe elegir la opcin Accounts.
Si alguna de las cuentas de correo que han sido creadas ser utilizada en un cliente de
correo como Microsoft Outlook, Mozilla Thunderbird u otro similar, se le deber
indicar al servidor cuales son las direcciones de red a las que se les permitir enviar
correos hacia dominios que no han sido configurados como locales. Este proceso de
envo de correos a dominios externos se conoce como RELAY y para permitir nuevas
direcciones de red se debe elegir la opcin Relay en el men Email, aparecer un
listado de las direcciones que actualmente tienen el permiso mencionado.

EDICION EN COMANDOS
Para cambiar una opcin del Postfix se debe editar el archivo /etc/postfix/main.cf y
buscar la opcin requerida,

Smart Relay, se configurar la opcin relayhost para que


tenga el valor smtp-gw.myisp.net, para ello se agregar la lnea:
relayhost = [smtp-gw.myisp.net]

se debe aplicar los cambios

# service postfix reload


# service postfix restart

ANTIVIRUS
/var/run/clamav/
Editar el archivo de configuracin de /etc/clamsmtpd.conf
Se debe editar
el archivo /etc/postfix/main.cf

Tambin se debe editar el archivo /etc/postfix/master.cf

Y finalmente se debe reiniciar el servicio del Postfix:


# service postfix restart

Mensajera Instantnea
Protocolo XMPP (Jabber)

Openfire
Openfire es un completo sistema de mensajera instantnea que nos permite disponer de
un servicio de mensajera instantnea

Integracin de Openfire con Asterisk


Openfire cuenta con un plugin que nos permite integracin con Asterisk.
El plugin para integracin con Asterisk recibe el nombre de Asterisk-IM y su
instalacin es muy sencilla. Nos dirigimos al men Plugins -> Available Plugins y
damos clic sobre el botn verde a la derecha de la fila correspondiente al plugin
Asterisk-IM.

En todo caso para crear un nuevo usuario AMI podramos agregar las siguientes lneas
al manager.conf
El parmetro Port debe llenarse con 5038

Fax en Elastix
Hylafax e IAXModem
Elastix usa una particular combinacin de software para el manejo de documentos de
fax.
IAXModem es un paquete de software que simula ser una extensin IAX por el lado de
Asterisk y por el lado de HylaFax simula ser un modem serial.
lastix*CLI> iax2 show peers
Name/Username Host Mask Port Status 620 127.0.0.1 660 (Unspecified) (D) 255.255.255.255
40001 OK (2 ms)

Configuracin de Fax en la interfase


Web de Elastix
Listado de Fax Virtual
La opcin Listado de Fax Virtual del Men FAX
Protocolo T.38
Si vamos a trabajar con tecnologas de FAX en algn momento nos toparemos con el
trmino T.38. El protocolo T.38 es un protocolo recomendado por la ITU que sirve para
transportar FAX sobre redes IP.

Si nos ponemos a pensar, una manera de transportar fax sobre redes IP sera transportar
la seal de FAX como si fuera audio o voz a travs de los protocolos de Voz sobre IP ya
existentes en la actualidad, y en efecto esta es una manera de hacerlo. Sin embargo, esta
no es la manera ms adecuada en algunos casos pues, a diferencia de la voz, el FAX es
mucho ms sensible a errores de transmisin y por ejemplo una red con un nivel de
prdida de paquetes que pueda sonar aceptable para la transmisin de voz es probable
que resulte en inaceptable para la transmisin de FAX pues el documento podra llegar
ilegible o simplemente no llegar.
61El protocolo T.38 es quien resuelve estos problemas usando algunas tcnicas
interesantes como la redundancia de paquetes. Es decir que por cada paquete enviado a
travs de la red es probable que se enven algunas copias por si alguno se pierde en el
camino.

Sintetizacin de voz
Sintetizacin de voz es la tecnologa que permite convertir el texto a audio. Tambin se
conoce como TTS debido al trmino Text-To-Speech (texto-a-habla en ingls).

[root@elastix ~]# festival --tts archivo1.txt


[root@elastix ~]#festival tts echo Hola Mundo, este es un ejemplo
[root@elastix ~]# text2wave archivo.txt -o archivo.wav

Cmo interactuar con Festival desde el plan de marcado


|
La sintaxis de la aplicacin Festival es la siguiente.
Festival(text[|intkeys])

Reconocimiento de voz
Existes algunas definiciones de lo que es el reconocimiento de voz, por ejemplo se
define como el proceso en el un sistema computacional reconoce lo que un ser humano
le dice. Generalmente, este reconocimiento representa una orden que deber ejecutar el
computador.
Lumenvox
LUMENVOX aunque usa algunos de los fundamentos del reconocimiento de voz, es
diferente ya que no trata de identificar a individuos, ms bien trata de identificar lo que
ste dice.

Instalar la Licencia
Para realizar esto es necesario ejecutar el siguiente comando:
/usr/bin/lv_license_manager -g path

donde path es la ruta


completa del archivo server ID.

Por ejemplo, si deseo crear el archivo server ID en el directorio root/LumenVox, debera


tipear: /usr/bin/lv_license_manager -g /root/LumenVox/Info.bts

Desempeo de Elastix
El desempeo de un servidor Elastix es un asunto muy complejo de analizar. En muchos
casos interesa conocer los resultados y recomendaciones principalmente desde el punto
de vista de una PBX, es decir de desempeo de Asterisk, puesto que es uno de los
componentes ms populares.

Factores que afectan el desempeo de Elastix

Transcoding
El Transcoding se da cuando por un lado la llamada llega con un codec determinado y
sucede que la llamada tiene que ir hacia un punto donde se utiliza otro codec distinto.

Dimensionamiento telefnico
Determinando el nmero de lneas telefnicas necesarias
Agner Krarup Erlang
Erlang fue un ingeniero y matemtico dans quien desarroll a principios del siglo 20
las tcnicas de Ingeniera de Trfico y Teora de Colas.

La unidad Erlang
Antes de ir a las frmulas es necesario introducir un nuevo trmino llamado la unidad
Erlang.

Para calcular el trfico en Erlangs se puede proceder de la siguiente manera:


1. Encontrar el trfico total en horas: Es decir, sumar el tiempo de todas las
llamadas durante un lapso de tiempo cualquiera y convertir este valor a horas
2. Encontrar el trfico por unidad de tiempo (en horas): Es decir, dividir el
total anterior para el lapso de tiempo en horas
FORMULA

Distribuir el plan de marcado


En ocasiones, cuando la instalacin es bastante grande, es deseable dividir el plan de
marcado en ms de un servidor. Para lograr esto nos podemos valer del protocolo
DUNDi.

Encriptando la VoIP
Para evitar escuchas o pichazos telefnicos a nivel de VoIP tenemos la alternativa de
encriptar la comunicacin. Existen algunas opciones que explicaremos a continuacin.
SRTP
El protocolo SRTP (Secure RTP) no se encuentra soportado oficialmente en Asterisk
1.4. Es decir la versin ms reciente de Asterisk que trae Elastix.

Detalles del protocolo


El Secure Real-time Transport Protocol (o SRTP) define un perfil de RTP (Real-time
Transport Protocol), con la intencin de proporcionar cifrado, autenticacin del
mensaje e integridad, y proteccin contra reenvos a los datos RTP

Revisin de logs del sistema


Revisar los logs del sistema siempre es til aunque en muchas ocasiones el hacker
tratar de borrarlos para que no veamos su actividad. En todo caso ver un log borrado
tambin puede ser til pues puede confirmar nuestras sospechas de que el equipo ha
sido vulnerado.
Algunos logs que son interesantes de revisar:

/var/log/messages Por informacin general como nuevos usuarios


creados por el hacker o mensajes de ERROR inusuales
/var/log/maillog Por si el hacker intent ingresar por el servidor de
correos
/var/log/httpd/error_log* - Por si el hacker intent ingresar por el
servidor Apache
La salida del comando dmesg
El historial de comandos ejecutados. Para el usuario actual se puede ejecutar el
comando history

Un ejemplo sencillo de depuracin de Asterisk

[root@elastix ~]# ps aux | grep asterisk

Ahora que sabemos el PID podemos monitorearlo con strace de manera sencilla.
[root@elastix ~]# strace -p 1619
Process 1619 attached - interrupt to quit

Archivos core y backtraces


Muchas aplicaciones dejan archivos core cuando terminan inesperadamente, lo que nos
permite hacer una depuracin post-mortem del software.
En el caso de Asterisk esto es posible cuando se lo inicia con la opcin g. En el caso de
Elastix, Asterisk se inicia por defecto con dicha opcin.
Si no se est seguro que Asterisk haya sido iniciado con la opcin g se puede verificar
con el siguiente comando.
115[root@elastix ~]# ps aux | grep asterisk

Veamos un ejemplo de esto. Primero identificamos el archivo core que necesitamos


examinar, por lo general se trata del ltimo.
[root@elastixtest ~]# ll /tmp/ | grep core

DUNDI

DUNDi TM (Distributed Universal Number Discovery) es un sistema de localizacin de


gateways para el acceso a los servicios de telefona. Utiliza un esquema punto a punto y,
a diferencia de ENUM que es estrictamente jerrquico por que se basa en DNS, DUNDi
no requiere ninguna arquitectura de red en particular ni un esquema jerrquico cliente-
servidor.

En otras palabras DUNDI es capaz de consultar los contextos de otros equipos para
encontrar una ruta hacia determinado nmero.

DUNDi en realidad no realiza una llamada como tal, ya que no es un protocolo de


sealizacin VoIP; mas bien el recibe y proporciona la informacin necesaria para
poder contactar a los equipos independientemente del protocolo VoIP que sea usado.

Certificados de encriptacin

Вам также может понравиться