Está en la página 1de 18

Segunda Parte - Instalacin de Asterisk Asterisk es el programa Open Source ms conocido para implementar una PBX.

Para una lista completa de las funcionalidades brindadas, visiten la pgina de los desarrolladores. Entre ellas: Registro (Log) de llamadas Grabacin de llamadas Desvo de llamadas Trasferencia de llamadas Conferencias audio Msica en espera Gestin de colas (call center) Soporte para tarjetas y Gateway FXO, FXS, digitales y celulares Gateway GoogleVoice Soporte Ipv6

Este curso abarca la instalacin de Asterisk en un VPS (Servidor Virtual Privado) y es valida para cualquier Servidor Linux CentOS. Con el VPS la ventaja es tener una PBX siempre activa, independiente de la banda ancha disponible en la casa/oficina y evita tener una computadora dedicada y siempre encendida. Utilidades, libreras, dependencias Antes de la compilacin de Asterisk, se instalarn una serie de libreras y dependencias que permitirn obtener una instalacin de casi todos los mdulos de la PBX. Se empieza con Vorbis que es una librera para la compresin/decompresin audio: yum install libvorbis libvorbis-devel vorbis-tools libogg libogg-devel se sigue con CURL que es un cliente que permite recibir o enviar archivos utilizando los protocolos HTTP, HTTPS, FTP, GOPHER, DICT, TELNET: yum install curl curl-devel libidn-devel se instalan todas las libreras y dependencias que se necesitan para compilar las fuentes: yum install gcc ncurses-devel make gcc-c++ libtermcap-devel zlib-devel libtool bison bison-devel yum install openssl-devel bzip2-devel wget newt-devel subversion flex gtk2-devel a seguir para crear y gestionar las bases de datos, MySQL: yum install mysql mysql-server mysql-devel UNIXODBC que es la implementacin Linux de los API ODBC que permiten conectarse a muchos

sistemas de gestin de base de datos (ej: MySQL): yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel Se instala FESTIVAL, que es un sistema de text to speech (disponible en espaol): yum install festival festival-devel Una vez terminada esta parte se empieza a instalar una serie de programas desde las fuentes; el primero es SPEEX que es un programa para la compresin audio especficamente diseado para la voz: cd /usr/src wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar -xf speex-1.2rc1.tar.gz cd speex-1.2rc1 ./configure --prefix=/usr make make install Se continua con LAME que es utiliza para codificar archivos audio en formato MP3: cd /usr/src wget http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.99.3.tar.gz tar -xf lame-3.99.2.tar.gz cd lame-3.99.2 ./configure --prefix=/usr make make install LIBMAD que es un MPEG audio decodificador de alta calidad: cd /usr/src wget http://prdownloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz tar -xf libmad-0.15.1b.tar.gz cd libmad-0.15.1b ./configure --prefix=/usr make

make install WAVPACK es un compresor audio de alto rendimiento sin perdida de calidad: cd /usr/src wget http://www.wavpack.com/wavpack-4.60.1.tar.bz2 tar -xf wavpack-4.60.1.tar.bz2 cd wavpack-4.60.1 ./configure --prefix=/usr make make install Se termina con SOX que es un programa que permite la manipulacin de archivos audio y la posibilidad de pasarlos de un formato a otro: cd /usr/src wget http://downloads.sourceforge.net/project/sox/sox/14.3.2/sox-14.3.2.tar.gz tar -xf sox-14.3.2.tar.gz cd sox-14.3.2 ./configure -prefix=/usr Al finalizar el configure aparecer esta tabla donde se encontrarn todos los formatos audio que se podrn manipular con SOX:

Se termina con la compilacin e instalacin: make make install LIBPRI En el caso que se quiera instalar tarjetas digitales en el servidor Asterisk (E1, T1, ISDN), antes de instalar DAHDI, hay que instalar la librera libpri cd /usr/src wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.12.tar.gz se decomprime: tar -xf libpri-1.4.12.tar.gz se entra en la carpeta: cd libpri-1.4.12 se compila y se instala: make make install

