viernes, 26 de octubre de 2007

Servidor Asterisk + FreePBX en Ubuntu Server 6.06 LTS

# Bueno aqui estamos de nuevo con la instalacion de Asterisk un sistema PBX de VoIP. Con el podemos hacer llamadas entre usuarios de una red.

Servidor: Ubunt Linux Server 2.6.15-26-server

Si estamos empezando una instalacion nueva hay que cambiarle el password al root con el siguiente comando

# sudo passwd root
te pedira tu password y luego el nuevo password de root
depues tenemos que actualizar los repositorios del apt-get con el siguiente comando

# sudo vim /etc/apt/sources.list

recuerda descomentar todas las entredas que comiencen con "deb" y "deb-src" y hay que comentar todas las que digan "dev cdrom"

Luego actualizamos la lista de los repositorios con:

# sudo apt-get update

Despues hay que descargar todas las cabeceras y el source del kernel.
Para saber que version del kernel estas utilizando utilizas este comando

# uname -a

a mi me sale algo asi

# Linux Ubuntu-Server 2.6.15-26-server #1 SMP Thu Aug 3 04:09:15 UTC 2006 i686 GNU/Linux

pero la parte que nos interesa es la que dice 2.6.15-26-server, por que de esa es vamos a descargar las cabeceras y el source del kernel.

Busca las versiones del kernel

# sudo apt-cache 2.6.15

descarga los headers y source de la version de tu kernel

#sudo sudo apt-get install linux-headers-2.6.15-26-server linux-image-2.6.15-26-server linux-source-2.6.15

Una vez que ya se hallan descargado hay que instalar un monton de software y librerias necesarios para poder instalar Asterisk, te diria que es cada cosa, pero puedes utilizar google para averiguarlo y asi no nos desviamos del tema central del articulo

# sudo apt-get install ssh openssh-server openssl libssl-dev build-essential nmap lynx festival festival-dev ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev zlib1g zlib1g-dev bison bison-doc libxml2 libxml2-dev libtiff4 libtiff4-dev libasound2 libgsm1 libltdl3 libpq3 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev flex subversion curl doxygen libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl apache2 php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev

despues de que se haya instalado vamos a descargar las fuentes de los paquetes que necesitamos para instalar Asterisk y FreePBX

# mkdir ~/asterisk
# cd ~/asterisk
# wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-12.17.9.tar.gz
# wget http://heanet.dl.sourceforge.net/sourceforge/lame/lame-3.96.1.tar.gz
# wget http://mirror.freepbx.org/freepbx-2.3.1.tar.gz
# wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
# wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.13.tar.gz
# wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.4.tar.gz
# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.15.tar.gz
# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz
# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.2.5.tar.gz

bueno ahora ya tenemos todas las fuentes.

Vamos a empezar a instalar el Lame que es un codificador de MP3

# cd /usr/src/
# sudo tar -xvzf ~/asterisk/lame-3.96.1.tar.gz
# cd lame-3.96.1
# sudo ./configure --prefix=/usr --sysconfdir=/etc
# sudo make && sudo make install

Luego Instalamos Sox una utileria para el manejo de sonido

# cd /usr/src/
# sudo tar -xzvf ~/asterisk/sox-12.17.9.tar.gz
# cd sox-12.17.9
# sudo ./configure
# sudo make
# sudo make install

Lugo instalamos el gateway entre Asterisk y FreePBX

# cd /usr/src/
# sudo tar -xzvf ~/asterisk/asterisk-perl-0.08.tar.gz
# cd asterisk-perl-0.08
# sudo perl Makefile.PL
# sudo make all
# sudo make install

Aqui instalamos FreeBX el Administrador Web de Asterisk

# sudo mkdir /usr/src/freepbx
# cd /usr/src/freepbx
# sudo tar -xzvf ~/asterisk/freepbx-2.3.1.tar.gz
# cd /usr/src/freepbx/freepbx-2.3.1

Vamos a continuar con la configuracion de la base de datos que utiliza FreePBX
iniciamos el manejador de bases de datos MySql (Si aun no has seleccionado un password para root solo dale )

# mysql -u root -p


Luego entramos a la base de datos de mysql

mysql> use mysql

Y cambiams el password de root y agregamos un usuario para Asterisk

mysql> UPDATE user SET password = password("P4SSW0RD") WHERE user = "root";
mysql> GRANT ALL PRIVILEGES ON *.* TO asterisk@localhost IDENTIFIED BY "asterisk";
mysql> FLUS PRIVILEGES;
mysql> quit;

Despues nos logueamos con el usuario de asterisk

# mysql -u asterisk -pasterisk
mysql> create database asteriskcdrdb;
mysql> create database asterisk;

Despues pasamos los esquemas de las bases de datos de FreePBX

# mysql -u asterisk -pasterisk asterisk < /usr/src/freepbx/freepbx-2.3.1/SQL/newinstall.sql # mysql -u asterisk -pasterisk asteriskcdrdb < /usr/src/freepbx/freepbx-2.3.1/SQL/cdr_mysql_table.sql Solo por si acaso hay que darle acceso al usuario por defaut de Asterisk # mysql -u root -pP4SSW0RD mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "amp109";
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "amp109";
mysql> flush privileges;
mysql> quit;

