Professional Documents
Culture Documents
Agosto 2010 Santiago, Repblica Dominicana Instructor: Antonio Perpian Fundacin Cdigo Libre Dominicano
Page 1
MODULO 1
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
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
Page 4
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.
Page 5
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
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
En la central naci el concepto de switch que inicialmente lo realizaba manualmente una persona, luego aparecieron los conmutadores electrnicos.
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
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.
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
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
Page 14
Algo de Actualidad
Internet es la mayor red de datos del mundo VOIP ser realizar llamadas por Internet.
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.
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:
Y la perdida de paquetes? VOIP y Asterisk se montar sobre RTP que funciona sobre UDP, existe retransmisin de paquetes?
Page 17
Agentes Implicados
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
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
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
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).
Page 23
Elementos Implicados
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 8 puertos analgicos y soportan quads y duals FXS, FXO: TDM800.
Page 26
Paso 1: Los dos comunicantes se registran en el servidor VoIP con sus telfonos (Hardphones, Softphones).
Paso 3: El servidor VoIP devuelve datos de contacto al emisor (puertos, direcciones IP).
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
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.
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:
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
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.
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
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
13 kbps 15 kbps 64 kbps 5.3/6.3 kbps 16/24/32/40 kbps 8 kbps 2.15 a 44.2 kbps
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
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
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
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
Page 46
Siendo # el indicador de que se ha iniciado como root, para acceder se usa su.
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
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
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
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 -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
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 )
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.
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.
Page 57
Preparando el Laboratorio
Verifique que interfaces ethernet estn levantadas, de ser necesario levante la interfaz.
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
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.
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
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.
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.
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 siempre se encuentra en medio de una conversacin entre terminales SIP, (sealizacin y datos).
Page 64
Aplicaciones
Gestin
Asterisk
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
Ncleo de Centralita
Cargador de Mdulos
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
Protocolos:
IAX (Inter-Asterisk Exchange) H.323 SIP (Session Initiation Protocol) MGCP (Media Gateway Control Protocol SCCP (Cisco Skinny)
Page 70
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 es un demonio (daemon=demonio) que se ejecuta en background, al igual que el resto de los servidores conocidos (apache, openssh, proftpd, ...).
Se distribuye como cdigo fuente para ser compilado e instalado, aunque existen versiones paquetizadas para las distribuciones GNU/Linux ms comunes.
Page 72
Las llamadas concurrentes. (canales) Las conferencias y aplicaciones complejas simultneas. Las transcodifcaciones necesarias (recodificacin).
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
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
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
ASTERISK
TDM400P (4 FXS)
Page 76
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
RDSI-BRI Modo NT
RDSI-BRI Modo TE PBX con extensiones RDSI RDSI-PRI Modo NT PBX con lneas RDSI primarias
Page 78
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 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
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
RTB
RTB
Terminal IP Pasarela RTB Terminal IP Terminal Trad.
Soft Switch
Banco de Canales
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
Asterisk actualiza sus fuentes como un servicio de red xNIX, cambios afecta su funcionalidad y su seguridad.
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
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
Page 85
Preparando el sistema
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!!
Page 86
Paquetes de Asterisk
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-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
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
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.
Page 90
Y para instalarlo:
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
Page 92
DAHDI la instalacin
Luego de la instalacin DAHDI ha creado modulos del kernel y ha cargado aplicaciones (mdulos).
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:
Page 93
Mdulos de Asterisk:
Voces pregrabadas:
Verifique que pueda iniciar asterisk como un servicio linux. Verifique el status del servicio asterisk.
Page 94
Directorios de Asterisk
/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
Page 96
Asterisk CLI
asterisk r
Page 97
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.
En Asterisk el plan del marcado es totalmente configurable, a diferencia de las centrales privativas.
Page 99
Extension
Que tienen en mente por una extensin? Cada extensin se compone de:
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).
ej: [entrantes]
Page 102
Dialplan: Arquitectura
Page 103
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
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
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.
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.
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
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
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
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:
Una vez recargada, puede comprobarse los users que se han definido con el comando: sip show users
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.
Para pasar un canal IAX a modo trunk, incluir en la definicin del archivo iax.conf: trunk=yes
Page 116
Para definiciones estticas de usuarios con caractersticas comunes como en grupos de trabajo o tipos de usuarios se puede utilizar plantillas:
Page 117
El archivo extensions.conf es la parte central de toda la configuracin, dado que es donde se define el dialplan de Asterisk.
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
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.
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
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
Page 125
Contextos y Extensiones
${ }
Marcar una extensin significa acceder a una seccin de cdigo, y, de acuerdo a una prioridad establecida ejecutar una aplicacin.
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
${VARIABLE} Set()
Los nombres de variables NO son case sensitive. Para el uso de operadores (aritmticos, lgicos) se usa:
$[OPERACION]
Page 127
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.
Page 128
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!!
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
1.5. Verificar va la CLI que los softphones se registraron. Utilizar: sip show peers
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
Page 132
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
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
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:
Page 135
[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
Page 137
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:
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
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)
Page 141
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.
Page 142
[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.
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
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
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.
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
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
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:
Manejo de cadenas:
Devuelve la subcadena de variable que comienza en offset y con la longitud especificada. Ejemplos: ${123456789:2:3} devuelve 345
Page 155
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.
Page 156
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 => 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
${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.
NoOp ( ${VARIABLE} )
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.
Todos los numeros locales (de Guayaquil) Todos los numeros internacionales. Todos los numeros celulares. Extensiones en un rango: 300-399
Le dicen a Asterisk que haga match con un patrn y no con un nmero de extensin.
Page 161
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?
Page 162
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
Page 165
Las expresiones son una combinacin de variables, operadores y valores que arrojan un resultado. Sintaxis:
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
GotoIf(expresion1?destino1: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
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
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)
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.
Si utilizamos el %d en el nombre del fichero no se sobreescribira el mismo sino que se grabaran con un indice numerico identificador autoincremental.
Pruebe:
Page 177
Sala 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
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
Page 181
Page 182
Hemos terminado Exitosamente el Modulo I de la capacitacin GENERAL en Voz sobre IP usando Asterisk.
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
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
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
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
Page 188