DAHDI El paquete DADHI (Digium Asterisk Hardware Device Interface) permite cargar los drivers y configurar distintos tipos de tarjetas en Asterisk (analgicas, digitales, RDSI/ISDN, cancelador de ECHO). Asterisk, adems, se apoya en DAHDI para la generacin del timing indispensable para las conferencias audio y el trunking IAX2 (tema tratado en la configuracin del archivo iax.conf). Se instala el paquete de desarrollo del Kernel-Xen: yum install kernel-xen-devel Importante: La nica diferencia con un sistema CentOS local o un servidor dedicado es que se instala el paquete estndar del Kernel: yum install kernel-devel Se continua con la ultima versin disponible de DAHDI-Linux: cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz tar -xf dahdi-linux-current.tar.gz cd dahdi-linux-2.6.0 make make install Se termina con la ultima versin disponible de DAHDI-Tools: cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz tar -xf dahdi-tools-current.tar.gz cd dahdi-tools-2.6.0 ./configure make menuselect en la ventana que aparece se seleccionan todos los mdulos disponibles como indicado en la imagen que sigue:

Se guarda la configuracin presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se termina con la compilacin e instalacin: make make install make config Ya se puede iniciar DAHDI: /etc/init.d/dahdi start Loading DAHDI hardware modules: wct4xxp: [ OK ] wcte12xp: [ OK ] wct1xxp: [ OK ] wcte11xp: [ OK ] wctdm24xxp: [ OK ] wcfxo: [ OK ] wctdm: [ OK ] wcb4xxp: [ OK ] wctc4xxp: [ OK ] xpp_usb: [ OK ] No hardware timing source found in /proc/dahdi, loading dahdi_dummy Running dahdi_cfg: [ OK ] App_fax, GoogleTalk y otros En este prrafo se ver como instalar SpanDSP, un procesador de seales digitales que en Asterisk permite la instalacin del modulo app_fax para la recepcin y envo de faxes, y IKSEMEL que permite implementar el protocolo XMPP en Asterisk y de esta forma conectarse a GoogleTalk y/o a cualquier servidor de tipo XMPP (otro ejemplo es Openfire): Para SpanDSP se necesita instalar primero las libreras libtiff: yum install libtiff libtiff-devel libxml2 libxml2-devel

se continua con SpanDSP: cd /usr/src wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre18.tgz tar -xf spandsp-0.0.6pre18.tgz cd spandsp-0.0.6 ./configure --prefix=/usr make make install El protocolo XMPP permite conexione seguras entre cliente y servidor utilizando el protocolo TLS; para ese efecto se instala, antes de IKSEMEL las relativas libreras: yum install gnutls gnutls-devel gnutls-utils se continua con IKSEMEL: cd /usr/src wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz tar -xf iksemel-1.4.tar.gz cd iksemel-1.4 ./configure --prefix=/usr make antes de la instalacin se ejecuta un test para tener la certeza que la compilacin haya tenido xito: make check PASS: tst-ikstack PASS: tst-iks PASS: tst-sax PASS: tst-dom PASS: tst-sha PASS: tst-md5 PASS: tst-filter PASS: tst-jid ================== All 8 tests passed ================== Ya que todo est bien, se puede instalar:

make install Antes de la instalacin de Asterisk, se termina la preparacin del sistema con unos programas ms. Primero un servidor de correo electrnico, SENDMAIL: yum install sendmail sendmail-devel sendmail-cf Se configura para que arranque en automtico: chkconfig sendmail on Al alquilar el servidor Linode, cada usuario tiene asignado un sub-dominio que se puede utilizar para la configuracin del sistema. Este dato aparece en la pagina de administracin de Linode, bajo el men Remote Access

En este caso el sub-dominio asignado es li206-51.members.linode.com. Ese nombre se pone en la configuracin de red del servidor de la siguiente forma: nano /etc/sysconfig/network al final del archivo se aade la siguiente linea: HOSTNAME=li206-51.members.linode.com Se guardan los cambios y se reinicia el servicio de red: service network restart El sub-dominio se utilizar tambin para el envo de los correos electrnicos. Por defecto el servidor de correo electrnico escucha solamente en la puerto TCP 25 local. Para que sea alcanzable tambin desde

