Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CTIC-UNI
Instalacin de Asterisk
Asterisk es el programa Open Source ms reconocido para implementar una PBX. 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 IVR Buzn de voz La presenta gua se ha testeado con CentOS 6.3 386 minimal con VirtualBox Por favor hacer la instalacin con la versin indicada, en caso de problemas con la tarjeta de red, cambien el tipo de adaptador a brigde y coloquen un ip fijo. Instalacin de paquetes y configuraciones previas: Configuramos la fecha y hora de Per rm /etc/localtime rm: remove regular file `/etc/localtime'? Y Se crea un enlace simblico a la hora de Per: ln -s /usr/share/zoneinfo/America/Peru /etc/localtime se averigua que la hora sea exacta con el comando: date
CTIC-UNI
Para que la hora se actualice de manera automtica se instala el servidor NTP (Network Time Protocol): yum install ntp Se configura para que se inicie automticamente al arrancar el servidor Linux: chkconfig ntpd on y se inicia: service ntpd start Starting ntpd: [ OK ]
CTIC-UNI
Utilidades, libreras, dependencias Antes de la compilacin de Asterisk, se instalarn una serie de libreras y dependencias que permitirn obtener la instalacin de la mayora de los mdulos de la PBX. Se empieza con Vorbis que es una librera para la compresin/descompresin 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++ compat-libtermcap zlibdevel libtool bison-devel \ bison openssl-devel bzip2-devel wget newtdevel subversion flex gtk2-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
CTIC-UNI
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. IMPORTANTE: Para todos los programas que se instalan desde las fuentes, antes de descargarlos, averiguar si hay una versin ms reciente disponible.
cd /usr/src wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar zxvf 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/lame3.99.5.tar.gz tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --prefix=/usr make make install
CTIC-UNI
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.4.1/sox14.4.1.tar.gz tar zxvf sox-14.4.1.tar.gz cd sox-14.4.1 ./configure -prefix=/usr 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 las conferencias audio (modulo app_meetme) y el trunking IAX2. Se instala el paquete de desarrollo 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-linuxcurrent.tar.gz tar zxvf dahdi-linux-current.tar.gz
5
CTIC-UNI
en la ventana que aparece se seleccionan todos los modulos disponibles como indicado en la imagen que sigue:
Se guarda la configuracion presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se termina con la compilacion e instalacion:
make make install make config
CTIC-UNI
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 ] En el caso del servidor colocado en VirtualBox, no se va a instalar ningun tipo de tarjeta y es buena practica no cargar todos los driver de DAHDI al momento de su arranque para ahorrar recursos de sistema. Esto se hace modificando este archivo:
nano /etc/dahdi/modules
y se anade el caracter # a todas las lineas que no lo tienen. Se guardan las modificaciones y se reinicia DAHDI:
service dahdi restart Unloading DAHDI hardware modules: done Loading DAHDI hardware modules: Running dahdi_cfg: [ OK ]
LIBPRI En el caso que se quiera instalar tarjetas digitales en el servidor Asterisk (E1, T1, ISDN), despues de instalar DAHDI, hay que instalar la libreria libpri.
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.14.tar.gz
se descomprime:
tar -xf libpri-1.4.14.tar.gz
CTIC-UNI
se entra en la carpeta:
cd libpri-1.4.14
se compila y se instala:
make make install
Res_fax, GoogleTalk, LibiCAL y SRTP En este parrafo se vera como instalar SpanDSP, un procesador de senales digitales que en Asterisk permite la instalacion del modulo res_fax para la recepcion y envio de FAX, 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 librerias libtiff y libxml2: yum install libtiff libtiff-devel libxml2 libxml2-devel se continua con SpanDSP: cd /usr/src wget http://www.soft-switch.org/downloads/spandsp/spandsp0.0.6pre21.tgz tar -xf spandsp-0.0.6pre21.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 librerias: 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
CTIC-UNI
antes de la instalacion se ejecuta un test para averiguar que la compilacion haya tenido exito: 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 esta bien, se puede instalar: make install Antes de la instalacion de Asterisk, se termina la preparacion del sistema con unos programas mas. Primero un servidor de correo electronico, SENDMAIL: yum install sendmail sendmail-devel sendmail-cf Se configura para que arranque en automatico: chkconfig sendmail on
En este caso agregamos un dominio (si al configurar la maquina pusimos uno solo le agregamos el nombre del equipo) equipo1.serveruni.com. Ese nombre se pone en la configuracion de red del servidor de la siguiente forma: nano /etc/sysconfig/network si no esta el parmetro HOSTNAME se va al final del archivo se anade la siguiente linea:
Unidad de Capacitacin CTIC-UNI
CTIC-UNI
HOSTNAME=equipo1.serveruni.com Se guardan los cambios y se reinicia el servicio de red: service network restart
El sub-dominio se utilizara tambien para el envio de los correos electronicos. Por defecto el servidor de correo electronico escucha solamente en la puerto TCP 25 local. Para que sea alcanzable tambien desde remoto hay que abrir el archivo de configuracion de Sendmail: nano /etc/mail/sendmail.mc se busca esta linea: 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 configuracion de Sendmail: make -C /etc/mail se reinicia el servidor de correo: /etc/init.d/sendmail restart para hacer la prueba de conexion al servidor de correo electronico desde remoto, se abre una ventana terminal en Windows y se escribe: C:\> telnet -a equipo1.serveruni.com 25 De no tener respuesta del equipo1, se coloca el ip del servidor de asterisk y se procede a probar si el servidor de correo esta activo.
10
CTIC-UNI
OpenLDAP es la version 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 version 1.6.X, presenta esta posibilidad: yum install compat-openldap openldap openldap-clients openldap-devel openldap-servers SNMP es el Protocolo Simple de Administracion de Red y sirve para controlar y monitorear el desempeno del servidor Linux. En Asterisk permite monitorear, entre otras cosas, los canales y las llamadas. Se utilizara junto a NAGIOS para controlar el servidor Asterisk y enviar avisos cuando se verifique algun tipo de problema: yum install net-snmp net-snmp-devel net-snmp-libs net-snmputils En Asterisk existe la posibilidad de guardar los registros de las llamadas en un servidor RADIUS a traves 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/radiusclientng-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 preparacion del servidor con la instalacion del lenguaje de programacion LUA que permite escribir el dialplan (o plan de marcado) utilizando este lenguaje. Al terminar la instalacion de Asterisk se encontrara un archivo de ejemplo en la
Unidad de Capacitacin CTIC-UNI
11
CTIC-UNI
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.5.tar.gz tar -xf lua-5.1.5.tar.gz cd lua-5.1.5 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 guardan los cambios, 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 implementacion del protocolo iCalendar (RFC5546) a travs del modulo res_calendar: cd /usr/src
wget http://downloads.sourceforge.net/project/freeassociation/libical/libical0.48/libical-0.48.tar.gz
12
CTIC-UNI
./configure --prefix=/usr make make install Luego NEON que es una libreria que permite la implementacion 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 libreria LIBSRTP que permite implementar el cifrado del flujo media en Asterisk a travs del protocolo SRTP (RFC3711): cd /usr/src wget http://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp1.4.4.tgz tar -xf srtp-1.4.4.tgz cd srtp ./configure --prefix=/usr CFLAGS=-fPIC Make Antes de lanzar el make runtest, para que tenga exito, hay que modificar una linea en el archivo que ejecuta el test: nano test/rtpw_test.sh cambiar esta linea: RTPW=rtpw para que quede: RTPW=./rtpw Se continua con el test: make runtest make install
Unidad de Capacitacin CTIC-UNI
13
CTIC-UNI
Instalacin de Asterisk Terminada la preparacion del servidor, se inicia con la instalacion de Asterisk. Se descarga la ultima version 1.8.X disponible: cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk1.8.20.1.tar.gz tar -xf asterisk-1.8.20.1.tar.gz cd asterisk-1.8.20.1 ./configure make menuselect Desde la version 1.8.X lo que antes era un paquete a parte (asterisk-addons) ahora es presente en el paquete principal de Asterisk. Como se puede notar, los modulos relacionados con MySQL (menos res_mysql) son deprecated y muy probablemente en las futuras versiones seran eliminados. Se entra en el menu Add-ons y se activan los paquetes que siguen:
En Asterisk 1.8.X esta presente un nuevo menu Channel Event Logging que permite complementar el CDR (call detail record) con nuevas informaciones relacionadas con las llamadas:
14
CTIC-UNI
En Resource modules se controla que los modulos relacionados con las funciones calendario y cifrado del flujo media esten activados:
15
CTIC-UNI
16
CTIC-UNI
Se guarda la configuracion presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se termina con la compilacion e instalacion: Make Si a lo largo de la compilacion 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 configuracion predefinidos: make samples se configura el script de arranque de Asterisk: make config
Si todo esta ok, ya tendramos instalado, dhadi, libpri y asterisk en el servidor con programas de apoyo.
17