Septiembre de 2009
Telefonía IP
Prácticas de Laboratorio
Los materiales de este curso no pueden ser reproducidos en su totalidad o en parte sin permiso escrito previo de SideVox
Los materiales de este curso no pueden ser reproducidos en su totalidad o en parte sin ideVox S.A.
© SideVox S.A. 2009 Todos los Derechos Reservados Los materiales de este curso no pueden ser reproducidos en su totalidad o en parte sin el
Todos los Derechos Reservados
1. INSTALACIÓN DE LINUX
Objetivos:
· Preparar un servidor para el funcionamiento de Asterisk como central telefónica.
· Revisar brevemente el sistema operativo GNU/Linux, sus principales comandos y la edición de archivos de configuración.
Instrucciones:
1. Configurar el BIOS del sistema para que arranque desde el CD ROM.
2. Insertar el (primer) CD o DVD de instalación de Fedora en el 3. Encender o reiniciar el sistema.
4. Puede observar que el sistema arranca desde el CD, y aparece en el monitor una pantalla con tres opciones.
5. Para iniciar la instalación gráfica presionamos la tecla Enter.
6. Aparece una opción para revisar los me
seguro de que estos medios funcionan adecuadamente, puede prescindir (Skip) de la verificación.
7. En la pantalla inicial de instalación gráfica de Fedora, se da clic en Next.
8. Escoja el lenguaje para el proceso de Next.
9. Escoja el idioma en el que trabaja su teclado (Español) y clic en Next.
10. En la sección de particionamiento, escoja la opción para implementar un esquema personalizado (customized) y clic en Next.
11. En la nueva pantalla y de ser posible cree tres particiones una para /boot de 100 MB, una para swap del doble de la memoria RAM, una para el sistema de archivos / que ocupe 8 GB, una para /home de 3 GB, dejando libre al menos 2 GB. Permita a su instructor revisar el esquema de particionamiento antes de guardarlo.
12. Luego clic en Next.
13. Escoja la instalación de GRUB para el arranque. Clic en Next.
14. En la sección de dispositivos de red, configúrelos, su instructor le dirá si usar DHCP o no. Si no, él le proveerá de una Dir
Broadcast, así como el Hostname, Gateway y direcciones de DNS. Ingrese estos valores, revíselos y de Clic en Next.
15. Deshabilite la opción de firewall y también de la herramienta SELinux. Clic en Next.
16. No seleccione ningún lenguaje adicional aparte del Inglés predeterminado (English (USA)). Clic en Next.
17. Escoja la opción correspondiente de Huso Horario de acuerdo a su situación geográfica en el mapa que se le presenta. Clic en Next.
18. Designe una contraseña para el
19. Ahora escoja categoría por categoría cada uno de los siguientes paquetes (los que no se mencionan, deshabilitarlos)
INSTALACIÓN DE LINUX
Preparar un servidor para el funcionamiento de Asterisk como central telefónica.
brevemente el sistema operativo GNU/Linux, sus principales comandos y la edición de archivos de configuración.
Configurar el BIOS del sistema para que arranque desde el CD ROM.
Insertar el (primer) CD o DVD de instalación de Fedora en el CD/DVD ROM.
Encender o reiniciar el sistema.
Puede observar que el sistema arranca desde el CD, y aparece en el monitor una pantalla con tres opciones.
Para iniciar la instalación gráfica presionamos la tecla Enter.
Aparece una opción para revisar los medios (CD /DVD) de instalación. Si Ud. Está seguro de que estos medios funcionan adecuadamente, puede prescindir (Skip) de la En la pantalla inicial de instalación gráfica de Fedora, se da clic en Next.
Escoja el lenguaje para el proceso de instalación (Recomendado: Inglés) y presione Escoja el idioma en el que trabaja su teclado (Español) y clic en Next.
En la sección de particionamiento, escoja la opción para implementar un esquema personalizado (customized) y clic en Next.
a pantalla y de ser posible cree tres particiones una para /boot de 100 MB, una para swap del doble de la memoria RAM, una para el sistema de archivos / que ocupe 8 GB, una para /home de 3 GB, dejando libre al menos 2 GB. Permita a su
esquema de particionamiento antes de guardarlo.
Escoja la instalación de GRUB para el arranque. Clic en Next.
En la sección de dispositivos de red, configúrelos, su instructor le dirá si usar DHCP o no. Si no, él le proveerá de una Dirección IP, Máscara de Red, Red y dirección de Broadcast, así como el Hostname, Gateway y direcciones de DNS. Ingrese estos valores, revíselos y de Clic en Next.
Deshabilite la opción de firewall y también de la herramienta SELinux. Clic en Next.
one ningún lenguaje adicional aparte del Inglés predeterminado (English Escoja la opción correspondiente de Huso Horario de acuerdo a su situación geográfica en el mapa que se le presenta. Clic en Next.
Designe una contraseña para el usuario root, confírmela y clic en Next.
Ahora escoja categoría por categoría cada uno de los siguientes paquetes (los que no se mencionan, deshabilitarlos)
Preparar un servidor para el funcionamiento de Asterisk como central telefónica.
brevemente el sistema operativo GNU/Linux, sus principales comandos y la
CD/DVD ROM.
Puede observar que el sistema arranca desde el CD, y aparece en el monitor una
dios (CD /DVD) de instalación. Si Ud. Está seguro de que estos medios funcionan adecuadamente, puede prescindir (Skip) de la En la pantalla inicial de instalación gráfica de Fedora, se da clic en Next.
instalación (Recomendado: Inglés) y presione
En la sección de particionamiento, escoja la opción para implementar un esquema a pantalla y de ser posible cree tres particiones una para /boot de 100 MB, una para swap del doble de la memoria RAM, una para el sistema de archivos / que ocupe 8 GB, una para /home de 3 GB, dejando libre al menos 2 GB. Permita a su
esquema de particionamiento antes de guardarlo.
En la sección de dispositivos de red, configúrelos, su instructor le dirá si usar DHCP o ección IP, Máscara de Red, Red y dirección de Broadcast, así como el Hostname, Gateway y direcciones de DNS. Ingrese estos Deshabilite la opción de firewall y también de la herramienta SELinux. Clic en Next.
one ningún lenguaje adicional aparte del Inglés predeterminado (English Escoja la opción correspondiente de Huso Horario de acuerdo a su situación geográfica
usuario root, confírmela y clic en Next.
Ahora escoja categoría por categoría cada uno de los siguientes paquetes (los que no
Desktops
· X Window System
· GNOME Desktop Environment Applications
· Editors
· Sound and Video
· Paquetes por defecto Servers
· Server Configuration Tools
· Web Server
· Mail Server
· Windows File Server
· DNS Name Server
· MySQL Database
· Network Servers Development
· Development Tools (seleccionar todo
· X Software Development System
· Administration Tools
· System Tools
20. Clic en Next para que de inicio la instalación del sistema operativo. Este proceso tomará alrededor de 30 minutos, dependiendo de las características técnicas de los equipos.
21. En el momento en que aparece la pantalla de instalación completa retire del CD ROM y de clic en Reboot, para reiniciar el sistema.
22. Ahora es necesario completar algunos pasos post 23. En la pantalla de Bienvenida (Welcome) presione Next.
24. Acepte el Acuerdo de Licencia GPL y clic en Next.
25. Coloque la hora y fecha adecuadas del sistema y clic en Next.
26. Configure la resolución respectiva de pantalla y clic en Next.
27. Agregue un usuario y contraseña en referencia a su nombre 28. Haga la prueba de sonido, clic en Next.
29. En la última pantalla, clic en Finish
30. El sistema operativo botea nuevamente y la instalación ha finalizado.
X Window System
GNOME Desktop Environment
Sound and Video Paquetes por defecto
Server Configuration Tools
Windows File Server DNS Name Server MySQL Database Network Servers
Development Tools (seleccionar todos) X Software Development
Administration Tools m Tools
Clic en Next para que de inicio la instalación del sistema operativo. Este proceso tomará alrededor de 30 minutos, dependiendo de las características técnicas de los En el momento en que aparece la pantalla de instalación completa retire
del CD ROM y de clic en Reboot, para reiniciar el sistema.
Ahora es necesario completar algunos pasos post-instalación, de Clic en Next.
En la pantalla de Bienvenida (Welcome) presione Next.
Acepte el Acuerdo de Licencia GPL y clic en Next.
ue la hora y fecha adecuadas del sistema y clic en Next.
Configure la resolución respectiva de pantalla y clic en Next.
Agregue un usuario y contraseña en referencia a su nombre Haga la prueba de sonido, clic en Next.
En la última pantalla, clic en Finish.
El sistema operativo botea nuevamente y la instalación ha finalizado.
Clic en Next para que de inicio la instalación del sistema operativo. Este proceso tomará alrededor de 30 minutos, dependiendo de las características técnicas de los En el momento en que aparece la pantalla de instalación completa retire el CD/DVD
instalación, de Clic en Next.
2. EDICIÓN DE ARCHIVOS
Objetivos:
· Crear y editar archivos usando el editor de UNIX más popular,
Instrucciones:
Trabajando con vi
1. Abra un terminal virtual.
2. Asegúrese de encontrarse en su directorio home. Cree un archivo llamado usando vi.
3. Escriba el siguiente texto y el alfabeto marino en el archivo
es una manera fácil de llenar un par de pantallas de información necesaria p posterior. Esta es una sesión de entrenamiento para el uso de vi.
A alfa B bravo C charlie D delta E eco F fox G golf H hotel I indian J july K kilo L lima M mike N november
O oskar
P papa Q quebec
R romeo
S sierra T tango U uniforme V victor W whisky
EDICIÓN DE ARCHIVOS
rear y editar archivos usando el editor de UNIX más popular, vi.
Abra un terminal virtual.
Asegúrese de encontrarse en su directorio home. Cree un archivo llamado Escriba el siguiente texto y el alfabeto marino en el archivo vitest. Agregar el alfabeto es una manera fácil de llenar un par de pantallas de información necesaria p
posterior. Esta es una sesión de entrenamiento para el uso de vi.
bravo charlie
indian
november oskar quebec romeo sierra tango uniforme victor whisky
Asegúrese de encontrarse en su directorio home. Cree un archivo llamado vitest . Agregar el alfabeto es una manera fácil de llenar un par de pantallas de información necesaria para un uso
X xerox Y yanky Z zolu
4. Regrese al modo comando. Guarde y salga del archivo. Note que tan pronto presione los dos puntos (:), estos aparecen bajo la última línea de su área de entrada. Una vez que el búfer esté vacío y el
y caracteres en el archivo.
Teclas de movimiento del cursor
5. Abra de nuevo el archivo vitest. Note que la última línea en la pantalla muestra el nombre del archivo y el número de caracteres.
6. Utilizando las teclas <h>, <j>, <k> y <l>, practique moviéndose a través del archivo.
7. Usando los comandos vi apropiados para moverse a través del texto:
Muévase una página adelante Muévase una página atrás Mueva al cursor a la p
Mueva al cursor a la última línea en el archivo Mueva el cursor a la primera línea en el archivo Mueva el cursor a la línea 5 del archivo
Mueva el cursor al final de la línea Mueva el cursor al final de la línea
8. Cambie el archivo vitest de manera que después de cada letra del alfabeto, un primer nombre común sea agregado y que inicie con esa letra. Asegúrese de usar distintos métodos para conmutar del modo de comandos al modo de edición
debería verse más o menos así:
A alfa Ani B bravo Ben C charlie Carlos
9. Practique algo más con los comandos que se encuentran en la hoja de resumen.
10. Guarde el archivo pero no salga de vi.
Búsqueda global y reemplazo
11. Reemplace todos los espacios en el archivo vitest con tabs (:%s / / <TAB>/g) 12. Guarde su archivo (:wq, :x o ZZ)
xerox yanky
Regrese al modo comando. Guarde y salga del archivo. Note que tan pronto presione los dos puntos (:), estos aparecen bajo la última línea de su área de entrada. Una vez que el búfer esté vacío y el archivo cerrado, Ud ve un mensaje con el número de líneas y caracteres en el archivo.
Teclas de movimiento del cursor
Abra de nuevo el archivo vitest. Note que la última línea en la pantalla muestra el nombre del archivo y el número de caracteres.
Utilizando las teclas <h>, <j>, <k> y <l>, practique moviéndose a través del archivo.
Usando los comandos vi apropiados para moverse a través del texto:
Muévase una página adelante <Ctrl-f>
Muévase una página atrás <Ctrl-b>
Mueva al cursor a la primera línea en la pantalla H Mueva al cursor a la última línea en el archivo G
Mueva el cursor a la primera línea en el archivo :1 <enter>
Mueva el cursor a la línea 5 del archivo :5 <enter>
Mueva el cursor al final de la línea $
l final de la línea 0
Cambie el archivo vitest de manera que después de cada letra del alfabeto, un primer nombre común sea agregado y que inicie con esa letra. Asegúrese de usar distintos métodos para conmutar del modo de comandos al modo de edición (insert). El archivo debería verse más o menos así:
Practique algo más con los comandos que se encuentran en la hoja de resumen.
Guarde el archivo pero no salga de vi.
Búsqueda global y reemplazo
los espacios en el archivo vitest con tabs (:%s / / <TAB>/g) Guarde su archivo (:wq, :x o ZZ)
Regrese al modo comando. Guarde y salga del archivo. Note que tan pronto presione los dos puntos (:), estos aparecen bajo la última línea de su área de entrada. Una vez archivo cerrado, Ud ve un mensaje con el número de líneas
Abra de nuevo el archivo vitest. Note que la última línea en la pantalla muestra el
Utilizando las teclas <h>, <j>, <k> y <l>, practique moviéndose a través del archivo.
Usando los comandos vi apropiados para moverse a través del texto:
b>
Cambie el archivo vitest de manera que después de cada letra del alfabeto, un primer nombre común sea agregado y que inicie con esa letra. Asegúrese de usar distintos (insert). El archivo
Practique algo más con los comandos que se encuentran en la hoja de resumen.
los espacios en el archivo vitest con tabs (:%s / / <TAB>/g)
Trabajando con otros editores
13. Su sistema tiene otros editores en modo texto y gráfico que están disponibles. Inicie alguno de ellos.
gedit vitest kedit vitest hexedit vitest Trabajando con otros editores
Su sistema tiene otros editores en modo texto y gráfico que están disponibles. Inicie
hexedit vitest
Su sistema tiene otros editores en modo texto y gráfico que están disponibles. Inicie
3. INSTALACIÓN DE ASTERISK
Objetivos:
· Compilar e instalar Asterisk
· Comprender su arquitectura a través de los archivos de configuración
Instrucciones:
Los comandos que se indican en esta práctica de laboratorio corresponden a la instalación de Asterisk en una de las siguientes distribuciones de Linux: Red Hat Enterprise 5.0, CentOS 5.0 y Fedora 8.
Descargar el código fuente de Asterisk
1. El código fuente de Asterisk está disponible en su página web www.asterisk.org.
Podemos descargarlo usando un explorador o desde la consola de Linux.
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/asterisk
Compilar e instalar Asterisk
2. Descomprimimos el paquete.
# tar xvfz asterisk-1.4
3. Ingresamos en el directorio en donde se descomprimió el código fuente.
# cd /usr/src/asterisk
4. Por seguridad limpiamos el directorio en donde se crean los m
# make clean
5. Configuramos la aplicación
# ./configure
6. Compilamos el código fuente de Asterisk
INSTALACIÓN DE ASTERISK
nstalar Asterisk en el servidor Linux.
omprender su arquitectura a través de los archivos de configuración
Los comandos que se indican en esta práctica de laboratorio corresponden a la instalación de Asterisk en una de las siguientes distribuciones de Linux: Red Hat Enterprise 5.0, CentOS 5.0 y
Descargar el código fuente de Asterisk
te de Asterisk está disponible en su página web www.asterisk.org.
Podemos descargarlo usando un explorador o desde la consola de Linux.
# wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-
sk
Descomprimimos el paquete.
1.4-current.tar.gz
Ingresamos en el directorio en donde se descomprimió el código fuente.
# cd /usr/src/asterisk-version
Por seguridad limpiamos el directorio en donde se crean los módulos de Asterisk.
Configuramos la aplicación make.
Compilamos el código fuente de Asterisk.
omprender su arquitectura a través de los archivos de configuración de ejemplo.
Los comandos que se indican en esta práctica de laboratorio corresponden a la instalación de Asterisk en una de las siguientes distribuciones de Linux: Red Hat Enterprise 5.0, CentOS 5.0 y
te de Asterisk está disponible en su página web www.asterisk.org.
Podemos descargarlo usando un explorador o desde la consola de Linux.
-current.tar.gz
Ingresamos en el directorio en donde se descomprimió el código fuente.
ódulos de Asterisk.
# make
7. Instalamos Asterisk
# make install
8. Creamos los scripts de inicio y activamos Asterisk cuando se encienda el servidor.
# make config
# chkconfig asterisk on
9. Creamos los archivos de configuración de ejemplo.
# make samples
10. Iniciamos Asterisk.
# service asterisk start
11. Reiniciamos el servidor y observamos que Asterisk se ejecute en el momento del arranque.
# reboot
Dar un breve recorrido por los directorios de Asterisk
12. Observamos los archivos de configuración de ejemplo.
# cd /etc/asterisk
13. Ingresamos en el directorio en donde se almacenan los m
# cd /usr/lib/asterisk/modules
14. Ingresamos en el directorio subdirectorios.
# cd /var/lib/asterisk
# cd agi-bin
# cd ../firmware
# cd ../images
# cd ../keys
# cd ../mohmp3
# cd ../sounds
15. Ingresamos en el directorio
scripts de inicio y activamos Asterisk cuando se encienda el servidor.
chkconfig asterisk on
Creamos los archivos de configuración de ejemplo.
service asterisk start
Reiniciamos el servidor y observamos que Asterisk se ejecute en el momento del
recorrido por los directorios de Asterisk Observamos los archivos de configuración de ejemplo.
Ingresamos en el directorio en donde se almacenan los módulos de Asterisk.
cd /usr/lib/asterisk/modules
Ingresamos en el directorio de librerías de Asterisk y en cada uno de sus
# cd /var/lib/asterisk
Ingresamos en el directorio de spools y en sus subdirectorios.
scripts de inicio y activamos Asterisk cuando se encienda el servidor.
Reiniciamos el servidor y observamos que Asterisk se ejecute en el momento del
ódulos de Asterisk.
librerías de Asterisk y en cada uno de sus
# cd /var/spool/asterisk
# cd outgoing
# cd ../voicemail
# cd ../tmp
16. Finalmente ingresamos en el directorio
# cd /var/log/asterisk /asterisk
ngresamos en el directorio de logs de Asterisk.
# cd /var/log/asterisk
4. CONFIGURACIÓN DE DISPOSITIVOS SIP
Objetivos:
· Configurar dispositivos tipos de clientes de telefonía
· Realizar llamadas entre teléfonos IP.
Instrucciones:
Configurar los clientes
1. En el archivo sip.conf se deben configurar todos los dispositivos que trabajan con protocolo SIP. Guardamos el archivo de ejemplo con otro nombre y escribimos la configuración para dos teléfonos IP.
# cd /etc/asterisk
# mv sip.conf sip.old.conf
# vi sip.conf
[general]
context = phones allowoverlap = no bindport = 5060 bindaddr = 0.0.0.0 srvlookup = yes
[500]
type = friend host = dynamic
[600]
type = friend host = dynamic
2. Ingresamos en la consola
# asterisk -r
*CLI> sip reload
3. Por otra parte debemos configurar extensiones creadas.
4. Si los teléfonos están correctamente conectados a la red del servidor Asterisk deben haberse registrado ya. Para saberlo consultamos en la consola.
CONFIGURACIÓN DE DISPOSITIVOS SIP
dispositivos que trabajen mediante el protocolo SIP, conocer los diferentes tipos de clientes de telefonía
Realizar llamadas entre teléfonos IP.
En el archivo sip.conf se deben configurar todos los dispositivos que trabajan con protocolo SIP. Guardamos el archivo de ejemplo con otro nombre y escribimos la configuración para dos teléfonos IP.
# mv sip.conf sip.old.conf
0.0.0.0
Ingresamos en la consola de Asterisk para refrescar la configuración de los clientes SIP.
Por otra parte debemos configurar los teléfonos IP de manera que concuerden con las
Si los teléfonos están correctamente conectados a la red del servidor Asterisk deben haberse registrado ya. Para saberlo consultamos en la consola.
CONFIGURACIÓN DE DISPOSITIVOS SIP
trabajen mediante el protocolo SIP, conocer los diferentes
En el archivo sip.conf se deben configurar todos los dispositivos que trabajan con protocolo SIP. Guardamos el archivo de ejemplo con otro nombre y escribimos la
ón de los clientes SIP.
éfonos IP de manera que concuerden con las
Si los teléfonos están correctamente conectados a la red del servidor Asterisk deben
*CLI> sip show peers ...
*CLI> exit
Configurar las llamadas
5. En el archivo extensions.conf
determinada extensión. Guardamos el archivo de ejemplo y habilitamos las llamadas entre los dos teléfonos SIP.
# cd /etc/asterisk
# mv extensions.conf
# vi extensions.conf [globals]
[general]
autofallthrough=yes
[phones]
exten => 500,1,Dial(
exten => 600,1,Dial(
6. Ingresamos en la consola marcación.
# asterisk -r
*CLI> dialplan reload
7. Es momento de levantar el auricular de un teléfono y marcar el número del otro. En la consola podemos observar todo el proceso de la llamada.
8. Si bien es cierto la configuración de los archivos
para poder realizar llamadas entre ambos teléfonos, es a la vez limitada. Con ayuda del instructor revisar algunos ítems de la configuración de los teléfonos y compararlos con los atributos que se puede configurar en el archivo
Pasos adicionales
9. La información que muestra la consola puede ser limitada uno los siguientes comandos y hacer nuevas llamadas.
*CLI> core set verbose 10
*CLI> core set verbose 0
10. Asterisk nos da la posibilidad de depurar las
protocol SIP. Iniciar el depurador de SIP y hacer una nueva llamada. Al final detener el depurador.
extensions.conf se configura que acción tomar cuando se marca determinada extensión. Guardamos el archivo de ejemplo y habilitamos las llamadas entre los dos teléfonos SIP.
# mv extensions.conf extensions.old.conf
autofallthrough=yes
exten => 500,1,Dial(SIP/500,60) 00,1,Dial(SIP/600,60)
Ingresamos en la consola de Asterisk para refrescar la configuraci
*CLI> dialplan reload
Es momento de levantar el auricular de un teléfono y marcar el número del otro. En la consola podemos observar todo el proceso de la llamada.
Si bien es cierto la configuración de los archivos sip.conf y extensions.
para poder realizar llamadas entre ambos teléfonos, es a la vez limitada. Con ayuda del instructor revisar algunos ítems de la configuración de los teléfonos y compararlos con los atributos que se puede configurar en el archivo sip.conf.
La información que muestra la consola puede ser limitada e incluso nula. Probar uno a uno los siguientes comandos y hacer nuevas llamadas.
core set verbose 10 core set verbose 0
Asterisk nos da la posibilidad de depurar las acciones que suceden mediante el Iniciar el depurador de SIP y hacer una nueva llamada. Al final detener el se configura que acción tomar cuando se marca determinada extensión. Guardamos el archivo de ejemplo y habilitamos las llamadas
la configuración del plan de
Es momento de levantar el auricular de un teléfono y marcar el número del otro. En la
extensions.conf es suficiente para poder realizar llamadas entre ambos teléfonos, es a la vez limitada. Con ayuda del instructor revisar algunos ítems de la configuración de los teléfonos y compararlos con
e incluso nula. Probar uno a
acciones que suceden mediante el Iniciar el depurador de SIP y hacer una nueva llamada. Al final detener el
*CLI> sip debug ...
*CLI> sip no debug
5. CONFIGURACIÓN DE CONEXIONES ENTRE SERVIDORES ASTERISK
Objetivos:
· Configurar conexiones entre dos servidores Asterisk a través de SIP e IAX simulando un escenario de dos ciudades remotas en donde se tenga un enlace de comunicación.
· Realizar llamadas entre ciudades.
Instrucciones:
El sistema simulará la configuración de la figura siguiente:
Para el ejercicio vamos a considerar que el servidor de Toronto tiene la dirección IP 192.168.1.102 /24 y el de Osaka 192.168.1.101 /24
Configurar cada servidor como cliente del otro 1. En el archivo sip.conf
servidor de Osaka.
[general]
register => toronto:[email protected]/osaka
[osaka]
type=friend secret=welcome
context=osaka_incoming host=dynamic
disallow=all allow=ulaw
CONFIGURACIÓN DE CONEXIONES ENTRE SERVIDORES ASTERISK
Configurar conexiones entre dos servidores Asterisk a través de SIP e IAX simulando un escenario de dos ciudades remotas en donde se tenga un enlace de comunicación.
ntre ciudades.
El sistema simulará la configuración de la figura siguiente:
Para el ejercicio vamos a considerar que el servidor de Toronto tiene la dirección IP 192.168.1.102 /24 y el de Osaka 192.168.1.101 /24
servidor como cliente del otro
sip.conf indicamos que el servidor de Toronto se debe registrar en el
register => toronto:[email protected]/osaka
context=osaka_incoming
CONFIGURACIÓN DE CONEXIONES ENTRE
Configurar conexiones entre dos servidores Asterisk a través de SIP e IAX simulando un escenario de dos ciudades remotas en donde se tenga un enlace de comunicación.
Para el ejercicio vamos a considerar que el servidor de Toronto tiene la dirección IP
indicamos que el servidor de Toronto se debe registrar en el
2. De la misma manera con el servidor de Osaka.
[general]
register => osaka:[email protected]
[toronto]
type=friend secret=welcome
context=toronto_incoming host=dynamic
disallow=all allow=ulaw
3. En la consola de cada servidor podre
registración del servidor remoto. De todas maneras lo podemos hacer también con los siguientes comandos:
*CLI> sip show peers ...
*CLI> sip show registry
4. En cada servidor configuramos además Toronto sip.conf:
[500]
type=friend host=dynamic context=phones
Osaka sip.conf:
[600]
type=friend host=dynamic context=phones
Configurar el plan de marcación 5. El en archivo extensions.conf
enrutarán las llamadas.
Toronto extensions.conf:
[globals]
[general]
autofallthrough=yes [phones]
include => outgoing include => internal
De la misma manera con el servidor de Osaka.
ter => osaka:[email protected]/toronto
context=toronto_incoming
cada servidor podremos ver que aparece un mensaje indicando la registración del servidor remoto. De todas maneras lo podemos hacer también con los siguientes comandos:
*CLI> sip show registry
En cada servidor configuramos además uno o varios teléfonos como extensiones SIP.
Configurar el plan de marcación
extensions.conf de cada servidor debemos configurar de qué manera se enrutarán las llamadas.
mos ver que aparece un mensaje indicando la registración del servidor remoto. De todas maneras lo podemos hacer también con los
uno o varios teléfonos como extensiones SIP.
de cada servidor debemos configurar de qué manera se
[internal]
exten => 500,1,Dial(SIP/500,60) exten => 500,n,Hangup()
[outgoing]
exten => 600,1,Dial(SIP/osaka/600,60) exten => 600,n,Hangup()
[osaka_incoming]
include => internal
Osaka extensions.conf:
[globals]
[general]
autofallthrough=yes
[phones]
include => outgoing include => internal
[internal]
exten => 600,1,Dial(SIP/
exten => 600,n,Hangup()
[outgoing]
exten => 500,1,Dial(SIP/osaka/
exten => 500,n,Hangup()
[toronto_incoming]
include => internal
6. Recargamos la configuración en cada servidor.
*CLI> sip reload
*CLI> dialplan reload
7. Finalmente podemos llamar desde un tel
podemos entrar en la consola de cada servidor y observar los sucesos desde que se inicia la llamada.
# asterisk -r
*CLI> set verbose dialplan reload
8. El ejercicio se lo ha rea
probar con otros códecs, incluso con otros protocolos como IAX.
exten => 500,1,Dial(SIP/500,60) gup()
exten => 600,1,Dial(SIP/osaka/600,60) exten => 600,n,Hangup()
00,1,Dial(SIP/600,60) 00,n,Hangup()
00,1,Dial(SIP/osaka/500,60) 00,n,Hangup()
Recargamos la configuración en cada servidor.
*CLI> dialplan reload
nalmente podemos llamar desde un teléfono al a otro y viceversa, para comprobar podemos entrar en la consola de cada servidor y observar los sucesos desde que se
dialplan reload
El ejercicio se lo ha realizado usando como códec de voz G.711, el estudiante puede probar con otros códecs, incluso con otros protocolos como IAX.
éfono al a otro y viceversa, para comprobar podemos entrar en la consola de cada servidor y observar los sucesos desde que se
ódec de voz G.711, el estudiante puede
6. CONFIGURACIÓN DE UNA OPERADORA DE BIENVENIDA
Objetivos:
· Configurar una operadora automática de bienvenida que incluya un menú usuario.
Instrucciones:
Configurar el mensaje de bienvenida
1. Para dar una bienvenida u ofrecer un menú mientras se llama a una extensión es necesario grabar el mensaje como archivo con extensión
formatos), con sonido
2. Guardamos el archivo en el directorio de sonidos de Asterisk. Además dos archivos más, uno para la despedida y otro para indicar que se ha digitado una opción no válida.
# cd /var/lib/asterisk/sounds
# mkdir syderix
# mv /root/bienvenida.wav ./syderix
# mv /root/invalida.wav ./syderix
# mv /root/adios.wav ./syderix
3. La configuración de la rutina de bienvenida se la hace en el abrimos el archivo y digitamos las siguientes líneas:
# cd /etc/asterisk
# vi extensions.conf [globals]
[general]
autofallthrough=yes
[incoming]
exten => s,1,Answer() exten => s,n,Background(
exten => s,n,WaitExten()
exten => 1,1,Playback(digits/1) exten => 1,n,HangUp()
CONFIGURACIÓN DE UNA OPERADORA DE BIENVENIDA
Configurar una operadora automática de bienvenida que incluya un menú
Configurar el mensaje de bienvenida
Para dar una bienvenida u ofrecer un menú mientras se llama a una extensión es necesario grabar el mensaje como archivo con extensión wav (pueden ser de otros formatos), con sonido mono a 8 KHz.
Guardamos el archivo en el directorio de sonidos de Asterisk. Además dos archivos más, uno para la despedida y otro para indicar que se ha digitado una opción no
var/lib/asterisk/sounds
/root/bienvenida.wav ./syderix
# mv /root/invalida.wav ./syderix
# mv /root/adios.wav ./syderix
La configuración de la rutina de bienvenida se la hace en el archivo abrimos el archivo y digitamos las siguientes líneas:
autofallthrough=yes
,1,Answer()
,n,Background(syderix/bienvenida) ,n,WaitExten()
exten => 1,1,Playback(digits/1) HangUp()
CONFIGURACIÓN DE UNA OPERADORA DE
Configurar una operadora automática de bienvenida que incluya un menú para el
Para dar una bienvenida u ofrecer un menú mientras se llama a una extensión es (pueden ser de otros
Guardamos el archivo en el directorio de sonidos de Asterisk. Además dos archivos más, uno para la despedida y otro para indicar que se ha digitado una opción no
archivo extensions.conf,
exten => 2,1,Dial(SIP/600,60) exten => 2,n,HangUp()
exten => 3,1,SayDigits(123456789) exten => 3,n,Goto(s,2
exten => i,1,Playback(
exten => i,n,Goto(
exten => t,1,Playback(
exten => t,n,Hangup()
[phones]
exten => 500,1,Dial(
exten => 600,1,Dial(
exten => 100,1,Goto(incoming,s,1)
4. Configurar además dos teléfonos con las extensiones 500 y 600. Ahora podemos llamar al 100 y escuchar nuestro mensaje, pulsar las opciones disponibles y ver cómo actúa el sistema.
Pasos adicionales
5. Observemos las diferencias entre las aplicaciones
audio (o creamos unos nuevos) de modo que uno contenga solamente el saludo de bienvenida (bienvenida.wav) y el otro el menú de la aplicación (menu.wav).
Modificamos el archivo
# vi extensions.conf [globals]
[general]
autofallthrough=yes
[incoming]
exten => s,1,Answer() exten => s,n,Playback exten => s,n,Background(
exten => s,n,WaitExten()
exten => 1,1,Playback(digits/1) exten => 1,n,HangUp()
exten => 2,1,Dial(SIP/600,60) exten => 2,n,HangUp()
exten => 3,1,SayDigits(123456789) exten => 3,n,Goto(s,2
exten => i,1,Playback(
exten => i,n,Goto(
exten => 2,1,Dial(SIP/600,60) exten => 2,n,HangUp()
SayDigits(123456789) exten => 3,n,Goto(s,2)
exten => i,1,Playback(syderix/invalida) exten => i,n,Goto(s,1)
exten => t,1,Playback(syderix/adios) exten => t,n,Hangup()
exten => 500,1,Dial(SIP/500,60) 00,1,Dial(SIP/600,60) Goto(incoming,s,1)
Configurar además dos teléfonos con las extensiones 500 y 600. Ahora podemos llamar al 100 y escuchar nuestro mensaje, pulsar las opciones disponibles y ver cómo
Observemos las diferencias entre las aplicaciones Background y Playback
audio (o creamos unos nuevos) de modo que uno contenga solamente el saludo de bienvenida (bienvenida.wav) y el otro el menú de la aplicación (menu.wav).
ficamos el archivo extensions.conf.
autofallthrough=yes
,1,Answer()
Playback(syderix/bienvenida) ,n,Background(syderix/bienvenida) ,n,WaitExten()
1,1,Playback(digits/1) HangUp()
exten => 2,1,Dial(SIP/600,60) exten => 2,n,HangUp()
SayDigits(123456789) exten => 3,n,Goto(s,2)
exten => i,1,Playback(syderix/invalida) exten => i,n,Goto(s,1)
Configurar además dos teléfonos con las extensiones 500 y 600. Ahora podemos llamar al 100 y escuchar nuestro mensaje, pulsar las opciones disponibles y ver cómo
Playback. Dividimos el audio (o creamos unos nuevos) de modo que uno contenga solamente el saludo de bienvenida (bienvenida.wav) y el otro el menú de la aplicación (menu.wav).
exten => t,1,Playback(
exten => t,n,Hangup()
[phones]
exten => 500,1,Dial(
exten => 600,1,Dial(
exten => 100,1,Goto(incoming,s,1)
6. Recargamos la configuración y marcamos nuevamente al número 100 para observar cómo actúa el sistema.
*CLI> dialplan reload
7. Existen variables de Asterisk que nos determinan el tiempo que se espera entre dígitos (TIMEOUT(digit)) y el tiempo máximo antes de ir hacia la extensión (TIMEOUT(response)) cuando se espera la entrada del usuario. Agregamos las siguientes líneas luego
exten => s,n,Set(TIMEOUT(digit)=3) exten => s,n,Set(TIMEOUT(response)=6)
8. Marcamos nuevamente y probamos. La segunda variable tambi mediante la aplicación
exten => t,1,Playback(syderix/adios) exten => t,n,Hangup()
exten => 500,1,Dial(SIP/500,60) 00,1,Dial(SIP/600,60) Goto(incoming,s,1)
Recargamos la configuración y marcamos nuevamente al número 100 para observar cómo actúa el sistema.
dialplan reload
Existen variables de Asterisk que nos determinan el tiempo que se espera entre dígitos (TIMEOUT(digit)) y el tiempo máximo antes de ir hacia la extensión (TIMEOUT(response)) cuando se espera la entrada del usuario. Agregamos las siguientes líneas luego de contestar la llamada.
exten => s,n,Set(TIMEOUT(digit)=3) exten => s,n,Set(TIMEOUT(response)=6)
Marcamos nuevamente y probamos. La segunda variable también puede ser asignada mediante la aplicación WaitExten si le pasamos el valor como argumento.
Recargamos la configuración y marcamos nuevamente al número 100 para observar
Existen variables de Asterisk que nos determinan el tiempo que se espera entre dígitos (TIMEOUT(digit)) y el tiempo máximo antes de ir hacia la extensión t (TIMEOUT(response)) cuando se espera la entrada del usuario. Agregamos las
én puede ser asignada si le pasamos el valor como argumento.
7. PLAN DE MARCACIÓN
Objetivos:
· Configurar un plan de marcación interno con clases de usuarios (restricción de llamadas).
· Utilizar patrones para definir diferentes destinos de llamadas.
Instrucciones:
Para el siguiente ejercicio se simulará el plan de marcación para una empresa que tiene distintos tipos de usuarios con accesos solamente a determinados destinos.
Configurar los destinos
1. Se va a crear distintos grupos de destinos según el plan de marca el archivo extensions.conf
[locales]
exten => _[2356]XXXXXX,1,Dial(ZAP/g1/${EXTEN},60) exten => _[2356]XXXXXX,n
2. Las llamadas nacionales también deberán ser
[nacionales]
exten => _0[35-7]XXXXXXX,1,Dial(ZAP/g1/${EXTEN},60) exten => _0[35-7]XXXXXXX,n
3. Y finalmente las llamadas a números celulares.
[celulares]
exten => _0[89]XXXXXXX,1 exten => _0[89]XXXXXXX,n
4. Las extensiones internas irán desde la 500 hasta la 580
[internas]
exten => _5[0-7]X,1,Dial(ZAP/g1/${EXTEN},60) exten => _5[0-7]X,n,Hangup()
exten => 580,1,Dial(ZAP/g1/${EXTEN},60)
PLAN DE MARCACIÓN
plan de marcación interno con clases de usuarios (restricción de Utilizar patrones para definir diferentes destinos de llamadas.
Para el siguiente ejercicio se simulará el plan de marcación para una empresa que tiene distintos tipos de usuarios con accesos solamente a determinados destinos.
Se va a crear distintos grupos de destinos según el plan de marcación del Ecuador. En extensions.conf escribimos primeramente la salida para llamadas locales.
exten => _[2356]XXXXXX,1,Dial(ZAP/g1/${EXTEN},60) exten => _[2356]XXXXXX,n,Hangup()
Las llamadas nacionales también deberán ser configuradas.
7]XXXXXXX,1,Dial(ZAP/g1/${EXTEN},60) 7]XXXXXXX,n,Hangup()
Y finalmente las llamadas a números celulares.
=> _0[89]XXXXXXX,1,Dial(ZAP/g1/${EXTEN},60) exten => _0[89]XXXXXXX,n,Hangup()
Las extensiones internas irán desde la 500 hasta la 580
,Dial(ZAP/g1/${EXTEN},60) ,Hangup()
,Dial(ZAP/g1/${EXTEN},60)
plan de marcación interno con clases de usuarios (restricción de
Para el siguiente ejercicio se simulará el plan de marcación para una empresa que tiene
ción del Ecuador. En escribimos primeramente la salida para llamadas locales.
exten => 580,n,Hangup()
5. Se necesitan distintos grupos que incluyan
llamadas entrantes solamente tengan acceso a las extensiones de la empresa y que no puedan retornar a la PSTN.
[entrantes]
include => internas
[salientes_loc]
include => internas include => locales
[salientes_loc_nac]
include => internas include => locales include => nacionales
[salientes_loc_nac_cel]
include => internas include => locales include => nacionales include => celulares
6. Configuramos teléfonos IP como extensi
mientras los ubicamos en los distintos tipos de restricción.
[501]
type = friend
context = salientes_loc callerid = Juan Perez host = dynamic disallow = all allow = ulaw
7. Ahora limitaremos el tiempo de
[celulares]
exten => _0[89]XXXXXXX,1 exten => _0[89]XXXXXXX,n
8. Además, que se necesite una contraseña para acceder a las llamadas nacionales.
[nacionales]
exten => _0[35-7]XXXXXXX,1,Authenticate(/etc/asterisk/passwords) exten => _0[35-7]XXXXXXX,
exten => _0[35-7]XXXXXXX,n,Hangup()
9. En el archivo /etc/asterisk/passwords llamadas nacionales.
# vi /etc/asterisk/extensions.conf ,Hangup()
Se necesitan distintos grupos que incluyan restricciones. Es muy importante que las llamadas entrantes solamente tengan acceso a las extensiones de la empresa y que no puedan retornar a la PSTN.
nacionales [salientes_loc_nac_cel]
nacionales
Configuramos teléfonos IP como extensiones internas e intentamos hacer llamadas mientras los ubicamos en los distintos tipos de restricción.
context = salientes_loc Juan Perez <501>
Ahora limitaremos el tiempo de llamada a teléfonos celulares a tres minutos.
=> _0[89]XXXXXXX,1,Dial(ZAP/g1/${EXTEN},60,L(180000)) exten => _0[89]XXXXXXX,n,Hangup()
Además, que se necesite una contraseña para acceder a las llamadas nacionales.
7]XXXXXXX,1,Authenticate(/etc/asterisk/passwords) 7]XXXXXXX,n,Dial(ZAP/g1/${EXTEN},60)
7]XXXXXXX,n,Hangup()
/etc/asterisk/passwords indicamos las contraseñas que habilitarán las
/etc/asterisk/extensions.conf
restricciones. Es muy importante que las llamadas entrantes solamente tengan acceso a las extensiones de la empresa y que no
ones internas e intentamos hacer llamadas
llamada a teléfonos celulares a tres minutos.
Además, que se necesite una contraseña para acceder a las llamadas nacionales.
7]XXXXXXX,1,Authenticate(/etc/asterisk/passwords)
indicamos las contraseñas que habilitarán las
8. BUZÓN DE VOZ
Objetivos:
· Configurar buzones de voz para diversas extensiones.
· Enviar mensajes de correo de voz como archivos adjuntos al correo electrónico.
Instrucciones:
Para el siguiente ejercicio se deberá
instalarán un cliente de correo para revisar sus mensajes.
Configurar las cuentas
En el archivo de configuración Generalmente se usa el mismo núme
continuación se indica una clave numérica y el nombre de la persona de quien es el correo, el mismo que se puede utilizar para el
1. Creamos dos cuentas de correo de voz al final del archivo direcciones válidas de e
les integre los buzones de voz.
exten => 500,1234,Juan Perez,[email protected]
exten => 600,4321,Violeta Cisneros,[email protected]
Agregar al plan de marcación
Para indicar que el llamante puede dejar un mensaje si el receptor no contesta o está ocupado se usa la aplicación VoiceMail()
correo electrónico, primero el identificador del buzón, el signo @ y luego el contexto en el archivo voicemail.conf.
2. Indicamos que cuando se marque a un teléfono se espere 30 segundos para que el mismo timbre, luego de los cuales se envía directamente al buzón de voz.
exten => 500,1,Dial(SIP/500 exten => 500,n,VoiceMail(
3. El usuario puede no contestar o estar ocupado en otra llamada. Para indicar el mensaje apropiado se utiliza
BUZÓN DE VOZ
buzones de voz para diversas extensiones.
Enviar mensajes de correo de voz como archivos adjuntos al correo electrónico.
Para el siguiente ejercicio se deberá configurar un servidor de correo interno. Los alumnos instalarán un cliente de correo para revisar sus mensajes.
En el archivo de configuración voicemail.conf se crean las cuentas de buzón de voz.
Generalmente se usa el mismo número de extensión como el identificador de la cuenta. A continuación se indica una clave numérica y el nombre de la persona de quien es el correo, el mismo que se puede utilizar para el Directorio.
Creamos dos cuentas de correo de voz al final del archivo voicemail.conf direcciones válidas de e-mail. Previamente se debe crear dos extensiones a las que se les integre los buzones de voz.
Juan Perez,[email protected]
Violeta Cisneros,[email protected]
plan de marcación
Para indicar que el llamante puede dejar un mensaje si el receptor no contesta o está ocupado VoiceMail(). El formato de buzón de voz es parecido a una dirección de correo electrónico, primero el identificador del buzón, el signo @ y luego el contexto en el
Indicamos que cuando se marque a un teléfono se espere 30 segundos para que el mismo timbre, luego de los cuales se envía directamente al buzón de voz.
SIP/500,10)
,n,VoiceMail(500@default,u)
El usuario puede no contestar o estar ocupado en otra llamada. Para indicar el mensaje apropiado se utiliza el segundo argumento de la aplicación VoiceMail() Enviar mensajes de correo de voz como archivos adjuntos al correo electrónico.
configurar un servidor de correo interno. Los alumnos
se crean las cuentas de buzón de voz.
ro de extensión como el identificador de la cuenta. A continuación se indica una clave numérica y el nombre de la persona de quien es el correo, el
oicemail.conf, con mail. Previamente se debe crear dos extensiones a las que se
Para indicar que el llamante puede dejar un mensaje si el receptor no contesta o está ocupado . El formato de buzón de voz es parecido a una dirección de correo electrónico, primero el identificador del buzón, el signo @ y luego el contexto en el
Indicamos que cuando se marque a un teléfono se espere 30 segundos para que el mismo timbre, luego de los cuales se envía directamente al buzón de voz.
El usuario puede no contestar o estar ocupado en otra llamada. Para indicar el VoiceMail(), “u” o
“b” respectivamente. La aplicación
mediante la cual podemos indicar el estado en el que quedó la llamada. Indiquemos entonces que mensaje se debe
ocupado.
exten => 500,1,Dial(SIP/500,30)
exten => 500,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible) exten => 500,n(nodisponible
exten => 500,n,Hangup() exten => 500,n(ocupado exten => 500,n,Hangup()
4. Ahora podemos indicar un número para accede al correo de voz, la aplicaci VoiceMailMain() nos permite hacerlo. Se trata de un menú de voz donde se indican los mensajes receptados, almacenad
Indiquemos la extensión 611 en el archivo voz.
exten => 611,1,VoiceMailMain(
5. Recargamos la configuración y dejamos mensajes en algún buzón de los creados.
Desde ese teléfono luego marcamos al 611, escribimos la clave y navegamos por todo el menú. Es importante que el estudiante pruebe todas las opciones posibles.
6. Si abrimos nuestro cliente de correo electrónico podemos ver que el mensaje también se ha enviado y que h
Directorio
7. La aplicación Directory()
extensión de una persona basándose en los nombre que se almacenaron en el buzón de voz. Creamos dos extensiones que nos permitan ingresar al directorio, una que busque por nombre y otra por apelli
exten => 612,1,Directory(default,internas,f) exten => 613,1,Directory(default,internas
respectivamente. La aplicación Dial() devuelve una variable llamada
mediante la cual podemos indicar el estado en el que quedó la llamada. Indiquemos entonces que mensaje se debe reproducir cuando el usuario no esté disponible o esté
exten => 500,1,Dial(SIP/500,30)
exten => 500,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible) ,n(nodisponible),Voicemail(500@default,u)
500,n,Hangup()
,n(ocupado),VoiceMail(500@default,b) 500,n,Hangup()
Ahora podemos indicar un número para accede al correo de voz, la aplicaci nos permite hacerlo. Se trata de un menú de voz donde se indican los mensajes receptados, almacenados, opciones para cambiar los saludos, etc.
Indiquemos la extensión 611 en el archivo extensions.conf para acceder al buzón de
VoiceMailMain()
Recargamos la configuración y dejamos mensajes en algún buzón de los creados.
teléfono luego marcamos al 611, escribimos la clave y navegamos por todo el menú. Es importante que el estudiante pruebe todas las opciones posibles.
Si abrimos nuestro cliente de correo electrónico podemos ver que el mensaje también se ha enviado y que ha llegado como un archivo adjunto.
Directory() permite ingresar en un sistema en donde se puede buscar la extensión de una persona basándose en los nombre que se almacenaron en el buzón de voz. Creamos dos extensiones que nos permitan ingresar al directorio, una que busque por nombre y otra por apellido
exten => 612,1,Directory(default,internas,f) exten => 613,1,Directory(default,internas)
devuelve una variable llamada DIALSTATUS, mediante la cual podemos indicar el estado en el que quedó la llamada. Indiquemos reproducir cuando el usuario no esté disponible o esté
exten => 500,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible)
Ahora podemos indicar un número para accede al correo de voz, la aplicación nos permite hacerlo. Se trata de un menú de voz donde se indican los os, opciones para cambiar los saludos, etc.
para acceder al buzón de
Recargamos la configuración y dejamos mensajes en algún buzón de los creados.
teléfono luego marcamos al 611, escribimos la clave y navegamos por todo el menú. Es importante que el estudiante pruebe todas las opciones posibles.
Si abrimos nuestro cliente de correo electrónico podemos ver que el mensaje también
permite ingresar en un sistema en donde se puede buscar la extensión de una persona basándose en los nombre que se almacenaron en el buzón de voz. Creamos dos extensiones que nos permitan ingresar al directorio, una que
9. MACROS
Objetivos:
· Utilizar macros para realizar operaciones repetitivas en el plan de marcación.
· Comprender la manera de programar un macro
Instrucciones:
Configurar un macro para el correo de voz
Un macro es parecido a una función o subrutina en algún lenguaje de programación. Nos permite realizar tareas repetitivas en el plan de marcación. En el presente ejercicio vamos a crear un macro para el correo de voz.
1. Crear en el archivo
determinada extensión y el posible ingreso al buzón de voz.
[macro-buzon]
exten => s,1,Dial(SIP/500,30)
exten => s,n,GotoIf($["${DIALSTATUS}" =
exten => s,n(nodisponible),Voicemail(500@default,u) exten => s,n,Hangup()
exten => s,n(ocupado),VoiceMail(
exten => s,n,Hangup()
2. El macro anterior funcionará solamente para la extensi se debe incluir en el mismo archivo:
exten => 500,1,Macro(buzon
3. Recargamos la configuración y probamos hacer una llamada, en la consola de Asterisk podemos observar cada paso que se va ejecutando, desde que se entra al contexto del macro hasta que se sale del mismo.
4. De manera similar a una función se pueden introducir parámetros en un macro.
Debido a que el macro anterior no tiene sentido pues solo se utiliza para la extensión 500 vamos a pasar el número de extensión al momento de llamar al macro.
[macro-buzon]
exten => s,1,Dial(SIP/${ARG1},30)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible) exten => s,n(nodisponible),Voicemail(
exten => s,n,Hangup()
Utilizar macros para realizar operaciones repetitivas en el plan de marcación.
Comprender la manera de programar un macro
Configurar un macro para el correo de voz
es parecido a una función o subrutina en algún lenguaje de programación. Nos permite realizar tareas repetitivas en el plan de marcación. En el presente ejercicio vamos a
para el correo de voz.
Crear en el archivo extensions.conf un contexto de macro para llamar a una determinada extensión y el posible ingreso al buzón de voz.
,1,Dial(SIP/500,30)
,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible) exten => s,n(nodisponible),Voicemail(500@default,u)
,n,Hangup()
),VoiceMail(500@default,b) ,n,Hangup()
El macro anterior funcionará solamente para la extensión 500. Para utilizar esta m se debe incluir en el mismo archivo:
Macro(buzon)
Recargamos la configuración y probamos hacer una llamada, en la consola de Asterisk podemos observar cada paso que se va ejecutando, desde que se entra al contexto del
se sale del mismo.
De manera similar a una función se pueden introducir parámetros en un macro.
Debido a que el macro anterior no tiene sentido pues solo se utiliza para la extensión 500 vamos a pasar el número de extensión al momento de llamar al macro.
exten => s,1,Dial(SIP/${ARG1},30)
,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible) exten => s,n(nodisponible),Voicemail(${ARG1}@default,u)
,n,Hangup()
Utilizar macros para realizar operaciones repetitivas en el plan de marcación.
es parecido a una función o subrutina en algún lenguaje de programación. Nos permite realizar tareas repetitivas en el plan de marcación. En el presente ejercicio vamos a
un contexto de macro para llamar a una
"BUSY"]?ocupado:nodisponible)
ón 500. Para utilizar esta macro
Recargamos la configuración y probamos hacer una llamada, en la consola de Asterisk podemos observar cada paso que se va ejecutando, desde que se entra al contexto del
De manera similar a una función se pueden introducir parámetros en un macro.
Debido a que el macro anterior no tiene sentido pues solo se utiliza para la extensión 500 vamos a pasar el número de extensión al momento de llamar al macro.
,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?ocupado:nodisponible)
exten => s,n(ocupado),VoiceMail(
exten => s,n,Hangup()
5. Ahora cada vez que llamamos a una extensión podemos agregar el mismo macro para que se ingrese al buzón respectivo.
exten => 500,1,Macro(buzon,${EXTEN}
exten => 600,1,Macro(buzon,${EXTEN}
exten => 700,1,Macro(buzon,${EXTEN}
6. Existe un macro estándar en el archivo de configuración de Asterisk llamado
Es una versión más avanzada del macro que hemos creado. El estudiante debe entender este macro y agregarle mayor funcionalidad, considerando todos los valores que puede tener la vari
),VoiceMail(${ARG1}@default,b) ,n,Hangup()
Ahora cada vez que llamamos a una extensión podemos agregar el mismo macro para que se ingrese al buzón respectivo.
Macro(buzon,${EXTEN}) Macro(buzon,${EXTEN}) Macro(buzon,${EXTEN})
cro estándar en el archivo de configuración de Asterisk llamado
Es una versión más avanzada del macro que hemos creado. El estudiante debe entender este macro y agregarle mayor funcionalidad, considerando todos los valores que puede tener la variable DIALSTATUS.
Ahora cada vez que llamamos a una extensión podemos agregar el mismo macro para
cro estándar en el archivo de configuración de Asterisk llamado stdexten.
Es una versión más avanzada del macro que hemos creado. El estudiante debe entender este macro y agregarle mayor funcionalidad, considerando todos los valores
10. ASTDB
Objetivos:
· Utilizar la base de datos de Asterisk para almacenar variables permanentes del sistema.
· Crear una aplicación de listas negras
Instrucciones:
La base de datos de Asterisk AstDB nos
plan de marcación aún si el sistema es reiniciado. En el presente ejercicio vamos a crear un contador que almacene su estado y además una aplicación de listas negras de llamantes.
Configurar un contador
1. Cuando llamemos a la extensión 200 necesitamos que el sistema empiece a contarnos dígito a dígito desde el número 1 hasta que colguemos la llamada. Si se vuelve a marcar se empezará nuevamente desde el 1. El valor del contador los almacenamos en una variable llamada
exten => 200,1,GotoIf($[${ISNULL(${CONTADOR})}]?:continue) exten => 200,n,Set(CONTADOR=1)
exten => 200,n,Goto(1)
exten => 200,n(continue),NoOp() exten => 200,n,SayNumber(${CONTADOR})
exten => 200,n,Set(CONTADOR=$[${CONTADOR} + 1]
exten => 200,n,Goto(1)
2. Guardamos el archivo, recargamos la configuración y probamos hacer una llamada.
3. Ahora la idea es que cada vez que se marque se empiece desde el número desde donde se quedó el conteo la última vez, para esto almacenaremos la variable CONTADOR en la AstDB, en una familia llamada test y con una clave contador.
exten => 200,1,Set(CONTADO
exten => 200,n,GotoIf($[${ISNULL(${CON exten => 200,n,Set(DB(test/contador exten => 200,n,Goto(1)
exten => 200,n(continue),NoOp() exten => 200,n,SayNumber(${CONTADOR exten => 200,n,Set(CONTADOR=$[${CONTADOR exten => 200,n,Set(DB(test/contador)=${CO exten => 200,n,Goto(1)
Utilizar la base de datos de Asterisk para almacenar variables permanentes del Crear una aplicación de listas negras
La base de datos de Asterisk AstDB nos permite almacenar variables persistentes usadas en el plan de marcación aún si el sistema es reiniciado. En el presente ejercicio vamos a crear un contador que almacene su estado y además una aplicación de listas negras de llamantes.
Cuando llamemos a la extensión 200 necesitamos que el sistema empiece a contarnos dígito a dígito desde el número 1 hasta que colguemos la llamada. Si se vuelve a marcar se empezará nuevamente desde el 1. El valor del contador los almacenamos en
riable llamada CONTADOR.
exten => 200,1,GotoIf($[${ISNULL(${CONTADOR})}]?:continue) exten => 200,n,Set(CONTADOR=1)
exten => 200,n,Goto(1)
exten => 200,n(continue),NoOp() exten => 200,n,SayNumber(${CONTADOR})
exten => 200,n,Set(CONTADOR=$[${CONTADOR} + 1]) ,n,Goto(1)
Guardamos el archivo, recargamos la configuración y probamos hacer una llamada.
Ahora la idea es que cada vez que se marque se empiece desde el número desde donde se quedó el conteo la última vez, para esto almacenaremos la variable
en la AstDB, en una familia llamada test y con una clave contador.
exten => 200,1,Set(CONTADOR=${DB(test/contador)})
> 200,n,GotoIf($[${ISNULL(${CONTADOR})}]?:continue) exten => 200,n,Set(DB(test/contador)=1)
,n,Goto(1)
,n(continue),NoOp() exten => 200,n,SayNumber(${CONTADOR})
exten => 200,n,Set(CONTADOR=$[${CONTADOR} + 1])
> 200,n,Set(DB(test/contador)=${CONTADOR}) ,n,Goto(1)
Utilizar la base de datos de Asterisk para almacenar variables permanentes del
permite almacenar variables persistentes usadas en el plan de marcación aún si el sistema es reiniciado. En el presente ejercicio vamos a crear un contador que almacene su estado y además una aplicación de listas negras de llamantes.
Cuando llamemos a la extensión 200 necesitamos que el sistema empiece a contarnos dígito a dígito desde el número 1 hasta que colguemos la llamada. Si se vuelve a marcar se empezará nuevamente desde el 1. El valor del contador los almacenamos en
Guardamos el archivo, recargamos la configuración y probamos hacer una llamada.
Ahora la idea es que cada vez que se marque se empiece desde el número desde donde se quedó el conteo la última vez, para esto almacenaremos la variable
en la AstDB, en una familia llamada test y con una clave contador.