Vous êtes sur la page 1sur 27

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.

org
Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1 Conceptos de Telefonia y VoIP VoIP

VoIP (Voice-over-Internet-Protocol), llamado en espaol Voz sobre IP, es un grupo de normas y reglas que hacen posible que la seal de voz viaje a travs del protocolo IP. Esto significa que se enva la seal de voz en forma digital dentro del paquete ip, en lugar de enviarla (en forma digital o analgica) a travs de circuitos utilizables slo para telefona como una TELCO o PSTN (acrnimo de Public Switched Telephone Network, Red Telefnica Pblica Conmutada).

pagina1

Los Protocolos que son usados para llevar las seales de voz sobre la red IP son comnmente referidos como protocolos de Voz sobre IP o protocolos IP. Pueden ser vistos como implementaciones comerciales de la "Red experimental de Protocolo de Voz" (1973), inventada por ARPANET. El trfico de Voz sobre IP puede circular por cualquier red IP, incluyendo aquellas conectadas a Internet, como por ejemplo redes de rea local (LAN). Es muy importante diferenciar entre Voz sobre IP (VoIP) y Telefona sobre IP (No confundir con ToIP, Text-over-IP).

VoIP es el conjunto de normas, dispositivos, protocolos, en definitiva la tecnologa que permite la transmisin de la voz sobre el protocolo IP. Telefona sobre IP es el conjunto de nuevas funcionalidades de la telefona, es decir en lo que se convierte la telefona tradicional debido los servicios que finalmente se pueden llegar a ofrecer gracias a poder portar la voz sobre el protocolo IP en redes de datos.

Ventajas
La principal ventaja de este tipo de servicios es que evita los cargos altos de telefona (principalmente de larga distancia) que son usuales de las compaas de la Red Pblica Telefnica Conmutada (PSTN). Algunos ahorros en el costo son debidos a utilizar una misma red para llevar voz y datos, especialmente cuando los usuarios tienen sin utilizar toda la capacidad de una red ya existente en la cual pueden usar para VoIP sin un costo adicional. Las llamadas de VoIP a VoIP entre cualquier proveedor son generalmente gratis, en contraste con las llamadas de VoIP a PSTN que generalmente cuestan al usuario de VoIP. Existen diferentes tipos de servicios de servicio de PSTN a VoIP: Ej. "Llamadas Locales Directas" (Direct Inward Dialling: DID) y "Nmeros de acceso". DID conecta a quien hace la llamada directamente al usuario VoIP mientras que los Nmeros de Acceso requieren que este introduzca el nmero de extensin del usuario de VoIP. Los Nmeros de acceso son usualmente cobrados como una llamada local para quien hizo la llamada desde la PSTN y gratis para el usuario de VoIP.

Funcionalidad
VoIP puede facilitar tareas que seran ms difciles de realizar usando las redes telefnicas comunes:

Las llamadas telefnicas locales pueden ser automticamente enrutadas a un telfono VoIP, sin importar dnde se est conectado a la red. Uno podra llevar consigo un telfono VoIP en un viaje, y en cualquier sitio conectado a Internet, se podra recibir llamadas. Nmeros telefnicos gratuitos para usar con VoIP estn disponibles en Estados Unidos de Amrica, Reino Unido y otros pases de organizaciones como Usuario VoIP. Los agentes de Call Center usando telfonos VoIP pueden trabajar en cualquier lugar con conexin a Internet lo suficientemente rpida. Algunos paquetes de VoIP incluyen los servicios extra por los que PSTN (Red Telefnica Conmutada) normalmente cobra un cargo extra, o que no se encuentran disponibles en algunos pases, como son las llamadas de 3 a la vez, retorno de llamada, remarcado automtica, o identificacin de llamadas.

Movilidad
Los usuarios de VoIP pueden viajar a cualquier lugar en el mundo y seguir haciendo y recibiendo llamadas de la siguiente forma:

Los subscriptores de los servicios de las lneas telefnicas pueden hacer y recibir llamadas locales fuera de su localidad. Por ejemplo, si un usuario tiene un nmero telefnico en la ciudad de Nueva York y est viajando por Europa y alguien llama a su nmero telefnico, esta se recibir en Europa. Adems si una llamada es hecha de Europa a Nueva York, esta ser cobrada como llamada local, por supuesto el usuario de viaje por Europa debe tener una conexin a Internet disponible. Los usuarios de Mensajera Instantnea basada en servicios de VoIP pueden tambin viajar a cualquier lugar del mundo y hacer y recibir llamadas telefnicas. Los telfonos VoIP pueden integrarse con otros servicios disponibles en Internet, incluyendo videoconferencias, intercambio de datos y mensajes con otros servicios en paralelo con la conversacin, audio conferencias, administracin de libros de direcciones e intercambio de

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
informacin con otros (amigos, compaeros, etc).

pagina2

Los protocolos mas utilizados en Voip Sip y H.323 Sip


Session Initiation Protocol (SIP o Protocolo de Inicio de Sesiones) desarrollado por el IETF MMUSIC Working Group con la intencin de ser el estndar para la iniciacin, modificacin y finalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como el video, voz, mensajera instantnea, juegos online y realidad virtual, posiblemente el remplazo del otros protocolos h.323 Para mas informacin http://es.wikipedia.org/wiki/Session_Initiation_Protocol

H.323
Definido en 1996 por la UIT (Unin Internacional de Telecomunicaciones) proporciona a los diversos fabricantes una serie de normas con el fin de que puedan evolucionar en conjunto. Para mas informacin http://es.wikipedia.org/wiki/H.323

Caractersticas principales Por su estructura el estndar proporciona las siguientes ventajas:

Permite controlar el trfico de la red, por lo que se disminuyen las posibilidades de que se produzcan cadas importantes en el rendimiento. Las redes soportadas en IP presentan las siguientes ventajas adicionales:

Es independiente del tipo de red fsica que lo soporta. Permite la integracin con las grandes redes de IP actuales. Es independiente del hardware utilizado. Permite ser implementado tanto en software como en hardware, con la particularidad de que el hardware supondra eliminar el impacto inicial para el usuario comn.. Permite la integracin de Video y TPV

IP no es un servicio, es una tecnologa En muchos pases del mundo, IP ha generado mltiples discordias, entre lo territorial y lo legal sobre esta tecnologa, est claro y debe quedar claro que la tecnologa de VoIP no es un servicio como tal, sino una tecnologa que usa el Protocolo de Internet (IP) a travs de la cual se comprimen y descomprimen de manera altamente eficiente paquetes de datos o datagramas, para permitir la comunicacin de dos o ms clientes a travs de una red como la red de Internet. Con esta tecnologa pueden prestarse servicios de Telefona o Videoconferencia, entre otros. Arquitectura de red El propio Estndar define tres elementos fundamentales en su estructura:

Terminales: Son los sustitutos de los actuales telfonos. Se pueden implementar tanto en software como en hardware. Gatekeepers: Son el centro de toda la organizacin VoIP, y seran el sustituto para las actuales centrales. Normalmente implementadas en software, en caso de existir, todas las comunicaciones pasaran por l. Gateways: Se trata del enlace con la red telefnica tradicional, actuando de forma transparente para el usuario.

Con estos tres elementos, la estructura de la red VoIP podra ser la conexin de dos delegaciones de una misma empresa. La ventaja es inmediata: todas las comunicaciones entre las delegaciones son completamente gratuitas. Este mismo esquema se podra aplicar para proveedores, con el consiguiente ahorro que esto conlleva.

