Está en la página 1de 59

ASTERISK TRAINING

2011
LIMA, JUNIO 2011

DÍA 1: PRIMEROS PASOS

Carlos Laurente
TEMARIO:

DÍA 1: FIRST STEPS

• VoIP
• Asterisk
• Instalación de Asterisk
• Creación de Anexos SIP
• Configuración de teléfonos IP
• Codecs
• Asterisk: First look
• Introducción al Dialplan
• El archivo extensions.conf

Carlos Laurente
VoIP
• VoIP proviene del inglés Voice Over
Internet Protocol, que significa "voz
sobre el protocolo de internet".
• Básicamente VoIP es un método que
toma señales de audio analógicas y las
transforma en paquetes IP, que pueden
ser transmitidos, a través de una red de
datos, hacia una dirección IP
determinada.

Carlos Laurente
PRINCIPALES CARACTERÍSTICAS

• Una de las principales características de la VoIP es que logra


fusionar dos redes, históricamente separadas: las redes de voz y las
redes de datos.
• En las redes convencionales de voz (redes conmutadas), si una
llamada está utilizando un canal, ninguna otra puede utilizar dicho
canal hasta que finalice la llamada.
• Por la misma arquitectura de las redes TCP/IP, por un mismo enlace
se pueden enviar varias llamadas de forma simultánea.
• Si dos sedes de una misma empresa están conectadas a través de
internet ¿Por qué no aprovecharlo?. Se administraría una única red.

Carlos Laurente
VENTAJAS Y LIMITANTES

Carlos Laurente
ASTERISK
• Asterisk es un programa de software libre
(bajo licencia GPL) que proporciona
funcionalidades de una central telefónica
(PBX).
• Es una plataforma telefónica que
revoluciona el mundo de las
telecomunicaciones IP, dentro de sus
principales características esta la
convergencia de servicios que
tradicionalmente se ofrecían por separado.

Carlos Laurente
ASTERISK: COMO PRODUCTO

• Producto de Digium
• Asterisk Business Edition
• Sistemas Embebidos
• Servidores Pre-Construidos
• Soluciones Hosteadas

Carlos Laurente
ASTERISK: COMO PROGRAMA

• Es un sistema telefónico para negocios.


• Desde SoHo a Empresas
• Funciona sobre Linux, BSD, Mac OS X,
Solaris…hasta Windows.
• Voicemail
• Conferencia
• VoIP y TDM
• Asterisk es un B2BUA

Carlos Laurente
ASTERISK: ESCENARIOS

Carlos Laurente
ASTERISK: ESCENARIOS

Carlos Laurente
ASTERISK: ESCENARIOS

Carlos Laurente
ASTERISK: ESCENARIOS

Carlos Laurente
ASTERISK: ESCENARIOS

Carlos Laurente
INSTALACION DE ASTERISK
CONSIDERACIONES PREVIAS: HARDWARE
• En términos de requerimientos, asterisk es similar a aquellas aplicaciones
embebidas y de tiempo real.
• En diseños de grandes aplicaciones es común observar una distribución
de funcionalidades entre múltiples servidores.

Purpose Number of Channels Minimun recommended


Hobby system No more than 5 400-Mhz x86, 256 MB RAM
SOHOa system 5 to 10 1-Ghz x86, 512 MB RAM
Small business system Up to 15 3-Ghz x86, 1GB RAM
Medium to large More than 15 Dual CPU’s, possibly also multiple
system servers in a distributed architecture.
__________________________________________________________________________
a Small Office/home Office=less than three lines and five sets

Carlos Laurente
CONSIDERACIONES PREVIAS: HARDWARE

• Tipos de teléfonos.
• Tipos de líneas externas.
• Codecs que serán soportados.
• Features (como por ejemplo email to voicemail).
• Evitar otros hardware que use muchas interrupciones.

Carlos Laurente
CONSIDERACIONES PREVIAS: SOFTWARE

• Sistema Operativo Linux o similar: Linux es la plataforma principal para


