Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Pgina 1
Mayo 2015
Contenido Temtico:
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.
DAHDI
LibPRI
Pgina 3
Mayo 2015
Asterisk
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
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
Pgina 5
Mayo 2015
luego reiniciar el servidor
init 6
wget http://downloads.asterisk.org/pub/telephony/dah
di-linux-complete/dahdi-linux-complete-current.tar.gz
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
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<<<<<<<<<<<<<
Pgina 7
Mayo 2015
cd ..
Entramos a la carpeta dahdi
cd /usr/src/dah*
<<<<<<<<<<<<<<<<<<<instalamos<<<<<<<<<<<<<
Pgina 8
Mayo 2015
asterisk rvvv
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
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()
Pgina 14