cómo instalar paso a paso asterisk 1

Upload: ivan-sanchez-murillo

Post on 08-Jul-2015

833 views

Category:

Documents


1 download

TRANSCRIPT

Cmo instalar paso a paso Asterisk 1.8 sobre Ubuntu Server Publicado el mayo 23, 2011 por David Gmez Desde hace ya algunos aos, la telefona convencional ha comenzado una revolucin con la tecnologa VoIP, tecnologa que nos permite comunicarnos no solo dentro de una red LAN sino tambin a travs de grandes distancias gracias a Internet. Asterisk es parte fundamental de esta revolucin, Software Libre que nos permite configurar nuestra propia central telefnica con las mas avanzadas prestaciones, haciendo uso de la tecnologa anloga convencional o usando las troncales mas modernas que hacen uso de otros servidores con Asterisk para permitirnos comunicarnos entre nosotros a precios mas bajos, con mejor disponibilidad y calidad. En esta gua instalaremos la versin mas reciente de Asterisk 1.8 sobre Ubuntu Server 10.04 LTS, aun as, la gua deber servir para instalar Asterisk en las versiones mas recientes de Ubuntu Server sin ningn problema. Lo primero que debemos hacer es instalar el sistema base de Ubuntu Server. Una vez lo tenemos instalado debemos proceder a actualizar el sistema mediante la ejecucin de los siguientes comandos: [bash]sudo apt-get update sudo apt-get dist-upgrade[/bash] Vamos a reiniciar nuestro servidor para que tome los cambios realizados en la actualizacin y preparmonos para comenzar con la instalacin de las dependencias necesarias para la instalacin de Asterisk 1.8 y todos sus componentes mediante la ejecucin del siguiente comando. [bash]sudo apt-get install build-essential linux-headers-`uname -r` subversion libncurses5-dev libssl-dev libxml2-dev vim-nox gawk wget apache2[/bash] Nota: es recomendable crear un nuevo usuario y grupo para Asterisk, esto lo puedes realizar por medio de la ejecucin de las siguientes lineas: [bash]sudo adduser asterisk disabled-password no-create-home gecos "asterisk PBX user" sudo adduser www-data asterisk[/bash] Con las dependencias instaladas, procedamos con la descarga de los archivos necesarios para la instalacin de Asterisk 1.8 sobre Ubuntu Server 10.04 LTS. Descargar lo que necesitamos Ahora hay que descargar la ultima versin disponible de Asterisk, esto podemos hacerlo por medio de Subversion o wget, pero en esta gua voy a indicar como hacerlo con wget para bajar el ultimo tarball estable de Asterisk 1.8. Para esto, ejecuta las siguientes lineas.

[bash]mkdir -p ~/src/asterisk-complete/asterisk cd ~/src/asterisk-complete/asterisk wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8current.tar.gz tar zxvf asterisk-1.8-current.tar.gz[/bash] Asterisk nos permite instalar una gran cantidad de mdulos y aplicaciones que podemos utilizar para nuestra central telefnica, generalmente estos mdulos o aplicaciones podemos seleccionarlos ejecutando make menuselect durante la instalacin de Asterisk, pero estos mdulos y aplicaciones tienen varias dependencias que podemos satisfacer fcilmente ejecutando dos scripts que nos provee el paquete de instalacin de Asterisk 1.8 mediante la ejecucin de las siguiente lineas: [bash]cd ~/src/asterisk-complete/asterisk/asterisk-1.8.4.1/ sudo ./contrib/scripts/install_prereq install sudo ./contrib/scripts/install_prereq install-unpackaged[/bash] Nota: durante la instalacin de las dependencias, una de las aplicaciones te pedir introducir el indicativo del pas donde se encuentra ubicado el servidor, si no sabes cual puede ser ese indicativo, verifica la lista completa de indicativos para pases en el siguiente enlace a Wikipedia Prefijos telefnicos internacionales. Comenzamos con la instalacin El orden para la instalacin de Asterisk 1.8 sobre Ubuntu Server 10.04 LTS es el siguiente: LibPRI DAHDI Asterisk Se hace en este orden para garantizar que los scripts de instalacin de Asterisk no tengan ningn problema al momento de verificar las dependencias necesarias para la ejecucin de varios mdulos integrados en Asterisk 1.8. LibPRI Para instalar LibPRI ejecutaremos las siguientes lineas en nuestro servidor (hasta el da de hoy, la versin mas reciente de LibPRI es la 1.4.11.5, te recomiendo verificar si existe una nueva versin): [bash]cd ~/src/asterisk-complete/ mkdir libpri cd libpri/ svn co http://svn.asterisk.org/svn/libpri/tags/1.4.11.5 cd 1.4.11.5 make sudo make install[/bash] DAHDI Advertencia: si estas instalando Asterisk 1.8 sobre Ubuntu Server 10.04 LTS de 64bits, es necesario que ejecutes la siguiente linea antes de instalar DAHDI para evitar un error de compilacin que se presenta por un error en el archivo /usr/src/linux-headers-`uname -r`/include/asm-x86:

[bash]sudo ln -nsf /usr/src/linux-headers-`uname -r`/include/asm-x86 /usr/src/linux-headers-`uname -r`/include/asm[/bash] Vamos a instalar DAHDI en nuestro servidor ejecutando las siguientes lineas (al da de hoy la mas reciente versin de DAHDI es la 2.4.1.2+2.4.1, te recomiendo verificar cual es la versin mas reciente): [bash]cd ~/src/asterisk-complete/ mkdir dahdi cd dahdi/ svn co http://svn.asterisk.org/svn/dahdi/linux-complete/tags/2.4.1.2+2.4.1/ cd 2.4.1.2+2.4.1 make sudo make install sudo make config[/bash] Asterisk Finalmente llegamos a la instalacin de Asterisk, en esta gua no contemplaremos la configuracin de los mdulos y aplicaciones a instalar por medio de menuselect. Si seguiste los pasos anteriores donde indico como instalar las dependencias para estos mdulos y aplicaciones, por defecto, todos los mdulos y aplicaciones se encuentran seleccionados para instalacin por lo que no tendrs que utilizar menuselect, a menos que quieras eliminar algunos mdulos y aplicaciones o instalar los archivos de audio adicionales de Asterisk 1.8. Para instalar Asterisk 1.8 vamos a ejecutar las siguientes lineas en nuestro servidor: [bash]cd ~/src/asterisk-complete/asterisk/asterisk-1.8.4.1/ ./configure contrib/scripts/get_mp3_source.sh make sudo make install sudo make config[/bash] Si quieres instalar los ejemplos para los archivos de configuracin y la documentacin del programa, ejecuta las siguientes lineas en la terminal: [bash]sudo make samples sudo make progdocs[/bash] Para finalizar vamos a cambiar los permisos de algunos directorios necesarios para correr Asterisk, esto con la intensin de hacerlos propiedad del usuario asterisk que anteriormente creamos y desde el cual controlaremos todos los aspectos de la central telefnica. [bash]sudo chown asterisk. /var/run/asterisk sudo chown -R asterisk. /etc/asterisk sudo chown -R asterisk. /var/{lib,log,spool}/asterisk sudo chown -R asterisk. /var/www/[/bash] Ya puedes comenzar con la configuracin de Asterisk para tener tu propia planta telefnica con la mas avanzada tecnologa libre.

Fuentes Asterisk: The Definitive Guide, Third Edition, by Leif Madsen, Jim Van Meggelen, and Russell Bryant (OReilly). Copyright 2011 Leif Madsen, Jim Van Meggelen, and Russell Bryant, 978-0-596-51734-2. Heurstica Andrew "error: asm / asm-offsets.h: No such file or directory"

1.Despues de instalar Ubuntu cambiar password a root sudo passwd root password Editar Cdigo HTML:/etc/apt/sources.list

y activar los siguientes repositorios Cdigo HTML:sudo editor /etc/apt/sources.list

Descomentar y guardar Cdigo HTML:deb http://us.archive.ubuntu.com/ubuntu/ dapper universe deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe

Actualizar repositorios Cdigo HTML:sudo apt-get update

1 Instalar librerias para acceso via SSH Cdigo HTML:sudo apt-get install openssl libssl-dev ssh

2 libreras de compilacin de software, sirve para compilar Asterisk Cdigo HTML:sudo apt-get install gcc make g++

3 verificar que versiones de kernel tengo instalado en el servidor uname -a me regresa algo como esto Cdigo HTML:

Linux AsteriskServer 2.6.15-23-386

4 buscar las fuentes del kernel con las versiones instaladas en el server Cdigo HTML:apt-cache search 2.6.15

5 instalamos los encabezados para 2.6.15 espec?ficos para el procesador (linux-headers2.6.15-23-386 , linux-source-2.6.15 , linux-image-2.6.15-23-386) Cdigo HTML:sudo apt-get install linux-headers-2.6.15-23-server linux-image-2.6.15-23-server linuxsource-2.6.15