Asterisk y es la que usaremos en esta clase.
Linux Kernel 2.4+ (preferentemente 2.6).
• Compilador GCC: GCC 3.x o superior, 2.96 funciona por ahora, pero no
será soportado por mucho más tiempo.

Carlos Laurente
CONSIDERACIONES PREVIAS: SOFTWARE

• Sistema de Librerías y Aplicaciones:


OpenSSL y sus paquetes de desarrollo para soportar RSA y MD5.
ncurses – para el CLI.
Zlib – librería de compresión.
Curl – permite que Asterisk interactúe con Internet.
Sendmail - voicemail to email.
libnewt y paquetes de desarrollo si instala zttool-dahdi_tool (y muchas
otras utilidades).

Bison
Bison y sus paquetes de desarrollo.

Carlos Laurente
CONSIDERACIONES PREVIAS: SOFTWARE

• Si le falta alguna librería importante para el sistema, nos enviará mensajes


de error a la hora de compilar el código fuente.
• Si lo que le falta es una librería no tan importante, el sistema simplemente
no compiliará los módulos que dependan de esa librería.
• Siempre puede instalar el sistema de librerías y luego recompilar, y el
sistema se ajustará correctamente a los cambios.
• Se recomienda instalar desde las fuentes (evitar paquetes deb, rpm, etc)

Carlos Laurente
COMPONENTES DE ASTERISK

• libpri – Interfaces PRI ISDN T1/E1/J1


• dahdi-linux – Modulos del kernel para acceder a tarjetas de
comunicaciones para líneas analógicas.
• dahdi-tools – Herramientas para configurar y diagnosticar las tarjetas de
hardware.
• asterisk – Código fuente de Asterisk
• asterisk-addons – Módulos extra

Carlos Laurente
LIBPRI

• Es una implementación de la especificación de la interface Primary Rate


ISDN.
 # make clean
 # make
 # make install

Carlos Laurente
DAHDI-LINUX

• Digium Asterisk Hardware Device Interface.


• Contiene los módulos necesarios para que el sistema reconozca y pueda
utilizar las tarjetas telefónicas.
• # make
• # make install

Carlos Laurente
DAHDI-TOOLS

• Digium Asterisk Hardware Device Interface.


• #./configure
• #make menuconfig (opcional)
• #make
• #make install
• #make config

Carlos Laurente
ASTERISK

• El código fuente para Asterisk.


• Es el único componente requerido si su instalación es VoIP pura.

 # ./configure
 # make menuconfig (opcional)
 # make
 # make install
 # make samples
 # make config

Carlos Laurente
ASTERISK-ADDONS

• Debe ser considerado experimental.


• Algunos tienen problemas de licenciamiento.
• Pueden tornar inestables a algunos sistemas.
• Incluye:
o CDR para MySQL.
o Interface simple MySQL.
o Say Polish counting words.
o Plugin MySQL para un motor de configuración en tiempo real.

Carlos Laurente
INICIANDO ASTERISK POR PRIMERA VEZ

• Para iniciar el servicio ejecutamos, en ese orden, las siguientes


sentencias:
o service dahdi start
o service asterisk start
• Para ejecutar comandos dentro de Asterisk, nos conectamos a él:
# asterisk -rvvvvv

Obtendrá un prompt del CLI de Asterisk


CLI>

Carlos Laurente
CREACIONDE ANEXOS SIP
• SIP: Session Initiation Protocol, protocolo del IETF para VoIP, texto y
sesiones multimedia.
● Es principalmente un protocolo de señalización de capa de aplicación
para iniciación, modificación y terminación de sesiones de
comunicación multimedia entre usuarios.
● Principales elementos implicados:
– User Agent (Usuario)
– Registrar y SIP Proxy
● El sector tiende globalmente hacia SIP.

Carlos Laurente
CAPACIDADES DE SIP

• Localización del usuario.


