telefonica ip con asterisk.pdf
TRANSCRIPT
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 1
Instalación de Asterisk
Asterisk es el programa Open Source más reconocido para
implementar una PBX. Entre ellas:
Registro (Log) de llamadas
Grabación de llamadas
Desvío de llamadas
Trasferencia de llamadas
Conferencias audio
Música en espera
Gestión de colas (call center)
Soporte para tarjetas y Gateway FXO, FXS, digitales y
celulares
IVR
Buzón de voz
La presenta guía se ha testeado con CentOS 6.3 386 minimal con
VirtualBox
Por favor hacer la instalación con la versión indicada, en caso de
problemas con la tarjeta de red, cambien el tipo de adaptador a
brigde y coloquen un ip fijo.
Instalación 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 simbólico 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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 2
Para que la hora se actualice de manera automática se instala el
servidor NTP (Network Time Protocol):
yum install ntp
Se configura para que se inicie automáticamente al arrancar el
servidor Linux:
chkconfig ntpd on
y se inicia:
service ntpd start
Starting ntpd: [ OK ]
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 3
Utilidades, librerías, dependencias
Antes de la compilación de Asterisk, se instalarán una serie de
librerías y dependencias que permitirán obtener la instalación de
la mayoría de los módulos de la PBX. Se empieza con Vorbis que
es una librería para la compresión/descompresión 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 librerías y dependencias que se necesitan para
compilar las fuentes:
yum install gcc ncurses-devel make gcc-c++ compat-libtermcap zlib-
devel libtool bison-devel \ bison 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 implementación Linux de los API ODBC
que permiten conectarse a muchos sistemas de gestión 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 español):
yum install festival festival-devel
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 4
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 compresión audio específicamente diseñado
para la voz.
IMPORTANTE: Para todos los programas que se instalan
desde las fuentes, antes de descargarlos, averiguar si hay una
versión más 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/lame-3.99.5.tar.gz tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 ./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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 5
./configure --prefix=/usr make make install
Se termina con SOX que es un programa que permite la
manipulación 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/sox-
14.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 (analógicas, digitales, RDSI/ISDN, cancelador de
ECHO).
Asterisk además 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 versión disponible de DAHDI-Linux:
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-
current.tar.gz
tar zxvf dahdi-linux-current.tar.gz
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 6
cd dahdi-linux-2.6.2
make
make install
Se termina con la ultima version 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.2
./configure
make menuselect
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
Ya se puede iniciar DAHDI:
/etc/init.d/dahdi start
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 7
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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 8
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/spandsp-
0.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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 9
./configure --prefix=/usr
make
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 parámetro HOSTNAME se va al final del archivo se
anade la siguiente linea:
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 10
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.
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 11
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-snmp-
utils
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/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 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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 12
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 través 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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 13
./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 través 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
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
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 14
Instalación 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/asterisk-
1.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:
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 15
En “Resource modules” se controla que los modulos relacionados con las
funciones calendario y cifrado del flujo media esten activados:
Se seleccionan todos los modulos en el menu “Utilities” y “AGI Samples”:
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 16
En “Core Sound Packages” se seleccionan todos los paquetes disponibles:
En “Music On Hold File Packages” se hace lo mismo:
Manual de Instalación de Asterisk CTIC-UNI
Unidad de Capacitación CTIC-UNI 17
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 tendríamos instalado, dhadi, libpri y asterisk en el
servidor con programas de apoyo.