Protocolos de VoIP: Es el lenguaje que utilizarn los distintos dispositivos VoIP para su conexin. Esta parte es importante ya que de ella depender la eficacia y la complejidad de la comunicacin.

Por orden de antigedad (de ms antiguo a ms nuevo):

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

H.323 - Protocolo definido por la ITU-T SIP - Protocolo definido por la IETF Megaco (Tambin conocido como H.248) y MGCP - Protocolos de control Skinny Client Control Protocol - Protocolo propiedad de Cisco MiNet - Protocolo propiedad de Mitel CorNet-IP - Protocolo propiedad de Siemens IAX - Protocolo original para la comunicacin entre PBXs Asterisk (obsoleto) Skype - Protocolo propietario peer-to-peer utilizado en la aplicacin Skype IAX2 - Protocolo para la comunicacin entre PBXs Asterisk en reemplazo de IAX Jingle - Protocolo abierto utilizado en tecnologa Jabber MGCP- Protocolo propietario de Cisco

pagina3

Como hemos visto VoIP presenta una gran cantidad de ventajas, tanto para las empresas como para los usuarios comunes. La pregunta sera por qu no se ha implantado an esta tecnologa?. A continuacin analizaremos los aparentes motivos, por los que VoIP an no se ha impuesto a las telefonas convencionales. ISDN Red Digital de Servicios Integrados: RDSI es una red que procede por evolucin de la red telefnica existente, que al ofrecer conexiones digitales de extremo a extremo permite la integracin de multitud de servicios en un nico acceso, independientemente de la naturaleza de la informacin a transmitir y del equipo terminal que la genere. Podemos dividir el RDSI en Acceso Bsico (BRI) consiste en dos canales B full-duplex de 64 kbps y un canal D full-duplex de 16 kbps. Luego, la divisin en tramas, la sincronizacin, y otros bits adicionales dan una velocidad total a un punto de acceso bsico de 192 kbps. 2B+D+sealizacin+framing Accesos Primario (PRI) est destinado a usuarios con requisitos de capacidad mayores, tales como oficinas PBX digital o red local. Debido a las diferencias en las jerarquas de transmisin digital usadas en distintos pases, no es posible lograr un acuerdo en una nica velocidad de los datos. Estados Unidos, Japn y Canad usan una estructura de transmisin basada en 1,544 Mbps, mientras que en Europa la velocidad estndar es 2,048 Mbps. Tpicamente, la estructura para el canal de 1.544 Mbps es 23 canales B ms un canal D de 64 kbps y, para velocidades de 2.048 Mbps, 30 canales B ms un canal D de 64 kbps: 30B(64)+D(64)+sealizacin+framing(64) 2,048 kbps - Europa 23B(64)+D(64)+sealizacin+framing(8) 1,544 kbps Estados Unidos, Japon y Canada. Libpri Son las libreras que permiten al asterisk conectarse con las ISDN Dahdi Dahdi son las iniciales de Digium Asterisk Hardware Device Interface : Son las librera que permite al asterisk conectarse con la telefona analgica y digital, incluyendo la conexin a la PSTN (Public Switched Telephone Networ). Son los drivers y herramientas para las tarjetas analgicas y digitales de digium y es individuales del asterisk y pueden ser utilizados para otras aplicaciones. Dahdi es la evolucin del proyecto Zaptel (Zapata Telephony Project), El cdigo fuente lo podemos descargar por piezas individuales o en un paquete completo.

dahdi-tools: son las aplicaciones necesarias para cargar las configuraciones dahdi-linux: contiene los mdulos de kernel necesario para poder utilizar las tarjetas de comunicaciones digium dahdi-linux-complete: es la unin de los dos paquetes anteriores, evitando descargar los dos paquetes independientes

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
Parmetros de la VoIP Este es el principal problema que presenta hoy en da la penetracin tanto de VoIP como de todas las aplicaciones de IP. Garantizar la calidad de servicio sobre una red IP, por medio de retardos y ancho de banda, actualmente no es posible; por eso, se presentan diversos problemas en cuanto a garantizar la calidad del servicio.. Cdecs La voz ha de codificarse para poder ser transmitida por la red IP. Para ello se hace uso de Cdecs que garanticen la codificacin y compresin del audio o del vdeo para su posterior decodificacin y descompresin antes de poder generar un sonido o imagen utilizable. Segn el Cdec utilizado en la transmisin, se utilizar ms o menos ancho de banda. La cantidad de ancho de banda suele ser directamente proporcional a la calidad de los datos transmitidos. Entre los codecs utilizados en VoIP encontramos los G.711, G.723.1 y el G.729 (especificados por la ITU-T)
Codec & Bit Rate (Kbps) G.711 (64 Kbps) G.729 (8 Kbps) G722_64k(64 Kbps) GSM (13.3 kbps) Bandwidth Ethernet 87.2 Kbps 31.2 Kbps 87.2 Kbps

pagina4

30.66 Kbps

Para ver una tabla de comparacin y aprender un poco mas de los codecs les dejo este link por cisco y esta calculadora por asteriskguide

Retardo o latencia Una vez establecidos los retardos de trnsito y el retardo de procesado la conversacin se considera aceptable por debajo de los 150 ms.

Calidad del servicio La calidad de este servicio se est logrando bajo los siguientes criterios: La supresin de silencios, otorga ms eficiencia a la hora de realizar una transmisin de voz, ya que se aprovecha mejor el ancho de banda al transmitir menos informacin. Compresin de cabeceras aplicando los estndares RTP/RTCP. Priorizacin de los paquetes que requieran menor latencia. Las tendencias actuales son: CQ (Custom Queuing): Asigna un porcentaje del ancho de banda disponible. PQ (Priority Queuing): Establece prioridad en las colas. WFQ (Weight Fair Queuing): Se asigna la prioridad al trfico de menos carga. DiffServ: Evita tablas de encaminados intermedios y establece decisiones de rutas por paquete. La implantacin de IPv6 que proporciona mayor espacio de direccionamiento y la posibilidad de tunneling.

Principales protocolos de VoIP


H.323 El protocolo H.323 se cre originalmente para proveer de un mecanismo para el transporte de aplicaciones multimedia en LANs (Redes de rea local) pero ha evolucionado rpidamente para dirigir las crecientes necesidades de las redes de VoIP. SIP Session Initiation Protocol (SIP o Protocolo de Inicio de Sesiones) es un protocolo desarrollado por el IETF MMUSIC Working Group con la

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina5