• Disponibilidad del usuario: determinación de la
voluntad del receptor de la llamada de participar en
las comunicaciones.
• Capacidad del usuario: Determinación del medio y
de sus parámetros.
• Gestión de la sesión: transferencia, terminación de
sesiones, modificación de los parámetros de la
sesión desde el propio 'User Agent‘.
• En SIP, el usuario es el 'dueño' de su sesión.

Carlos Laurente
FICHERO SIP.CONF

• Este fichero es creado al momento de la instalación, en el se


definen:
Variables generales de SIP.
Clientes SIP.
Servidores SIP.

Sintaxis:

[general]
variable1=valor1
variable2=valor2
....
register => usuario: password@servidorregistrar
• register => ....

Carlos Laurente
PARAMETROS GENERALES

• allow y disallow: Indican los codecs permitidos/no permitidos.


• dtmfmode: Permite especificar el método por el cual se enviaran los
tonos (digitos pulsados durante la conversación)
• nat: Informa a Asterisk del tipo de NAT en el que se encuentra.
• externip: Dirección Pública tras el NAT.
• context: Contexto por defecto donde entraran las llamadas entrantes
por SIP.
• port: Puerto en el que escuchar (5060 ).

Carlos Laurente
EJEMPLO

[gerencia]
type = friend
host = dynamic
context = users
secret = 12345

Carlos Laurente
PARÁMETROS INDIVIDUALES

• [gerencia]: El nombre de la cuenta. Cuando usted configura su teléfono,


es el “User Name” que ingresa.
• type = friend: Es el tipo de cuenta. Las cuentas “Friend” pueden hacer
llamadas tanto salientes como entrantes.
• host = dynamic: Esto le dice a Asterisk que su teléfono tendrá una IP
dinámica y que deberá registrarse cuando inicie para que Asterisk sepa
dónde encontrarlo.
• context = users: Cuando el teléfono realiza la llamada, comienza a fijarse
por el número llamado en el contexto al que pertenece, dentro del archivo
extensions.conf
• secret = 12345: Esta es la contraseña que usará el teléfono cuando se
loguee en Asterisk para realizar llamadas

Carlos Laurente
CONFIGURACION DE TELEFONOS IP
EQUIPOS TERMINALES:
• Teléfonos IP:
Físicamente, son teléfonos
normales, con apariencia
tradicional. Incorporan un
conector RJ45 para conectarlo
directamente a una red IP en
Ethernet. No pueden ser
conectados a líneas telefónicas
normales.

Carlos Laurente
EQUIPOS TERMINALES

• Adaptadores analógicos IP:


Permiten aprovechar los teléfonos
analógicos actuales, transformando su
señal analógica en los protocolos de
Voz IP.

Carlos Laurente
EQUIPOS TERMINALES

• Softphones:
Son programas que permiten llamar
desde el ordenador utilizando
tecnologías VozIP.

Carlos Laurente
EQUIPOS TERMINALES

• Gateway de Voz:
Permiten interconectar la telefonía
tradicional con la telefonía por IP (Voz
IP).
Se integran con la red telefónica
pública con interfaces analógicos o
enlaces digitales.

Carlos Laurente
CODECS
• La comunicación de voz es analógica,
mientras que la información que
circula por una red de datos es digital.
Por tanto es necesaria una
transformación analógica-digital de la
voz para que esta pueda ser
transportada a través de una red de
datos.

Carlos Laurente
CODER/DECODER

• El proceso de convertir ondas analógicas a


información digital se hace con un
codificador/decodificador, llamado códec.
• Hay muchas maneras de transformar una
señal de voz analógica en digital, todas ellas
gobernadas por varios estándares.

Carlos Laurente
CODECS: USO

• Son usados por Asterisk para:


o Interpretar streams de audio entrantes.
o Codificar audio streams salientes.
• Son cargados dinámicamente por el core cuando son necesarios.
• Son guardados en sus propios módulos (codec_gsm.so, codec_alaw.so)

Carlos Laurente
PRINCIPALES TIPOS DE CODEC

Carlos Laurente
IMPORTANCIA EN LA VoIP:

