Vous êtes sur la page 1sur 11

Crear un servidor de VOIP

Comencemos por el principio, qu es Asterisk@home?


Con Asterisk, que viene en cd autoconfigurable y que permite que podamos crear y gestionar nuestra propia centralita, para gestionar extensiones y efectuar llamadas internas sin pasar por el operador telefnico, para dar servicios de telefona inteligente mediante reconocimiento de voz, para locuciones informativas automticas, incluso poner nuestra cancin favorita como tono de llamada en espera. Empecemos por el principio, que casi siempre suele ser lo ms adecuado. Desde la web de Asterisk@home, podemos descargarnos la imagen de la ultima versin: asterisathome-1.5.iso. Una vez grabada con nuestro programa preferido, iniciamos el equipo que vamos a destinar a servidor con el cd dentro. Antes de continuar hay que tener en cuenta que Asterisk@home no es solo la aplicacin como tal, sino que tambin cuenta con una versin de la distribucin Linux CentOS, as pues la instalacin nos borrar sin previo aviso todas las particiones que tengamos en el equipo eliminado los datos que hubiese antes, as que lo mejor es asegurarnos que no tenemos nada en el equipo antes de instalar. Cuando el equipo haya arrancado con el cd dentro del lector, las cosas ya ocurren solas y por su cuenta, es decir, no es necesaria la intervencin del usuario en prcticamente ningn estadio de la instalacin. La nica intervencin ser una vez copiados todos los datos al disco duro, cuando el equipo reinicie ser necesario sacar el cd del lector, sino volver a leer la instalacin. Una vez reiniciado el equipo, el sistema se entretendr un rato en compilar las aplicaciones. No hay que prestar ms atencin ya que dispone de todas las libreras necesarias y no nos pedir ninguna. Al cabo de un rato, entre 30 y 45 minutos segn el equipo y tras un segundo reinicio nos aparecer al fin el login del equipo para que nos validemos. Welcome to Asterisk@Home ------------------------------------------------For access to the Asterisk@Home web GUI use this URL http://asterisk1 For help on Asterisk@Home commands you can use from this command shell type help-aah. [root@asterisk1 root]# El sistema viene con un usuario por defecto (root) y una contrasea tambin por defecto (password), as pues ser necesario cambiarla mediante el comando passwd. Una vez cambiada, ejecutamos la aplicacin netconfig, para configurar los parmetros de la tarjeta de red (IP,mascara,DNS,Gateway...) y reiniciamos de nuevo el equipo para que los cambios sean efectivos. Una vez arrancado el servidor, nos aparecer de nuevo el mismo mensaje de bienvenida, pero esta vez con la direccin web a la que tendremos que llamar para ejecutar la administracin del servidor. Welcome to Asterisk@Home ------------------------------------------------For access to the Asterisk@Home web GUI use this URL http://192.168.0.125 For help on Asterisk@Home commands you can use from this command shell type help-aah. [root@asterisk1 root]#