intencin de ser el estndar para la iniciacin, modificacin y finalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como el video, voz, mensajera instantnea, juegos online y realidad virtual. IAX2 IAX (Inter-Asterisk eXchange protocol) es uno de los protocolos utilizado por Asterisk, un servidor PBX (central telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejar conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizan protocolo IAX. Asterisk Asterisk es una aplicacin de software libre (bajo licencia GPL) que provee funcionalidades de una central telefnica (PBX). Como cualquier PBX, se puede conectar un nmero determinado de telfonos para hacer llamadas entre s e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto bsicos como primarios. Mark Spencer, de Digium, inicialmente cre Asterisk y actualmente es su principal desarrollador, junto con otros programadores que han contribuido a corregir errores y aadir novedades y funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk actualmente tambin se distribuye en versiones para los sistemas operativos BSD, MacOSX, Solaris y Microsoft Windows, aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todas. Asterisk incluye muchas caractersticas anteriormente slo disponibles en costosos sistemas propietarios PBX como buzn de voz, conferencias, IVR, distribucin automtica de llamadas, y otras muchas ms. Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan en el lenguaje de script de Asterisk o aadiendo mdulos escritos en lenguaje C o en cualquier otro lenguaje de programacin soportado por Linux. Para conectar telfonos estndar analgicos son necesarias tarjetas electrnicas telefnicas FXS o FXO fabricadas por Digium u otros proveedores, ya que para conectar el servidor a una lnea externa no basta con un simple mdem. Quiz lo ms interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP, H.323, IAX y MGCP. Asterisk puede interoperar con terminales IP actuando como un registrador y como gateway entre ambos. Estructura asterisk

Canal: Es una conexion que conduce una llamada entrante o saliente en el sistema asterisk. La conexion puede venir o salir hacia telefonia tradicional analogica o digital, o VoIP. Dialplan: Se trata de la configuracion de la central de asterisk que indica el itinerario que sigue una llamada desde que entra o sale del sistema hasta que llega a su punto final. Se trata en lineas generales del comportamiento logico de la central.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina6

Extension: En telefonia tradicional, las extensiones se asocian con telefonos, interfaces o menues. En asterisk, una extension es una lista de comandos a ejecutar. Las extensiones se acceden cuando:

Se recibe una llamada entrante por un canal dado. El usuario que ha llamado marca la extension Se ejecuta un salto de extensiones desde el dialplan de asterisk. contexto es una coleccion de extensiones.

Contexto: El dialplan o logica de comportamiento de asterisk se divide en uno o varios contextos. Un Los contextos existen para poder diferenciar el lugar donde se encuentra una llamada.

Aplicacion: Asterisk ejecuta secuencialmente los comandos asociados a cada extension. Esos comandos son realmente aplicaciones que controlan el comportamiento de la llamada y del sistema en si. Ejemplos:

Hangup: Colgar la llamada Dial: Realiza una llamada saliente Playback: Reproduce un archivo de sonido

CDR: Registro detallado de llamadas AGI: (Asterisk Gateway Interface) nos permite ejecutar en Asterisk software de terceros escrito en casi cualquier lenguaje Mas adelante hablaremos mas a fondo de aplicaciones.

Estructura de Directorios /etc/asterisk: Contiene los archivos de configuracin. Si al compilar ejecutamos make samples, tendremos ejemplos en este directorio. /usr/lib/asterisk/modules: Contiene los mdulos de Asterisk que hemos compilado. /var/lib/asterisk: Contiene diferentes libreras de Asterisk. /var/lib/asterisk/agi-bin: Directorio para contener los AGI. /var/spool/asterisk: Directorio para archivos que genera Asterisk (voicemail, etc.) /var/log/asterisk: Aqu se guardan los log de Asterisk. Archivos de Configuracion extensions.conf: el propio Dialplan. features.conf: dialplan para mtodos complementarios (transferencias, call parking, grabacin de llamadas bajo demanda, etc.). meetme.conf: para conferencias. musiconhold.conf: configuracion de la musica en espera. queues.conf: configuracion de colas de llamadas. voicemail.conf: configuracion de los buzones de voz. Asterisk se configura desde multiples archivos de configuracion, cada uno para una determinada area. Los mas importantes son: Archivo de configuracion maestro: asterisk.conf Archivo de configuracion de modulos: modules.conf Canales: iax.conf: Canales IAX (Inter Asterisk eXchange) sip.conf: Canales SIP /etc/dahdi/system.conf: Telefonia Analogica y digital.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
Instalacion de Asterisk 1.8 Centos
$ vi /etc/yum.repos.d/centos-asterisk.repo [asterisk-current] name=CentOS-$releasever - Asterisk - Current baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0 #gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium $ vi /etc/yum.repos.d/centos-digium.repo [digium-current] name=CentOS-$releasever - Digium - Current baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0 #gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium #yuminstallasterisk18asterisk18configs

pagina7

Debian
sudo apt-get install python-software-properties $ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF $ sudo add-apt-repository "deb http://packages.asterisk.org/deb `lsb_release -cs` main" $ sudo add-apt-repository "deb-src http://packages.asterisk.org/deb `lsb_release -cs` main" $ sudo add-apt-repository "deb http://packages.asterisk.org/deb `lsb_release -cs` main" $ sudo add-apt-repository "deb-src http://packages.asterisk.org/deb `lsb_release -cs` main"

Configurando Asterisk PBX 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. Ejemplo: [interno] Todas las instrucciones son parte del contexto hasta que el prximo contexto es definido. Existen dos contextos especiales: [general] (variables predefinidas) [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 => 101,1,answer() Extensin espacial del sistema 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. [interno] exten => s,1,answer() 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 => 101,1,Answer() exten => 101,2,Hangup() 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 => 103,1,Answer() exten => 103,n,hago algo exten => 103,n,Hangup() Notese como el orden numerico (1,2,3,etc) es reemplazado por la letra n.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
Aplicaciones 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 ,. ARRANCAMOS CON ASTERISK ....... Mi primer Dialplan. Luego de tanto bla bla bla finalmente comenzamos a echarle manos a esto. Crearemos un dialplan simple basandonos en toda la teoria anterior (ESPEREMOS LA HAYAN LEIDO) e iremos creando extensiones para ir realizandos los escenarios. Lo primero es que crearemos las extensiones SIP 101 y 102 para registrarnos en asterisk de la siguiente manera: vim /etc/asterisk/sip.conf agregar: [101] type=friend callerid=cris context=extensiones username=101 secret=101 host=dynamic [102] type=friend callerid=carlos context=extensiones username=102 secret=102 host=dynamic ; Indica que puede enviar y recibir llamadas ; Caller Id ; Contexto por defecto al que pertenecera ; Usuario ; Clave que sera utilizada para el softphone o el hardphone ; El dispositivo tiene una ip dinamica ; Indica que puede enviar y recibir llamadas ; Caller Id ; Contexto por defecto al que pertenecera. Relacionado con extensions.conf ; Usuario ; Clave que sera utilizada para el softphone o el hardphone ; El dispositivo tiene una ip dinamica

pagina8

Con estos minimos datos ya podemos ir al archivo extensions.conf y crear nuestro dialplan. [root@server]# vim /etc/asterisk/extensions.conf [extensiones] exten => 100,1,Answer( ) ; Contesta la llamada exten => 100,2,Playback(hello-world) ; Suena el archivo hello-world exten => 100,3,Hangup( ) ; Cuelga la llamada Indica que cuando cualquiera de los usuarios registrados (101 o 102) marque la extension 100 se iniciara una secuencia de aplicaciones donde la primera es Answer, luego escuchara una grabacion (hello-world) y finalmente colgara. Mas aplicaciones Background: La aplicacion Background reproduce una melodia o mensaje mientras se espera el marcado de cualquier tecla. A diferencia de playback esta permite el marcado de teclas mientras que playback no. [extensiones] exten => 100,1,Answer( ) ; contesta la llamada exten => 100,n,Background(enter-ext-of-person) ; espera digitos y pasa a la siguiente instruccin exten => 100,n,Hangup() Aqui lo unico que hace es que cuando marcamos la extension 100. reproduce el audio y espera digito de quien llama.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina9

Aplicacion Dial: Realiza una llamada a la extension o numero determinado en el campo. Utiliza diferentes tipos de tecnologia (SIP,IAX,ZAP, etc). Por ejemplo, Para habilitar que las extensiones 101 y 102 puedan marcarse entre si colocamos lo siguiente: [extensiones] exten => 101,1,Dial(SIP/101,10) ; Marca a la extension 101 y espera 10 segundos para pasar a la siguiente prioridad. exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/102,10) ; Marca a la extension 102 y espera 10 segundos para pasas a la siguiente prioridad. exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() Cuando la extension 101 digite la 102, sonara en la extension 102 por un periodo de 10 segundos, si en esos 10 segundos nadie contesta ira a la proxima prioridad que toca un mensaje de no disponible y finalmente cuelga. Tambien dial puede llamar a otro tipo de tecnologia (IAX,ZAP,etc). Ejemplo; exten => 102,1,Dial(IAX/1,10,m) exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() En este caso la opcion llamara a la extension 102 usando IAX y mientras suena la opcion m tocara un musica de fondo. Otras opciones de Dial() T: Permite 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 w: Permite al que llama grabar la comunicacion con *1 Aplicacion Goto: Envia flujo de la llamada a un determinada posicion del dialplan, establecida por los parametros de contexto + extension + prioridad. Ejemplo: exten => 100,1,Answer( ) ; contesta la llamada exten => 100,n,Background(enter-ext-of-person) ; espera digitos y pasa a la extension en el mismo contexto exten => 100,n,WaitExten(10) exten => 100,n,Goto(101,1) ; Si no digita ninguna extension, va a la extension 101 prioridad 1. exten => 100,n,Hangup() exten => 101,1,Dial(SIP/101,10) exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/101,10) exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() Otro Ejemplo: exten => 100,1,Answer( ) ; contesta la llamada exten => 100,n,Background(enter-ext-of-person) ; exten => 100,n,WaitExten(10) exten => 100,n,Goto(hastaluego,200,1) ; Si no digita ninguna extension, va al contexto hasta luego extension 200 prioridad 1. exten => 100,n,Hangup() Entradas Extensiones especiales (t, i) 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. Ejemplo: exten => 100,1,Answer( ) ; contesta la llamada exten => 100,n,Background(enter-ext-of-person) ; espera digitos y pasa a la extension en el mismo contexto exten => 100,n,WaitExten(10) exten => 100,n,Hangup()

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
exten => 101,1,Dial(SIP/101,10) exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/101,10) exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() exten => i,1,Playback(pbx-invalid) ; Suena un mensaje que indica extension invalida exten => i,n,Playback(vm-goodbye) ; Otro mensaje de adios exten => i,n,Hangup() ; Cuelga la llamada exten => t,1,Playback(vm-goodbye) ; mensaje de adios exten => t,n,Hangup() ; Cuelga la llamada En el ejemplo anterior, el usuario marca la extension 100 y el contexto entrada le indica que digite le numero de extension deseado, si el usuario digita un numero de extension diferente a 101 o 102 entonces ira directamente a la extension invalida. Si espera un tiempo sin hacer nada entonces lo envia a la extension t y termina la llamada. 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). 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] CRIS=Sip/101 CARLOS=Iax/102 La sintaxis de una variable es: ${variable} Asignacion de variables: set(Variable=valor) set(GLOBAL(Variable)=Valor) ; Cambiamos el valor de una variable global Agregar Variables al Dialplan Asumiendo que las variables globales fueron declaradas en el ejemplo anterior podemos simular lo siguiente: exten => 100,1,Answer( ) ; contesta la llamada exten => 100,n,Background(enter-ext-of-person) ; espera digitos y pasa a la extension en el mismo contexto exten => 100,n,Hangup() exten => 101,1,Dial(${CRIS},10); Referencia a la variable CRIS cuyo valor es SIP/101 exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(${CARLOS},10) ; Referencia a la variable CARLOS cuyo valor es SIP/102 exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() Algunas variables definidas automaticamente por asterisk Listado de variables ms importantes: ${CALLERID}: caller ID actual, nombre y nmero. ${CONTEXT}: contexto actual. ${EXTEN}: extensin actual.

