Enviado por admin el
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:
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.
2 comentarios
Error al arrancar DAHDI
Enviado por gogo el
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]#
gogo
gonzgonc@gmail.com
Falta subversion
Enviado por aframirezm el
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