6 sinstalamos algunas utilerias de linux, Lynx es un navegador web de texto, nmap es sniffer depuertos, emacs es un editor de textos potente aunque puedes usar editor instalado ya en Ubuntu y sencillo de usar Cdigo HTML:sudo apt-get install nmap lynx emacs21

7 festival son paquetes para el manejo de voz Cdigo HTML:sudo apt-get install festival festival-dev

8 para poder usar la consola de asterisk Cdigo HTML:sudo apt-get install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev

9 librerias de compresion sudo apt-get install zlib1g zlib1g-dev 10 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install bison bison-doc

11 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install libxml2 libxml2-dev

12 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install libtiff4 libtiff4-dev

13 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install libasound2 libgsm1 libltdl3 libpq3 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev

En caso que se vaya a usar una tarjeta sangoma, se requiere instalar flex para que funcione con el driver wanpipe Cdigo HTML:sudo apt-get install flex

14 librerias requeridas por Asterisk para el manejo de ayuda y de extraccion de archivos del CVS Cdigo HTML:sudo apt-get install subversion curl doxygen

15 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install libnet-telnet-perl mime-construct libipc-signal-perl libmimetypes-perl libproc-waitstat-perl

16 Servidor web para FreePBX Cdigo HTML:sudo apt-get install apache2

17 librerias requeridas por el servicio web de FreePBX Cdigo HTML:sudo apt-get install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db

18 base de datos para el CDR y FreePBX Cdigo HTML:sudo apt-get install mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev

Despues de instalar MySQL probablemente nos pediri una configuracin como la siguiente: 2. Configurar como Internet Site 3. localhost.localdomain ******************************** 2. ******************************** 2da Parte.. ******************************** 2. ******************************** 19 creamos un repositorio local para almacenar los archivos fuente de asterisk

mkdir ~/asterisk cd asterisk Obtenemos los archivos y os almacenamos en el directorio creado 20 gateway entre freepbx y asterisk Cdigo HTML:wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz

21 navaja suiza para manejo de archivos de sonido Cdigo HTML:wget http://keihanna.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

22 Obtenemos los paquetes para el administrador web de FreePBX, podemos aqui instalar la version 2.2.1 de FreePBX la mas actualizada y seguir con el mismo procedimiento Cdigo HTML:wget http://superb-east.dl.sourceforge.net/sourceforge/amportal/freepbx-2.1.1.tar.gz

23 Obtenemos los archivos para Asterisk Cdigo HTML:wget wget wget wget wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.13.tar.gz http://ftp.digium.com/pub/libpri/releases/libpri-1.2.4.tar.gz http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.15.tar.gz http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.2.5.tar.gz

24 Instalamos el Editor de Sonidos de Asterisk Cdigo HTML: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

25 Instalamos SOX, utiler?a para manejar los sonidos en Asterisk Cdigo HTML: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

26 Instalamos el gateway entre Asterisk y FreePBX

Cdigo HTML: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

27 Instalamos FreeBX el Administrador Web de Asterisk, aqui podemos tambien instalar la version 2.2.1 en vez de la 2.1.1 Cdigo HTML:cd /usr/src sudo tar -xzvf ~/asterisk/freepbx-2.1.1.tar.gz cd /usr/src/freepbx/freepbx-2.1.1

Comenzamos a instalar la Base de Datos para el Administrador Web FreePBX y para los CDR. Iniciacilizacion de la implementaci?n de Bases de Datos en Mysql para Asterisk, Accedemos a MySQL si no han configurado su password de root mysql, solo presionar Enter Cdigo HTML:mysql -u root -p ENTER show databases; use mysql ; show tables; select * from user;

Cambiamos los password de root y creamos un usuario para Asterisk: Cdigo HTML:update user set password = password("PaSsWoRd") where user = "root"; grant all privileges on *.* to asterisk@localhost identified by "PaSsWoRd"; flush privileges; exit

Nos validamos con el usuario de Asterisk creado Cdigo HTML:mysql -u asterisk -pPaSsWoRd

Creamos las bases de datos Cdigo HTML:mysql> create database asteriskcdrdb; mysql> create database asterisk; mysql> exit

Pasamos el esquema y la informaci?n de los scripts de bases de datos por default de FreePBX Cdigo HTML:mysql -u asterisk -pPassw0rd asterisk < /usr/src/freepbx/freepbx2.1.1/SQL/newinstall.sql

mysql -u asterisk -pPassw0rd asteriskcdrdb < /usr/src/freepbx/freepbx2.1.1/SQL/cdr_mysql_table.sql