pagina10

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
${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. 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}) Patrones 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. 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. . (punto) Hace match con uno o mas caracteres. 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/1) Includes Asterisk posee una caracteristica para usar las extensiones de un contexto sin pertenecer a este. Esto es utilizado para controlar el acceso a diferentes secciones del dialplan. Por ejemplo, podriamos habilitar otro contexto llamado extensiones2 con los usuarios 103 y 104, naturalmente los usuarios pertenecientes al contexto extensiones no podran acceder ni llamar a los usuarios del contexto extensiones2, Aqui es donde entra include. Ejemplo: [extensiones] include => extensiones2 exten => 101,1,Dial(SIP/101,10) exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/101,10) exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() [extensiones2] include => extensiones2 exten => 103,1,Dial(SIP/103,10) exten => 103,n,Playback(vm-nobodyavail) exten => 103,n,Hangup() exten => 104,1,Dial(SIP/104,10) exten => 104,n,Playback(vm-nobodyavail) exten => 104,n,Hangup() Con estos includes ya ambos contextos podran comunicarse sin problemas. Manipulacion de expresiones y variables Las expresiones son una combinacin de variables, operadores y valores que arrojan un resultado. Sintaxis:

pagina11

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
$[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}) Bifurcacin condicional 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 como 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. Ejemplo GotoIf [extensiones] exten => 105,1,Set(TEST=1) exten => 105,2,GotoIf($[${TEST} = 1]?10,3) exten => 105,3,Playback(weasels-eaten-phonesys) exten => 105,4,Playback(office-iguanas) exten => 105,5,Set(COUNT=10) exten => 105,6,GotoIf($[${COUNT} > 0 ]?:10) exten => 105,7,SayNumber(${COUNT}) exten => 105,8,Set(COUNT=${COUNT} - 1) exten => 105,9,Goto(2) exten => 105,10,Hangup() exten => 105,11,GotoIf($[${CALLERIDNUM} = 8094767758]?12:10) exten => 105,12,Dial(SIP/102) exten => 105,13,Playback(abandon-all-hope) exten => 105,14,Hangup() Bifurcacin condicional basada en tiempo Verifica la hora actual del servidor, permitiendo tomar decisiones basadas en tiempo. Se utiliza cuando se quiere dar una bienvenida diferente en horarios de trabajo y fuera de trabajo. GotoIfTime(hora,dias_de_semana,dias_del_mes,meses?etiqueta) Enva la llamada a etiqueta si la fecha y hora actual concuerdan con el criterio especificado por los parmetros. Hora. Lista de uno o ms rangos de horario en formato de 24 horas. 09:00-17:00 Dias_de_semana. Lista de uno o ms das de la semana mon, tue Dias_del_mes. Da numrico del mes 7-12,15 Meses. Lista de uno o ms meses del ao un, apr, jul * Matchea con cualquier valor Etiqueta puede ser una prioridad dentro de una misma extensin, una prioridad y extensin dentro del mismo contexto o un contexto, extensin y prioridad. Ejemplo: [inicio] exten => 222,1,GotoIfTime(06:00-17:59),mon-fri,*,*?entrada,s,1) exten => 222,n,Goto(afterhours,s,1) El ejemplo anterior indica que cuando se marque la extension 222, si el usuario marca entre las 6am y 5:59pm de lunes a viernes ira al contexto entrada, prioridad 1. De lo contrario ira al contexto afterhours, prioridad 1. Interactive Voice Response IVR son las siglas de Interactive Voice Response, que se traduce del ingls como Respuesta de Voz Interactiva. Tambin se utiliza el trmino VRU (Voice Response Unit).

pagina12

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina13