Con esto terminamos la parte de la base de datos de MySql, ahora vamos con el sistema de asterisk

Hay que crear un usuario y un grupo para que maneje los procesos de Asterix

# sudo groupadd asterisk
# sudo useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk
# sudo mkdir /var/run/asterisk
# sudo chown asterisk:asterisk /var/run/asterisk

Hay que modificar el usuario propietario de apache modificando el archivo /etc/group

# sudo vim /etc/group

www-data:x:33:asterisk

Editamos el archivo de configuracion de apache

# vim /etc/apache2/apache2.conf

y cambiamos las sigueintes lineas

User www-data
Group www-data

por

User asterisk
Group asterisk

Cambiamos los permisos del directorio de sesiones de PHP

# sudo chown -R asterisk /var/lib/php5

Luego cambiamos el tamaño mañimo de archivos que se pueden subir al servidor

# sudo vim /etc/php5/apache2/php.ini

Upload_max_filesize = 32M

Creamos un directorio para los paquetes de asterisk

# sudo mkdir /usr/src/asterisk
# cd /usr/src/asterisk

Y extraemos todas las librerias y paquetes que descargamos

# sudo tar zvxf ~/asterisk/libpri-1.2.4.tar.gz
# sudo tar zvxf ~/asterisk/zaptel-1.2.13.tar.gz
# sudo tar zvxf ~/asterisk/asterisk-1.2.15.tar.gz
# sudo tar zvxf ~/asterisk/asterisk-addons-1.2.5.tar.gz
# sudo tar zvxf ~/asterisk/asterisk-sounds-1.2.1.tar.gz

Y despues pasamos a la fase de compilacion

# cd libpri-1.2.4
# sudo make & sudo make install

# cd ../zaptel-1.2.13
# sudo make clean
# sudo make linux26
# sudo make install

# cd ../asterisk-1.2.15
# sudo make clean
# sudo make
# sudo make install
# sudo make samples
# sudo make progdocs

# cd ../asterisk-addons-1.2.5
# sudo make
# sudo make install

# cd ../asterisk-sounds-1.2.1
# sudo make
# sudo make install

Despues reiniciamos el Apache para que se cargue con la nueva configuracion

# sudo /etc/init.d/apache2 restart

Hay que crear un directorio de Asterisk en /var/run

# sudo mkdir /var/run/asterisk

Y despues editar el archivo de configuracion de asterisk

# sudo vim /etc/asterisk/asterisk.conf

y cambiamos la linea

RUNASTERISK=/var/run ---> cambiar esto

por esta

RUNASTERISK=/var/run/asterisk ---> y esto tambien

Ahora le asignamos los permisos

# sudo chown -R asterisk:asterisk /var/run/asterisk

Ahora pasamos a la instalacion de FreePBX

# cd /usr/src/freepbx/freepbx-2.3.1/
# sudo pear install db

# sudo mkdir /var/www/cgi-bin
# sudo chown asterisk:asterisk /var/www/cgi-bin
# sudo ./install_amp

Despues te pedira los valores para crear los archivos de configuracion

Nos pide el nombre de usuario que creamos para acceder a la base de datos

Enter your USERNAME to connect to the 'asterisk' database:
asteriskuser asterisk


Nos pide el password para ese usuario

Enter your PASSWORD to connect to the 'asterisk' database:
P4ssw0rd

Despues nos pide el nombre del servidor donde se encuentra la base de datos, normalmente se encuentra en la misma maquina, si es el caso damos para indicar la opcion por defecto

Enter the hostname of the 'asterisk' database:


Aqui introducimos el usuario que usara como admin la API de Asterisk

Enter a USERNAME to connect to the Asterisk Manager interface:


Introduce el password de la api

Enter a PASSWORD to connect to the Asterisk Manager interface:
P4ssw0rd

Introduce la ruta de instalacion del servidor Asterisk

Enter the path to use for your AMP web root:

Created /var/www/html

Luego selecciona la ruta para crear el panerl de Asterisk

Enter the path to use for your FOP web root:

Created /var/www/html/panel

Luego introducimos la direccion del servidor

Enter the IP ADDRESS or hostname used to access the AMP web-admin:
localhost

Introducimos el password para utilizar el FOP

Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
P4ssw0rd

Aqui seleccionamos la opcion de extensiones

Use simple Extensions extensions admin or separate Devices and Users


Seleccionamos el directorio con las scripts ejecutables de Asterisk

Enter directory in which to store AMP executable scripts:

Created /var/lib/asterisk/bin

Seleccionamos el directorio donde se encuentran los escripts de administracion
Enter directory in which to store super-user scripts:


Luego creamos la carpeta donde se almacenan los sonidos el IVR

# sudo mkdir /var/lib/asterisk/sounds/custom
# sudo chown -R asterisk:asterisk /var/lib/asterisk

Y por ultimo ejecutamos el amportal

sudo /usr/sbin/amportal start

Y con esto ya deberiamos tener instalado el Asterisk, si en alguna parte de la instalacion te genera un error es que ... Algo estas haciendo mal... pero pon tus comentarios para poder ver donde esta el error.

Para entrar a la configuracion de FreePBX abran una ventana del explorador de internet y pongan la siguiente direccion

http://127.0.0.1/html/admin/

como nombre de usuario y contraseña ponagan admin y admin

salu2