Llegados a este punto ya tenemos nuestro sistema instalado completamente y ahora solo es necesaria la labor de administracin, que como hemos dicho se realiza va web. Abrimos nuestro navegador preferido (libre a ser posible, y tecleamos la direccin web del servidor. Nos pedir una validacin de usuario, esta tambin viene definida por defecto (maint/password) as que tendremos que cambiarla tambin. Una vez validados tendremos acceso a una serie de aplicaciones de gestin: AMP, VoiceMail, CMR, Flash Panel. Pero de momento para el objetivo de este artculo nos centraremos en el AMP (Asterisk Management Portal). Dentro de esta aplicacin podremos administrar el servidor en todos sus aspectos, incluso editando va texto los ficheros de configuracin. Estos ficheros, fundamentalmente sip.conf y extensions.conf, seran necesarios modificarlos en determinadas configuraciones, pero para el ejemplo por defecto se dejarn tal cual estn, ms adelante veremos ciertas optimizaciones que sern necesarias hacer. Arriba a la derecha, veremos el men SETUP y dentro de l, el elemento EXTENSIONS, a travs de un sencillo formulario web, podremos dar de alta y modificar a nuestro gusto las cuentas de usuario y extensiones de telfono que queramos crear. amp Por tanto, creamos un par de cuentas de usuario para pruebas y salvamos los cambios. Hay que tener ciertas cosas en cuenta a la hora de crear las cuentas. Si nuestros usuarios van a estar tras un router es necesario abrir en nuestro router los rangos de puertos UDP del 10000 al 20000, y el puerto UDP 5060 para la comunicacin entre clientes. Tambin es conveniente modificar el fichero de configuracin sip.conf y aadir lo siguiente en el apartado [general]: [general] port = 5060 ; Port to bind to (SIP is 5060) bindaddr = 0.0.0.0 ; Address to bind to (all addresses on machine) externip = XX.XX.XX.XX ; nuestra ip pblica localnet=192.168.0.0/255.255.255.0 ; nuestro rango de red interna Salvado esto y reiniciado Asterisk@home, tendremos el servicio dispuesto para comunicarnos. Hasta ahora hemos estado viendo la instalacin y configuracin del servidor. Ahora llega el turno de los clientes. Para ello, existen diversos telfonos soft, pero en particular hemos elegido uno que si bien no es libre, es gratis. Se trata de X-lite Softphone. amp Es un telfono particularmente atractivo y que cumpla las necesidades que tenamos: fcil gestin del buzn de voz, varias lineas activas, agenda.... Habr mejores, pero este nos iba bien. La configuracin no es complicada, los nicos datos que necesitamos son los relativos al nombre de usuario, la contrasea y el nombre/ip del servidor al que vamos a conectar, nada ms. Y finalmente, solo nos faltar comprobar la conexin haciendo una llamada al uno de los nmeros que hemos creado o al 7777 que simular una llamada para verificar que funciona bien la lnea. Para usar el buzn de voz hemos de llamar al *98 y seguir las instrucciones de la locucin. Por defecto todos los sonidos y voces son en ingls, pero es sencillo sustituirlos por otros en espaol, es cuestin de descargarse el paquete de voces en espaol y copiarlos en la carpeta /var/lib/asterisk/sounds, sustituyendo los que vienen por defecto. Tan simple como eso. Pues hasta aqu esta aproximacin a la VOIP, que espero sirva a alguien para que se anime a probar este nuevo reto.

Como instalar Asterisk 1.4 y FreePBX 2.3.1 in Ubuntu Linux Paso a Paso
<li>Procedimiento para Instalar Asterisk VoIP en Ubuntu Server <li> <li> <li> <li> Linux Version : Ubuntu Server Linux Kernel : 2.6.22 Conmutador de VoIP : Asterisk V.1.4.13 Admninistrador Web : FreePBX 2.3.1

<li> Particion de Ejemplo <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> /boot 100 MB /var 4 GB /home 6 GB /usr 12 GB / 6 GB Swap 600 MB Memoria RAM: 512 MB CPU: Intel(R) Pentium(R) 4 CPU 3.06GHz Ethernet: 10/100 VT6102 Rhine-II FXO Card: 1 FXO Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface FXS card: Sound: VT8233/A/8235/8237 AC97 Audio Controller Bluetooth: WiFi:

<li> Other Devices:

<li> ***************************************************************************** ******************* <li> ***************************************************************************** ******************* <li> ******************************** Primera Parte - Instalacion de Paquetes <li> ***************************************************************************** ******************* <li> ***************************************************************************** *******************

<li> Despues de instalar Ubuntu cambiar password a root sudo passwd root password <li>Editar /etc/apt/sources.list y activar los siguientes repositorios sudo editor /etc/apt/sources.list <li>descomentar y guardar deb http://us.archive.ubuntu.com/ubuntu/ dapper universe

deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe <li> 1 Instalar librerias para acceso via SSH sudo apt-get install openssl libssl-dev ssh <li> 2 librerias de compilacion de software, sirve para compilar Asterisk sudo apt-get install gcc make g++ <li> 3 verificar que versiones de kernel tengo instalado en el servidor uname -a <li> me regresa algo como esto Linux MexRom 2.6.22-14-generic <li>1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux <li> 4 buscar las fuentes del kernel con las versiones instaladas en el server apt-cache search 2.6.22 <li> 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) sudo apt-get install linux-headers-2.6.22-14-generic linux-image-2.6.22-14-generic linuxsource-2.6.22 <li> 6 sinstalamos algunas utiler?as 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 sudo apt-get install nmap lynx emacs21 <li> 7 festival son paquetes para el manejo de voz sudo apt-get install festival festival-dev <li> 8 para poder usar la consola de asterisk sudo apt-get install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev <li> 9 librerias de compresion sudo apt-get install zlib1g zlib1g-dev <li> 10 librerias requeridas por el servicio web de FreePBX sudo apt-get install bison bison-doc <li> 11 librerias requeridas por el servicio web de FreePBX sudo apt-get install libxml2 libxml2-dev <li> 12 librerias requeridas por el servicio web de FreePBX sudo apt-get install libtiff4 libtiff4-dev <li> 13 librerias requeridas por el servicio web de FreePBX sudo apt-get install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev <li>en caso que se vaya a usar una tarjeta sangoma, se requiere instalar flex para que funcione con el driver wanpipe sudo apt-get install flex <li> 14 librerias requeridas por Asterisk para el manejo de ayuda y de extraccion de archivos del CVS sudo apt-get install subversion curl doxygen <li> 15 librerias requeridas por el servicio web de FreePBX sudo apt-get install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl

<li> 16 Servidor web para FreePBX sudo apt-get install apache2 <li> 17 librer?as requeridas por el servicio web de FreePBX sudo apt-get install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5gd php-db <li> 18 base de datos para el CDR y FreePBX sudo apt-get install mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev <li> despues de instalar MySQL probablemente nos pedir? una configuracin como la siguiente Pedira un password de configuracion para el usuario root de mysql Configurar como Internet Site localhost.localdomain

<li> ***************************************************************************** ******************* <li> ***************************************************************************** ******************* <li> ******************************** 2da Parte.. ******************************** <li> ***************************************************************************** ******************* <li> ***************************************************************************** *******************

<li> 19 creamos un repositorio local para almacenar los archivos fuente de asterisk mkdir ~/asterisk cd asterisk <li> Obtenemos los archivos y os almacenamos en el directorio creado <li> 20 gateway entre freepbx y asterisk wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz <li> 21 navaja suiza para manejo de archivos de sonido wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.0.0.tar.gz wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz <li> 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 wget http://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx-2.3.1.tar.gz <li> 23 Obtenemos los archivos para Asterisk wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.13.tar.gz wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.5.1.tar.gz wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.1.tar.gz wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.4.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-ulawcurrent.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-ulawcurrent.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-ulaw.tar.gz <li> Nos ubicamos en el directorio /usr/src

cd /usr/src/ <li> 24 Instalamos el Editor de Sonidos de Asterisk sudo tar -xvzf ~/asterisk/lame-3.97.tar.gz cd lame-3.97 sudo ./configure --prefix=/usr --sysconfdir=/etc sudo make && sudo make install <li> 25 Instalamos SOX, utiler?a para manejar los sonidos en Asterisk cd /usr/src/ sudo tar -xzvf ~/asterisk/sox-14.0.0.tar.gz cd sox-14.0.0 sudo ./configure sudo make sudo make install <li> 26 Instalamos el gateway entre Asterisk y FreePBX cd /usr/src/ sudo tar -xzvf ~/asterisk/asterisk-perl-0.10.tar.gz cd asterisk-perl-0.10 sudo perl Makefile.PL sudo make all sudo make install

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

<li> Comenzamos a instalar la Base de Datos para el Administrador Web FreePBX y para los CDR. <li> Iniciacilizacion de la implementaci?n de Bases de Datos en Mysql para Asterisk <li> Accedemos a MySQL si no han configurado su password de root mysql, solo presionar Enter de lo contrario introducir el password mysql -u root -p ENTER show databases; use mysql ; <li> cambiamos los password de root en caso de que el usuario root de mysql no tuviera password update user set password = password("PaSsWoRd") where user = "root"; <li> Creamos el usuario para la base de datos del conmutador y del cdr grant all privileges on *.* to asterisk@localhost identified by "4st3r1sk"; flush privileges; exit <li> Nos validamos con el usuario de Asterisk creado mysql -u asterisk -p <li> Creamos las bases de datos dentro de la consola de mysql create database asteriskcdrdb; create database asterisk; exit <li> Pasamos el esquema y la informacion de los scripts de bases de datos por default de FreePBX mysql -u asterisk -p asterisk < /usr/src/freepbx-2.3.1/SQL/newinstall.sql

mysql -u asterisk -p asteriskcdrdb < /usr/src/freepbx-2.3.1/SQL/cdr_mysql_table.sql <li> Termina la configuracion de Bases de Datos en Mysql para Asterisk

<li> 28 creamos el usuario y grupo que manejara los procesos de asterisk, cambiamos su password y creamos el directorio de asterisk sudo groupadd asterisk sudo useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk sudo passwd asterisk sudo mkdir /var/run/asterisk sudo chown asterisk:asterisk /var/run/asterisk

<li> 29 Cambiamo el usuario propietario de Apache sudo emacs /etc/group <li> para guardar presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c www-data:x:33:asterisk <li> ejecutamos el comando find para ubicar el archivo de configuracion de apache find /etc/apache2/ -type f | xargs grep Group

