yum update -y rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm nano /etc/yum.repos.d/epel.repo En el primer bloque del archivo se módica el parámetro: enabled=1 para que quede: enable=0 Se continúa con la configuración de la zona horaria rm /etc/localtime ln -s /usr/share/zoneinfo/America/Mexico_City /etc/localtime El idioma (español): nano /etc/sysconfig/i18n Se pegan las líneas que siguen: LANG="es_MX.iso88591" SYSFONT="latarcyrheb-sun16" Se instala el paquete del network time protocol para tener siempre actualizada la hora del servidor: yum install ntp -y Se configura para que arranque en automático: chkconfig ntpd on Se inicia: service ntpd start Se instalan las fuentes del Kernel instalado que se necesitarán al momento de la instalación de DAHDI: yum install -y kernel-devel-$(uname -r) Se crea la partición de Swap ya que no viene por defecto: dd if=/dev/zero of=/swapfile bs=1024 count=512k mkswap /swapfile swapon /swapfile nano /etc/fstab al final del archivo se añade la linea que sigue: /swapfile swap swap defaults 00 Se cambian los permisos del archivo recién creado: chmod 0600 /swapfile Se configuran algunos parámetros y alias para los comandos que más se utilizarán. nano .bash_profile * se debe estar en /root al final del archivo se pegan las líneas que siguen: export EDITOR=/usr/bin/nano export PS1='\[\033[0;35m\]\H\[\033[0;33m\] \w\[\033[00m\]: ' alias free="free -m" alias aste="asterisk -rvvvvvvvvvvvvvvvvvv" alias sip="nano /etc/asterisk/sip.conf" alias ext="nano /etc/asterisk/extensions.conf" alias dialplan="asterisk -rx 'dialplan reload'" Se recarga la configuración de la consola Linux: source .bash_profile Ya se puede reiniciar el servidor remoto: reboot Se empieza con VORBIS que es una librería para la compresión/descompresión audio: yum install -y 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 -y curl curl-devel libidn-devel
se instalan todas las librerías y dependencias que se necesitan para compilar las fuentes: yum install -y gcc ncurses-devel make gcc-c++ compat-libtermcap zlib-devel libtool bison yum install -y bison-devel openssl-devel bzip2-devel wget newt-devel subversion flex gtk2-devel Seguir para crear y gestionar las bases de datos, MySQL: yum install -y 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 -y unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel Se instala FESTIVAL, que es un sistema de text to speech (disponible con las voces en español): yum install -y festival festival-devel
Una vez terminada esta primera 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: cd /usr/src wget http://s.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.5.tar.gz tar -xf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --prefix=/usr make make install
LIBMAD que es un MPEG audio decodificador de alta calidad: cd /usr/src wget http://prs.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 Para que la compilación tenga éxito hay que modificar una linea del Makefile: nano +129 Makefile CFLAGS = -Wall -g -O -fforce-mem -fforce-addr -fthread-jumps para que quede: CFLAGS = -Wall -g -O -fforce-addr -fthread-jumps se continua con la compilación e instalación: 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 manipulación de archivos audio y la posibilidad de pasarlos de un formato a otro: cd /usr/src wget http://s.sourceforge.net/project/sox/sox/14.4.1/sox-14.4.1.tar.gz tar -xf sox-14.4.1.tar.gz cd sox-14.4.1 ./configure -prefix=/usr make make install
SENDMAIL: yum install -y sendmail sendmail-devel sendmail-cf Se configura para que arranque en automático: chkconfig sendmail on Cada tiene asignado un sub-dominio que se puede utilizar para la configuración del sistema. Este dato aparece en la segunda línea de este archivo: nano /etc/sysconfig/network service network restart T 25 local. Para que sea alcanzable también desde remoto hay que abrir el archivo de configuración de Sendmail: nano /etc/mail/sendmail.mc Buscar esta linea (para buscar un texto con el editor Nano hay que presionar la combinación de teclas CTRL-W): DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl Modificar como sigue: DAEMON_OPTIONS(`Port=smtp,, Name=MTA')dnl Se guardan los cambios y se vuelve a compilar la configuración de Sendmail: make -C /etc/mail Se inicia el servidor de correo: /etc/init.d/sendmail start OpenLDAPes la versión open source del protocolo Lightweight Directory Access. Normalmente se utiliza para crear un directorio de s que puede ser consultado y/o modificado desde remoto. yum install -y compat-openldap openldap openldap-clients openldap-devel openldap-servers SNMP es el Protocolo Simple de istración de Red y sirve para controlar y monitorear el desempeño del servidor Linux. yum install -y 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 través de un cliente RADIUS que hay que instalar. En este caso se instala desde las fuentes: cd /usr/src wget http://.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 ln -s /usr/lib/libradiusclient-ng.so.2 /usr/lib64/libradiusclient-ng.so.2 Se continúa la preparación del servidor con la instalación del lenguaje de programación LUA que permite escribir el dialplan. yum install -y 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 Para la versión CentOS de 64bit hay que modificar también este archivo: nano src/Makefile cambiar esta linea: CFLAGS= -O2 -Wall $(MYCFLAGS) para que quede: CFLAGS= -O2 -Wall -fpic $(MYCFLAGS) se compila e instala: make linux && make install LIBICAL que permite la implementación del protocolo iCalendar (RFC5546) encAsterisk a través del modulo res_calendar: cd /usr/src wget http://s.sourceforge.net/project/freeassociation/libical/libical-1.0/libical-1.0.tar.gz tar -xf libical-1.0.tar.gz
cd libical-1.0 ./autogen.sh --prefix=/usr make && make install ln -s /usr/lib/libical.so.0 /usr/lib64/libical.so.0 NEON que es una librería que permite la implementación del protocolo WebDAVen Asterisk: cd /usr/src wget http://www.webdav.org/neon/neon-0.30.0.tar.gz tar -xf neon-0.30.0.tar.gz cd neon-0.30.0 ./configure --prefix=/usr --with-ssl=openssl make && make install Por último la librería libSRTP que permite implementar en Asterisk el cifrado del flujo media a través del protocolo SRTP: cd /usr/src wget http://s.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 éxito, hay que modificar una línea en el archivo que ejecuta el test: nano test/rtpw_test.sh cambiar esta linea: RTPW=rtpw Para que quede: RTPW=./rtpw Se continúa con el test: make runtest && make install
Instalación DAHDI cd /usr/src wget http://s.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz tar -xf dahdi-linux-current.tar.gz cd dahdi-linux-2.7.0.1 make && make install Se termina con la última versión disponible de DAHDI-Tools: cd /usr/src wget http://s.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz tar -xf dahdi-tools-current.tar.gz cd dahdi-tools-2.7.0.1 ./configure make && make install && make config se pueden comentar todo los drivers que aparecen el el archivo /etc/dahdi/modules. Luego se puede iniciar DAHDI: /etc/init.d/dahdi start App_fax, GoogleTalk, LibiCAL y SRTP Para SpanDSP se necesita instalar primero las librerías libtiff: yum install -y libtiff libtiff-devel libxml2 libxml2-devel Se continúa con SpanDSP: cd /usr/src wget http://www.soft-switch.org/s/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 librerías: yum install -y 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 instalación se ejecuta un test para averiguar que la compilación haya tenido éxito: make check make install
Instalación de Asterisk cd /usr/src wget http://s.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.23.1.tar.gz tar -xf asterisk-1.8.23.1.tar.gz cd asterisk-1.8.23.1 ./configure make menuselect Se entra en el menú “Add-ons” y se activan los paquetes que siguen: Se seleccionan todos los módulos en el menú “Utilities” y “AGI Samples”: make Si a lo largo de la compilación 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 configuración predefinidos: make samples Se configura el script de arranque de Asterisk: make config
Terminada la instalación, se procede a la configuración de MySQL para crear la base de datos y la tabla donde se guardarán los registros de las llamadas. /etc/init.d/mysqld start Se configura para que arranque en automático: chkconfig mysqld on Se crea una contraseña para el root de MySQL (sesamo): mysql -u root sesamo Para pone en seguridad el servidor MySQL se ejecuta el programa: mysql_secure_installation Se contestan las preguntas como sigue: sesamo, n, y, y, y, y. Se reinicia el servidor MySQL: service mysqld restart 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 líneas que siguen): mysql> CREATE TABLE cdr ( id bigint(20) NOT NULL auto_increment, 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', code varchar(20) NOT NULL default '', peer varchar(20) NOT NULL default '', uniqueid varchar(32) NOT NULL default '', linkedid varchar(80) NOT NULL default '', field varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY callerid (clid) );
Se otorgan los permisos de a la base de datos creada al 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 conexión 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 añaden las siguientes lineas: [global] hostname=127.0.0.1 dbname=asteriskcdr table=cdr =sesamo =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 conexión 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.
Instalación A2Billing yum install -y php php-gd php-mysql php-process httpd mod_ssl php-cli php-soap Para la instalación del paquete php-mcrypt se activa el repositorio epel: yum --enablerepo=epel install -y php-mcrypt Terminada esta operación, se configura la zona horaria en el archivo de configuración de PHP (php.ini)
nano +946 /etc/php.ini Se modifica la linea para que quede (en el caso de Mexico): date.timezone = America/Mexico_City Se guardan los cambios y se descarga la última versión disponible 2.0.1 de A2Billing: cd /usr/local/src wget https://github.com/Star2Billing/a2billing/archive/master.tar.gz Se cambia el nombre al archivo descargado: mv master a2billing.tar.gz tar -xf a2billing.tar.gz Se renombra la carpeta creada: mv a2billing-master a2billing Se entra en el cliente MySQL: mysql -u root -psesamo Se crea la base de datos a2billing: mysql> create database a2billing; Query OK, 1 row affected (0.00 sec) Se otorgan los permisos de a la base de datos creada al a2 identificado con la contraseña sesamo: mysql> GRANT ALL PRIVILEGES ON a2billing.* TO 'a2'@'localhost' IDENTIFIED BY 'sesamo'; Query OK, 0 rows affected (0.00 sec) se actualizan los permisos: mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) Se sale del cliente MySQL: mysql> quit Se crean las tablas en la base de datos a2billing utilizando el script presente en la siguiente carpeta: cd a2billing/DataBase/mysql-5.x/ Se ejecuta: ./install-db.sh Database Name: a2billing Hostname: localhost name: root : sesamo Se instalan las locuciones distribuidas con el programa (ingles, francés, español, portugués y ruso): cd /usr/local/src/a2billing/addons/sounds/ Utilizando el siguiente script: ./install_a2b_sounds.sh Se continúa con la instalación copiando el archivo de configuración de a2billing en la carpeta /etc: /usr/local/src/a2billing/a2billing.conf /etc/ se abre con el editor: nano /etc/a2billing.conf Se modifican estas líneas: [database] hostname = localhost port = = a2billing_db = a2billing_db dbname = a2billing_dbname dbtype = mysql Para que queden: [database] hostname = localhost port = 3306 = a2 = sesamo dbname = a2billing dbtype = mysql