Instalación de Asterisk 1.8.beta5 en CentOS 5.5 - Linode

Con este articulo vamos a empezar a hablar de la versión 1.8 de Asterisk PBX, actualmente en Beta4. Veremos como instalar todas las funcionalidades presentes en esta nueva versión para luego irlas descubriendo. Entre ellas:

  • soporte calendarios iCal, CalDav y Exchange
  • encriptación del flujo audio (protocolo SRTP)
  • CEL (Call events logs). Permite registrar en una base de datos eventos definidos e de una forma más completa del CDR y del AMI
  • La función Calendar que permite leer, escribir y interactuar con calendarios basados en el protocolo iCAL y MS Exchange
  • CCSS (Call Completion Supplementary Services) permite configurar distintos escenarios en el caso che una llamada no sea atendida o la extensión esté ocupada
  • El estado de las extensiones se puede controlar en modo distribuido, es decir, entre servidores Asterisk interconectados.
  • Soporte nativo para IPV6

Para un lista completa revisen el archivo CHANGES que encuentran en la carpeta principal de las fuentes.

La presente instalación es a partir de un servidor remoto virtual basado en CentOS 5.5 32bit.

Empezamos con la actualización de los paquetes instalados:

yum update

Continuamos con la instalación de Vorbis (un codificador/decodificador de archivos audio) y las relativas librerías:

yum install libvorbis libvorbis-devel vorbis-tools libogg libogg-devel

Curl, una utilidad que se utiliza en una línea de comando para enviar comandos, recibir respuestas a través de la sintaxis URL.

yum install curl curl-devel libidn-devel

Algunos programas y utilidades para la compilación de las fuentes:

yum install gcc ncurses ncurses-devel make gcc-c++ libtermcap libtermcap-devel zlib zlib-devel libtool bison bison-devel openssl-devel bzip2 bzip2-devel wget newt newt-devel libxml2 libxml2-devel

MySQL para las bases de datos:

yum install mysql mysql-server mysql-devel

ODBC como conector para bases de datos (muy util para aprovechar de algunas funcionalidades de Asterisk y el RealTime):

yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel

Festival como sistema de text to speech:

yum install festival festival-devel

Ahora empezamos con la instalación de algunos programas desde las fuentes:

Speex (sistema de compresión audio especificadamente diseñado para la compresión de 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

El codificador/decodificador para el formato MP3 (Lame):

cd /usr/src
wget
http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.98.4.tar.gz
tar -xf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure --prefix=/usr
make
make install

Para “manipular” los archivos MP3 (por ejemplo para bajar la calidad de muestreo) antes de compilar SOX se necesita la librería libmad.

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

SOX (Sound eXchange) muy útil para convertir archivos audio de un formato a otro.

cd /usr/src
wget http://ufpr.dl.sourceforge.net/sourceforge/sox/sox-14.3.1.tar.gz
tar -xf sox-14.3.1.tar.gz
cd sox-14.3.1
./configure --prefix=/usr
make
make install

SpanDSP para el soporte de la aplicación app_fax (aunque deprecated en asterisk 1.8) y el modulo res_fax_spandsp en Asterisk incluyendo las librerías libtiff:

yum install libtiff libtiff-devel

cd /usr/src
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre17.tgz
tar -xf spandsp-0.0.6pre17.tgz
cd spandsp-0.0.6
./configure --prefix=/usr

Para instalar el modulo res_jabber necesitamos gnutls y iksemel. En Asterisk 1.8 es posible utilizar el modulo res_jabber junto a Tigase (un servidor de mensajería instantánea basado en el protocolo XMPP) para la implementación del control de estado de las extensiones entre servidores Asterisk y el MWI para los buzones de voz. Este tipo de solución es para servidores Asterisk que se encuentren en distintos punto de la red Internet. Como veremos más adelante, para servidores en la misma LAN y con baja latencia es mejor usar OpenAIS.

yum install gnutls gnutls-devel gnutls-utils

Luego instalamos 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
make check
make install

Ya que estamos instalamos OpenAIS:

yum install openais openais-devel

Seguimos con la instalación de SendMail (server para el correo electrónico) OpenLDAP y las librerías/programas para el protocolo SNMP:

yum install sendmail sendmail-devel sendmail-cf

yum install compat-openldap openldap openldap-clients openldap-devel openldap-servers

yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils

Ahora para la instalación del modulo res_calendar necesitamos la librería libical y neon (una librería para el soporte HTTP y WebDAV). Los instalaremos desde las fuentes:

LibiCal:

cd /usr/src
wget http://downloads.sourceforge.net/freeassociation/libical-0.43.tar.gz
tar -xf libical-0.43.tar.gz
cd libical-0.43
./configure --prefix=/usr
make
make install

Neon:

cd /usr/src
wget http://www.webdav.org/neon/neon-0.29.3.tar.gz
tar -xf neon-0.29.3.tar.gz
cd neon-0.29.3
./configure --prefix=/usr --with-ssl=openssl
make
make install

Para la encriptación del protocolo RTP (SRTP) instalamos la librería libsrtp:

cd /usr/src
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar -xf srtp-1.4.2.tgz
cd srtp

./configure --prefix=/usr CFLAGS=-fPIC

make
make runtest
make install

Además de MySQL podemos guardar los datos de las llamadas CDR, de los registros de eventos de canal (CEL) y de las configuraciones en Realtime en distintos tipos de bases de datos. Seguimos con la instalación de PostreSQL, FreeTDS, Sqlite3 (desde las fuentes), el cliente Radius (desde las fuentes).

PostgreSQL:

yum install postgresql84 postgresql84-contrib postgresql84-devel postgresql84-docs postgresql84-libs postgresql84-server

FreeTDS:

yum install freetds.i386 freetds-devel.i386 freetds-doc.i386

Sqlite3 desde las fuentes:

primero unas dependencias:

yum install tcl tcl-devel

Luego la base de datos:

cd /usr/src
wget http://sqlite.org/sqlite-3.7.2.tar.gz
tar -xf sqlite-3.7.2.tar.gz
cd sqlite-3.7.2
./configure --prefix=/usr
make
make install

Terminamos con la instalación del cliente Radius:

cd /usr/src
wget http://ftp.iptel.org/pub/radiusclient-ng/radiusclient-ng-0.5.5.tar.gz
tar -xf radiusclient-ng-0.5.5.tar.gz
cd radiusclient-ng-0.5.5
./configure --prefix=/usr
make
make install

Ahora podemos empezar con la instalación de DAHDI y de Asterisk PBX (Asterisk-addons viene incluido en las fuentes de Asterisk 1.8). Las instrucciones que sigues son para un servidor virtual alquilado en LInode con Kernel 2.6.18.8-linode22. La única diferencia con un servidor CentOS no virtualizado es que hay que instalar los paquetes kernel-devel y kernele-headers

Creamos la carpeta:

mkdir /usr/src/kernel

entramos

cd /usr/src/kernel

Descargamos las fuentes desde la pagina dedicada de Linode.

wget http://www.linode.com/src/2.6.18.8-linode22.tar.bz2

Se descomprime:

tar -xf 2.6.18.8-linode22.tar.bz2

Creamos un link simbólico a las fuentes descargadas:

cd /lib/modules/2.6.18.8-linode22/
ln -s /usr/src/kernel/2.6.18.8-linode22/ build

y pasamos a la instalación de DAHDI-Linux:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-curr...
tar -xf dahdi-linux-current.tar.gz
cd dahdi-linux-2.4.0/
make
make install

DAHDI Tools:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-curr...
tar -xf dahdi-tools-current.tar.gz
cd dahdi-tools-2.4.0
./configure
make
make install
make config

Ahora modificamos estos archivos:

nano /etc/dahdi/modules

comentamos estas líneas:

wct4xxp
wcte12xp
wct1xxp
wcte11xp
wctdm24xxp
wcfxo
wctdm
wcb4xxp
wctc4xxp
xpp_usb

Para que queden:

#wct4xxp
#cte12xp
#wct1xxp
#wcte11xp
#wctdm24xxp
#wcfxo
#wctdm
#wcb4xxp
#wctc4xxp
#xpp_usb

En el archivo:

nano /etc/init.d/dahdi

modificamos estas dos líneas:

modprobe dahdi
modprobe dahdi_dummy 2> /dev/null

para que queden:

modprobe -f dahdi
modprobe -f dahdi_dummy 2> /dev/null

Ya podemos arrancar DAHDI:

/etc/init.d/dahdi start

No hardware timing source found in /proc/dahdi, loading dahdi_dummy
Running dahdi_cfg:                                         [  OK  ]

Ahora terminamos con la instalación de Asterisk 1.8.beta4:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.0-beta...
tar -xf asterisk-1.8.0-beta5.tar.gz
cd asterisk-1.8.0-beta5
./configure
make menuselect

Algunas imágenes antes de la compilación:

asterisk18-1

 

asterisk18-2

 

asterisk18-3

 

asterisk18-4

 

asterisk18-5

 

asterisk18-6

Guardamos los cambios y compilamos:

make

Si sale este error:

********************************************************************
***   --->  READ THIS OR YOUR BUILD WILL FAIL  <---       
*** format_mp3 has been selected to be installed, but the
*** mp3 decoder library has not yet been downloaded into
*** the source tree.  To do so, please run the following
*** command:
***                                                      
***          $ contrib/scripts/get_mp3_source.sh
***                                                       
*****************************************************************

seguimos con:

contrib/scripts/get_mp3_source.sh
make
make install
make samples
make config

Terminamos la instalación con la creación de la base de datos asteriskcdr y la tabla CDR:

/etc/init.d/mysqld start

Para que MySQL arranque cada vez que se inicia el servidor Linux:

chkconfig mysqld on

Creamos la contraseña del usuario root:

mysqladmin -u root password sesamo

Creamos la base de datos asteriskcdr:

mysqladmin create asteriskcdr -u root -psesamo

Entramos en el cliente MySQL

mysql -u root -psesamo

mysql> use asteriskcdr

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 '',
uniqueid varchar(32) NOT NULL default '',
userfield varchar(255) NOT NULL default ''
);