<li> 30 editamos el archivo de apache sudo emacs /etc/apache2/apache2.conf <li>en emacs para buscar, presionar Ctrl+s e introducir un patron de busqueda en este caso por ejemplo www

<li> 31 cambiar el usuario y grupo de www-data a asterisk User www-data Group www-data <li> cambiar por User asterisk Group asterisk <li> guardamos para guardar es presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c

<li> 32 cambiamos los permisos para el directorio de sesiones de PHP sudo chown -R asterisk /var/lib/php5

<li> 33 edicion de php para aumentar el tamano de archivos que se suben al servidor web y modificamos los siguientes valores sudo emacs /etc/php5/apache2/php.ini upload_max_filesize = 32M max_execution_time = 120 max_input_time = 120

<li> 34 creamos un directorio para la instalacion de los paquetes de Asterisk sudo mkdir /usr/src/asterisk cd /usr/src/asterisk

<li> 35 libreria o drivers para tarjetas line PRI sudo tar zvxf ~/asterisk/libpri-1.4.1.tar.gz

<li> 36 librerias o drivers para tarjetas ZAPTEL

sudo tar zvxf ~/asterisk/zaptel-1.4.5.1.tar.gz

<li> 37 El PBX Asterisk sudo tar zvxf ~/asterisk/asterisk-1.4.13.tar.gz

<li> 38 utilerias de asterisk(cdr, rep music on hold. etc) sudo tar zvxf ~/asterisk/asterisk-addons-1.4.4.tar.gz

<li> 39 archivos de IVR por default sudo mkdir asterisk-sounds cd asterisk-sounds sudo tar zvxf ~/asterisk/asterisk-core-sounds-en-ulaw-current.tar.gz sudo tar zvxf ~/asterisk/asterisk-extra-sounds-en-ulaw-current.tar.gz sudo tar zvxf ~/asterisk/asterisk-moh-freeplay-ulaw.tar.gz

<li> 40 compilacion de PRI cd /usr/src/asterisk/libpri-1.4.1 sudo make & sudo make install

<li> 41 compilacion de los drivers de Zaptel para el funcionamiento de la tarjeta FXO cd /usr/src/asterisk/zaptel-1.4.5.1 sudo make clean sudo make sudo make install sudo make config

<li> 42 compilacion de Asterisk cd /usr/src/asterisk/asterisk-1.4.13 sudo make clean sudo ./configure sudo make sudo make install sudo make samples sudo make progdocs

