You are on page 1of 188

VOIP con Asterisk y GNU/Linux: MODULO 1

Agosto 2010 Santiago, Repblica Dominicana Instructor: Antonio Perpian Fundacin Cdigo Libre Dominicano
Page 1

Presentacin del Curso

GENERALES del Cursos:

MODULO 1

Introduccin a VOIP y SIP Componentes de VOIP Configuracin de Central Telefnica Asterisk

Planes de Marcado y Aplicaciones

MODULO 2

Caractersticas Avanzadas de Asterisk SIP, IAX y DUNDi. Trunking, Tarjetas Anlogas, Digitales, Channel Banks, Appliances. AGI y AMI. Dimensionamiento y Planificacin de Redes VoIP

Page 2

Presentacin del Curso

Perfil de los participantes:

Nombre Estudios Expectativas del curso Conocimientos de:

Networking Telefonia/VOIP Linux Adicional?

Objetivos del Curso. Resultados del Curso. Competencias a adquirir al finalizar el Curso. Introduccin al Mercado VOIP en Repblica Dominicana. Aplicacin de Expectativas de los participantes.

Page 3

Asterisk Ruta al GCAP y DCAP

Page 4

Evaluacin del Curso

Para obtener el CERTIFICADO DE APROBACION del curso usted necesita obtener por lo menos el 70% de calificacin.

50% Evaluacin Terica al final del contenido del curso. 50% Evaluacin de Prcticas (individual/grupal) incluyendo proyecto final.

Para obtener el CERTIFICADO DE ASISTENCIA al curso usted necesita tener por lo menos el 90% de asistencias del total de horas impartidas del curso.

Las practicas sern En Vivo!!, debe presentar el Proyecto

Page 5

Programa Resumido del curso

1) Conceptos bsicos de VOIP 2) GNU/Linux para administradores de Asterisk 3) Introduccin a Asterisk 4) Instalando Asterisk 5) Configuracin Inicial de Asterisk 6) Conceptos bsicos del plan de marcado 7) Conceptos avanzados del plan de marcado 8) Interfaces grficas de administracin de Asterisk

Page 6

Conceptos bsicos de VOIP


Da #1
Page 7

Un poco de Historia

Telefona Tradicional Telfono Inventado en 1876 por Antonio Meucci (atribuido a Alexander Graham Bell hasta el 2002). Originalmente: Transmisin sobre un hilo de hierro, comunicacin punto a punto. Hoy en da: 1000 millones de telfonos repartidos por todo el mundo. Arquitectura Mallada: Todos contra todos

Page 8

Introduccion a Central Telefonica Digital

En la central naci el concepto de switch que inicialmente lo realizaba manualmente una persona, luego aparecieron los conmutadores electrnicos.

Qu parte es digital? Qu parte es Analgica?

En muchos casos la comunicacin es analgica hasta la central En la central se realiza PCM a 64kbps sin perdida de calidad, Por que 64kbps?

Page 9

La Interconexion de centrales

No es posible realizar un mallado de todos contra todos, sin embargo se necesita un circuito dedicado para cada llamada, la solucin es multiplexar las llamadas: TDM Time Division Multiplexing. Qu realmente se multiplexa? El enlace troncal entre centrales.

Page 10

La Interconexin de centrales tradicional

Han escuchado el termino: INTERCONEXION?

El uso del canal (troncal) de interconexion nos permite comunicarnos entre centrales (entre TELFONICAS).

El recurso que se ha establecido para la llamada (circuito) esta ocupado el tiempo de duracin de la llamada.

Mtodo ideado para voz

El precio, derechos, uso, liberacin, garanta de disponibilidad es regulacin de cada pas, en Repblica Dominicana: CODETEL/TRICOM/ETC y vigilado por INDOTEL.

Page 11

Que es una troncal?

Una troncal es una lnea conectada entre dos sistemas de switcheo, no necesariamente en grandes centrales. No todos los usuarios o agentes requieren una troncal, las troncales se organizan en grupos. E1/T1: se multiplexan TDM por lo que necesitan estar sincronizados vienen en 4 hilos 1 par para Tx y otro para Rx. E1: 32 Canales a 2.048Mbps con ley A, T1: 24 Canales a 1.544Mbps con ley u. Estas medidas se usan para tramas/troncales para conectar centrales, para clientes corporativos y tx de datos dedicados. Mas usado en mercado: E1 MFC-R2 CAS 30 canales simultaneos a 64Kbps y 2 de sealizacin, normalmente carriers no entregan SIP.

Page 12

Principios de VOIP

VoIP : Voice over Internet Protocol Uso de una red de datos para todo el proceso de llamadas de voz. Permite unir dos mundos distintos: Telefona y Redes de Datos. Usan un protocolo comn de convergencia: IP Protocolo de Internet.

IMS. Y las llamadas por Internet? Skype? Messenger? La voz es anloga, IP y las redes de datos??? Es Telefona Digital??? Se utiliza realmente VOIP??? Se utilizar???

Discusin:

Page 13

Que funciones debe realizar VOIP?

Digitalizacin de la voz. Paquetizacin de la voz. Enrutamiento de los paquetes.

Adems: Conversin de nmeros telefnicos a direcciones IP y viceversa.

Generacin de la sealizacin requerida por la red telefnica.

Page 14

Algo de Actualidad

Internet es la mayor red de datos del mundo VOIP ser realizar llamadas por Internet.

Existen DOS enfoques diferentes:

VOIP: cualquier comunicacin de voz por paquetes en una red IP. TOIP: TELEFONIA IP!!, la diferencia es que esta se rige por los parmetros de calidad y control estrictos de la ITU.

El 50% de las llamadas de grandes operadoras son encaminadas por IP. Para el control de calidad se PUEDEN usar CODECS especficos

VOIP sobre una red privada: REDES debe controlar toda la fiabilidad similar a la de una TELCO.

En Internet?? Se puede estudiar e INTENTAR controlar el indice de fiabilidad.

Page 15

Algo de Actualidad

La convergencia de servicios de Telecomunicaciones Actuales se basa en IP. WiFI, WiMAX, ADSL, ADSL2+ tienden a usar IP como protocolo de red que permita handover/entrega vertical. Las nuevas Redes Mviles tambin estn basando toda su red de datos antes propietaria de la tecnologa a IP (IMS). REFERENCIA WEBOK

Page 16

Problemas de VOIP

Existen problemas que no existan o tenan una solucin sencilla en la telefona Tradicional y que afectan la QoS en VOIP:

Requerimientos dinmicos de ancho de banda. Control y Paquetizacin Latencia Jitter

Como controlarlos en Internet? No hay control ni responsabilidad en Internet.

Y la perdida de paquetes? VOIP y Asterisk se montar sobre RTP que funciona sobre UDP, existe retransmisin de paquetes?

Page 17

Agentes Implicados

Usuarios VoIP: Utilizan tecnologas VoIP para realizar llamadas.

Proveedores de VoIP: permiten llamar desde VoIP a telefona tradicional. Cobran por ese servicio.

Carriers de VoIP: Venden sus rutas VoIP a los proveedores, son 'mayoristas' de minutos IP.

Terminadores VoIP: Venden sus lneas para llamar a telefona tradicional a los proveedores de VoIP.

Integradores de Soluciones VoIP: Conectan centralitas a VoIP, servidores dedicados para servicios adicionales, conexiones

CRM -> VoIP, Softphones

Page 18

Agentes Implicados

Proveedor de VOIP: El principal servicio de los diferentes proveedores de Voz sobre IP es el de hacer de puerta de enlace hacia la red telefnica pblica (conocida como PSTN/POTS) a costos muy reducidos

Page 19

Elementos Implicados

Telfono IP: apariencia comn, tiene por lo menos 1 conector RJ45 para conectarse a una red IP. NO provee conexin RJ11. Tambin se incluyen telfonos WIFI. El conector RJ45 provee 10/100/1000Mbps

Grandstream Budgetone 102

LINKSYS WIP300

Page 20

Elementos Implicados
Verifiquen sus Telfonos IP Que marca son? Son Dual Lan? Dual Lan: disponen de dos conectores RJ45 e implementan funciones de switch, de esta forma no es necesario tirar otro cableado para los nuevos dispositivos IP. Cableado estructurado, crecimiento horizontal?

Page 21

Elementos Implicados

Adaptador Analgico IP (ATA): transforman la seal analgica de los telfonos tradicionales a lo que VOIP entiende (protocolo y codec) proveen conectores RJ11 y RJ45.

Linksys PAP2T-NA

Grandstream Handytone 386

Ventaja? Permite reutilizar los telfonos actuales. Nociones de Dimensionamiento y Planificacin de Redes VoIP.

Page 22

Elementos Implicados

Softphones: Programas que proveen toda la funcionalidad de un telfono, adicionando los servicios de valor agregado de VOIP (toda comunicacin voz/video sobre IP).

Identificacin de Headsets en el Laboratorio.

Page 23

Elementos Implicados

Trminos de uso comn y su aplicacin como agentes de VOIP:

Gateway: pasarela entre una red convencional PSTN y una red IP, se encarga de digitalizacin y paquetizacin y garantiza la comunicacin entre dispositivos IP y no IP, centrales IP y no IP. Gatekeeper: controlador o core de los gateways, AuC de usuarios, control de BW, enrutamiento IP, el bsico de H.323. Sip Proxy: acta como conmutador (switch) de llamadas con funciones limitadas, Asterisk puede proveer muchos servicios pero menos capacidad de conmutacin y funciones de Switch. Se usan como sistemas de balanceo de carga y tolerancia a fallos, capacidades para ambientes distribuidos.

Page 24

Elementos Implicados

Tarjetas de Telefona: Tipo PCI o PCI Express vienen en variedad: 2,4,8,24 puertos analgicos o 1, 2 o 4 lineas digitales Las tarjetas de 24 puertos analgicos permiten hasta 6 mdulos FXS o FXO o una mezcla entre ellos, cada modulo tiene 4 lineas. Modulo adicional de cancelacin de ECO y capacidad de anfenol a patch panel o channel bank.

Digium TDM2400P

Page 25

Elementos Implicados

Tarjetas de hasta 4 mdulos FXS o FXO: TDM410

Tarjetas de hasta 8 puertos analgicos y soportan quads y duals FXS, FXO: TDM800.

Manejan 14 Mdulos de 2 lineas cada uno.

Con o sin modulo cancelador de ECO.

Page 26

Como funciona la VOIP?

Paso 1: Los dos comunicantes se registran en el servidor VoIP con sus telfonos (Hardphones, Softphones).

Paso 2: El equipo del emisor pregunta por el equipo del receptor.

Paso 3: El servidor VoIP devuelve datos de contacto al emisor (puertos, direcciones IP).

Paso 4: Se establecen comunicacin entre los interlocutores.

Todo ello utilizando un protocolo determinado: SIP, IAX2, H323 ...

Que es un protocolo?

Es el 'Conjunto de Reglas' que se utilizan para negociar y establecer las comunicaciones de voz sobre IP.

Page 27

Protocolos de VOIP