Consiste en un sistema telefnico que es capaz de recibir una llamada e interactuar con el humano a travs de grabaciones de voz. Es un sistema de respuesta interactiva, orientado a entregar y/o capturar informacin automatizada a travs del telfono permitiendo el acceso a los servicios de informacin y operaciones autorizadas, las 24 horas del da. Utilizaremos muchos de los conceptos aprendidos previamente asi como las variables de asterisk. Practicamente estaremos juntandolo TODO. Para mas informacin http://es.wikipedia.org/wiki/IVR Ejemplo 1: [entrada] include => extensiones exten => 222,1,Answer() exten => 222,n,Background(demo-echodone) exten => 222,n,WaitExten(5) exten => 222,n,Playback(vm-goodbye) exten => 222,n,Hangup() [extensiones] include => entrada exten => 101,1,Dial(SIP/101,20) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/102,20) exten => 102,n,Hangup() Cuando la llamada entra a la extension 222 responde nuestro IVR con un mensaje de Bienvenida e indicando que marque la extension deseada, espera 5 segundos para que el cliente marque la extension deseada para transferirlo. Si el cliente no digita nada la llamada es terminada. Agregando las extensiones i y t Agregaremos entonces las extensiones i a nuestro dialplan y un Goto para que el cliente regrese al inicio en caso digitar una extension invalida. [entrada] include => extensiones exten => 222,1,Answer() exten => 222,n,Background(demo-echodone) exten => 222,n,WaitExten(5) exten => 222,n,Playback(vm-goodbye) exten => 222,n,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,n,Goto(entrada,222,1) [extensiones] include => entrada exten => 101,1,Dial(SIP/101,20) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/102,20) exten => 102,n,Hangup() Cuando el cliente digite una extension invalida escuchara un mensaje de invalido y volvera al menu principal. Agregando un Contador y GotoIf a nuestro IVR. En el contexto i, crearemos un contador que calculara un numero maximo de 3 extensiones invalidas para luego terminar la llamada. Aqui tambien empleamos la aplicacion GotoIf condicionara el contexto para decidir a donde ir. Es como sigue: [entrada]

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
include => extensiones exten => 222,1,Set(COUNT=1) exten => 222,1,GotoIf($[${COUNT} > 3]?fin:inicio) exten => 222,n(inicio),Answer() exten => 222,n,Background(demo-echodone) exten => 222,n,WaitExten(5) exten => 222,n,Goto(i,1) exten => 222,n(fin),Playback(vm-goodbye) exten => 222,n,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,n,Set(COUNT=$[${COUNT}] + 1]) exten => i,n,Goto(entrada,222,2) [extensiones] include => entrada exten => 101,1,Dial(SIP/101,20) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/102,20) exten => 102,n,Hangup() En el ejemplo anterior, agregamos tambien labels al contexto para indicar donde ira el Gotoif cuando se cumpla una condicion determinada. Fijense como hacemos un Goto hacia el contexto entrada,222,2, esto es porque si la enviamos al 1 la variable $COUNT se mantendra reiniciada y nunca el contador sumara. Agregando GotoIfTime Si queremos establecer un horario en el que el cliente podra comunicarse con nuestros representantes utilizamos la aplicacion GotoIfTime. Con esta lo que haremos es un contexto dentro de un horario especifico o de lo contrario que ejecute otro contexto que dira que no estan laborando. Es como sigue: [inicio] exten => 222,1,GotoIfTime(09:00-17:59),mon-fri,*,*?entrada,s,1) exten => 222,n,Goto(afterhours,s,1) [entrada] include => extensiones exten => s,1,Set(COUNT=1) exten => s,n,GotoIf($[${COUNT} > 3]?fin:inicio) exten => s,n(inicio),Answer() exten => s,n,Background(demo-echodone) exten => s,n,WaitExten(5) exten => s,n,Goto(i,1) exten => s,n(fin),Playback(vm-goodbye) exten => s,n,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,n,Set(COUNT=$[${COUNT}] + 1]) exten => i,n,SayNumber(${COUNT}) exten => i,n,Goto(entrada,s,2) [extensiones] include => inicio include => entrada exten => 101,1,Dial(SIP/101,20) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/102,20) exten => 102,n,Hangup() [afterhours] exten => s,1,Playback(hours) exten => s,n,Hangup()

pagina14

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina15

En este ejemplo cambia totalmente nuestro IVR. Agregamos un contexto inicio donde las llamadas marcadas al 222 entraran en este contexto y encontraran la condicion GotoIfTime(09:00-17:59),mon-fri,*,*?entrada,s,1) . Indica que de lunes a viernes en horario 09:00-17:59 de cualquier dia y cualquier mes se enviara al contexto entrada prioridad 1. Si la condicion no esta cumplida se ejecutara la siguiente prioridad que en este caso es Goto(afterhours,s,1) donde se ejecutara un mensaje diciendo que la empresa labora en horario de lunes a viernes de 9am a 6pm. Con esto tenemos un IVR bastante flexible para tratar los clientes. MusiconHold CualquierpopularsistemaPBXofrecelacapacidaddesuministrarunafuentedemsicaquehade desempearparamientrasquehayunallamadaenespera.Asteriskpermitemuchacreatividadeneste sentido.Hoyenda,todoelmundoestfamiliarizadoconelformatodemsicaMP3,yhayungran intersenelusodeMP3comomsicaenespera.Elconceptoquepareceunabuenaidea,perohayalgunas cosasquecreemosquedebenpensarytenerenconsideracin: LosArchivosMP3sonmuycomplejos,yrequierenunacantidadsustancialdeCPUparadecodificar.Si ustedtienevariasllamadasreproduciedomsicaenesperaenelsistema(porejemplo,aveceslas personasquiereescucharmsicaatravsdesutelfono,ouncentrodeatencintelefnicapueden tenervariasllamanenespera),lacargaenelCPUcausadoporlatotalidaddelatranscodificacinde losarchivosMP3almacenadospodraponerdemasiadademandaenunamquinaqueestacorriendoasterisk podemosusarformatomp3deacuerdoalasnecesidadesderendimientodelsistema.

Configurandomsicaenespera. [root@asterisk~]#vim/etc/asterisk/musiconhold.conf [default] mode=files directory=/var/lib/asterisk/moh random=yes Donde: modefiles:Leelosarchivosdesdeeldirectorioespecificadoencualquierformato. directory:Especificaeldirectoriodondeestaranubicadoslosarchivosdesonido. random:Tocalosarchivosdemaneraaleatoria. Lossonidosdelamusicaenesperaestanenlarutasiguiente: [root@asterisk]#cd/var/lib/asterisk/moh/ [root@asteriskmoh]#ls fpmcalmriver.gsmfpmsunshine.wavLICENSEasteriskmohfreeplaygsm fpmcalmriver.wavfpmworldmix.gsmLICENSEasteriskmohfreeplaywav fpmsunshine.gsmfpmworldmix.wav Optimizandolamsicaenespera LaaplicacinMusicOnHolddeAsteriskutilizaficheroscodificadosenMP3oWAV.Sibienesta codificacindeaudioofreceunabuenacalidadestapensadaparaficherosdesonidoynoparalas comunicaciones. Sitenemosunagrancantidaddellamadasenesperalacargadelsistemaescadavezmayor,estoes debidoalatranscodificacinprobablementeenlamayoradellamadasusemosGSMoAlaw. CuandoAsteriskreproduceMOH,siemprebuscaelformatoquemenoscostelesuponerespectoalcdecque seestusando.NormalmentetranscodificardesdeSLINvaaserlaopcinmsbarata,perosisabemos quenuestrosistemausaprincipalmenteGSMoAlaw(enlamayoradeloscasos),lomejorserahacer latranscodificacindelficheronosotrosmismosyevitarestatareaaAsterisk. ParaelloiremosaldirectoriodondetenemoslamusicaenesperayconvertiremoslosficherosWAV.Para ellonecesitaremossox,asquesinolotenemosinstalado:

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
[root@asterisk~]#yumyinstallsox #AccedemosaldirectoriodelosficherosMOH cd/var/lib/asterisk/moh FormatoGSM: soxfpmsunshine.wavtgsmr8000bc1fpmsunshine.gsm soxfpmcalmriver.wavtgsmr8000bc1fpmcalmriver.gsm soxfpmworldmix.wavtgsmr8000bc1fpmworldmix.gsm FormatoAlaw: soxfpmsunshine.wavtalr8000bc1fpmsunshine.alaw soxfpmcalmriver.wavtalr8000bc1fpmcalmriver.alaw soxfpmworldmix.wavtalr8000bc1fpmworldmix.alaw Donde: fpmsunshine.wav>Indicaelarchivodeentradaaconvertir. t>Especificaeltipodearchivoaconvertir r>EspecificaelrateenHertzdelarchivo c>Especificaelnumerodecanalesenelarchivo.Estospodrianser1,2y4paramono,estereoo quadsoundrespectivamente.

