Configuracion Asterisk 64 Bits

9
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

Transcript of Configuracion Asterisk 64 Bits

Page 1: Configuracion Asterisk 64 Bits

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 protocolosHTTP, HTTPS, FTP, GOPHER, DICT, TELNET:yum install -y curl curl-devel libidn-devel

Page 2: Configuracion Asterisk 64 Bits

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 muchossistemas 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/srcwget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gztar -xf speex-1.2rc1.tar.gzcd speex-1.2rc1./configure --prefix=/usrmake make install

Se continua con LAME que es utiliza para codificar archivos audio en formato MP3:cd /usr/srcwget http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.99.5.tar.gztar -xf lame-3.99.5.tar.gzcd lame-3.99.5./configure --prefix=/usrmakemake install

LIBMAD que es un MPEG audio decodificador de alta calidad:cd /usr/srcwget http://prdownloads.sourceforge.net/mad/libmad-0.15.1b.tar.gztar -xf libmad-0.15.1b.tar.gzcd libmad-0.15.1b./configure --prefix=/usrPara que la compilación tenga éxito hay que modificar una linea del Makefile:nano +129 MakefileCFLAGS = -Wall -g -O -fforce-mem -fforce-addr -fthread-jumpspara que quede:CFLAGS = -Wall -g -O -fforce-addr -fthread-jumpsse continua con la compilación e instalación:makemake install

WAVPACK es un compresor audio de alto rendimiento sin perdida de calidad:cd /usr/srcwget http://www.wavpack.com/wavpack-4.60.1.tar.bz2tar -xf wavpack-4.60.1.tar.bz2cd 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/srcwget http://downloads.sourceforge.net/project/sox/sox/14.4.1/sox-14.4.1.tar.gztar -xf sox-14.4.1.tar.gzcd sox-14.4.1./configure -prefix=/usrmakemake install

Page 3: Configuracion Asterisk 64 Bits

SENDMAIL:yum install -y sendmail sendmail-devel sendmail-cf

Se configura para que arranque en automático:chkconfig sendmail on

Cada usuario 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/networkservice network restart

TCP 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')dnlModificar como sigue:DAEMON_OPTIONS(`Port=smtp,, Name=MTA')dnlSe guardan los cambios y se vuelve a compilar la configuración de Sendmail:make -C /etc/mailSe 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 usuarios 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 Administració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/srcwget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gztar -xf radiusclient-ng-0.5.6.tar.gzcd radiusclient-ng-0.5.6./configure --prefix=/usrmake && make installln -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-develluego el programa:cd /usr/srcwget http://www.lua.org/ftp/lua-5.1.5.tar.gztar -xf lua-5.1.5.tar.gzcd lua-5.1.5Se modifica el archivo Makefile para que el programa se instale por defecto en la carpeta /usr:nano Makefilese modifica esta linea:INSTALL_TOP= /usr/localpara que quede:INSTALL_TOP= /usrPara la versión CentOS de 64bit hay que modificar también este archivo:nano src/Makefilecambiar 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/srcwget http://downloads.sourceforge.net/project/freeassociation/libical/libical-1.0/libical-1.0.tar.gztar -xf libical-1.0.tar.gz

Page 4: Configuracion Asterisk 64 Bits

cd libical-1.0./autogen.sh --prefix=/usrmake && make installln -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/srcwget http://www.webdav.org/neon/neon-0.30.0.tar.gztar -xf neon-0.30.0.tar.gzcd neon-0.30.0./configure --prefix=/usr --with-ssl=opensslmake && 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/srcwget http://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgztar -xf srtp-1.4.4.tgzcd srtp./configure --prefix=/usr CFLAGS=-fPIC makeAntes 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.shcambiar esta linea:RTPW=rtpw Para que quede:RTPW=./rtpwSe continúa con el test:make runtest && make install

Instalación DAHDIcd /usr/srcwget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gztar -xf dahdi-linux-current.tar.gzcd dahdi-linux-2.7.0.1make && make install