<li> 43 compilacion de Utilerias de Asterisk cd /usr/src/asterisk/asterisk-addons-1.4.4 sudo make sudo make install <li> 44 Copiamos todos los archivos de sonidos descomprimidos previamente al directorio por default de sonidos de asterisk sudo cp -rf /usr/src/asterisk/asterisk-sounds/* /var/lib/asterisk/sounds/

<li> 45 reiniciamos el servidor web apache sudo /etc/init.d/apache2 restart <li> 46 Editamos el archivo de configuracion de Asterisk sudo emacs /etc/asterisk/asterisk.conf <li> cambiamos el directorio de RUNASTERISK=/var/run <li> a RUNASTERISK=/var/run/asterisk

<li> 47 asignamos los permisos sudo chown -R asterisk:asterisk /var/run/asterisk

<li> 48 Iniciar Asterisk para poder hacer la instalacion de FreePBX sudo asterisk start

<li> Verificar que Asterisk se haya inicido ps aux | grep asterisk root 14992 0.2 1.7 22044 7752 ? Ssl 07:14 0:00 asterisk start

<li> continuamos con la instalacion de FreePBX cd /usr/src/freepbx-2.3.1/ <li> Instalamos los paquetes para gestion de bases de datos en PHP sudo pear install db <li> si no encontrara el paquete db, bajarlo de internet e instalarmo manualmente: sudo pear install db.17.0.0.tgz sudo mkdir /var/www/asterisk/ sudo mkdir /var/www/asterisk/cgi-bin sudo chown asterisk:asterisk /var/www/asterisk sudo ./install_amp <li> Despues de ejecutar install_amp pedira los valores para crear el archivo de configuracion. <li> En primer lugar introducir el usuario de la base de datos que se creo previamente asteriskuser asterisk <li> Introducir el password de l usuario de la base de datos para asterisk que se creo Enter your PASSWORD to connect to the 'asterisk' database: amp109 4st3r1sk <li>Introducir el nombre del servidor de la base de datos, si esta de forma local intoducir localhost de lo contrario introducir la IP o nombre de dominio del servidor de base de datos Enter the hostname of the 'asterisk' database: localhost localhost <li>Introducir el nombre de usuario del administrador que se usara como admin del AMI de Asterisk Enter a USERNAME to connect to the Asterisk Manager interface: admin asterisk <li> Password del usuario admin de AMI, importante para conectar aplicaciones terceras a Asterisk Enter a PASSWORD to connect to the Asterisk Manager interface: amp111 4st3.r1sk <li> Ruta de instalacion del Servidor de Asterisk Enter the path to use for your AMP web root: /var/www/html /var/www/asterisk <li>Direccin IP del servidor de Voz sobre IP Enter the IP ADDRESS or hostname used to access the AMP web-admin: xx.xx.xx.xx 192.168.1.2 <li> Password para poder operar FOP Enter a PASSWORD to perform call transfers with the Flash Operator Panel:

passw0rd 4st3r1sk.01 <li>Solo teclear enter para aceptar la opcion por default Use simple Extensions extensions admin or separate Devices and Users deviceanduser? extensions <li>Solo teclear enter para aceptar la opcion por default Enter directory in which to store AMP executable scripts: /var/lib/asterisk/bin <li>Solo teclear enter para aceptar la opcion por default Enter directory in which to store super-user scripts: /usr/local/sbin

<li> si marcara algun error el script de install_amp revisar usuarios de base de datos, librerias de php y de mysql, reiniciar apache y peardb, php-db <li> en caso de que tuviera un error al ejecutar FreePBX puede reconfigurarlo pero previamente eliminar el archivo de configuracion en /etc/amportal.conf

<li> 49 creamos la carpeta donde se almacenaran los sonidos del IVR sudo mkdir /var/lib/asterisk/sounds/custom <li> 50 configuramos los permisos para el directorio de Asterisk sudo chown -R asterisk:asterisk /var/lib/asterisk/ <li> Paramos previamente la ejecucion de asterisk ps aux | grep asterisk root 14992 0.0 1.7 22524 7892 ? Ssl 07:14 0:00 asterisk start sudo kill -s 9 14992 <li>Editamos el archivo siguiente y agregamos una linea como la que se menciona sudo emacs /etc/default/asterisk RUNASTERISK=yes <li> 51 ejecutamos amportal sudo amportal start <li> verificamos que se haya ejecutado correctamente amportal sudo ps aux | grep asterisk <li> y deberiamos ver algo parecido root 15759 0.0 0.1 3864 736 pts/2 S 07:30 0:00 /bin/bash /usr/sbin/safe_asterisk -U asterisk G asterisk asterisk 15764 2.0 1.9 22436 8552 pts/2 Sl 07:30 0:00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c asterisk 15811 0.0 0.1 1752 496 pts/2 S 07:30 0:00 sh /var/www/asterisk/panel/safe_opserver asterisk 15812 14.0 1.8 11072 8340 pts/2 S 07:30 0:00 /usr/bin/perl -w /var/www/asterisk/panel/op_server.pl

<li> 52 Abrir en un navegador de preferencia Firefox la direccion del servidor Asterisk por ejemplo que el servidor corra en una IP 192.168.1.2 http://192.168.1.2/asterisk/admin/ <li> Por default no nos pedira un password, pero hay que ir a administradores y cambiar el nombre de usuario y password del administrador <li> Nos desconectamos del servidor web de FreePBX <li> 53 Posteriormente editamos el archivo amportal.conf y cambiamos el valor de AUTHTYPE a

database sudo emacs /etc/amportal.conf AUTHTYPE=database <li> 54 Volvemos a entrar al servidor de FreePBX y ahora nos pedira un login y password, introducir los configurados login:admin password:4st3r1sk <li>Ahora tenemos habilitado El conmutador de Voz Sobre IP Asterisk <li>Y el administrador Web de Asterisk FreePBX. <li> 55 Ir a la opcion de "Module Admin", seleccionar Check Update Online y descargar modulos de administracion de Asterisk necesarios, se requiere conexion a internet <li> 56 Si no estuviera habilitado el Panel, ir al directorio de instalacion de freepbx, copiar los archivos al directorio web, cambiar permisos, reiniciar freepbx cd /usr/src/freepbx-2.3.1 sudo cp -rf amp_conf/htdocs_panel/* /var/www/asterisk/panel sudo chown asterisk.asterisk /var/www/asterisk/ /code

Vous aimerez peut-être aussi