pagina16

Configurando Hardware Telefonico En este tema configuraremos una tarjeta FXO Digium TDM04B para conectar asterisk a una linea analoga, es decir, habilitaremos la linea para cuando alguien llame al 8094767758 asterisk responda de acuerdo al dialplan que hayamos definido. Para esto, hemos compilado previamente los paquetes de dahdi. Ahora procederemos a su configuracion. /etc/dahdi/system.conf El archivo system es donde configuras los parametros de la tarjeta, en nuestro caso la TDM04B. Es leido por el programa /usr/sbin/dahdi_cfg Estos archivos son instalados por el paquete dahdi-linux. [root@server ~]# vim /etc/dahdi/dahdi.conf fxsks=1-4 ; Se especifica la cantidad de puertos que tendra su tarjeta. En nuestro caso posee 4. loadzone = us ; significa que tus tarjetas de interfaz sern cargadas con tonos de la indicacin de los E.E.U.U. Puedes cargar ms de un sistema de tonos en un interfaz para permitir que generes tonos de diversas zonas dando una lista coma-separada de dos cdigos de pas de la letra. defaultzone = us ; los medios utilizan los tonos para esta zona por defecto (cuando no se especifica ninguna otra zona. Configurando chan_dahdi.conf En este archivo se configuran los parametros a utilizar por los canales para asterisk. Cuando alguien llame al numero 8094767758 asterisk leera este archivo de configuracion y aplicara todos los parametros establecidos en el. Ejemplos [root@server ~]# vim /etc/asterisk/chan_dahdi.conf [channels] language=en usecallerid=yes ; Identificara el numero de quien llama hidecallerid=no ; callwaiting=yes ; Habilitado, asterisk generara tonos cuando tengas una conversacion y alguien mas este tratando de llamar callwaitingcallerid=yes ; Asterisk enviara el callerid de quien espera. threewaycalling=yes ; Si esta habilitada, puedes colocar llamadas en hold. echocancel=yes ; Habilita echo cancellation echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 group=1 callgroup=1

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
pickupgroup=1 immediate=no ; Este parametro acelera el marcado y por defecto manda las llamadas entrantes a la extension s busydetect=no callprogress=no musiconhold=default context=entrada ; Todas las llamadas que lleguen por las lineas ZAP iran al contexto entrada. signalling= fxs_ks ; Tipo de senalizacion channel => 1-4 ; Canales a utilizar [root@server ~]# lsmod |grep -i wctdm Use el comando siguiente para ver si el canal a sido configurando [root@server ~]# dahdi_cfg -vv [root@server ~]# dahdi_scan [root@server ~]# dahdi_tool para iniciar dahdi ejecute el siguiente comando service dahdi start para detenerlo service dahdi stop Podemos agregar un contexto de prueba en el extensions.conf para confirmar que nuestra linea analoga esta configurada agregar las siguientes lineas en extensions.conf: [entrada] exten => s,1,Answer() exten => s,n,Playback(demo-congrats) exten => s,n,Hangup() Indica que cuando alguien llame al 8094767758 asterisk entrara al contexto entrada y se escuchara una grabacion demo-congrats y luego colgara. Si puede escuchar esto entonces se ha configurado la tarjeta exitosamente. Habilitando llamadas salientes a traves del canal DAHDI Si queremos habilitar llamadas por la linea analoga, lo hacemos facilmente, simplemente agregamos un contexto con patrones de salida y lo habilitaremos en nuestro contexto [extensiones], es como sigue: Definimos en la definicion de variables, el canal DAHDI: TRUNKDESALIDA=Dahdi/1 [extensiones] include => llamadas-locales exten => 101,1,Dial(SIP/101,10) exten => 101,n,Playback(vm-nobodyavail) exten => 101,n,Hangup() exten => 102,1,Dial(SIP/101,10) exten => 102,n,Playback(vm-nobodyavail) exten => 102,n,Hangup() [llamadas-locales] exten => _9NXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1) exten => _9NXXXXXX,2,Congestion() exten => _9NXXXXXX,102,Congestion() Asi cuando la extension 101 o 102 marquen el 9 + un numero de telefono, se habilitara el tono en la linea analoga y podra realizar llamadas.

pagina17

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
Como configurar la tarjeta FXO (Foreign Exchange Office) Generalmente utilizaremos esta tarjeta con el fin de que asterisk se conecta al PSTN por una linea analgica (linea telefnica convencional). Asumiendo que tenemos una tarjeta tdm400p y queremos configurar el modulo fxo que esta en el primer puerto. Este objetivo lo alcanzamos configurando los archivos /etc/dahdi/system.conf loadzone=us defaultzone=us fxsks=1
; Nota si es una tarjeta tdm400 con un moduelo fxo le pasamos el parmetro fxsks=1 en el archivo dahdil.conf

pagina18

/etc/asterisk/chan_dahdi.conf signalling=fxs_ks context=entrada group=1 channel=>1 extensions.conf [entrada] exten => _X.,1,Dial(dahdi/g1/{EXTEN}) Exten => _x.,2,Hangup Asterisk Command-Line Interface Para acceder a asterisk command-line interface(CLI) desde al shell ejecute el comando asterisk pasandole las siguiente opciones -r que provee una conexin a la consola de asterisk si el proseso de asterisk ya esta corriendo te provee una interface para controlar la consola de asterisk. [root@server ~]# asterisk -rvv server*CLI> la opcion -v proporciona mas informacion de asterisk entre mas v agregamos mas informacion nos mostrara. ! Es para poder ejecutar comandos de el shell sobre el CLI de asterisk. server*CLI> !ifconfig eth0 dialplan add extension contiene unos cuantos subcomandos que le permite agregar algunas funcionalidades a tu PBX sin editar directamente los archivos de configuracion. server*CLI> dialplan add extension 112,1,Dial,SIP/112/|20|Tt into phone dialplan show muestra el dialplan para un contexto en especifico. server*CLI> dialplan show phone dialplan add include incluye un contexto en otro contexto. server*CLI> dialplan add include salida into entrada dialplan reload recarga solo el archivo extensions.conf. server*CLI> dialplan reload dialplan remove extension remueve una extension. server*CLI> dialplan remove extension 101@phone abort shutdown Cancela un shutdown corriendo server*CLI> abort shutdown agent logoff configura una agente offline ;Creamos el contexto indicado en el zapata.conf ;Para las salidas de la llamadas indicamos creamos esta ext.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
server*CLI> agent logoff sip/112 agent show muestra los agentes configurados. server*CLI> agent show agent show online muestra los agentes online server*CLI> agent show online cdr mysql status muestra el status de la conexion de cdr_mysql server*CLI> cdr mysql status cdr status muestra el status de los CDR. server*CLI> cdr status console active configura el display en la console activa server*CLI> console active active console is [dsp] console answer responde a una entrada de una llama en la console. server*CLI> console answer No one is calling us core show applications muestra las aplicaciones registradas para el dialplan. server*CLI> core show applications core show application muestra una descripcion de la aplicacion. server*CLI> core show application dial core show channels muestra la informacion en los canales. server*CLI> core show channels core show channeltypes muestra la informacion de tipo de canal. server*CLI> core show channeltypes server*CLI> core show codecs core show codec muestra un codec en especifico. server*CLI> core show codec 2 features show muestra los features configurados. server*CLI> features show http show status muestra el status del server HTTP server*CLI> http show status iax2 reload recarga la configuracion del iax2 file. server*CLI> iax2 reload iax2 set debug habilita el debug para iax2. server*CLI> iax2 set debug IAX2 Debugging Enabled iax2 set debug off deshabilita el debug para iax2. server*CLI> iax2 set debug off iax set debug jb habilita el debug para el jitterbuffer server*CLI> iax2 set debug jb IAX2 Jitterbuffer Debugging Enabled iax2 set debug jb off deshabilita el debug para el jitterbuffer. server*CLI> iax2 set debug jb off

