Sei sulla pagina 1di 14

Mayo 2015

Curso 2: Instalacin y configuracin de Asterisk


Programa de Especialista en Telefona IP con Asterisk

Presentacin:
El objetivo del curso es conocer el proceso de implementacin del servicio
telefnico IP basado en software libre, con el soporte de funcionalidades y servicios
que permitan la comunicacin entre usuarios, considerando la extensin del
servicio telefnico hacia otras centrales a travs de la configuracin de troncales

Logros al Finalizar el Programa:


Al finalizar el curso el estudiante habr logrado:
1. Identificar requisitos bsicos de hardware y software para el uso de
centrales telefnicas IP basadas en software libre
2. Seleccionar servicios y funcionalidades de centrales telefnicas IP basadas
en software libre
3. Estructurar el plan de numeracin telefnico
4. Instalar software con funcionalidades de central telefnica IP
5. Configurar funcionalidades bsicas en una central telefnica IP y telfonos
IP
6. Planificar extensin de servicio de telefona a travs de troncales

Ing. Michael Dvila

Pgina 1

Mayo 2015
Contenido Temtico:

Tema 1: Instalacin de Asterisk


Tema 2: Configuracin de telfonos IP utilizando el protocolo SIP
Tema 3: Estructuracin de plan de numeracin
Tema 4: Interconexin de dos servidores Asterisk
Tema 5: Configuracin de telfonos analgicos
Tema 6: Configuracin de troncales analgicas y digitales
Tema 7: Ruteo de llamadas
Tema 8: Grabacin de llamadas
Tema 9: Correo de voz
Tema 10: Salas de conferencia
Tema 11: Parqueo de llamadas
Tema 12: IVR (Interactive Voice Response), ACD (Automatic Call Distribution)

Juan Michael Dvila Galindo.


Gmail
Rpc

Ing. Michael Dvila

Ingeniero de Sistemas
:michael@davilagalindo.com
: 991688428

Pgina 2

Mayo 2015

Instalacin de Asterisk(Tema 1)
El programa de software Asterisk fue desarrollado por Mark Spencer, por
entonces estudiante de ingeniera informtica en la Universidad de
Auburn, Alabama. Mark haba creado en 1999 la empresa "Linux
Support Services" con el objetivo de dar soporte a usuarios de
GNU/Linux. Para ello necesitaba una central telefnica, pero ante la
imposibilidad de adquirirla dados sus elevados precios, decidi construir
una con un PC bajo Linux, utilizando lenguaje C.
Posteriormente "Linux Support Services" se convertira en el ao 2001
en "Digium", redirigiendo sus objetivos al desarrollo y soporte de
Asterisk.
Una vez que sepas qu es Asterisk, podemos ver cmo se instala.

Contenido
Qu necesitamos
LINUX
DAHDI
LibPRI
Asterisk

Qu necesitamos
Para instalar cualquier aplicacin, es imprescindible prestar atencin a
las cosas que necesitamos:
1.
2.
3.
4.

Un sistema con sistema operativo Linux


Libreras necesarias
Aplicaciones necesarias
Otros paquetes opcionales

Asterisk est formado por paquetes:

DAHDI

LibPRI

Ing. Michael Dvila

Pgina 3

Mayo 2015

Asterisk

Primero Instalar LINUX (Centos 7)


Para administrar los servicios del servidor Centos en Windows se usa el
programa PUTTY

Se Descarga de
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
----------------------------------------------------------------------Para administrar los archivos del servidor Centos se usa el
Programa WinSCP.exe

Se Descarga de

Ing. Michael Dvila

Pgina 4

Mayo 2015
http://sourceforge.net/projects/winscp/files/WinSCP/5.7.3/winscp573set
up.exe/download?use_mirror=ufpr&download=

Actualizando el Servidor
(Antes de instalar hay q actualizar el servidor)
yum update -y
Esto se hace desde PUTTY
Recordar q hay q Deshabilitar 2 servicios el selinux y el firewal linux
para el firewall
systemctl mask firewalld
service firewalld stop
chkconfig firewalld off
Esto se hace desde PUTTY
para el selinux

vi /etc/selinux/config
Presionar el boton insertar en el teclado de la PC para poder escribir
Ojo no deshabilitar la ltima fila cambiar la fila del centro la que dice
SELINUXTYPE=disabled
Luego presionar
escape :wq

Ing. Michael Dvila

Pgina 5

Mayo 2015
luego reiniciar el servidor
init 6

Instalando Dependencias para Asterisk


Instalar estas dependencias para Asterisk en PUTTY con estos comandos
yum install -y make wget openssl-devel ncurses-devel newt-devel
libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel libuuid-devel

ir a la carpeta de Recursos con el comando cd para descargar Asterisk y


sus Componentes
cd /usr/src/
<<<<<<<<<<<<<<<<descargas<<<<<<<<<<
<<<<<<<<<<<<<<<<para dadhi<<<<<<<<<<
Ir a http://www.asterisk.org/downloads/dahdi
Dar click derecho y copiar direccin de enlace
Luego escribir wget y la direccin copiada