H.323 IAX2 SIP MGCP Skinny/SCCP UNISTIM

Los protocolos de transporte o de Internet no fueron originalmente diseados para entregar paquetes en tiempo real los puntos finales son diseados para esperar, retransmitir, descartar, esto no funciona en las conversaciones de voz

Page 28

Protocolos de VOIP
Protocolo H.323 Es un estndar del ITU (International Telecommunications Union) que provee especificaciones para ordenadores, sistemas y servicios multimedia por redes que no proveen calidad de servicio.

Provee control y sealizacin para negociar las posibilidades de la comunicacin:

Negociacin de codecs Verificacin de la posibilidad de establecer canales de 'media'. Control de secuencia

Para el streaming, se basa como SIP en RTP / RTCP

Page 29

Protocolos de VOIP
Protocolo H.323: Ventajas

Implementa QoS de forma interna. Ms completo: control de conferencias, recursos .. Soporta conferencias de forma nativa de vdeo y datos. SIP vs H323:

No hay un claro vencedor.

En EEUU se apost por SIP y de ah se ha derivado en prcticamente un estndar.

Page 30

Protocolos de VOIP
IAX (Inter Asterisk eXchange) Es un protocolo abierto, originalmente diseado por Digium para comunicarse con otros servidores. Es un protocolo de transporte que utiliza el puerto UDP 4569 tanto para sealizacin como para los flujos de RTP (real time transfer protocol) Es el nico que tiene la capacidad de trunkar mltiples sesiones en un solo flujo de datos, esto ayuda a reducir la latencia, la necesidad de procesamiento y el ancho de banda requerido Permite escalar mas fcilmente una gran cantidad de canales de voz entre dos puntos finales
Page 31

Protocolos de VOIP
El futuro de IAX

Debido a que IAX fue diseado pensando en voz ha recibido criticas por no tener un soporte adecuado para video.

Sin embargo tiene todo el potencial para desarrollar soporte para cualquier flujo de datos multimedia.

El que sea un protocolo abierto es quizs su mayor ventaja pues la comunidad que lo disea puede agregar las nuevas funcionalidades que desee.

Page 32

Protocolos de VOIP
IAX: Consideraciones de Seguridad

Tres formas de autentificar: Texto plano, MD5 e intercambio de clave RSA.

Esta autenticacin no encripta el flujo de datos (trafico multimedia, headers) por lo que se recomienda el uso de VPNs para mayor seguridad.

En el futuro se prev que IAX permita la encriptacin de los flujos multimedia entre dos puntos, con el uso de una llave RSA compartida o de asignacin dinmica al momento de establecer una llamada

Page 33

Protocolos de VOIP
Protocolo SIP SIP: Session Initiation Protocol, protocolo del IETF para VozIP, texto y sesiones multimedia.

Es principalmente un protocolo de sealizacin de capa de aplicacin para iniciacin, modificacin y terminacin de sesiones de comunicacin multimedia entre usuarios.

Principales elementos implicados:

User Agent (Usuario) Registrar y SIP Proxy

El sector tiende globalmente hacia SIP.

Page 34

Protocolos de VOIP
Protocolo SIP Capacidades de SIP: Localizacin del usuario. Disponibilidad del usuario: determinacin de la voluntad del receptor de la llamada de participar en las comunicaciones. Capacidad del usuario: Determinacin del medio y de sus parmetros. Gestin de la sesin: transferencia, terminacin de sesiones, modificacin de los parmetros de la sesin desde el propio 'User Agent'. En SIP, el usuario es el 'dueo' de su sesin.

Page 35

Protocolos de VOIP
Protocolo SIP: Esquema de funcionamiento El protocolo SIP es de forma nativa peer to peer: Dos User Agents pueden establecer una sesin entre s:

Dos Canales:

Sealizacin(UDP 5060): Establecimiento, Negociacin, Fin...) Streaming RTP (UDP 10000-20000 normalmente) y control RTCP.

Page 36

Protocolos de VOIP: Llamada

Page 37

Codecs de VOIP
Los cdecs se utilizan para transforma la seal de voz analgica en una versin digital. Los Softphones, Hardphones, PBX-IP ... soportan una serie de cdecs cada uno. Cuando hablan entre si negocian un cdec comn. Lo bsico: PCM

Page 38

Codecs de VOIP

Si la voz esta entre los 300 y 4.000 Hz una frecuencia de 8.000 muestras por segundo reconstruir perfectamente la seal.

Si se utilizan 8 bits para cuantizar la seal se necesitaran=8 bits x 8.000 Hz=64 kbps (G.711 o PCM puro)

Cuando se muestrea una seal, la seal de muestreo debe ser al menos el doble del ancho de banda de la seal de entrada, con la finalidad de reconstruir perfectamente la seal a partir de la muestra tomada.

Page 39

Codecs de VOIP

GSM iLBC G.711 G.723 G.726 G.729 Speex


Page 40

13 kbps 15 kbps 64 kbps 5.3/6.3 kbps 16/24/32/40 kbps 8 kbps 2.15 a 44.2 kbps

Telefonia Convencional vs. Telefonia IP

Telefona Convencional: PBX (Private Branch eXhange) propietarias

Requieren hardware y mdulos de software costosos. Incompatibles. El Hardware de una marca no funciona en otra marca. Sistema rgido y cerrado, sin personalizacin. Su modelo de licenciamiento condiciona el crecimiento. Requiere hardware especializado. Sobre la base de conmutacin de circuitos. El circuito est dedicado a una comunicacin telefnica, inclusive en los silencios. Se garantiza la calidad de la transmisin.

Redes telefnicas

Page 41

Telefonia Convencional vs. Telefonia IP

Telefona IP

Transporta voz convertida en datos (transmisin de paquetes). La llamada se transmite por varios caminos (en paquetes de datos) sin bloquear el enlace. Un Gateway se encarga de interactuar entre la telefona convencional y la telefona IP. Integra las dos redes (voz y datos) en una sola red. Reduce costos en el usuario final. Integra telefona, video, mensajera instantnea. Problema: pueden perderse paquetes

Page 42

Open Source PBX


Utiliza hardware estndar. Es desarrollada y mantenida por la comunidad (centenares). El desarrollo es modular, dinmico, flexible, adaptable. Aprovecha lo mejor que encuentra en otros PBX. No se limita a las leyes del mercado. Es interoperable. Tiene su base en estndares abiertos. Permite personalizacin por parte del usuario. Su infraestructura no est manejada por una sola empresa.

Facilita el trabajo remoto. El cliente decide lo que quiere, elimina lo que no le interesa Su crecimiento es ilimitado; escalable. Telefona: una aplicacin ms de red que se integra al resto de las aplicaciones (voz-datos). Entorno de desarrollo, plataforma de aplicacin. Escalable a Pyme, call centers y grandes empresas. Incorpora toda la funcionalidad de los PBX propietarios. Aprovecha el crecimiento de la banda ancha y las tecnologas WiMAX, Wireless.

Page 43

GNU/Linux para administradores de Asterisk Da #2


Page 44

Objetivos de esta Unidad

Introducir los paquetes necesarios (1.6) para nuestra futura instalacin de Asterisk. Adquirir habilidades para manera el Shell de GNU/Linux principalmente en gestin de paquetes y mbito de red. Rescatar los comandos comnmente Administradores de Asterisk. necesarios como futuros

Hacer una comparativa con DOS para los usuarios Windows. Preparar el laboratorio en mbito de administracin bsica de red para VoIP. Luego de esta unidad tendremos la primera evaluacin TEORICA!! sobre comandos de GNU/Linux.

Page 45

Paquetes necesarios para la compilacin

Page 46

Linea de Comandos de Linux: Shell

El shell prompt ser algo como:

[username@localhost.localdomain username]$ [root@localhost.localdomain root]#

Siendo $ el indicador de un usuario normal.

Siendo # el indicador de que se ha iniciado como root, para acceder se usa su.

Todo comando en el shell prompt tendr la sintaxis:

command -options <filename>

Los comandos se completan usando tab

Page 47

Linux Shell

Wildcards, funcionan como ocupantes de lugar para distintas funciones en modo texto:

* Matches all characters ? Matches one character \* Matches the * character \? Matches the ? character \) Matches the ) character

El comando pwd muestra el directorio actual de trabajo.

Page 48

Iniciando Linux

Inicie Linux!!

Tmese un tiempo para familiarizarse con el sistema, probando los comandos que se han explicado.

Se pueden realizar Preguntas personalizadas. Qu otras versiones han escuchado de Linux? Por qu FEDORA? Busque el SHELL de Linux, Inicielo! Por qu usar el SHELL de Linux?

Page 49

La Red en Linux

Ejecute el Comando ifconfig Que resultados obtuvo?

Cada interfaz activa se identifica con su nombre, Identifique las interfaces activas.

En el caso de un NIC Hard se identificar la MAC address precedido por el trmino HWaddr.

La Direccin IP esta precedido por el termino inetaddr y la direccion broadcast por el trmino Bcast, la subred en donde estamos por el termino Mask.

Como se identifica las direcciones IPv6? Como obtener la informacin unicamente de la Interfaz de Inters?

Page 50

La Red en Linux

Cmo se levanta una interfaz? Cmo se setear Broadcast, Mascara y la direccin ip de la interfaz? Qu hace ifup [interfaz] ?? Qu nos muestra netstat ?? Dnde se debe colocar la informacin de los DNS? Despliegue con cat al archivo resolv.conf en /etc haga Despliegue con less al archivo /etc/sysconfig/network Edite con VI o nano el archivo de configuracin de su interfaz ethernet /etc/sysconfig/network-scripts/ Despliegue el archivo de configuracin de los mdulos para dispositivos

/etc/modprobe.d/dist.conf

Page 51

Comandos de Red

host : Determina la direccin IP de un "Host" , host -a despliega toda la informacin de DNS.

ifconfig : Permite configurar una interfase de Red y ver el "status" de sta. Esa de la forma ifconfig <interfase> , ejemplo: ifconfig eth0

ifup: Habilita la interfase especificada,ejemplo: ifup eth0 . ifdown : Deshabilita la interfase especificada,ejemplo: ifdown eth0 .

netstat -a : Todas la conexiones de Red originadas y recibidas por el "Host"

netstat -an | grep 25 : Listar las conexiones de red originadas y recibidas por el "Host", sobre el puerto 25

netstat -r : Muestra la tabla de ruteo "routing table" del sistema netstat -i : Estadsticas de red de cada interfase

Page 52

Comandos de Red

lsof -n -i:25 : Determinar el programa del sistema operando bajo el puerto 25

ping -s 1016 : Manda paquetes de ping de 1024 bytes (header 8 bytes), mientras que el "default" es 512.

route -n : Despliega la tabla de ruteo del "Host". NOTA: Debe de estar "IP Forwarding" ON en /etc/sysconfig/network , adems el "kernel" debe de estar configurado para "IP Forwarding" .

smbclient : Funciona como un cliente FTP, que simula conexiones que sern realizadas a travs de Samba. (Vea smbclient )