pagina19

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
iax2 set debug trunk habilita el debug para el troncal. server*CLI> iax2 set debug trunk IAX2 Trunk Debug Requested iax2 set debug trunk off deshabilita el debug para el troncal. server*CLI> iax2 set debug trunk off iax2 show cache muestra el cache del dialplan. server*CLI> iax2 show cache iax2 show channels muestra todos los canales activos. server*CLI> iax2 show channels iax2 show firmware muestra el firmware disponible. server*CLI> iax2 show firmware iax2 show netstats muestra los canales activos de iax2 netstats. server*CLI> iax2 show netstats iax2 show peers muestra todos los peers definidos en iax2.conf. iax2 show peer muestra un peer en especifico. server*CLI> iax2 show peer server iax2 show provisioning muestra iax provisioning server*CLI> iax2 show provisioning iax2 show registry muestra el status de los registros. server*CLI> iax2 show registry iax2 show stats muestra las estadisticas. server*CLI> iax2 show stats iax2 show users muestra informacion sobre los usuarios. server*CLI> iax2 show users module load carga un modulo para asterisk. server*CLI> module load cdr_addon_mysql.so module unload descarga un modulo para asterisk. server*CLI> module unload cdr_addon_mysql.so module reload recarga un modulo para asterisk. server*CLI> module reload cdr_csv.so module show muestra todos lo modulos que contiene asterisk. server*CLI> show modules sip reload recarga la configuracion del archivo sip.conf server*CLI> sip reload sip set debug ajusta el debug para el canal sip. server*CLI> sip set debug sip set debug off dehsabilita el debug para el canal sip. server*CLI> sip set debug off sip set debug peer configura el debug para un peer. server*CLI> sip set debug peer 101 sip show channels muestra todo los canales activos.

pagina20

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
server*CLI> sip show channels sip show peers muestra todo los peers agregados en el sip.conf. server*CLI> sip show peers sip show registry muestra el status de los registros. server*CLI> sip show registry sip show settings muestra la configuracion global de sip. server*CLI> sip show settings sip show users muestra todo los usuarios de sip server*CLI> sip show users voicemail show users muestra la cantidad de usuarios con voicemail server*CLI> voicemail show users voicemail show zone muestra la zona para el formato del mensaje. server*CLI> voicemail show zones dahdi destroy channel destruye un canal. server*CLI> dahdi destroy channel 1 dahdi restart completamente reinicia el todos los canales. server*CLI> dahdi restart dahdi show cadences muestra los cadences. server*CLI> dahdi show cadences dahdi show channels muestra todos los canales activos. server*CLI> dahdi show channels dahdi show status muestra el status de la tarjeta. server*CLI> dahdi show status restart gracefully reinicia asterisk con cortesia. server*CLI> restart gracefully restart now reinicia inmediatamente a asterisk. ackangel*CLI> restart now restart when convenient reinicia asterisk cuando se limpien el volumen de llamadas. server*CLI> restart when convenient parkedcalls show muestra todas las llamdas parqueadas. server*CLI> parkedcalls show moh reload reinicia music hold. server*CLI> moh reload moh show classes muestra el listado de MOH Classes. server*CLI> moh show classes moh show files muestra el listado de los archivos de music hold. server*CLI> moh show files Music on Hold Cualquier popular sistema PBX ofrece la capacidad de suministrar una fuente de msica que ha de desempear para mientras que hay una llamada en espera. Asterisk permite mucha creatividad en este sentido. Hoy en da, todo el mundo est familiarizado con el formato de msica MP3, y hay un gran inters en el uso de MP3 como msica en espera. El concepto que parece una buena idea, pero hay algunas cosas que creemos que deben pensar y tener en consideracin:

pagina21

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina22

Los Archivos MP3 son muy complejos, y requieren una cantidad sustancial de CPU para decodificar. Si usted tiene varias llamadas reproduciedo msica en espera en el sistema (por ejemplo, a veces las personas quiere escuchar msica a travs de su telfono, o un centro de atencin telefnica pueden tener varias llaman en espera),la carga en el CPU causado por la totalidad de la transcodificacin de los archivos MP3 almacenados podra poner demasiada demanda en una mquina que esta corriendo asterisk podemos usar formato mp3 de acuerdo a las necesidades de rendimiento del sistema.

Configurando msica en espera. [root@asterisk ~]# vim /etc/asterisk/musiconhold.conf [default] mode=files directory=/var/lib/asterisk/moh random=yes Donde: mode-files: Lee los archivos desde el directorio especificado en cualquier formato. directory: Especifica el directorio donde estaran ubicados los archivos de sonido. random: Toca los archivos de manera aleatoria. Los sonidos de la musica en espera estan en la ruta siguiente: [root@asterisk]# cd /var/lib/asterisk/moh/ [root@asterisk moh]# ls fpm-calm-river.gsm fpm-sunshine.wav LICENSE-asterisk-moh-freeplay-gsm fpm-calm-river.wav fpm-world-mix.gsm LICENSE-asterisk-moh-freeplay-wav fpm-sunshine.gsm fpm-world-mix.wav Optimizando la msica en espera La aplicacin MusicOnHold de Asterisk utiliza ficheros codificados en MP3 o WAV. Si bien esta codificacin de audio ofrece una buena calidad esta pensada para ficheros de sonido y no para las comunicaciones. Si tenemos una gran cantidad de llamadas en espera la carga del sistema es cada vez mayor, esto es debido a la transcodificacin probablemente en la mayora de llamadas usemos GSM o A-law. Cuando Asterisk reproduce MOH, siempre busca el formato que menos coste le supone respecto al cdec que se est usando. Normalmente transcodificar desde SLIN va a ser la opcin ms barata, pero si sabemos que nuestro sistema usa principalmente GSM o A-law (en la mayora de los casos), lo mejor sera hacer la transcodificacin del fichero nosotros mismos y evitar esta tarea a Asterisk. Para ello iremos al directorio donde tenemos la musica en espera y convertiremos los ficheros WAV. Para ello necesitaremos sox, as que si no lo tenemos instalado: [root@asterisk ~]# yum -y install sox # Accedemos al directorio de los ficheros MOH cd /var/lib/asterisk/moh Formato GSM: sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm Formato A-law: sox fpm-sunshine.wav -t al -r 8000 -b -c 1 fpm-sunshine.alaw sox fpm-calm-river.wav -t al -r 8000 -b -c 1 fpm-calm-river.alaw sox fpm-world-mix.wav -t al -r 8000 -b -c 1 fpm-world-mix.alaw Donde: fpm-sunshine.wav -> Indica el archivo de entrada a convertir. -t -> Especifica el tipo de archivo a convertir -r -> Especifica el rate en Hertz del archivo -c -> Especifica el numero de canales en el archivo. Estos podrian ser 1,2 y 4 para mono, estereo o quad sound respectivamente.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina23