• Además de la conversión de analógico a digital, el códec comprime la


secuencia de datos. La compresión de la forma de onda representada
puede permitir un ahorro en el ancho de banda. Esto es especialmente
interesante en los enlaces de poca capacidad y permite tener un mayor
número de conexiones de VoIP simultáneamente.
• Otra manera de ahorrar ancho de banda es el uso de la supresión del
silencio, que es el proceso de no enviar los paquetes voz entre silencios en
conversaciones humanas.

Carlos Laurente
CODECS: ANCHO DE BANDA

Carlos Laurente
CODECS: TENER EN CUENTA
• Generalmente, para llamadas dentro de una
LAN Ethernet se recomienda el uso del códec
G.711 ya que un ancho de banda de
100Mbps soporta perfectamente cientos de
conversaciones simultáneas de 64Kbps y la
pérdida de un paquete a 20ms es casi
imperceptible. Sin embargo para enlaces más
lentos, podemos optar por otros codecs.

Carlos Laurente
LINEA DE COMANDOS CLI
• Es la interface humana dentro de Asterisk.
• Le permite a los administradores:
o Consultar por el estado del sistema.
o Recargar y/o reiniciar el sistema.
o Upgradear ciertos valores en tiempo real.
o Muestra la ayuda del sistema sobre comandos,
aplicaciones, funciones, comandos AGI y AMI, y
más...
• Administrado por la PBX Core pero cada módulo
puede agregar comandos CLI.
• Si Asterisk ya está corriendo:
# asterisk –r

• Si desea iniciar Asterisk con el CLI:


# asterisk -c

Carlos Laurente
ASTERISK: FIRST LOOK

DIRECTORIOS INSTALADOS:
• /etc/asterisk: Archivos de configuración.
• /usr/lib/asterisk/modules: Módulos de Asterisk.
• /var/lib/asterisk: AGIs, voces, música en espera.
• /var/spool/asterisk: Voicemail, llamadas programadas
(despertador).
• /var/run: pid-file.
• /var/log/asterisk: Logs (full).
• /var/log/asterisk/cdr-csv: Detalle de llamadas.

Carlos Laurente
ARCHIVOS DE CONFIGURACION:
• Asterisk se configura mediante la edición de archivos de texto,
están guardados por defecto en el directorio
/etc/asterisk
• Todos tienen un nombre del tipo xxxxxx.conf
• Son archivos de texto plano de formato estandard ASCII y
pueden ser editados con cualquier editor de texto estándard.
• Los archivos de configuración de ejemplo se instalan
ejecutando el comando “make samples” durante la instalación.

Carlos Laurente
ASTERISK.CONF
• Es el archivo “master” de configuración.
• Le dice a Asterisk dónde buscar (o crear) el resto
de los archivos de configuración y estructuras.
• Asterisk espera que asterisk.conf esté en
/etc/asterisk a menos que diga lo contrario al
iniciar asterisk
• Comúnmente no necesita ser editado.
• /etc/asterisk/asterisk.conf

Carlos Laurente
SIP.CONF

• Guarda la información de los canales SIP de


asterisk en la sección [general].
• Guarda la información de todos los teléfonos SIP
conectados a nuestro Asterisk.
• Guarda la información de todo proveedor de
servicios SIP.

• /etc/asterisk/sip.conf

Carlos Laurente
IAX.CONF

• Guarda la información sobre la configuración de


los canales IAX2 de Asterisk en la sección
[general].
• Guarda la información de todos los teléfonos IAX2
conectados a nuestro Asterisk.
• Guarda la información de todo proveedor de
servicios IAX2.

• /etc/asterisk/iax.conf

Carlos Laurente
EXTENSIONS.CONF

• Definición de planes de marcado.


• Guarda la configuración del dialplan.
• Le dice a Asterisk qué hacer con las llamadas
(tanto las entrantes como las salientes).
• Provee seguridad para su Asterisk contra mal
uso, fraude.
• /etc/asterisk/extensions.conf