remoto hay que abrir el archivo de configuracin de Sendmail: nano /etc/mail/sendmail.mc buscar esta linea (para buscar un texto con el editor nano hay que presionar la combinacin de teclas CTRL-W): DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl y modificarla como sigue: DAEMON_OPTIONS(`Port=smtp,, Name=MTA')dnl se guardan los cambios y se vuelve a compilar la configuracin de Sendmail: make -C /etc/mail se reinicia el servidor de correo: /etc/init.d/sendmail restart para hacer la prueba que si es posible conectarse al servidor de correo electrnico desde remoto, se abre una ventana terminal en Windows y se escribe: C:\> telnet -a iplinode 25 En lugar de iplinode se pone la IP del servidor Linode. El resultado:

OpenLDAP es la versin open source del protocolo Lightweight Directory Access. Normalmente se utiliza para crear un directorio de usuarios que puede ser consultado y/o modificado desde remoto. Muchos programas implementan la posibilidad de conectarse a un servidor OpenLDAP y Asterisk, desde la versin 1.6.X, presenta esta posibilidad: yum install compat-openldap openldap openldap-clients openldap-devel openldap-servers SNMP es el Protocolo Simple de Administracin de Red y sirve para controlar y monitorear el desempeo del servidor Linux. En Asterisk permite monitorear, entre otras cosas, los canales y las llamadas. Se utilizar junto a NAGIOS para controlar el servidor Asterisk y enviar avisos cuando se verifique algn tipo de problema: yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils

En Asterisk existe la posibilidad de guardar los registros de las llamadas en un servidor RADIUS a travs de un cliente RADIUS que hay que instalar. En este caso se instala desde las fuentes: cd /usr/src wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz tar -xf radiusclient-ng-0.5.6.tar.gz cd radiusclient-ng-0.5.6 ./configure --prefix=/usr make make install Se continua la preparacin del servidor con la instalacin del lenguaje de programacin LUA que permite escribir el dialplan (o plan de llamadas) utilizando este lenguaje. Al terminar la instalacin de Asterisk se encontrar un archivo de ejemplo en la carpeta /etc/asterisk. En este caso se instala desde las fuentes. Primero unas dependencias: yum install readline-devel luego el programa: cd /usr/src wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar -xf lua-5.1.4.tar.gz cd lua-5.1.4 Se modifica el archivo Makefile para que el programa se instale por defecto en la carpeta /usr: nano Makefile se modifica esta linea: INSTALL_TOP= /usr/local para que quede: INSTALL_TOP= /usr se compila e instala: make linux make install

Para terminar se compilan los paquetes que permiten utilizar las nuevas funcionalidades de Asterisk 1.8.X. Primero LIBICAL que permite la implementacin del protocolo iCalendar (RFC5546) en Asterisk a travs del modulo res_calendar: cd /usr/src
wget http://downloads.sourceforge.net/project/freeassociation/libical/libical-0.48/libical-0.48.tar.gz

tar -xf libical-0.48.tar.gz cd libical-0.48 ./configure --prefix=/usr make make install Luego NEON que es una librera que permite la implementacin del protocolo WebDAV en Asterisk: cd /usr/src wget http://webdav.org/neon/neon-0.29.6.tar.gz tar -xf neon-0.29.6.tar.gz cd neon-0.29.6 ./configure --prefix=/usr make make install Por ultimo la librera LIBSRTP que permite implementar en Asterisk el cifrado del flujo media a travs del protocolo SRTP (RFC3711): cd /usr/src wget http://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz tar -xf srtp-1.4.4.tgz cd srtp ./configure --prefix=/usr CFLAGS=-fPIC make make runtest make install Instalacin de Asterisk

Terminada la preparacin del servidor, se inicia con la instalacin de Asterisk. Se descarga la ultima versin 1.8.X disponible: cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.8.2.tar.gz tar -xf asterisk-1.8.8.2.tar.gz cd asterisk-1.8.8.2 ./configure make menuselect Desde la versin 1.8.X lo que antes era un paquete a parte (asterisk-addons) es ahora presente en el paquete principal de Asterisk Se entra en el men Add-ons y se activan los paquetes que siguen:

En Asterisk 1.8.X est presente un nuevo men Channel Event Logging que como se ver ms adelante permite complementar el CDR (call detail record) con nuevas informaciones relacionadas con las llamadas:

En Resource modules se controla que los mdulos relacionados con las funciones calendario y cifrado del flujo media estn activados:

Se seleccionan todos los mdulos en el men Utilities y AGI Samples:

En Core Sound Packages se seleccionan todos los paquetes disponibles:

En Music On Hold File Packages se hace lo mismo:

Como se hace lo mismo en Extra Sound Packages:

Se guarda la configuracin presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se termina con la compilacin e instalacin: make Si mientras se compila aparece este error: make[1]: *** [format_mp3.o] Error 1 make: *** [addons] Error 2 se continua con: contrib/scripts/get_mp3_source.sh y luego otra vez el make: make se instala Asterisk: make install se instalan los archivos de configuracin predefinidos: make samples se configura el script de arranque de Asterisk:

make config Terminada la instalacin, se procede a la configuracin de MySQL para crear la base de datos y la tabla donde se guardarn los registros de las llamadas. /etc/init.d/mysqld start se configura para que arranque en automtico: chkconfig mysqld on y se crea una contrasea para el usuario root de MySQL (sesamo): mysqladmin -u root password sesamo Se crea la base de datos para guardar los registros de las llamadas. Se entra en el cliente de MySQL: mysql -u root -psesamo se crea la base de datos asteriskcdr: mysql> create database asteriskcdr; se selecciona: mysql> use asteriskcdr se crea la tabla cdr (copiando y pegando las lineas que siguen): mysql> CREATE TABLE cdr ( calldate datetime NOT NULL default '0000-00-00 00:00:00', clid varchar(80) NOT NULL default '', src varchar(80) NOT NULL default '', dst varchar(80) NOT NULL default '', dcontext varchar(80) NOT NULL default '', channel varchar(80) NOT NULL default '', dstchannel varchar(80) NOT NULL default '', lastapp varchar(80) NOT NULL default '', lastdata varchar(80) NOT NULL default '', duration int(11) NOT NULL default '0', billsec int(11) NOT NULL default '0', disposition varchar(45) NOT NULL default '', amaflags int(11) NOT NULL default '0', accountcode varchar(20) NOT NULL default '', peeraccount varchar(20) NOT NULL default '', uniqueid varchar(32) NOT NULL default '', linkedid varchar(80) NOT NULL default '', userfield varchar(255) NOT NULL default '' );

Con la versin 1.8 de Asterisk se han aadido dos nuevos campos a la tabla CDR: linkedid peeraccount

que permiten tener informaciones ms detalladas de cada llamada. Se otorgan los permisos de acceso a la base de datos creada al usuario asterisk, desde local mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' IDENTIFIED BY 'sesamo'; desde remoto: mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'%' IDENTIFIED BY 'sesamo'; se actualizan los permisos: mysql> flush privileges; se sale del cliente: mysql> quit En Asterisk la conexin a la base de datos y la tabla de los registros de las llamadas, se configura en el archivo cdr_mysql.conf. Se renombra el predefinido: mv /etc/asterisk/cdr_mysql.conf /etc/asterisk/cdr_mysql.conf.old se crea uno nuevo: nano /etc/asterisk/cdr_mysql.conf se aaden las siguientes lineas: [global] hostname=localhost dbname=asteriskcdr table=cdr password=sesamo user=asterisk port=3306 sock=/var/lib/mysql/mysql.sock Se guardan los cambios y se inicia Asterisk: /etc/init.d/asterisk start

se averigua que est corriendo: /etc/init.d/asterisk status asterisk (pid 2403) is running... se entra en la consola: asterisk -rvvvvvvvvvvvvvvvv se controla que la conexin a la base de datos est activa: CLI> cdr mysql status Connected to asteriskcdr@localhost, port 3306 using table cdr for 59 seconds. Wrote 0 records since last restart. Se sale de la consola: CLI> quit Executing last minute cleanups

También podría gustarte