Conferencia de llamadas (meetme.conf) Meetme es utilizado para hacer llamadas en conferencia. Se crea un salon (room) en el cual todo aquel que vaya a escuchar la conferencia acceda a el mediante una clave. Editamos el archivo meetme.conf con los siguientes parametros: conf => 9001 ; Estableciendo la extension para la conferencia Tambien se puede colocar claves y claves de administrador para la misma. El administrador como bien dice su nombre, establece la sesion de conferencia. Otros parametros; conf => 9001,12345 ; Inicia la sesion con clave Tambien se puede: conf => 9001,12345,33333; Inicia la sesion con clave 12345 y el administrador tendra clave 33333. En extensions.conf llamamos la aplicacion Meetme. exten => 9001,1,Answer exten => 9001,n,Wait(1) exten => 9001,n,MeetMe(9001|p) exten => 9001,n,Playback(vm-goodbye) exten => 9001,n,Hangup Algunos parametros que le podemos pasar a la aplicacion Meetme son los siguientes: p -> permite al usuario salir de la conferencia presionando # m -> establece que el caller solo escucha, no habla Interconexion entre Asterisks Para establecer la interconexion entre asterisk, tenemos el siguiente escenario: Servidor 1: 192.168.1.55 Servidor 2: 192.168.1.110 Mediante el protocolo sip, el servidor 1 establecera comunicacion con el servidor 2 Servidor 1 en sip.conf: [general] register => asterisk1:pass1@192.168.1.110/asterisk2 [asterisk2] type=friend secret=pass2 context=asterisk2_entrada host=dynamic insecure=invite [1000] type=friend host=dynamic context=phones secret=1000 Donde: En el contexto [general] la opcion register indica que el servidor 1 se registara en el servidor 2 utilizando el usuario asterisk1 y la clave pass1,la direccion ip 192.168.1.110 es la direccion del servidor 2 mientas que asterisk2 es la extension local en el servidor 1 a traves del cual se enrutaran las llamadas hacia el asterisk2. Mas abajo en la extension [asterisk2] es la extension que manejara el trunking entre estos 2 equipos.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
En extensions.conf: [general] autofallthrough=yes [globals] [phones] include => internal include => sucursal [internal] exten => 555,1,Answer() exten => 555,n,Playback(hello-world) exten => 555,n,Hangup() exten => _1XXX,1,Dial(SIP/${EXTEN},20) exten => _1XXX,n,Playback(vm-nobodyavail) exten => _1XXX,n,Hangup() [sucursal] exten => _2XXX,1,Dial(SIP/asterisk2/${EXTEN},20) exten => _2XXX,n,Playback(vm-nobodyavail) exten => _2XXX,n,Hangup() [asterisk2_entrada] include => internal Donde: El patron exten => _1XXX muestra las extensiones locales para el servidor 1 bajo el contexto internal. El contexto [sucursal] muestra la conexion enrutada hacia el servidor 2 de la siguiente manera: [sucursal] exten => _2XXX,1,Dial(SIP/asterisk2/${EXTEN},20) exten => _2XXX,n,Playback(vm-nobodyavail) exten => _2XXX,n,Hangup() Cualquier extension que comience el patron 2 (por ejemplo 2003) sera enrutado a traves del usuario SIP/asterisk2 que a su vez es el usuario que esta haciendo el trunking con servidor 2. Servidor 2 La explicacion es exactamente la misma que el servidor 1 En sip.conf: [general] register => asterisk2:pass2@192.168.1.55/asterisk1 [asterisk1] type=friend secret=pass1 context=asterisk1_entrada host=dynamic insecure=invite [2000] type=friend host=dynamic context=phones secret=2000 En extensions.conf [general] autofallthrough=yes [globals] [phones]

pagina24

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1
include => internal include => sucursal [internal] exten => 555,1,Answer() exten => 555,n,Playback(es/hello-world) exten => 555,n,Hangup() exten => _2XXX,1,Dial(SIP/${EXTEN},20) exten => _2XXX,n,Playback(vm-nobodyavail) exten => _2XXX,n,Hangup() [sucursal] exten => _1XXX,1,Dial(SIP/asterisk1/${EXTEN},20) exten => _1XXX,n,Playback(vm-nobodyavail) exten => _1XXX,n,Hangup() [asterisk1_entrada] include => internal Para verificar el registro satisfactorio, escribir en asterisk cli el siguiente comando: sip show registry Asterisk-Gui Asterisk gui es una interfaz grfica desarrollada por digium y es una de las mas confiable, nos permite administrar asterisk va web de forma facil e intuitiva Descargamoslosfuentes: Opcion1 http://downloads.asterisk.org/pub/telephony/asteriskgui/asteriskgui2.1.0rc1.tar.gz opcion2 [root@asterisksrc]#svncheckouthttp://svn.digium.com/svn/asteriskgui/trunkasteriskgui ProcedemosainstalarasteriskGui. [root@asterisksrc]#cdasteriskgui [root@asteriskasteriskgui]#./configure [root@asteriskasteriskgui]#make [root@asteriskasteriskgui]#makeinstall [root@asteriskasteriskgui]#makesamples [root@asteriskasteriskgui]#vim/etc/asterisk/http.conf [general] displaysystemname=yes enabled=yes webenabled=yes port=5038 httptimeout=60 bindaddr=0.0.0.0 [admin] secret=fcld1 read=system,call,log,verbose,command,agent,user,config write=system,call,log,verbose,command,agent,user,config [root@asteriskasteriskgui]#vim/etc/asterisk/manager.conf [general] enabled=yes enablestatic=yes bindaddr=127.0.0.1 bindport=8088

pagina25

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina26

[root@asteriskasteriskgui]#chownRasterisk:asterisk/var/lib/asterisk/statichttp/config/ Checkingwritepermissionforguifolderasteriskgui [root@asteriskasteriskgui]#asteriskvvr asterisk*CLI>reload

Conelcomandoanteriorledamoslospermisosnecesariosyevitamosqueelsiguientemensajequedeenloopinfinito.

[root@asteriskasteriskgui]#makecheckconfig CheckingAsteriskconfigurationtoseeifitwillsupporttheGUI *Checkingforhttp.conf:OK *Checkingformanager.conf:OK *CheckingifHTTPisenabled:OK *CheckingifHTTPstaticsupportisenabled:OK *Checkingifmanagerisenabled:OK *CheckingifmanageroverHTTPisenabled:OK Everythinglooksgood *GUIshouldbeavailableathttp://asterisk.codigolibre.org:8088/asterisk/static/config/cfgbasic.html *Theloginandpasswordshouldbeanentryfrom/etc/asterisk/manager.conf whichhas'config'permissioninreadandwrite.Forexample: [admin] secret=mysecret7797 read=system,call,log,verbose,command,agent,config write=system,call,log,verbose,command,agent,config Goodluck!

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:AsteriskI Autores:CristhianNunez(cristhian@codigolibre.org) ElvynBolges(elvyn@codigolibre.org) Versin:3.1

pagina27

Vous aimerez peut-être aussi