Lo siguiente son los usuarios y password por default para FreePBX Cdigo HTML:mysql -u root -pPaSsWoRd

Asignamos en caso de que se requiera con el login y password por default Cdigo HTML:GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "amp109"; 2. GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "amp109"; 3. flush privileges; exit

Termina la implementacion de Bases de Datos en Mysql para Asterisk 28 creacion del usuario y grupo que manejara los procesos de asterisk Cdigo HTML:sudo sudo sudo sudo groupadd asterisk useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk mkdir /var/run/asterisk chown asterisk:asterisk /var/run/asterisk

29 Cambiamo el usuario propietario de Apache Cdigo HTML:sudo emacs /etc/group www-data:x:33:asterisk para guardar presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c

Ejecutamos el comando find para ubicar el archivo de configuracion de apache: Cdigo HTML:find /etc/apache2/ -type f | xargs grep Group

30 editamos el archivo de apache Cdigo HTML:sudo emacs /etc/apache2/apache2.conf

En emacs para buscar, presionar Ctrl+s 31 cambiar de www-data a asterisk Cdigo HTML:User www-data Group www-data

por User asterisk Group asterisk

Guardamos para guardar es presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c 32 cambiamos los permisos para el directorio de sesiones de PHP Cdigo HTML:sudo chown -R asterisk /var/lib/php5

33 Edicion de php para aumentar el tamao de archivos que se suben al servidor web: Cdigo HTML:sudo emacs /etc/php5/apache2/php.ini upload_max_filesize = 32M

34 creamos un directorio para la instalacion de los paquetes de Asterisk Cdigo HTML:sudo mkdir /usr/src/asterisk cd /usr/src/asterisk

35 libreria o drivers para tarjetas line PRI Cdigo HTML:sudo tar zvxf ~/asterisk/libpri- 1.2.4.tar.gz

36 librerias o drivers para tarjetas ZAPTEL Cdigo HTML:sudo tar zvxf ~/asterisk/zaptel-1.2.13.tar.gz

37 El PBX Asterisk Cdigo HTML:sudo tar zvxf ~/asterisk/asterisk-1.2.15.tar.gz

38 utilerias de asterisk(cdr, rep music on hold. etc) Cdigo HTML:sudo tar zvxf ~/asterisk/asterisk-addons-1.2.5.tar.gz

39 archivos de IVR por default sudo tar zvxf ~/asterisk/asterisk-sounds-1.2.1.tar.gz

40 compilacion de PRI Cdigo HTML:cd libpri-1.2.4 sudo make & sudo make install

41 compilacion de Zaptel Cdigo HTML:cd ../zaptel-1.2.13 sudo make clean sudo make linux26 sudo make install

42 compilacion de Asterisk Cdigo HTML:cd ../asterisk-1.2.15 sudo make clean sudo make sudo make install sudo make samples sudo make progdocs

43 compilacion de Utilerias de Asterisk Cdigo HTML:cd ../asterisk-addons-1.2.5 sudo make sudo make install cd ../asterisk-sounds-1.2.1 sudo make sudo make install

44 reiniciamos el servidor web apache sudo /etc/init.d/apache2 restart 45 Antes de instalar FreePBX creamos el directorio de asterisk en /var/run Cdigo HTML:sudo mkdir /var/run/asterisk

46 Editamos el archivo de configuracion de Asterisk Cdigo HTML:sudo emacs /etc/asterisk/asterisk.conf

47 cambiamos el directorio de Cdigo HTML:

RUNASTERISK=/var/run

a Cdigo HTML:RUNASTERISK=/var/run/asterisk

48 asignamos los permisos Cdigo HTML:chown -R asteriks:asterisk /var/run/asterisk

Continuamos con la instalacion de FreePBX Cdigo HTML:cd /usr/src/freepbx/freepbx-2.1.1/ sudo pear install db

Si no encontrara el paquete db, bajarlo de internet e instalarlo manualmente: Cdigo HTML:sudo sudo sudo sudo pear install db.17.0.0.tgz mkdir /var/www/cgi-bin chown asterisk:asterisk /var/www/cgi-bin ./install_amp