wget http://downloads.asterisk.org/pub/telephony/dah
di-linux-complete/dahdi-linux-complete-current.tar.gz

<<<<<<<<<<<<<<<para libpri <<<<<<<<<<


Ir a http://www.asterisk.org/downloads/libpri
dar click derecho y copiar direccin de enlace
Luego escribir wget y la direccin copiada
Ing. Michael Dvila

Pgina 6

Mayo 2015
wget http://downloads.asterisk.org/pub/telephony/libp
ri/libpri-1.4-current.tar.gz

<<<<<<<<<para asterisk<<<<<<<<<<

ir a http://www.asterisk.org/downloads/asterisk/all-asterisk-versions

Descargarse la 1.8 certificada


Dar click derecho y copiar direccin de enlace
luego escribir wget y la direccion copiada osea
wget
http://downloads.asterisk.org/pub/telephony/certified-asterisk/certifiedasterisk-1.8.28-current.tar.gz

Descomprimimos las Descargas


tar zxvf dah*
tar zxvf libpri*
tar zxvf certi*

Instalamos Dependencias
Instalar primero el libpri luego el dahdi luego Asterisk el orden es muy
importante
Entramos a la carpeta libpri
cd /usr/src/libpri*
<<<<<<<<<<<<<<<<<<<instalamos<<<<<<<<<<<<<

make && make install


Luego salir
Ing. Michael Dvila

Pgina 7

Mayo 2015
cd ..
Entramos a la carpeta dahdi
cd /usr/src/dah*
<<<<<<<<<<<<<<<<<<<instalamos<<<<<<<<<<<<<

make && make install && make config


Luego salir
cd ..
Entramos a la carpeta Asterisk
cd /usr/src/certifie*
<<<<<<<<<<<<<<<<<<<instalamos<<<<<<<<<<<<<

./configure --libdir=/usr/lib64 && make menuselect &&


make && make install

Aqu nos mostrara una ventana verificar q se encuentre Dahdi con


flechita y poner siguiente save and exit

Creamos los Archivos de Ejemplos de Asterisk


make samples
make config
make clean && make distclean luego para encender
asterisk escribir

service dahdi start

service asterisk start

Para configurar las carpetas y textos de configuraciones usar el WinScp


Para ver la consola de llamadas usar PUTTY el comando es
Ing. Michael Dvila

Pgina 8

Mayo 2015

asterisk rvvv

Configuracin de Telfonos Ip Utilizando SIP(Tema2)


Para configurar los Telefonos Ip ir a la ruta etc/asterisk/sip.conf para las
carpetas y textos de configuraciones usar el WinScp
Configuracin Bsica del Protocolo SIP
[general]

disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=gsm
language=es

[10]
callerid="Oficina"<10>
type=friend
secret=4st3r1skmichael
qualify=yes
nat=no
host=dynamic
Ing. Michael Dvila

Pgina 9

Mayo 2015
canreinvite=no
context=local
mailbox=10@michaelbuzon
callgroup=1
pickupgroup=1

Asterisk Necesita tener un plan de Discado


Para configurar un plan de Discado ir a la ruta
etc/asterisk/extensions.conf para las carpetas y textos de
configuraciones usar el WinScp
Configuracin Bsica del Protocolo SIP
[General]
[default]
exten => s,1,congestion
exten => s,2,Hangup
[local]
exten => 10,1,Dial(SIP/10,20)
exten => 10,2,Hangup

Estructuracin de Plan de Numeracin (Tema3)


El plan de marcacin o Dial Plan, es el corazn de toda configuracin
en asterisk, y de esta configuracin depender el performace y eficiencia
de nuestra central telefnica.
Para poder personalizar la central a gusto se deber comprender
plenamente el funcionamiento del plan de marcacin de asterisk
Sintaxis:
Ing. Michael Dvila

Pgina 10

Mayo 2015
El plan de marcacin se configura en el archivo extensions.conf, este
archivo reside usualmente en la carpeta /etc/asterisk/
El dial plan est compuesto de 04 conceptos principalmente:
- Contextos
- Extensiones
- Prioridades
- Aplicaciones
CONTEXTOS:
El dial plan se divide en secciones llamadas contextos, los contextos son
nombres para un grupo de extensiones, las cuales pueden tener
diferentes propsitos. Los contextos tambin pueden interactuar entre
ellos.
Los contextos se denotan escribiendo el nombre del contexto entre
corchetes [nombre_de_contexto].
Durante la creacin de una extensin (sip.conf, iax.conf, etc) se define a
que contexto pertenece.
p.e. context=from-internal
Todas las instrucciones por debajo del nombre del contexto son
asignadas a ese mismo contexto hasta que un nuevo contexto sea
declarado.
Al inicio del archivo extensions.conf, existen dos contextos especiales
-[General]
-[Globals]
La seccin general, contiene los parmetros generales del dial plan.
La seccin globals, contiene las variables globales del sistema, las cuales
irn siendo utilizadas por los contextos siguientes.
EXTENSIONES:
Normalmente conocemos con el nombre de extensin, al nmero que
se le asigna a los terminales telefnicos, sin embargo en asterisk una
extensin es mucho mas que un nmero _ telefnico, ya que define una
serie de pasos (donde cada paso contiene una aplicacin) que asterisk
realizara durante una llamada.
Ing. Michael Dvila