Carlos Laurente
INTRODUCCION AL DIALPLAN
• El dialplan de asterisk es totalmente distinto al de las
PBX tradicionales.
• El plan de discado de Asterisk se parece mucho más a
un lenguaje de programación que a una simple tabla
que matchea números con teléfonos (lo que sería el
dialplan de un modelo tradicional).
• El dialplan es el corazón de cualquier sistema Asterisk.
• Provee lógica al sistema.
• Consiste de una lista de instrucciones:
o Qué hacer con las llamadas entrantes.
o Qué hacer con las llamadas salientes.
o Qué hacer cuando el usuario presiona dígitos.

Carlos Laurente
ESTRUCTURA:

• Las instrucciones dentro de un Dialplan


están organizadas en un número lógico
de unidades:

• Contextos
• Extensiones
• Prioridades
• Aplicaciones

Carlos Laurente
CONTEXTOS:

• Los Contextos están en el nivel más alto


dentro de un dialplan.
• Le permiten dividir su dialplan en
múltiples segmentos independientes.
• Le permiten proveer distintos tipos de
clases o features y servicios a los
usuarios de la PBX.
• Le ayudan a asegurar su Asterisk,
prevenir su mal uso, fraudes y estafas.
Sintaxis:
[context-name]

Carlos Laurente
CONTEXTOS:

• Los contextos pueden incluir otros contextos. Esto se


hace con la sentencia “include”:

[users]
exten => 6000,1,Dial(SIP/ts_xlite)
exten => 6001,1,Dial(SIP/jj_polycom)
include => features

[features]
exten => 6500,1,VoiceMailMain()
exten => 6501,1,Directory()

• Estas sentencias son muy poderosas: le permiten


construir dialplan complejos.

Carlos Laurente
EXTENSIONES:

• No es lo que se piensa cuando piensa en una


extensión en un sistema telefónico típico. No es
simplemente un teléfono o un puerto de una PBX.
• Una extensión es un set de acciones.
• Las extensiones no necesitan estar atadas
necesariamente a endpoints físicos (por ejemplo
teléfonos).
• Los identificadores pueden ser números (como una
PBX tradicional) o nombres (valores alfanuméricos).
Sintaxis:

exten => nombre,prioridad,aplicación

Carlos Laurente
PRIORIDADES:

• Dentro de cada extensión, a cada paso se le da un


número de prioridad (esencialmente un número
secuencial), es decir, cada paso es procesado en un
orden secuencial.
• Las Extensiones pueden tener muchas prioridades.
• Las Prioridades pueden incluir una etiqueta (un
nombre o un alias).

exten => 123,1,haga algo


exten => 123,2,haga algo más
exten => 123,3,haga algo diferente

Carlos Laurente
PRIORIDADES:

• En lugar de tener que setear manualmente el número


de prioridades, usted puede usar la prioridad 'n' para
setear automáticamente el número de prioridad
cuando se carga el archivo extensions.conf.
• Facilita la modificación de su dialplan.
• Siempre debe tener explícita la prioridad 1!
• Para saltar a una prioridad “n”, utilice etiquetas
exten => 123,1,algo
exten => 123,n,algo más
exten => 123,n(label),algo diferente

Carlos Laurente
APLICACIONES:

• Cada prioridad en el dialplan llama (invoca) una


Aplicación.
• Las Aplicaciones hacen el trabajo, como por ejemplo:

o Atender una línea que está ringueando.


o Ejecutar prompts de audio.
o Recolectar información del que llama.
o Conectar un teléfono con otro.

Carlos Laurente
APLICACIONES:

• La mayoría de las aplicaciones requieren uno o más


parámetros (o argumentos)
• Los parámetros modifican la conducta de la aplicación,
o le indican qué es lo que debe hacer.
• Los parámetros son separados por comas, o por el
caracter pipe:

exten=>123,1,application(one,two,three)
ó
exten=>123,1,application(one|two|three)

Carlos Laurente
GRACIAS…!!!

Carlos Laurente

También podría gustarte