Despues de ejecutar install_amp pedir los valores para crear el archivo de configuracion. Aqu introducir el usuario de la base de datos que se creo previamente Enter your USERNAME to connect to the 'asterisk' database: asteriskuser asterisk Aqui introducir el password de la base de datos que se creo previamente Enter your PASSWORD to connect to the 'asterisk' database: amp109 Passw0rd Aqui introducir el nombre del servidor de la base de datos, com?nmente localhost Enter the hostname of the 'asterisk' database: localhost ENTER Aqui introducir el usuario que se usara como admin del API de Asterisk Enter a USERNAME to connect to the Asterisk Manager interface: admin admin Password del API, importante para conectar aplicaciones terceras a Asterisk Enter a PASSWORD to connect to the Asterisk Manager interface: amp111 Passw0rd Ruta de instalacion del Servidor de Asterisk Enter the path to use for your AMP web root: /var/www/html ENTER Created /var/www/html Ruta para instalar el Panel Flash de Asterisk

Enter the path to use for your FOP web root: /var/www/html/panelENTER Created /var/www/html/panel Introducir la ruta para los CGI de Asterisk Enter the path to your Apache cgi-bin: /var/www/cgi-bin Introduzca la direccion IP de su servidor Enter the IP ADDRESS or hostname used to access the AMP web-admin: xx.xx.xx.xx localhost Introduzca el password pra poder usar el FOP Enter a PASSWORD to perform call transfers with the Flash Operator Panel: passw0rd Passw0rd Seleccionar valores por Default Use simple Extensions extensions admin or separate Devices and Users deviceanduser? extensions Seleccionar Default Enter directory in which to store AMP executable scripts: /var/lib/asterisk/bin Created /var/lib/asterisk/bin Seleccionar Default Enter directory in which to store super-user scripts: /usr/sbin Si marcara algun error installamp revisar usuarios de base de datos, libreras de php y de mysql, reiniciar apache y peardb, php-db en caso de que tuviera un error al ejecutar FreePBX puede reconfigurarlo previamente elimine el archivo de configuracion en /etc/amportal.conf 49 creamos la carpeta donde se almacenaran los sonidos del IVR Cdigo HTML:mkdir /var/lib/asterisk/sounds/custom

50 configuramos los permisos para el directorio de Asterisk Cdigo HTML:chown -R asterisk:asterisk /var/lib/asterisk/

51 ejecutamos amportal Cdigo HTML:sudo /usr/sbin/amportal start

o como root Cdigo HTML:su -

password

y ejecutamos Cdigo HTML:/usr/sbin/amportal start

verificamos Cdigo HTML:ps aux

Y deberiamos ver algo parecido Cdigo HTML:asterisk 5537 0.0 0.1 3676 844 pts/0 S 13:54 0:00 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk asterisk 5544 0.2 1.4 15452 7080 pts/0 Sl 13:54 0:00 /usr/sbin/asterisk -U asterisk -G asterisk -vvvg -c asterisk 5585 0.0 0.1 3848 832 pts/0 S 13:54 0:00 -su -c cd /var/www/html/panel && /var/www/html/panel/safe_opseasterisk 5586 0.0 0.2 3640 1324 pts/0 S 13:54 0:00 /bin/bash /var/www/html/panel/safe_opserver asterisk 5588 0.3 1.5 10008 7352 pts/0 S 13:54 0:00 /usr/bin/perl -w ./op_server.pl

Cdigo HTML:sudo emacs /etc/default/asterisk RUNASTERISK=yes

Abrir en un navegador de preferencia Firefox la direccion del servidor Asterisk por ejemplo que el servidor corra en una IP 192.168.1.101 http://192.168.1.101/html/admin/ Introducimos el login y password configurado: admin admin Ahora tenemos habilitado El conmutador de Voz Sobre IP Asterisk