Pgina 11

Mayo 2015
La sintaxis usada para declarar una extensin es la palabra exten,
seguido de una flecha formada por una signo igual y un signo mayor
p.e. exten =>
Esto va seguido por el nmero de la extensin.
exten => name,priority,application()
Una extensin completa est compuesta de:
El nombre (o nmero ) de la extensin.
La prioridad (cada extensin puede incluir mltiples pasos, el nmero
del paso es llamado prioridad)
La aplicacin (o comando) es el que realiza la accin en la llamada.
PRIORIDADES:
Cada extensin puede tener mltiples pasos, llamados prioridades, cada
prioridad es numerada secuencialmente, comenzando con 1, y
ejecutando una aplicacin especfica.
Existe un tipo de prioridad no numerada que se representa con la letra
n y permite evitar problemas generados por la numeracin secuencial.
Esta prioridad no numerada significa que cada prioridad es igual a la
prioridad anterior +1
Por lo tanto: n=n+1
p.e. exten => 123,1,Answer()
exten => 123,n,do something
exten => 123,n,do something else
exten => 123,n,do one last thing
exten => 123,n,Hangup()
PRIORIDADES - ETIQUETAS:
Desde asterisk 1.2, es muy comn asignar etiquetas de texto (labels), a
las prioridades. Esto es para asegurarnos que podremos referirnos a esa
prioridad por un valor distinto a su nmero, el cual probablemente no se
conozca (prioridad n), y dado que actualmente el uso de prioridades no
numeradas es muy usual en el diseo de una dial plan.
Ing. Michael Dvila

Pgina 12

Mayo 2015
Para asignar una etiqueta de texto a una prioridad, solo basta con
agregarla entre parntesis justo despus del nmero de la prioridad.
p.e. exten => 123,n(label),application()
APLICACIONES:
Las aplicaciones son el caballito de batalla del dial plan, cada aplicacin
realiza una accin especfica sobre el canal actual, como por ejemplo,
tocar una meloda, aceptando entradas de tono, marcar un canal, colgar
una llamada, y as sucesivamente.
Algunas aplicaciones como Answer() o Hangup(), no requieren mayor
informacin para hacer su trabajo, sin embargo existen otras
aplicaciones que si requieren de cierta informacin adicional para
procesarla, a esta informacin adicional se le conoce como parmetros,
y para pasarle los parmetros a la aplicacin deben colocarse entre los
parntesis.
Ocasionalmente podramos ver el pipe entre los parntesis, y es que
este signo es utilizado para separar mas de un parmetro.
CONSTRUYENDO UN DIAL PLAN SIMPLE:
Answer(), Playback(), Hangup()
Vamos a construir un dial plan que consista en que , asterisk contesta la
llamada, toca una meloda, y luego cuelga.
Para este ejemplo vamos a asumir que ya hemos creado la extensin y
que tiene como nombre de contexto from-internal
Para la construccin de este dial plan utilizaremos las siguientes
aplicaciones:
Answer()
Playback()
Hangup()
Answer(), es la aplicacin que se utiliza para que la central conteste una
llamada que esta timbrando.
Se puede utilizar al inicio de la configuracin del contexto para una
extension, pero en algunas ocasiones no es necesario.
Ing. Michael Dvila

Pgina 13

Mayo 2015
Como ya mencionamos, Anwser() no tiene argumentos
Playback(), es la aplicacin que se utiliza para reproducir un sonido
grabado previamente en un archivo o a travs de un canal.
Cuando utilizamos playback, las entradas (inputs) del usuario desde la
extension son ignoradas.
Para utilizar playback() se debe ingresar el nombre del archivo sin la
extension (p.e. .wav o .mp3) como argumento entre los parntesis.
Por defecto playback buscara el archivo ingresado como argumento en
la ruta /var/libs/asterisk/sounds
Si se desea hacer referencia a un archivo ubicado en otra ruta, se
deber ingresar la ruta completa entre los parntesis
Playback(/home/john/sounds/filename)
Lo mas comun es crear una carpeta para estos archivos dentro de la
ruta por defecto
Playback(custom/filename)
Ahora si vamos a crear nuestro dial plan
[from-internal]
exten => 1234,1,Answer()
exten => 1234,n,Playback(hello-world)
exten => 1234,n,Hangup()

Ing. Michael Dvila

Pgina 14

Potrebbero piacerti anche