Creamos un nuevo usuario y le damos los permisos para manejar la base de datos desde local y desde remoto:

mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' IDENTIFIED BY 'sesamo';

mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'%' IDENTIFIED BY 'sesamo';

Recargamos los privilegios y salimos del cliente:

mysql> flush privileges;

mysql> quit

Ahora modificamos el archivo de configuración del CDR para MySQL:

nano /etc/asterisk/cdr_mysql.conf

y modificamos estas líneas:

;[global]
;hostname=database.host.name
;dbname=asteriskcdrdb
;table=cdr
;password=password
;user=asteriskcdruser
;port=3306
;sock=/tmp/mysql.sock

Para que queden:

[global]
hostname=localhost
dbname=asteriskcdr
table=cdr
password=sesamo
user=asterisk
port=3306
sock=/var/lib/mysql/mysql.sock

Iniciamos Asterisk:

/etc/init.d/asterisk start

Entramos en la consola:

asterisk –rvvvvvvvvvvvvvvv

y miramos si la conexión a la base de datos esté funcionando:

CLI> cdr mysql status

Connected to asteriskcdr@localhost, port 3306 using table cdr for 11 seconds.
  Wrote 0 records since last restart.

Próximamente seguiremos mirando las cosas nuevas y las “mejorías” de esta prometente versión de Asterisk PBX.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

2 comentarios

Error al arrancar DAHDI

Hola Andrea:

Estoy siguiendo la practica , de ,  1.8, pero lo hago sobre un servidor CentOS 5.6 y cuando trato de arrancar DAHDI luego de modificar las lineas, de acuerdo a la practica, DAHDI no me arranca. Tienes alguna sugerencia, dejo aqui las salidas de la shell.