Se termina con la última versión disponible de DAHDI-Tools:cd /usr/srcwget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gztar -xf dahdi-tools-current.tar.gzcd dahdi-tools-2.7.0.1./configuremake && 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 SRTPPara 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/srcwget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre21.tgztar -xf spandsp-0.0.6pre21.tgzcd spandsp-0.0.6./configure --prefix=/usrmake && 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

Page 5: Configuracion Asterisk 64 Bits

wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gztar -xf iksemel-1.4.tar.gzcd iksemel-1.4./configure --prefix=/usrmakeAntes de la instalación se ejecuta un test para averiguar que la compilación haya tenido éxito:make checkmake install

Instalación de Asteriskcd /usr/srcwget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.23.1.tar.gztar -xf asterisk-1.8.23.1.tar.gzcd asterisk-1.8.23.1./configuremake menuselect

Se entra en elmenú “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 1make: *** [addons] Error 2Se continua con:contrib/scripts/get_mp3_source.shy luego otra vez el make:makeSe instala Asterisk:make installSe instalan los archivos de configuración predefinidos:make samplesSe 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 startSe configura para que arranque en automático:chkconfig mysqld onSe crea una contraseña para el usuario root de MySQL (sesamo):mysqladmin -u root password sesamoPara pone en seguridad el servidor MySQL se ejecuta el programa:mysql_secure_installationSe contestan las preguntas como sigue:sesamo, n, y, y, y, y.

Se reinicia el servidor MySQL:service mysqld restartSe 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 asteriskcdrSe 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 '',

Page 6: Configuracion Asterisk 64 Bits

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 '',peeraccount varchar(20) NOT NULL default '',uniqueid varchar(32) NOT NULL default '',linkedid varchar(80) NOT NULL default '',userfield varchar(255) NOT NULL default '',PRIMARY KEY (`id`),KEY callerid (clid));

Se otorgan los permisos de acceso a la base de datos creada al usuario asterisk, desde localmysql> 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.oldSe crea uno nuevo:nano /etc/asterisk/cdr_mysql.confSe añaden las siguientes lineas:[global]hostname=127.0.0.1dbname=asteriskcdrtable=cdrpassword=sesamouser=asteriskport=3306sock=/var/lib/mysql/mysql.sock

Se guardan los cambios y se inicia Asterisk:/etc/init.d/asterisk startSe averigua que esté corriendo:/etc/init.d/asterisk statusasterisk (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 statusConnected to asteriskcdr@localhost, port 3306 using table cdr for 59 seconds.Wrote 0 records since last restart.

Instalación A2Billingyum install -y php php-gd php-mysql php-process httpd mod_ssl php-cli php-soapPara la instalación del paquete php-mcrypt se activa el repositorio epel:yum --enablerepo=epel install -y php-mcryptTerminada esta operación, se configura la zona horaria en el archivo de configuración de PHP (php.ini)

Page 7: Configuracion Asterisk 64 Bits

nano +946 /etc/php.iniSe 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/srcwget https://github.com/Star2Billing/a2billing/archive/master.tar.gzSe cambia el nombre al archivo descargado:mv master a2billing.tar.gztar -xf a2billing.tar.gzSe renombra la carpeta creada:mv a2billing-master a2billingSe entra en el cliente MySQL:mysql -u root -psesamoSe crea la base de datos a2billing:mysql> create database a2billing;Query OK, 1 row affected (0.00 sec)

Se otorgan los permisos de acceso a la base de datos creada al usuario a2user identificado con la contraseña sesamo:mysql> GRANT ALL PRIVILEGES ON a2billing.* TO 'a2user'@'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.shDatabase Name: a2billingHostname: localhostUsername: rootPassword: 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.shSe continúa con la instalación copiando el archivo de configuración de a2billing en la carpeta /etc:cp /usr/local/src/a2billing/a2billing.conf /etc/se abre con el editor:nano /etc/a2billing.confSe modifican estas líneas:[database]hostname = localhostport = user = a2billing_dbuserpassword = a2billing_dbpassworddbname = a2billing_dbnamedbtype = mysql

Para que queden:[database]hostname = localhostport = 3306user = a2userpassword = sesamodbname = a2billingdbtype = mysql