Instalacion de Asterisk GUI 2.0 en Asterisk 1.6.0.1 Actualizado 11 Septiembre 2009 Hoy veremos como instalar la interfaz grfica Asterisk GUI, versin 2.0, en la versin 1.6.0.X de asterisk. Como que arrancando la GUI sta modifica algunos archivos de configuracin de asterisk, antes que nada, sacamos una copia de nuestros archivos de configuracin de asterisk mkdir /tmp/asterisk cp /etc/asterisk/* /tmp/asterisk

Para descargar todos los archivos debemos tener instalado el programa subversion. yum install subversion cd /usr/src Ahora bajamos el paquete completo svn co http://svn.asterisk.org/svn/asterisk-gui/branches/2.0 entramos en la carpeta cd 2.0/ compilamos y instalamos ./configure make make install Ahora tenemos que modificar dos archivos de configuracin de asterisk. Primero vamos a modificar el manager.conf nano /etc/asterisk/manager.conf [general] enabled = yes webenabled = yes port = 5038 httptimeout = 60 bindaddr = direccin ip servidor asterisk [admin] secret = contrasea read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan write = system,call,agent,user,config,command,reporting,originate Guardamos los cambios y pasamos al archivo http.conf nano /etc/asterisk/http.conf [general] enabled = yes enablestatic = yes bindaddr=direccion IP servidor asterisk bindport=8088 Guardamos los cambios y reiniciamos asterisk /etc/init.d/asterisk reload Ahora tenemos que abrir los puertos 5038 TCP y 8080 TCP en nuestro cortafuegos nano /etc/sysconfig/iptables aadimos estas lneas # Asterisk Manager -A INPUT -p tcp --dport 5038 -j ACCEPT

# Asterisk http -A INPUT -p tcp --dport 8088 -j ACCEPT Guardamos los cambios y reiniciamos el cortafuegos service iptables restart Ahora averiguamos que todo est bien configurado /usr/src/2.0: make checkconfig --- Checking Asterisk configuration to see if it will support the GUI --* Checking for http.conf: OK * Checking for manager.conf: OK * Checking if HTTP is enabled: OK * Checking if HTTP static support is enabled: OK * Checking if manager is enabled: OK * Checking if manager over HTTP is enabled: OK --- Everything looks good --* GUI should be available at http://www.example.com:8088/asterisk/static/config/cfgbasic.html Desde nuestro firefox visitamos la pagina de nuestro servidor asterisk (cambien example.com con la direccin IP de su servidor asterisk). http://www.example.com:8088/asterisk/static/config/cfgbasic.html Si esta no funciona prueben: http://www.example.com:8088/static/config/cfgbasic.html Aqu van algunas imgenes de la interfaz grfica Antes de instalar la GUI de asterisk ya debemos tener instalado asterisk.

Actualizado 12 Septiembre 2009 Si tenemos problemas para conectarnos al servidor asterisk a causa de un cortafuegos o del bloqueo de los puertos por parte de nuestro proveedor de Internet o por cualquier otro motivo, existe una solucin. Podemos crear una VPN entre nuestro computador y el servidor asterisk y de ah conectar nuestro Softphone. Otra ventaja del uso de una VPN es que todos los datos que se transmiten entre clientes y servidor estn totalmente criptados a travs de una clave RSA. Vamos por pasos. Primero tenemos que instalar lzo, una librera de compresin datos requerida por OpenVPN cd /usr/src descargamos wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz descomprimimos tar -xf lzo-2.03.tar.gz cd lzo-2.03

y compilamos ./configure make make check make install Ahora instalamos OpenVPN cd .. wget http://www.openvpn.net/release/openvpn-2.0.9.tar.gz tar -xf openvpn-2.0.9.tar.gz cd openvpn-2.0.9 ./configure make make install Preparamos el servidor Linux para crear las distintas claves (CA, servidor, cliente) cd easy-rsa/ mkdir /usr/local/sbin/keys nano vars modificamos las lneas que aqu se muestran. Esto datos sern los que se usaran como predefinidos al momento de la generacin de las claves export export export export export export KEY_DIR=/usr/local/sbin/keys KEY_COUNTRY=CO KEY_PROVINCE=Magdalena KEY_CITY=Santa_Marta KEY_ORG="VozToVoice" [email protected]

guardamos los cambios y salimos del editor Ctrl-O Ctrl-X unos pasajes ms . ./vars NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/local/sbin/openvpn/keys (NOTA:. Cuando se ejecuta / clean-all, voy a hacer un rm-rf en / usr / local / sbin / openvpn / teclas) ./clean-all Ahora tenemos que crear el certificado y la clave CA (Certificate Authority)

./build-ca Generating a 1024 bit RSA private key (Generacin de un 1024 poco la clave privada RSA) ....++++++ ...................++++++ writing new private key to 'ca.key' (por escrito a la nueva clave privada "ca.key ') ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [CO]: State or Province Name (full name) [Magdalena]: Locality Name (eg, city) [Santa_Marta]: Organization Name (eg, company) [VozToVoice]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:voztovoice Email Address [[email protected]]: (Usted est a punto de pedir que introduzca la informacin que ser incorporada en su solicitud de certificado. Lo que est a punto de entrar es lo que se llama un nombre completo o DN. Hay muy pocos campos, pero puede dejar algunas en blanco Para algunos campos habr un valor predeterminado, Si se escribe '.', El campo se dejar en blanco. ----Nombre del pas (cdigo de 2 letras) [CO]: Nombre del estado o provincia (nombre completo) [Magdalena]: Nombre de la localidad (por ejemplo, de la ciudad) [Santa_Marta]: Nombre de la organizacin (por ejemplo, de la empresa) [VozToVoice]: Nombre de la Unidad de organizacin (por ejemplo, seccin) []: Nombre comn (por ejemplo, su nombre o nombre de host de su servidor)] [: voztovoice Direccin de correo electrnico [[email protected]]:) Creamos la clave para el servidor ./build-key-server server Generating a 1024 bit RSA private key (Generacin de un 1024 poco la clave privada RSA) ..++++++ ................................++++++ writing new private key to 'server.key' (por escrito a la nueva clave privada "server.key") ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [CO]: State or Province Name (full name) [Magdalena]: Locality Name (eg, city) [Santa_Marta]: Organization Name (eg, company) [VozToVoice]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:server Email Address [[email protected]]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'CO' stateOrProvinceName :PRINTABLE:'Magdalena' localityName :T61STRING:'Santa_Marta' organizationName :PRINTABLE:'VozToVoice commonName :PRINTABLE:'server' emailAddress :IA5STRING:'[email protected]' Certificate is to be certified until Dec 1 11:47:48 2018 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated (Usted est a punto de pedir que introduzca la informacin que ser incorporada en su solicitud de certificado. Lo que est a punto de entrar es lo que se llama un nombre completo o DN. Hay muy pocos campos, pero puede dejar algunas en blanco Para algunos campos habr un valor predeterminado, Si se escribe '.', El campo se dejar en blanco. ----Nombre del pas (cdigo de 2 letras) [CO]: Nombre del estado o provincia (nombre completo) [Magdalena]: Nombre de la localidad (por ejemplo, de la ciudad) [Santa_Marta]: Nombre de la organizacin (por ejemplo, de la empresa) [VozToVoice]: Nombre de la Unidad de organizacin (por ejemplo, seccin) []: Nombre comn (por ejemplo, su nombre o nombre de host de su servidor)] [: servidor Direccin de correo electrnico [[email protected]]: Por favor, introduzca los siguientes "extra" de los atributos para ser enviado con la peticin del certificado Otra Contrasea []: Un nombre opcional de la compaa []: Mediante la configuracin de / usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf Comprobar que la solicitud coincide con la firma firma ok Nombre completo del sujeto es la siguiente

countryName: IMPRIMIR: 'CO' stateOrProvinceName: IMPRIMIR: 'Magdalena' localityName: T61STRING: "Santa_Marta ' organizationName: IMPRIMIR: "VozToVoice commonName: IMPRIMIR: 'servidor' EmailAddress: IA5String: "[email protected] ' Certificado es la certificacin hasta 01 de diciembre 2018 11:47:48 GMT (3650 das) Firmar el certificado? [y / n]: y 1 de 1 solicitudes de certificados certificados, se comprometen? [y / n] y Escribe una base de datos con las nuevas entradas Base de datos actualizada) y la clave para el o los clientes que planeamo usar ./build-key slice1 Generating a 1024 bit RSA private key (Generacin de un 1024 poco la clave privada RSA) ...++++++ ...............++++++ writing new private key to 'slice1.key' (escribiendo nueva clave privada a 'slice1.key') ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [CO]: State or Province Name (full name) [Magdalena]: Locality Name (eg, city) [Santa_Marta]: Organization Name (eg, company) [VozToVoice]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:slice1 Email Address [[email protected]]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'CO' stateOrProvinceName :PRINTABLE:'Magdalena' localityName :T61STRING:'Santa_Marta' organizationName :PRINTABLE:'VozToVoice' commonName :PRINTABLE:'slice1' emailAddress :IA5STRING:'[email protected]' Certificate is to be certified until Dec 1 11:49:15 2018 GMT (3650 days) Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated (Usted est a punto de pedir que introduzca la informacin que ser incorporada en su solicitud de certificado. Lo que est a punto de entrar es lo que se llama un nombre completo o DN. Hay muy pocos campos, pero puede dejar algunas en blanco Para algunos campos habr un valor predeterminado, Si se escribe '.', El campo se dejar en blanco. ----Nombre del pas (cdigo de 2 letras) [CO]: Nombre del estado o provincia (nombre completo) [Magdalena]: Nombre de la localidad (por ejemplo, de la ciudad) [Santa_Marta]: Nombre de la organizacin (por ejemplo, de la empresa) [VozToVoice]: Nombre de la Unidad de organizacin (por ejemplo, seccin) []: Nombre comn (por ejemplo, su nombre o nombre de host de su servidor)] [: slice1 Direccin de correo electrnico [[email protected]]: Por favor, introduzca los siguientes "extra" de los atributos para ser enviado con la peticin del certificado Otra Contrasea []: Un nombre opcional de la compaa []: Mediante la configuracin de / usr/src/openvpn-2.0.9/easy-rsa/openssl.cnf Comprobar que la solicitud coincide con la firma firma ok Nombre completo del sujeto es la siguiente countryName: IMPRIMIR: 'CO' stateOrProvinceName: IMPRIMIR: 'Magdalena' localityName: T61STRING: "Santa_Marta ' organizationName: IMPRIMIR: "VozToVoice ' commonName: IMPRIMIR: "slice1 ' EmailAddress: IA5String: "[email protected] ' Certificado es la certificacin hasta 01 de diciembre 2018 11:49:15 GMT (3650 das) Firmar el certificado? [y / n]: y 1 de 1 solicitudes de certificados certificados, se comprometen? [y / n] y Escribe una base de datos con las nuevas entradas Base de datos actualizada) Si queremos configurar 3 clientes repetimos esta operacin dos veces ms. ATENCION!!! La nica lnea que tenemos que modificar es Common Name indicando por cada cliente el mismo nombre de la clave. Ej Slice2 - Common Name: Slice2, Slice3 - Common Name: Slice3, etc... ./build-key slice2 ./build-key slice3 completamos con la generacin del parmetro Diffie Hellman ./build-dh El servidor OpenVPN usa como puerto predefinido 1194. Tenemos que abrirlo en iptables

nano /etc/sysconfig/iptables y aadimos # OPENVPN server port -A INPUT -p tcp --dport 1194 -j ACCEPT -A INPUT -p udp --dport 1194 -j ACCEPT volvemos a arrancar iptables service iptables restart La siguiente fase es copiar un script para que OpenVPN arranque en automtico cd /usr/src/openvpn-2.0.9/sample-scripts/ cp openvpn.init /etc/rc.d/init.d/openvpn chkconfig --add openvpn chkconfig openvpn on mkdir /etc/openvpn Ahora creamos nuestro archivo de configuracin para el servidor OpenVPN cd /etc/openvpn nano server.conf port 1194 proto udp dev tun ca /usr/local/sbin/keys/ca.crt cert /usr/local/sbin/keys/server.crt key /usr/local/sbin/keys/server.key dh /usr/local/sbin/keys/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo max-clients 30 persist-key persist-tun log openvpn.log log-append openvpn.log verb 3 management localhost 7505 Arrancamos el servidor /etc/init.d/openvpn start Si no sale ningn error tenemos nuestro servidor escuchando en el puerto 1194 para las conexiones de los clientes.

con ifconfig podemos ver la nueva red funcionando: tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-0000 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:73 errors:0 dropped:0 overruns:0 frame:0 TX packets:96 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:24242 (23.6 KiB) TX bytes:41235 (40.2 KiB) Ahora tenemos que configurar el cliente OpenVPN para que se conecte al servidor.

Windows XP

Descargamos este programa y lo instalamos. Creamos una capeta keys en la carpeta raz c:\ Desde la ventanilla de los comandos digitamos C:\>md keys Entramos cd keys copiamos del servidor linux a esta carpeta utilizando winscp los siguientes archivos ca.crt slice1. crt slice1.key Creamos el archivo de configuracin para el cliente (con notepad) client dev tun proto udp remote 174.143.180.175 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca c:\\keys\\ca.crt cert c:\\keys\\slice1.crt key c:\\keys\\slice1.key comp-lzo verb 3 ns-cert-type server y lo guardamos con la extension .ovpn Ej: client.ovpn

Copiamos el archivo de configuracin en la carpeta /config dentro de la carpeta OpenVPN (creada en archivos de programa al momento de la instalacin de OpenVPN GUI para windows. Ahora solo nos queda de arrancar el cliente Para hacerlo en el system tray debemos tener este icono (Si no est presente arrancamos el programa desde Inicio/programas/OpenVPN/OpenVPN GUI) clicamos con el botn derecho y en el men que aparece escogemos Connect Aparecer algo parecido

y el icono se volver de color verde Ahora podemos configurar nuestro X-Lite para conectarse, desde la red local creada con OpenVPN, a nuestra centralita Asterisk aqu va la configuracin

Si en el sip.conf tenemos configurado el parmetro domain Ejemplo:

domain=sip.voztovoice.com tenemos que aadir la siguiente lnea: domain=10.8.0.1 Yo lo estoy usando y la verdad la calidad del audio es buena sin tiempos de retraso perceptibles