Gracias,

Gonzalo

modificamos estas dos líneas:

modprobe dahdi
modprobe dahdi_dummy 2> /dev/null

para que queden:

modprobe -f dahdi
modprobe -f dahdi_dummy 2> /dev/null

Ya podemos arrancar DAHDI:

/etc/init.d/dahdi start

###################################################
###
### DAHDI tools installed successfully.
### If you have not done so before, install init scripts with:
###
###   make config
###
###################################################
[root@asterisk18 dahdi-tools-2.4.1]# make config
install -D dahdi.init /etc/rc.d/init.d/dahdi
/usr/bin/install -c -D -m 644 init.conf.sample /etc/dahdi/init.conf
/usr/bin/install -c -D -m 644 modules.sample /etc/dahdi/modules
/usr/bin/install -c -D -m 644 xpp/genconf_parameters /etc/dahdi/genconf_parameters
/usr/bin/install -c -D -m 644 modprobe.conf.sample /etc/modprobe.d/dahdi.conf
/usr/bin/install -c -D -m 644 blacklist.sample /etc/modprobe.d/dahdi.blacklist.conf
install -D ifup-hdlc /etc/sysconfig/network-scripts/ifup-hdlc
/sbin/chkconfig --add dahdi
DAHDI has been configured.

List of detected DAHDI devices:

No hardware found
[root@asterisk18 dahdi-tools-2.4.1]# nano /etc/dahdi/modules
[root@asterisk18 dahdi-tools-2.4.1]# nano /etc/dahdi/modules
[root@asterisk18 dahdi-tools-2.4.1]# nano /etc/init.d/dahdi
[root@asterisk18 dahdi-tools-2.4.1]# nano /etc/init.d/dahdi
[root@asterisk18 dahdi-tools-2.4.1]# /etc/init.d/dahdi start
Loading DAHDI hardware modules:
FATAL: Error inserting dahdi (/lib/modules/2.6.18-238.19.1.el5/dahdi/dahdi.ko): Unknown symbol in module, or unknown parameter (see dmesg)
[root@asterisk18 dahdi-tools-2.4.1]# /etc/init.d/dahdi stop
Unloading DAHDI hardware modules: done
[root@asterisk18 dahdi-tools-2.4.1]# /etc/init.d/dahdi start
Loading DAHDI hardware modules:
FATAL: Error inserting dahdi (/lib/modules/2.6.18-238.19.1.el5/dahdi/dahdi.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Error: missing /dev/dahdi!
[root@asterisk18 dahdi-tools-2.4.1]#
[root@asterisk18 dahdi-tools-2.4.1]#

Falta subversion

Excelente tutorial, el único inconveniente lo presente al instalar la 

"contrib/scripts/get_mp3_source.sh", pero se solucionó muy fácil, simplemente se instale el paquete "yum install mod_dav_svn subversion" y listo.

Actualmente se encuentra la versión 1.8.5.

[root@lo100brc046n0cl init.d]# asterisk  -rvvvvvvvvvvvvv
Asterisk 1.8.5.0, Copyright (C) 1999 - 2011 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
  == Parsing '/etc/asterisk/asterisk.conf':   == Found
  == Parsing '/etc/asterisk/extconfig.conf':   == Found
Connected to Asterisk 1.8.5.0 currently running on lo100brc046n0cl (pid = 21707)
Verbosity was 3 and is now 13
lo100brc046n0cl*CLI> cdr  mysql status
Connected to asteriskcdr@localhost, port 3306 using table cdr for 16 seconds.
  Wrote 0 records since last restart.

lo100brc046n0cl*CLI>

Gracias Andrea.....

Andres Ramirez
Administrador VoIP
Bogotá - Colombia

Suscribirse a Comentarios de "Instalación de Asterisk 1.8.beta5 en CentOS 5.5 - Linode" Suscribirse a VozToVoice - Todos los comentarios