tcpdump : Permite el "debugging" de una interfase en el host.

Page 53

Control de Procesos

ps -aux : Despliega todos los procesos del sistema, con nombre y tiempo de inicio kill : Es utilizado para mandar seales a los procesos en Linux. kill -HUP <pid> : Seala al proceso con numero <pid>, que vuelva a leer sus archivos de configuracin kill -INT <pid> : Seala al proceso con numero <pid>, que sera interrumpido kill -TERM <pid> : Seala al proceso con numero <pid>,que debe de terminar, a diferencia de -KILL , esta opcin da la oportunidad al proceso de terminar. kill -STOP <pid> : Seala al proceso con numero <pid>, que pare momentneamente kill -CONT <pid> : Seala al proceso con numero <pid>, que continu, este comando se utiliza para reanudar un proceso que le fue aplicado -STOP
Page 54

Mas Comandos

kill -KILL <pid> : Seala al proceso con numero <pid>,que termine de inmediato, el proceso es terminado abruptamente. killall : A diferencia de kill , killall permite mandar un seal al proceso por nombre. killall <nombre del proceso > : Enva la seal -TERM al proceso con el nombre especificado. NOTA: Por "default" la seal que toma kill y killall es -TERM . ps -l : Este comando despliega dos parmetros PRI y NI. El parmetro PRI indica la prioridad actual del proceso, que es calculada por el sistema operativo, el valor de NI es tomado en cuenta cuando se determina el PRI.

Page 55

La Red en Linux

Discusin:

Tiene GNU/Linux Soporte para todos los equipos y NICs principalmente? Quin da mejor Soporte Windows o Linux? Se puede dar el caso que haya soporte Windows y NO para GNU/Linux para una NIC? Que hara en ese caso? Han escuchado sobre wrappers de drivers? Virtualizar seria una opcin? Cal es el soporte mas limitado de GNU/Linux en Red Frente a Windows?

Page 56

YUM

Yum (Yellow dog Updater Modified) es un programa automtico para instalar / desinstalar los RPM del sistema. Obtiene automticamente dependencias y previene que ha de ocurrir para instalar correctamente los paquetes. Hace ms fcil mantener grupos de mquinas sin tener poner al da manualmente cada RPM que usan.

Ejecute yum check-update, Qu resultado muestra?

RPM (RedHat Package Manager), Sistema Gestor de Paquetes de GNU/Linux, mantiene una DB con los datos/dependencias/relaciones de los archivos que generan aplicaciones en GNU/Linux.

Evita el manejo directo con archivos binarios, cdigo fuente, configuraciones, compilacin, etc.

{nombre}-{versin de la aplicacin}-{versin del paquete}.{arquitectura}.rpm

Page 57

Preparando el Laboratorio

Antes que nada, Por que no Virtualizar??

Verifique que interfaces ethernet estn levantadas, de ser necesario levante la interfaz.

Verifique el punto de red este correctamente conectado.

Verifique la IP y verifique con sus compaeros un plan correcto de asignacin de direcciones IP.

Verifique que pueda navegar en Internet. Verifique que pueda alcanzar todas las mquinas del laboratorio.

Algn problema, COMUNIQUELO! (Por ahora podremos seguir con Windows), debemos preparar el laboratorio para que todo funcione.

Verifique la carpeta /usr/src/ Para que podra ser usada?? Que hay en esa carpeta??

Page 58

Introduccin a Asterisk Da #3
Page 59

Algo de historia

60s aparecen las centrales electrnicas analgicas, conmutacin por rels. Telefona digital utilizada para trunking. Se introduce la IDSN o RDSI. Las centrales PBX se vuelven Software, especifico del fabricante. (1997) basndose en H323.

Aparecen caractersticas de valor agregado como buzn de voz, conferencias, llamada en espera, msica en espera.

Page 60

Algo de Historia y Actualidad


2000 las empresas aun no confan en soluciones libres como Linux y *.

Las PBX se venden como CAJAS NEGRAS, mientras se pensaba que VoIP no tendra Asterisk sigue evolucionando como sinonimo de VoIP. xito por requerimientos de Ancho B. Aparecen otras empresas para

1998 Aparece SIP como Sangoma, Openvox, etc. evolucin de H.323 y empieza CISCO compra empresas VoIP la revolucin de banda basadas en H.323 y propone un ancha. SIP. Huawei soporta SIP.

desarrollar HW para * como

Asterisk soluciona el NAT con IAX!! Comenz en 1999 desarrollado por Mark Spencer Aparece IAX2 y Asterisk tiene y Digium como sponsor. soporte para casi todos los

protocolos.
Page 61

Introduccin a Asterisk: Que es?

Se han revisado muchos conceptos, Que es Asterisk? Es un sistema de comunicaciones TOTALMENTE en software. con aplicaciones, basado

Permite integrar e instanciar gran cantidad de agentes de redes de datos y de voz de acuerdo a la aplicacin. VOZ, DATOS y VIDEO convergen en Asterisk como la base para el desarrollo de muchas aplicaciones. Es una IP PBX, Asterisk como Softswitch? En grandes proyectos se puede usar Clustering, y redundancia. Se ejecuta en una PC estndar (arquitectura x86, x86_64, ppc) bajo GNU/Linux, BSD o MacOSX. Asterisk en un FPGA? Appliances de Asterisk?
Page 62

Asterisk y su Funcionalidad

Asterisk es un B2BUA: Back to Back User Agent, Agente de usuario de extremo a extremo.

Entidad del protocolo SIP. El RFC de SIP define la siguiente funcionalidad:

Gestion de llamadas (facturacion, desconexion automatica . . . ) Interconexion de red(adaptacion de protocolos) Ocultar la estructura de la red (direcciones privadas, topologias de red) Transcodicacin entre las dos partes de una llamada.

Detalles de Sealizacin: MODULO 2!!

Page 63

Asterisk

Los terminales ven a Asterisk como un servidor, en medio de toda la sealizacin (a diferencia de un proxy o un router).

Asterisk traduce las conversaciones entre agentes que hablen diferentes idiomas transcoding.

Tiene funciones de GW, maneja diferentes protocolos en los diferentes extremos de funcionalidad del GW.

Asterisk NO es un servidor proxy.

Asterisk siempre se encuentra en medio de una conversacin entre terminales SIP, (sealizacin y datos).

Page 64

Asterisk Arquitectura en el stack de Linux

Aplicaciones

Gestin

Consola Interfaz Config Motor Mdulos CLI AMI TXT SQL

Asterisk

ASTERISK ZAPTEL/DAHDI Kernel 2.4 / 2.6 GNU/Linux


Julin Dunayevich, Lzaro Baca, Andrs Brassara, Santiago Alberch

Mdulos

Page 65

Asterisk Arquitectura
Multiconferencia, IVR, Buzn de Voz, Directorio, aplicaciones personalizadas, ...

API de Aplicaciones Asterisk Traductor de Codecs Lanzador de Aplicaciones API de Formatos de Ficheros Asterisk

A PI de Traduccin de Codecs

GSM G723 G711 MP3 ADPCMA LINEAR

Temporizador y Gestor de Entradas/Salidas

GSMsf G723sf WAV MP3

Ncleo de Centralita

Cargador de Mdulos

API de Canales Asterisk

SIP, H323, BRI, PRI, Bancos de Canales, HW especfico, ...


Page 66

Asterisk Arquitectura

+ Integracin de casi todas las formas de comunicacin + Integracin de casi todos los codecs de audio + Integracin de multitud de Aplicaciones de telefona

+ API de canales: Sirve para controlar todas las llamadas del sistema, sean Voz IP, analgicas cualquier otra tecnologa pudiendo desarrollar nuevos canales

+ API de Formato de Ficheros: Sirve para controlar el formato de ficheros que pueden ser controlados por el sistema

+ API de Aplicaciones: Se han desarrollado muchas aplicaciones de IVR, MultiConferencia, etc, etc. Pudiendo desarrollar todas aquellas aplicaciones ms mediante AGI (Asterisk Gateway Interface) pudiendo desarrollarse aplicaciones en C, C++, perl, php, etc.

+ API de Traduccin de Codec: Controla la traduccin de codecs entre participantes en una comunicacin. Se pueden implementar codecs nuevos.

Page 67

Asterisk Caracteristicas
De Llamada:
Sistema de Men en Pantalla Receptor de Alarmas Adicin de Mensajes Autentificacin Atencin de llamada Automtica Listas Negras Transferencia Ciega Transferencia con Consulta Registro de detalles de Llamada Reenvo de llamada en ocupado Reenvo de llamada en Nodisponible Reenvo de llamada variable Monitorizacin de Llamadas Aparcamiento de Llamada Sistemas de Colas Grabacin de llamadas Recuperacin de Llamadas Enrutamiento de llamadas (DID & ANI) Escucha de Llamadas Transferencia de Llamadas Llamada en Espera Identificacin de LLamada Bloqueo por identificacin de llamada

Tarjetas prepago Multiconferencia Almacenamiento / Recuperacin en BBDD Integracin con BBDD Llamada por Nombre Sistema de Acceso directo entrante Timbre personalizable No molestar E911 ENUM Recepcin y Envo de FAx Lgica de extensiones Flexible Listado de directorio Interactivo Respuesta de Voz Interactiva(IVR) Agentes de llamada Locales y Remotos Macros Msica en Espera Msica en Espera en transferencia Sistema de MP3 configurable Control de Volumen Marcador Predictivo Privacidad Protocolo de establecimiento abierto (OSP) Conversin de protocolo Captura de Llamadas

Extensiones mviles Enrutamiento por Indetificador de llamada Mensajera SMS Sistema TextToSpeach Emitir Letras y Nmeros Deteccin de Voz Llamada a tres Fecha y Hora Traduccin de Codec Trunking Pasarelas VozIP Sistema de Buzn de Voz Indicador visual de mensaje no escuchado Indicador sonoro de mensaje no escuchado Mensajes del Buzn de Voz a Email Grupos de Buzn de Voz Interfaz Web de acceso al Buzn de Voz Identificacin de llamada en Llamada en Espera Soporte de oficina Remoto

Page 68

Asterisk Caracteristicas
CTI(Integracin de Telefona con el Ordenador):
AGI (Asterisk Gateway Interface) Monitor de Llamadas Grfico Sistema de Colas para llamadas salientes Marcador Predictivo Interfaz de Gestin va TCP/IP

Escalabilidad:
TDMoE (Time Division Multiplex over Ethernet) Permite conexin directas entre PBX Asterisk Latencia Cero Usa Hardware Ethernet Estandar Voz Sobre IP Permite la integracin de Instalaciones separadas fsicamente Usa conexiones de datos estndar Permite un Plan de numeracin nico para todas las oficinas

Page 69

Asterisk Caracteristicas
Codecs de Audio:
ADPCM G.711 (A-Law & -Law) G.723.1 (sin intervenir en la comunicacin) G.726 G.729 (bajo licencia) GSM iLBC Linear LPC-10 Speex

Compatibilidad con Telefona Estndar:


E&M E&M Wink Feature Group D FXS FXO GR-303 Loopstart Groundstart Kewlstart MF and DTMF support Robbed-bit Signaling (RBS) Types

Protocolos:
IAX (Inter-Asterisk Exchange) H.323 SIP (Session Initiation Protocol) MGCP (Media Gateway Control Protocol SCCP (Cisco Skinny)

Protocolos de Sealizacin RDSI Primarios


4ESS BRI (ISDN4Linux) DMS100 EuroISDN Lucent 5E National ISDN2 NFAS

Page 70

Asterisk: Protocolos de SEALIZACION soportados

Full supported:

SIP (Session Initiation Protocol) IAX (Inter-Asterisk eXchange Version 2 IAX2) H.323 (De la ITU) MGCP (Cisco Media Gateway Control Protocol) SCCP (Cisco Skinny Client Control Protocol) Unistim (Nortel)

Non-Fully Supported:

Page 71

Asterisk como viene?

Asterisk es un demonio (daemon=demonio) que se ejecuta en background, al igual que el resto de los servidores conocidos (apache, openssh, proftpd, ...).

La configuracin normalmente se almacena en varios archivos de texto editables de forma tradicional.

Se distribuye como cdigo fuente para ser compilado e instalado, aunque existen versiones paquetizadas para las distribuciones GNU/Linux ms comunes.

Page 72

Preparando un Sistema para Asterisk

Los requisitos dependen directamente de:

Las llamadas concurrentes. (canales) Las conferencias y aplicaciones complejas simultneas. Las transcodifcaciones necesarias (recodificacin).

Principalmente, Asterisk requiere de un microprocesador.

Segn Digium, un equipo Dual Intel Xeon 1.8 Ghz 1 Gb Ram soporta 60 llamadas concurrentes codificando con el codec G.729.

Como es difcil determinar con exactitud, es mejor apuntar alto para poder escalar.

Page 73

Preparando un sistema para Asterisk

Asterisk puede ser instalado en las siguientes plataformas:

GNU/Linux 2.x MacOSX 10.x Open Solaris BSD MS Windows: utilizando Cooperative Linux (no recomendado).

En este curso se detallar la instalacin en plataformas GNU/Linux. Virtualizar? Quizas un web front end

Page 74

Hardware para Telefona: Interfaces Analgicas

Puertos FXO: Estos interfaces que integra el Asterisk es utilizado para conectarse con la RTPC o como extensin de una centralita tradicional analgica. Para establecer estas conexiones se pueden utilizar las tarjetas X100P y TDM400P de Digium o bien tarjetas TE110P o TE410P conectadas con bancos de Canales. Conectar lineas analogicas que vienen de la calle.

Puertos FXS: Estos interfaces que integra el Asterisk es utlizado para que se puedan conectar extensiones analgicas al Sistema. Para establecer estar conexiones se pueden utilizar las tarjetas TDM400P de Digium o bien tarjetas TE110P o TE410P conectadas con Bancos de Canales. Conectar terminales analogicas.

Page 75

Hardware para Telefonia

X100P (1 FXO) RTPC TDM400P (4 FXO)

ASTERISK
TDM400P (4 FXS)

Banco de Canales (modo FXO)

TE110P (30 FXO)

TE110P (30 FXS)

Banco de Canales (modo FXS)

Page 76

Hardware para Telefonia: Interfaces Digitales

La Red Digital de Servicios Integrados (RDSI) utiliza, en principio, dos tipos de capacidades de acceso. El acceso Bsico(2 Canales de voz + 1 de sealizacin) y el acceso Primario(30 canales de Voz + 1 de sealizacin). Estas interfaces son integradas dentro de Asterisk con las tarjetas de Digium TE110P y TE410P para acceso primarios y por las tarjetas QuadBRI y OctoBRI de Junghanns, las Tarjetas Diva Server de Eicon, las Fritz de AVM as como aquellas tarjetas RDSI con chipset HFC-S para accesos bsicos.

Adems del tipo de sealizacin, los interfaces RDSI pueden funcionar en modo NT(Network Termination) o TE(Terminal Equipment).

Modo TE: En Este modo, Asterisk puede conectarse con interfaces RDSI (BRI o PRI) o con Centrales Digitales Tradicionales que tengan conexin RDSI de foma esclava.

Modo NT: En este modo el Asterisk puede conectarse con Centrales Digitales Tradicionales que tengan conexin RDSI de forma Maestro o con extensiones Digitales.

Page 77

Hardware para Telefona: Interfaces Digitales

Terminales RDSI ASTERISK


RED RDSI RDSI-PRI Modo TE RDSI-BRI Modo TE RDSI-BRI Modo NT

RDSI-BRI Modo NT

PBX con lneas RDSI bsicas

RDSI-BRI Modo TE PBX con extensiones RDSI RDSI-PRI Modo NT PBX con lneas RDSI primarias

Page 78

Clientes SIP en Asterisk

El tipo USER permite realizar llamadas desde Asterisk. El tipo PEER permite realizar llamadas hacia Asterisk. El tipo FRIEND toma la funcionalidad de USER y PEER.

Page 79

Asterisk: Estado y Autenticacin

Asterisk mantiene una tabla con sus clientes SIP (algo como una tabla de enrutamiento online), tambin como es agente entrega esta informacin a otros Asterisk o a algn SIP Proxy Server.

La autenticacin se hace:

Plana: la clave se guarda en texto plano en el archivo de configuracin y se transmite en texto plano, seguridad? MD5/digest: luego de recibir la peticin de registro el servidor pide autenticacin (nonce). El cliente toma el nonce y crea un hash con la clave, el servidor validar los hashs y tomar una decisin del registro. RSA: o clave publica usa el algoritmo SHA1 de dispersin, las claves asociadas a los usuarios se distribuyen entre los servers,

Que protocolo de senalizacion me daba toda la seguridad para estos tipos de autenticacion?

Page 80

Asterisk y las tarjetas HW

Fabricantes de hardware para conectividad con otras redes (PSTN) hay variedad. Asterisk solo da soporte real y completo para el HW Digium. Digium solo tiene soporte real para lineas analogicas y tramas digitales de USA. El soporte viene lento de acuerdo a las aplicaciones, ejemplo: E1 CAS para MFC/R2, con OpenR2. ITU tiene parametros para cada pais como: sealizacin, impedancia, voltajes, tonos.

Page 81

Asterisk y Los sistemas Tradicionales de VOIP

Sistema Tradicional de Comunicaciones

Servidor Linux con Asterisk

RTB

RTB
Terminal IP Pasarela RTB Terminal IP Terminal Trad.

Servidor de MultiConferencia Terminal IP Servidor de Buzn de Voz

Soft Switch
Banco de Canales

Servidor de Msica en Espera

Terminal Trad. Terminal Trad.

Pasarela RTB Cliente / Servidor Voz IP Aplicaciones de Telefona: +Multiconferencia +IVR +Buzn de Voz +Msica en Espera +...

Terminal IP

Terminal Trad.

Page 82

Instalando Asterisk
Da #4
Page 83

Compilando e Instalando Asterisk

Asterisk es un proyecto muy ACTIVO, repositorio es actualizado en cuestin de das.

Asterisk actualiza sus fuentes como un servicio de red xNIX, cambios afecta su funcionalidad y su seguridad.

Se debe realizar un anlisis de valor de las consecuencias de una actualizacin.

En DIGIUM existe un paquete que contiene la versin actual (current) de asterisk:

Paquete de fuentes estable de Asterisk 1.4. http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz. Acceder a los Downloads de Digium! Via Firefox

Page 84

Preparando el sistema

Se recomienda tener todos los paquetes actualizados:

yum update o yum upgrade -y gcc: es el compilador de C y todas sus dependencias relacionadas. openssl: librerias de desarrollo para soporte RSA y MD5. ncurses: para el CLI y para que otro aplicativo? bison, ncurses, openssl-devel y las dependencias relacionadas. Fuentes del kernel de Linux (librerias del sistema) yum -y install gcc gcc-c++ kernel-devel bison openssl-devel libtermcap-devel ncurses-devel

Se necesita tener actualizado y funcionando los paquetes:

Page 85

Preparando el sistema

Para instalar las dependencias y soporte para DB:

yum -y install mysql-server mysql-devel newt-devel unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel mysql-connectorodbc yum y install kernel-devel yum y update kernel uname -r De ser necesario reinicie verificando la correcta version de Linux!!

En el caso de tener problemas de sources for kernel:

Page 86

Paquetes de Asterisk

Asterisk esta compuesto por:

El paquete Asterisk contiene todas las fuentes (cdigo fuente) y los makefiles para compilar asterisk, es el ncleo del sistema. Es el unico componente necesario para montar requerimientos EXCLUSIVOS de VoIP. Funciones adicionales como mySQL o trabajo con archivos MP3 y dems estn en el paquete Addons. Libpri contiene librera para gestion de enlaces ISDN con tarjetas digitales.

Implementa PRI de ISDN. Soporta NI-2, Nortel DMS-100, EuroISDN, protocolos de Lucent 5E para SW Nortel y Lucent.

Page 87

DAHDI

Dahdi (Digium Asterisk Hardware Device Interface)

dahdi-linux modulos del kernel para acceder a tarjetas de comunicaciones para lneas analgicas. dahdi-tools herramientas para configurar y diagnosticar las tarjetas de hardware. ANTES modlos y herramientas en ZAPTEL. Con tiene las aplicaciones dahdi_cfg y dahdi_tool para monitorear y configurar las placas.

Page 88

Descargando Asterisk

Descargue los paquetes en /usr/src

wget -c http://downloads.digium.com/pub/asterisk/asterisk-1.6current.tar.gz wget -c http://downloads.digium.com/pub/asterisk/asteriskaddons-1.6-current.tar.gz wget -c http://downloads.digium.com/pub/telephony/dahditools/dahdi-tools-current.tar.gz wget -c http://downloads.digium.com/pub/telephony/dahdilinux/dahdi-linux-current.tar.gz wget -c http://downloads.digium.com/pub/libpri/libpri-1.6current.tar.gz

Page 89

Descripcin de comandos de Instalacin


Siguiendo el LSB (Linux Standard Base) Asterisk deber ser descomprimido en /usr/src/

tar -xvzf asterisk-1.6-current.tar.gz tar -xvzf asterisk-addons-1.6-current.tar.gz Descomprima los otros paquetes tambin!!

Para configurar el entorno, busqueda del compilador y las libreras que deben estar instaladas para realizar la compilacin.

Toda referencia externa debi ser instalada mediante paquetera. Especialmente las libreras de ncurses se usan en el proceso de compilacin.

./configure make menuselect

Para configurar las opciones de Asterisk a nuestro gusto se usar:

Page 90

Descripcion de comandos de Instalacin


Compilar y en uso de ncurses crear una interfaz de seleccin de opciones.

Para compilar las fuentes completas de Asterisk:

make make install make samples

Y para instalarlo:

Recomendable para ver los ejemplos:

Asterisk es modular, los modulos estan agrupados por categoras referentes a su funcionalidad.

Existen entre otros: codecs, formatos, canales, aplicaciones, etc. Los archivos de configuracin estan en: /etc/asterisk Todo modulo tiene su: modulo.conf

Page 91

Instalando Asterisk (ver comentarios)


REALIZAR UN RESPALDO DE SIP, EXTENSIONS E IAX
cd dahdi-linux-current make make install cd dahdi-tools-current ./configure make make install make config cd ../libpri-1.6.7 (opt) make make install cd ../asterisk-addons-1.6.7 make clean ./configure make menuselect (opt) make install make samples cd ../asterisk-1.6.22 make clean ./configure make menuconfig (opt) make install make samples make config

Page 92

DAHDI la instalacin

Luego de la instalacin DAHDI ha creado modulos del kernel y ha cargado aplicaciones (mdulos).

Liste los Mdulos buscando unicamente aquellos relacionados con dahdi!!

Verifique que esten cargados los modulos para timing, configuracion, monitoreo, configuracin en el sistema.

Es util antes de compilar DAHDI realizar una limpieza de cualquier instalacin previa:

make distclean make clean

Page 93

Como qued la Instalacin?


Binario Asterisk:

ls /usr/sbin/asterisk ls /usr/lib/asterisk/modules ls /var/lib/asterisk/sounds ls /var/lib/asterisk/sounds/es ls /etc/asterisk/ *.conf

Mdulos de Asterisk:

Voces pregrabadas:

Voces pregrabadas en castellano:

Archivos de configuracin de ejemplo:

Verifique que pueda iniciar asterisk como un servicio linux. Verifique el status del servicio asterisk.

Page 94

Directorios de Asterisk

/usr/lib/asterisk/modules Directorio donde se encuentran los modulos compilados en extension .so.

/usr/share/asterisk Directorio donde se guardan las claves RSA, los archivos para reproducir de musica en espera , los script AGI. en una instalacion desde paquetera para distribuciones Debian y Ubuntu.

/var/lib/asterisk Directorio donde se guardan las claves, la musica en espera y los sonidos del sistema en una instalacion desde las fuentes.

/var/spool/asterisk Directorio donde se guardan las conferencias salvadas por MeetMe(), los textos que son leidos por Dictate() y los mensajes de voz si no utilizamos una BD.

/var/run/asterisk Donde se encuentra el archivo PID3 del Asterisk que se esta ejecutando.

/var/log/asterisk Los logs y noticaciones realizado mediante por ejemplo la aplicacin Verbose() o NoOp() se encuentran aqu, aunque tambien son dirigidos al demonio syslog.

Page 95

Configuracin Inicial de Asterisk


Da #5

Page 96

Asterisk CLI

Ejecute el comando: asterisk !! Conectese a la CLI de Asterisk:

asterisk r

Algun mensaje importante al inicio de Asterisk? Ejecute las siguientes instrucciones:

core show version core show uptime quit

Que realizan esos comandos?

Page 97

Asterisk conceptos de la configuracin

Canal (Channel Chan)

Es una conexin que conduce una llamada entrante o saliente en el sistema Asterisk. La conexin puede venir de o salir hacia telefona tradicional analgica, digital o VoIP. Por defecto, Asterisk soporta una serie de canales, los ms importantes son:

H.323, IAX2, SIP, MGCP: Protocolos VoIP. Console: GNU Linux OSS/ALSA sound system. Zap/Dahdi: lneas analgicas y digitales.

Page 98

Dialplan

El plan del marcado es el corazon de una central telefonica y la parte principal de asterisk.

Indica como la PBX responde a llamadas entrantes y salientes.

En Asterisk el plan del marcado es totalmente configurable, a diferencia de las centrales privativas.

Dentro del plan de marcado de Asterisk encontramos principalmente:

Extensiones Aplicaciones Contextos

Page 99

Extension

Extension o exten encierra un concepto diferente a lo que normalmente pensamos.


Que tienen en mente por una extensin? Cada extensin se compone de:

Nombre, prioridad y aplicacin.

Nombre: agrupa una lista de acciones o pasos. Prioridad: define el orden. Aplicacin: define la ejecucin. Con la descripcin anterior defina nuevamente una extensin en Asterisk.

Page 100

Aplicacin

Asterisk ejecuta secuencialmente los comandos asociados a cada extensin. Esos comandos son realmente aplicaciones que controlan el comportamiento de la llamada y del sistema en s. Algunos ejemplos:

Hangup: colgar la llamada. Monitor: comenzar la grabacin a disco de la llamada. Dial: realizar una llamada saliente. Goto: saltar a otra extensin o contexto. PlayBack: reproducir un fichero de sonido. AGI: llamar a una aplicacin externa (stdin, stdout, stderr).

Page 101

Contexto

El dialplan de Asterisk se divide en uno o varios contextos. Un contexto es una coleccin de extensiones. Permite la interaccin entre las diferentes partes del dialplan.

Los contextos existen para poder diferenciar el lugar en donde se encuentra una llamada, para:

Aplicar polticas de seguridad: por ej, al entrar una llamada, con 0 va a la operadora, mientras que cuando un usuario local marca 0 y un nmero hace una llamada saliente (fuera de la PBX).

Se declaran colocando el nombre del contexto dentro de los smbolos [ ].

ej: [entrantes]
Page 102

Dialplan: Arquitectura

Page 103

Primeros pasos sip.conf

Accese a la carpeta /etc/asterisk Que se encuentra en esa carpeta? Accese al archivo sip.conf [jose] ;Nombre del usuario ;Clave de jose type=friend;Permite generar y recibir llamados secret=1234 host=dynamic ;El telfono puede tener una ip dinmica context=internos; El contexto asocia el usuario al plan de numeracin

Page 104

Generando una llamada

Realice la instalacion de x-lite descargue el tar.gz. Cambie el modo para ejecucion Ejecute el software X-Lite Verificar la configuracion de una cuenta SIP en X-Lite Verifique que tenga tono de marcado, si es necesario busque la instalacion Windows. Origine una llamada desde el CLI:
originate sip/101 application echo

Conteste el telefono!!

Page 105

Primeros pasos: Los archivos de Canales

Archivos de configuracin de canales:

iax.conf: canales IAX (Inter Asterisk eXchange). sip.conf: canales SIP. zaptel.conf/system.conf: telefona analgica y digital. h323.conf: canales H323. mgcp.conf: canales MGCP. unicall.conf: canales R2

Page 106

Carga de Configuraciones
La configuracin se carga al iniciar Asterisk, por lo que para aplicar cualquier cambio ser necesario recargarla. Para ello basta con ejecutar el comando reload en el CLI:

CLI> reload

Dialplan:

extensions.conf: el propio Dialplan. features.conf: dialplan para mtodos. complementarios (transferencias, call parking, grabacin de llamadas bajo demanda, etc.). meetme.conf: para salas de conferencias. musiconhold.conf: config. de la msica en espera. queues.conf: configuracin de colas de llamadas. voicemail.conf: configuracin de los buzones de voz.

Configuracin de aplicaciones del dialplan:

Page 107

SIP.conf

En primer lugar existe la seccin [general], donde se definen variables globales y aspectos por defecto para todos los canales SIP.

La sintaxis es la siguiente: [general] variable1=valor1 variable2=valor2 .... register => usuario : password @ servidorregistrar register => ....

Page 108

SIP.conf Registrar

Register permite a Asterisk registrar su presencia en el otro extremo. De esta forma, el proveedor sabr la localizacin del cliente. En ningn caso es suficiente para poder hacer llamadas.

El comando Register slo es necesario si:

Se necesita ser llamado (lo cul implica ser localizado). Se aparece en el otro extremo con una configuracin de IP dinmica. Los requerimientos registrar se manejan periodicamente!!

Page 109

SIP.conf seccion General

Las variables generales ms importantes son: allow y disallow: indican los codecs permitidos / no permitidos. dtmfmode: especifica el mtodo por el cual se enviarn los tonos (dgitos pulsados durante la conversacin); inband/rfc2833/info nat: informa a Asterisk el tipo de NAT en el que se encuentra; yes/no/never/route externip: direccin pblica si esta atrs de un NAT. context: contexto por defecto donde entrarn las llamadas entrantes por SIP. port: puerto en el que escuchar (5060 ).

Page 110

SIP.conf

user: enva llamadas a Asterisk. peer: recibe llamadas de Asterisk. friend: recibe y enva llamadas. La sintaxis para definir un type es:
[nombre] ; contexto type = friend / peer / user variable1 = valor variable2 = valor

Page 111

SIP.conf Variables de canales

type: peer / friend context: contexto donde entrarn las llamadas generadas. nat: indica si el usuario o peer se encuentra tras un NAT. host: IP remota o dynamic (en el caso en que la IP no sea fija). username: nombre de usuario. secret: contrasea de acceso en texto plano. allow y disallow: configuraciones de codecs especficas para cada peer / friend. qualify: evala el estado del extremo SIP para conocer su accesibilidad y latencia (tener cuidado si el otro extremo no esta configurado para responder). canreinvite: permite que el trfico de voz pase por el asterisk o bien directamente entre las partes.

Page 112

SIP.conf Ejemplo

[pepe] ; usuario type=friend ; IN/OUT secret=pepin ; clave context=internos ; rela dial plan callerid="pepe perez" <1001> host=dynamic ; IP del device nat=yes ; soporte NAT device canreinvite=no ;disallow=all ;allow=gsm ;allow=ulaw ;allow=alaw mailbox=1001@default

[juan] type=friend secret=juanin callerid="juan perez" <1002> context=internos host=dynamic nat=yes canreinvite=no ;disallow=all ;allow=gsm ;allow=ulaw ;allow=alaw mailbox=1002@default

Page 113

SIP.conf Verificacion en el CLI

Mediante el comando reload en el CLI de Asterisk, se indica que recargue la configuracin. Aunque es posible recargar de forma independiente slo la conf. SIP:

CLI> sip reload

Una vez recargada, puede comprobarse los users que se han definido con el comando: sip show users

Para ver los peers definidos: sip show peers

Puede consultarse si Asterisk se ha registrado correctamente en los registars configurados en la seccin general con el comando: sip show registry

Pueden verse los canales sip activos (comunicaciones activas), va el comando: sip show channels

Page 114

IAX.conf

En el archivo IAX.CONF se definen todos los enlaces que se establecern usando el protocolo IAX tiene la misma estructura que el SIP.CONF: una seccin general y otras por canales.

[juan] type=friend secret=miclave qualify=yes port=4569 transfer=no host=dynamic context=interno callerid=device <1234>

El valor transfer=no es el equivalente a canreinvite=no del sip.conf, hace que el servidor Asterisk quede situado en medio de la comunicacin entre clientes.

Page 115

IAX.conf

El protocolo IAX permite el trunking de llamadas, es decir, que mltiples streams de voz compartan un nico trunk con otro servidor, reduciendo el overhead creado por los paquetes IP.

Luego de 4 llamadas concurrentes comienza a haber ganancia de ancho de banda.

Para pasar un canal IAX a modo trunk, incluir en la definicin del archivo iax.conf: trunk=yes

Page 116

Definiciones con Plantillas

Para definiciones estticas de usuarios con caractersticas comunes como en grupos de trabajo o tipos de usuarios se puede utilizar plantillas:

Page 117

Detalles del Extensions.conf

El archivo extensions.conf es la parte central de toda la configuracin, dado que es donde se define el dialplan de Asterisk.

Se compone de 4 partes principales: contextos, extensiones, prioridades y aplicaciones.

El dialplan se divide en secciones denominadas contextos, que estn rotuladas y contienen un grupo de extensiones. Los contextos se definen colocando su nombre entre corchetes ([]). Este nombre puede contener caracteres alfanumricos adems del guin y el guin bajo. Por ej: [interno] Todas las instrucciones son parte del contexto hasta que el prximo contexto es definido.

Page 118

Detalles del Extensions.conf

Existen dos contextos especiales: [general] (variables predefinidas) y [globals] (variables no predefinidas).

Una extensin es una instruccin que ser seguida por Asterisk, luego de ser disparada por una llamada entrante o bien por dgitos discados en un canal, definida en el marco de un contexto.

La sintaxis de una extensin es la siguiente: exten => nombre,prioridad,aplicacion() Ejemplo: exten => 123,1,Answer()

Extensin s (start): es una extensin especial que es utilizada si una llamada entra a un contexto sin una extensin destino especfica (por ejemplo una llamada en un puerto FXO); la llamada trata de entrar automticamente a la extensin s.

exten => s,1,Answer()


Page 119

Detalles del Extensions.conf Prioridades

Una extensin puede tener varios pasos, denominados prioridades.

Las prioridades comienzan con 1 y se ejecutan en orden numrico.

Si no existe la prioridad N + 1, Asterisk no salta a la siguiente prioridad (N+2).


Cada prioridad ejecuta una nica aplicacin. Ejemplo: exten => 123,1,Answer() exten => 123,2,Hangup()

Page 120

Prioridades en Extensions.conf

Prioridades sin numerar: Asterisk introduce el uso de la prioridad n (next). Cada vez que Asterisk encuentra una prioridad n, toma el nmero de la prioridad anterior y le suma 1. Simplifica el proceso de escritura del dialplan, evitando tener que volver a numerar las prioridades al insertar una prioridad para la misma exten. Ejemplo: exten => 123,1,Answer() exten => 123,n,hago algo exten => 123,n,Hangup()

exten => 555,1,Answer() exten => 555,n(LlamaPepe),Dial(SIP/pepe,20) exten => 555,n,Voicemail(44) exten => 555,n,Hangup
Page 121

Prioridades en Extensions.conf

;Va a n+101 en caso de que el canal est ocupado: exten => 555,LlamaPepe+101,Voicemail(44,u) ;Tambin puede tener una etiqueta esta prioridad: exten => 555,LlamaPepe+101(PepeNoDisponible), exten => _044.,1,Answer exten => _044.,n(Director),GotoIf($[${CALLERID(num)} =pepe]? LlamaCelular:) exten => _044.,n,Set(TIMEOUT(absolute)=300) exten => _044.,n(LlamaCelular),Dial(Zap/1Dahdi/1/${EXTEN}) exten => _044.,n,Hangup

Page 122

Detalles del Extensions.conf

Las aplicaciones realizan una accin determinada en el canal actual, controlando el comportamiento de la llamada y del sistema en s.

Algunos ejemplos:

Answer(): contesta una llamada. Hangup(): cuelga una llamada. Dial(): realiza una llamada saliente. Playback(): reproduce un archivo de sonido.

Ciertas aplicaciones requieren del pasaje de parmetros, estos se incluyen dentro de los parntesis, separados por ,.

Page 123

extensions.conf

En el archivo extensions.conf se configura el plan de marcado (dialplan) de la central telefnica. El dialplan consistir en una serie de contextos que contendrn extensiones y que tendrn diferentes prioridades. Una extensin VOIP Asterisk no es lo mismo que una extensin telefonica tradicional. El archivo tiene dos contextos generales uno el contexto general y el contexto globals.

Page 124

Sintaxis en extensions.conf

Sintaxis General de un contexto en extensions.conf

Ejemplo: Hola Mundo en el archivo extensions.conf

Cual sera la utilidad de tener una extensin hola??

Page 125

Contextos y Extensiones

Cada extensin SIP o llamada entrante de la PSTN tendr asociado un contexto.


Para acceder a variables dentro del script del extensions.conf se usa:

${ }

Marcar una extensin significa acceder a una seccin de cdigo, y, de acuerdo a una prioridad establecida ejecutar una aplicacin.

Las prioridades definen que aplicaciones se marcan primero.

El orden fisico del archivo extensions.conf no es relevante, para eso estan las prioridades, excepto en prioridad n.

${EXTEN} es una variable de Asterisk que contiene el numero de extensin que fue marcado.

Page 126

Manejo de Variables en extensions.conf

Para el acceso a una variable:

${VARIABLE} Set()

Para asignar un valor a una variable:

Los nombres de variables NO son case sensitive. Para el uso de operadores (aritmticos, lgicos) se usa:

$[OPERACION]

Ejemplo de extensin como funcin:

Page 127

Donde estamos en este Momento

Hemos aprendido:

Comandos para manejar procesos, redes y paquetes y solucionar problemas relacionados a ellos. Google puede solucionar problemas y como buscarlos. Descargar, Compilar e Instalar Asterisk. Manejar el sip.conf para crear UA/Canales simples. Manejar comandos simples de la CLI para verificar el comportamiento de Asterisk. Crear extensiones simples.

Han tenido algunos problemas, Cuales? AHORA es cuando, lo siguiente es la prctica.

Page 128

Practica: PBX Battle V1

Recordar Polticas del curso: Las practicas SON CALIFICADAS!! Y Corresponden al 50% de la nota de APROBACION. Las practicas sern HANDS-ON, Lo estamos cumpliendo? Esta ser una prctica MUY guiada y servir para verificar el alcance de red del laboratorio y el alcance de llamadas VOIP que podemos generar hasta ahora. Al final del da tendremos 2 grandes centrales conversando entre s. Debern utilizar por lo menos en la mitad de las estaciones OTRO softphone!!

Tienen XY Minutos para desarrollar la practica!


Page 129

Practica: PBX Battle V1

1.1. Configurar en el servidor Asterisk dos canales SIP identificados por los nombres de los participantes, que tengan tanto la opcin de recibir como efectuar llamadas. Realizar la configuracin va IP dinmica. Recordar hacer la recarga de la configuracin cada vez que se efectuen cambios sobre la misma. 1.2. Verificar via la CLI que ambos canales se encuentran configurados tanto como clientes como proveedores. Utilizar los comandos: sip show peers y sip show users. 1.3. Configurar el dialplan del servidor Asterisk de maneral tal que al discar los nmeros <F><C>01 y <F><C>02 haga las llamadas va los canales configurados en el punto 1.1., respectivamente. Utilizar el contexto [internos]. 1.4. Configurar cada softphone de manera tal que se registre en el servidor Asterisk. Cada usuario deber configurar su propia cuenta (creada en el punto 1.1.) en su softphone. Utilizar nombres descriptivos para identificar fcilmente en qu PBX est configurado el usuario. Por ejemplo, "<Usuario> en PBX <F><C>".

Page 130

Practica: PBX Battle V1

1.5. Verificar va la CLI que los softphones se registraron. Utilizar: sip show peers

1.7. Realizar llamadas entre los telfonos, en ambas direcciones.

1.8. Verificar va la CLI que las llamadas estn siendo llevadas a cabo. Utilizar: sip show channels / show channels

1.9. Repetir todos los puntos del 1.1. al 1.8. pero ahora utilizando la PBX restante. De esta manera, cada participante terminar con dos cuentas en su softphone, una para cada PBX.

Page 131

Conceptos Bsicos del Plan de Marcado DialPlan


Da #6

Page 132

Las voces de Asterisk

Ahora definiremos pasos para llamadas entrantes:

Contestar la llamada. Reproducir un archivo. Colgar la llamada.

Aplicaciones: Answer(), Playback() y Hangup()

Answer() constesta un canal al que est entrando una llamada. No toma ningn argumento, es una practica recomendable colocarlo a pesar de no ser estrictamente necesario

Page 133

Las voces de Asterisk

Playback() reproduce un archivo previamente grabado. Recibe como parmetro el nombre del archivo sin extensin, el archivo debe estar en /var/lib/asterisk/sounds Hangup() cuelga el canal actual. Ingrese a ese directorio, liste los sonidos y pruebelos!!
[interno] exten => 100,1,Answer( ) exten => 100,2,Playback(hello-world) exten => 100,3,Hangup( )

Page 134

Los telfonos Grandstream

Verifique el CABLE original de los telfonos, ayudemos a la Ingeniera de Red del Laboratorio.

Verifique la IP de los telfonos, Que direccin tienen? A que corresponde esa direccin?

Esta registrado el telfono? Como identificar el registro? Acceda al men en la LCD del Telfono? Como resetear un telfono Grandstream? Donde esta la MAC? Configuracin de Telfonos Grandstream, Accese a la Interfaz Web. Revisin de caractersticas principales de la Interfaz Web. Registrar sus telfonos Grandstream:

Es un trabajo GRUPAL, 1 Central por pareja. Tiempo aproximado: 10 minutos

Page 135

Ejemplo de Configuracin de una Linea

[300] type=friend host=dynamic secret=003 disallow=all allow=alaw callerid=Jose Cordova<300> Alguien puede explicar cada lnea de cdigo anterior?

Prueben rpidamente el Caller ID con una cuenta, trabajen EN GRUPO recuerden una sola central por pareja.

Page 136

CODECS de Alta Calidad y Bajo Ancho de Banda


Codecs de Alta Calidad Codecs de Bajo Ancho de Banda

disallow=all allow=ulaw allow=alaw allow=h264

disallow=all allow=g729 allow=gsm allow=ilbc allow=speex allow=h263

Page 137

Bsicos de otras aplicaciones

Background(). Similar a playback, pero si el usuario presiona dgitos, la aplicacin lo captura y trata de enviarlo a la extensin presionada.

exten => 123,1,Background(hello-world) Goto(). Nos permite mandar una llamada a otro contexto, extensin y prioridad:

exten => 123,1,Goto(contexto,extension,prioridad)

Page 138

Dialplan interactivo

La persona que llama puede ingresar informacion presionando las teclas del telefono. Los tonos que se escuchan cuando presionan las teclas se denominan DTMF. Asterisk tomara dichos tonos e interpretara de acuerdo a la extension que brinde la mayor coincidencia de patron. Background() acepta tonos DTMF, al momento de la entrada DTMF se detiene la ejecucion del archivo de sonido. Asterisk encamina la llamada si encuentra una coincidencia NO ambigua (probar como funciona esto).

Page 139

IVR Bsico

[interno] exten => 101,1,Answer( ) ; contesta la llamada exten => 101,2,Background(enter-ext-of-person) ; espera digitos y pasa a la extension en el mismo contexto exten => 1,1,Playback(digits/1) ; reproduce el dgito 1 exten => 2,1, Playback(digits/2) ; reproduce el dgito 2

Verifique el uso de estas funciones!

Que pasa luego de que reproduce el numero de la extension interna??

Page 140

IVR Basico

[interno] exten => 4000,1,Answer( ) exten => 4000,2,Background(enter-ext-of-person) exten => 1,1,Playback(digits/1) exten => 1,2,Goto(4000,1) ; vuelve al inicio de la extension 4000 exten => 2,1, Playback(digits/2) exten => 2,2,Goto(4000,1)

Verifique el uso de este contexto!!

Page 141

La extension i y los timeouts

Cuando el usuario teclea una entrada invlida, la llamada es enviada a la extensin i. Cuando el usuario no teclea ninguna opcin, es necesario tener una extensin que nos permita manejar esta situacin. Por defecto, si no se teclea nada despus de 10 segundos de haberse terminado de reproducir el archivo la llamada es enviada a la extensin t. Si se teclea un digito, espera 5 segundos hasta el siguiente, o numeral (#) para terminar de tipear numeros. La funcion Background espera a 2 eventos de timeout que pueden ocurrir: Timeout de digitos Cuanto tiempo espero entre los digitos en segundos. Timeout de respuesta Cuanto tiempo se espera despues de reproducir el sonido sin respuesta en segundos.

Verifique el ejemplo completo siguiente!!

Page 142

Uso de las extensiones i y t

[interno] exten => 4000,1,Answer( ) exten => 4000,2,Background(enter-ext-of-person) exten => 1,1,Playback(digits/1) exten => 1,2,Goto(4000,1) exten => 2,1, Playback(digits/2) exten => 2,2,Goto(4000,1) exten => i,1,Playback(pbx-invalid) ; llega en caso de digito invalido exten => i,2,Goto(4000,1) exten => t,1,Playback(vm-goodbye) ; llega en caso de no recibir digitos luego de un tiempo (10 seg) exten => t,2,Hangup()
Page 143

Saltos y Bucles

Con la aplicacin GOTO se puede saltar de un lugar a otro dentro del dialplan.

La aplicacin GOTO recibe:

1 parametro : numero de prioridad y etiqueta (dentro de la misma extension). 2 parametros: extension y prioridad (dentro del mismo contexto). 3 parametros: Contexto, extensin y prioridad (en cualquier lugar del dial plan).

Page 144

Uso de GOTO

Pruebe el uso de la aplicacin GOTO y el paso de parametros con: [pruebas] Exten => 125,1,Playback(tt-monkeys) Exten => 125,2,Goto(1) Exten => 126,1,Playback(hello-world) Exten => 126,2,Goto(126,1) Exten => 127,1,Playback(tt-weasels) Exten => 127,2,Goto(pruebas,127,1)

Page 145

Incluyendo el uso de Etiquetas

Pruebe la siguiente extension: exten => 128,1,Answer() exten => 128,n,Wait(0.5) exten => 128,n(salir),Playback(thank-you-for-calling) exten => 128,n,Goto(salir)

Page 146

La aplicacin Dial

Permite conectar 2 ms canales.

Es especialmente til cuando los dispositivo usan tecnologas diferentes(SIP,IAX,etc).


Puede tomar hasta 4 parmetros:

El primero es el destino de la llamada en el formato tecnologia/canal (Sip/juan, Iax2/180, Zap/1Dahdi/1) exten => 4002,1,Dial(Sip/juan) Se puede hacer que la llamada suene en varios canales a la vez exten => 4002,1,Dial(Sip/juan&Zap/1Dahdi/1&Iax/4010)

Page 147

La aplicacin Dial

El segundo argumento es el tiempo que se intentar llamar al destino. Si en ese tiempo no contestan, se pasa a la siguiente prioridad. Si no se especifica este parmetro, la llamada contina marcando el canal, hasta que el canal es contestado o hasta que el emisor de la llamada cuelga.

exten => 102,1,Dial(Sip/juan,10)

Si el usuario donde est sonando la llamada contesta antes de 10 segundos, se conectan ambos dispositivo y el dialplan termina. Si el usuario no contesta se contina en la siguiente prioridad. Si el canal al que se quiere comunicar est ocupado, Dial() salta a la prioridad n+101, si es que existe.

Page 148

Usando Dial

Compruebe el uso de Dial con el siguiente contexto [interno] exten => 4002,1,Dial(Sip/juan,10) exten => 4002,n,Playback(vm-nobodyavail) ; no contesto exten => 4002,n,Hangup() exten => 4002,102,Playback(tt-allbusy) ; por ocupado exten => 4002,n,Hangup()

Page 149

Dial: Caracteristicas Adicionales

El tercer parmetro es una cadena que puede estar compuesta por varios caracteres que brindan algunas caractersticas especficas al momento de hacer la llamada. Algunos ejemplos:

T. Permite que quien llama pueda transferir la llamada con # t. Permite que quien contesta pueda transferir la llamada con # r. Genera un ring tone al que llama y espera a generar el canal de audio cuando conteste. m. A diferencia de r, genera msica en espera. w. Permite al que llama grabar la comunicacion con *1

En CLI, core show application dial, muestra todas las opciones de Dial()

Page 150

Dial: Recapitulando

[interno] exten => 4000,1,Answer( ) exten => 4000,2,Background(enter-ext-of-person) exten => 4001,1,Dial(Sip/juan,10) exten => 4001,2,Playback(vm-nobodyavail) exten => 4001,3,Hangup() exten => 4001,102,Playback(tt-allbusy) exten => 4001,103,Hangup()

Page 151

Dial: Recapitulando

exten => 4002,1,Dial(Iax2/4010,10) exten => 4002,2,Playback(vm-nobodyavail) exten => 4002,3,Hangup() exten => 4002,102,Playback(tt-allbusy) exten => 4002,103,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(4000,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup()

Page 152

Conceptos Avanzados del Plan de Marcado DialPlan


Da #7

Page 153

Manejo de Variables

En el dialplan de Asterisk existen variables, que pueden ser modificadas por el propio Asterisk en su ejecucin lgica o por comandos expresos (aplicaciones) del dialplan. Las variables reducen la escritura, agregan claridad al dialplan y le aportan lgica. Los tipos de variables son: Globales: declaradas en extensions.conf (o por comando). Canal: asociadas con un canal particular. Entorno: variables de entorno (UNIX Like). La sintaxis de una variable es: ${variable}

Page 154

Manejo de Variables

Asignacin de variables:

Set(Variable=valor) Global(Variable=valor) Subcadenas: ${Variable : offset : longitud }

Manejo de cadenas:

Devuelve la subcadena de variable que comienza en offset y con la longitud especificada. Ejemplos: ${123456789:2:3} devuelve 345

Longitud: ${LEN(Variable)} Concatenacin: ${Variable1}${Variable2}

Page 155

Manejo de Variables Globales

Permite que se pueda hacer referencia a ellas en todos los contextos, en todas las extensiones, a diferencia de las variables convencionales que slo tienen validez en el canal actual.

Es til para tener claridad manejabilidad en el dialplan.

Se pueden definir en el contexto [globals] al inicio de extensions.conf

[globals] JUAN=Sip/juan PEDRO=Iax2/4010

Page 156

Uso de Variables en el Dial Plan

[globals] JUAN=Sip/juan PEDRO=Iax2/4010 [interno]

; define la variable JUAN

exten => 4000,1,Answer( ) exten => 4000,2,Background(enter-ext-of-person) exten => 4001,1,Dial(${JUAN},10) variable JUAN exten => 4001,3,Hangup() exten => 4001,102,Playback(tt-allbusy) exten => 4001,103,Hangup()
Page 157

; hace referencia a la

exten => 4001,2,Playback(vm-nobodyavail)

Uso de Variables en el Dial Plan

exten => 4002,1,Dial(${PEDRO},10) exten => 4002,2,Playback(vm-nobodyavail) exten => 4002,3,Hangup() exten => 4002,102,Playback(tt-allbusy) exten => 4002,103,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(4000,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup()

Page 158

Variables Predefinidas

Listado de variables ms importantes:

${CALLERID}: caller ID actual, nombre y nmero. ${CONTEXT}: contexto actual. ${EXTEN}: extensin actual. ${CHANNEL}: canal actual. ${DIALSTATUS}: estado de la llamada: unavailable, congestion, busy, noanswer, answer, cancel, hangup. ${DATETIME}: hora actual.

Un comando til para ver el contenido es NoOp:

NoOp ( ${VARIABLE} )

Mostrar en el CLI el valor.

Page 159

Variable ${EXTEN}

Permite saber cul es la extensin que fue marcada. Se utiliza comunmente para eliminar dgitos marcados: ${EXTEN:x}

Si x es positivo, quita los primeros x dgitos marcados exten => _XXX,1,SayDigits(${EXTEN:1}) Si x es negativo, devuelve los ltimos x dgitos marcados exten => _XXX,1,SayDigits(${EXTEN:-1})

Page 160

Coincidencia de Patrones

Permite definir una sola extensin que permita lograr igualar una serie de posibles valores.

Pueden ser muy especificos o muy generales:

Todos los numeros locales (de Guayaquil) Todos los numeros internacionales. Todos los numeros celulares. Extensiones en un rango: 300-399

Se utilizan principalmente para llamadas salientes. Comienzan con el signo _

Le dicen a Asterisk que haga match con un patrn y no con un nmero de extensin.

Page 161

Coincidencia de Patrones (Pruebelos)

X. Hace match con cualquier dgito de 0 a 9. Z Hace match con cualquier dgito de 1 a 9. N Hace match con cualquier dgito del 2 al 9. _[15-7] Hace match con el rango de dgitos especificados, en este ejemplo matchea los nmeros 1,5,6,7. _[01] 0 o 1 _[3-7] 3,4,5,6 o 7 _[237-9] Cual sera?? Como se puede restringir a los numeros PORTA? A los MOVISTAR?

exten => _NXX,1,Playback(auth-thankyou)

Si Asterisk encuentra ms de 1 patrn para una extensin marcada, se usa la ms especfica:


exten => _555XXXX,1,Playback(digits/1) exten => _55512XX,1,Playback(digits/2)

Page 162

Aplicacin a la salidas de Troncales

Se generan contextos especificos para llamadas locales a la PSTN para regular y controlar quines tienen permiso de hacer llamadas y qu tipo de llamadas pueden hacer:

[globals] JUAN=Sip/juan PEDRO=Iax2/4010 TRUNKDESALIDA=Zap/1Dahdi/1 [llamadas-locales] exten => _9NXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1) exten => _9NXXXXXX,2,Congestion() exten => _9NXXXXXX,102,Congestion() [llamadas-larga-distancia] exten => _901XXXXXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1) exten => _901XXXXXXXXXX,2,Congestion() exten => _901XXXXXXXXXX,102,Congestion()
Page 163

Include

Puede utilizarse un contexto dentro de otro contexto a travs de la directiva include Permite habilitar derechos de acceso a las diferentes secciones del dialplan. Por ejemplo, que los dispositivo del contexto [internos] puedan hacer llamadas por la red PSTN include => context Primero trata de encontrar las extensiones en el contexto actual. Si no la encuentra, trata de encontrarla en el primer contexto incluido, y despus en el segundo y as sucesivamente.

Page 164

Agregando al Plan de Marcado

[internos] include => llamadas-locales include => llamadas-larga-distancia

Page 165

Uso de Variables y Expresiones

Las expresiones son una combinacin de variables, operadores y valores que arrojan un resultado. Sintaxis:

$[expr1 operador expr2]

Operadores lgicos: |(or) , &(AND) Operadores de comparacin: =, !=, <, >, <=, >= Operadores aritmticos: +, -, *, /, % [...] , Ejemplo: exten => 4003,1,Set(COUNT=3) exten => 4003,2,Set(NEWCOUNT=$[${COUNT} + 1]) exten => 4003,3,SayNumber(${NEWCOUNT})

Page 166

Condicionales

Permite tomar desiciones dentro del dialplan. Aplicacin GotoIf()

GotoIf(expresion1?destino1:destino2)

Si la expresin evaluada es verdadera, la llamada es enviada a destino1, de lo contrario es enviada a destino2.

Una cadena vaca y el nmero 0 son evaluados con falso, cualquier otro valor es verdadero.

Cualquiera de los destinos puede ser omitido, pero debe estar alguno de los 2.

Si el destino omitido es el camino que debe seguir la llamada, el flujo que se sigue es la siguiente prioridad dentro de la extensin actual.

Page 167

Uso de Condicionales

exten => 104,1,Set(TEST=1) exten => 104,2,GotoIf($[${TEST} = 1]?104,20) exten => 104,10,Playback(weasels-eaten-phonesys) exten => 104,20,Playback(office-iguanas) exten => 105,1,Set(COUNT=10) exten => 105,2,GotoIf($[${COUNT} > 0 ]?:10) exten => 105,3,SayNumber(${COUNT}) exten => 105,4,Set(COUNT=${COUNT} - 1) exten => 105,5,Goto(2) exten => 105,10,Hangup()

Page 168

Uso de Condicionales

exten => 106,1,GotoIf($[${CALLERIDNUM} = 8842374]?20:10) exten => 106,10,Dial(Sip/Juan) exten => 106,20,Playback(abandon-all-hope) exten => 106,21,Hangup()

Page 169

While y EndWhile

Vamos a crear un Loop que se ejecute 3 veces de manera tradicional antes de introducir el While

exten => s,1,NoOp(El Loop tradicional) exten => s,n,Set(COUNT =1) exten => s,n,(start_loop),SayDigits(${COUNT}) exten => s,n,Set(COUNT=$[${COUNT}+1]) exten => s,n,GotoIf($[${COUNT}>3]?:start_loop) exten => s,n,Playback(vm-goodbye)

Page 170

While() y EndWhile()

exten => s,1,NoOp(El Loop con While) exten => s,n,Set(COUNT =1) exten => s,n,While($[${COUNT}<4]) exten => s,n,SayDigits(${COUNT}) exten => s,n,Set(COUNT=$[${COUNT}+1]) exten => s,n,EndWhile() exten => s,n,Playback(vm-goodbye)

Todo esto debe ser un dolor de cabeza para los programadores! La solucion: AEL haciendo a Asterisk mucho mas amigable, util y legible.

Page 171

Correo de Voz (Voicemail)

Se pueden dejar mensajes de voz a los usuarios. Se permite un nmero ilimitado de buzones. Notificacin por correo: Puede anexar el mensaje de voz (.wav) Indicador luminoso o seal de mensaje en espera. Indicador auditivo de mensaje en espera al levantar el telfono. Manejo de mensajes va telefnica. Los contextos de voicemail son definidos de igual manera que en dialplan.

Page 172

Correo de Voz

mailbox => password, nombre [,e-mail [, pager-email [, opciones]]] mailbox: nmero de mailbox, generalmente asociado al nmero de extensin. password: clave numrica del buzn. nombre: nombre del propietario del buzn. Se utiliza para permitir incorporar en el directorio de Asterisk. e-mail: correo electrnico adonde se enva la notificacin. pager-email: correo electrnico para enviar la notificacin. Opciones: hay varias como attach=yes Voicemail() enva al emisor al buzn especificado para dejar un mensaje. El nmero de buzn puede ser proseguido por la letra b o u. Con la letra b, se le informa al emisor que el usuario est ocupado. Con u que no esta disponible.

Page 173

La aplicacin Voicemail

En Voicemail.conf se encuentra la configuracion de las casillas individuales de voicemail. La aplicacin Voicemail() dirige la llamada al voicemail y reproduce el mensaje de bienvenida. Aplicacin VoicemailMain() autentica a los usuariosy les da opciones para que puedan escuchar sus mensajes, configurar su correo de voz y enviar directamente un voicemail a otros usuarios

Page 174

Configuracion de Voicemail

Voicemail.conf

[default] 4001 => 1234,Juan Perez,juan@dominio.com,

Extensions.conf

exten => 4001,1,Dial(${JUAN},10); hace referencia a la variable JUAN exten => 4001, 2,voicemail(4001@default,u) exten => 4001,102,voicemail(4001@default,b)

Acceso al buzn de voz

Exten => *98, 1, voicemailMain()

Page 175

Ejemplo de Voicemail

[stations] Exten => _NXX,1,Dial(SIP/${EXTEN},20) Exten => _NXX,n,Voicemail(${EXTEN},u) [voicemail] Exten => 700,1,1VoicemailMain(${CALLERID(num)}) El codigo anterior se ha definido en el extensions.conf, Alguien puede explicarlo?

Page 176

La aplicacin Record

Hace unos dias surgi esta duda en el curso y siempre es mas facil grabar con esta aplicacin que usar otra y buscar convertir el archivo y copiarlo para Asterisk.

Podemos grabar nuestros mensajes (voces) a nuestro gusto.

Si utilizamos el %d en el nombre del fichero no se sobreescribira el mismo sino que se grabaran con un indice numerico identificador autoincremental.

El nombre del archivo grabado en el momento queda en la variable $ {RECORDED_FILE}


Pruebe:

exten => 123,n,Record(migrabacion%d.wav)

Page 177

Sala de Conferencias

Alguien ha trabajado con Salas de Conferencias?

Permite crear conferencias protegidas por clave. Administrar conferencias. Callar o expulsar a un miembro de la conferencia. Crear conferencias estticas (en el meetme.conf). Crear conferencias dinmicas (utilizando el plan de marcacin). Meetme.conf [rooms] Conf => 600

Page 178

Sala de Conferencias

extensions.conf exten => 600,1,meetme(600, i, 54321) Se anuncia cuando alguien entra o sale de la conferencia. exten => 601,1,playBack(conf-thereare) exten => 601,2,meetmeCount(600) exten => 601,3, playBack(conf-peopleinconf

Page 179

Lab 2: Manejo de Contextos y Grupos de Trabajo

Para las extensiones internas de cada PBX, definiremos dos grupos:

internos, que comienzan con el prefijo 0 vips, con el prefijo 1

Por ejemplo, las extensiones definidas en el laboratorio 1, pertenecen al grupo de los internos.

Por otra parte, si queremos definir una extensin 0 en el grupo vip: FC10.

1.1. Definir dos canales SIP (o IAX2) adicionales, llamados [jefe] y [vicejefe].

1.2. Crear un contexto [vips] y definir una extensin para cada uno de los canales, FC10 y FC11, en este contexto.

1.3. Permitir que las extensiones FC10 y FC11 se puedan llamar entre s y adems puedan llamar a las extensiones del grupo internos, va la utilizacin de includes. A su vez, las extensiones pertenecientes a internos no deben poder realizar llamadas a las del grupo vips.

Page 180

Interfaces Grficas para la Administracin de Asterisk


FreePBX, TrixBOX, Elastix
Da #8

Page 181

Sistemas de VOIP con Asterisk


MODULO II y cursos relacionados

Page 182

Sistemas de VOIP con Asterisk

Hemos terminado Exitosamente el Modulo I de la capacitacin GENERAL en Voz sobre IP usando Asterisk.

Han adquirido Competencias para:

Manejar Paquetes y Aplicativos Linux. Solucionar problemas de dependencias de paquetes y compilacion de componentes en Linux. Administrar interfaces de Red y solucionar problemas relacionados a ellas en Linux. Definir redes de VoIP y dimensionar basicamente redes de datos y voz. Implementar una infraestructura de red de VoIP basado en Asterisk

Page 183

Sistemas de VOIP con Asterisk

Definir usuarios y canales SIP, con caracteristicas adicionales como Codecs, Buzones, etc. Definir un plan de Marcado Basico. Definir un IVR bsico con acceso a extensiones, aplicaciones, etc. Manejar acceso a extensiones invalidas, restricciones de tiempo, usuarios no disponibles y ocupados. Manejar restricciones por grupos de trabajo y por coincidencia de patrones de marcado de los usuarios. Manejar aplicaciones de acuerdo a expresiones condicionales y de los usuarios. Administrar cuentas de correo de voz Administrar cuartos de conferencia basicos para las empresas.
Page 184

Capacitacion en VOIP

Este curso NO ha terminado aun falta aprender:

Caracteristicas y Aplicaciones Avanzadas en el Plan del Marcado. Configuracion de Canales FXS y FXO. Configuracion de Tarjetas Analogas y digitales. Interconexion de centrales via troncales SIP e IAX. Interconexion con la PSTN y Channel banks FXS. Conceptos Avanzados de Telefonia Digital. Configuracion de Sealizaciones y establecimiento de canales Digitales. Macros y Codificacion Automatica

Page 185

Capacitacion en VOIP

Manejo de AstDB. Colas, Agentes y Miembros dinamicos Call Details Records (CDR) Debugging de un Sistema Asterisk Errores Tipicos del Dialplan AGI con PHP. Integracion con CTI y AMI. Integracion con CRM. Lenguaje AEL.

Page 186

Capacitacion en VOIP

Administracion de Proyectos de VOIP:

Ingenieria, Instalaciones y Post Venta, Soporte Tecnico. Consideraciones de Seguridad (VPN, tuneles SSL, etc) Tolerancia a Fallos, Redundancia y Balanceo de Carga. Manejo de Troncales DUNDi. Seguridad de Terminal y de Red. Ataques (MIM, Eavesdropping, Flooding, etc.) Ataques SIP y SPAM. Consideraciones de Red de datos (Capacidad de SW, Crecimientos, Redes dedicadas)

Seguridad en VOIP

Dimensionamiento de Red

Page 187

Capacitacion en VOIP

VLANs. Tuneles VPN. Teoria del Trafico. Dimensionamiento basado en Trafico. Calidad de servicio (QoS). Pruebas del sistema y MOS. TrixBOX Elastix FreePBX AsteriskNOW

Sistemas de VOIP de Rapid Deployment:

Page 188

You might also like