Instalación de Asterisk y FreePBX en Ubuntu / Debian
Esta es una traducción de la guía que publiqué en distintos medios para instalar Asterisk en Debian / Ubuntu.
Estos procedimientos fueron probados en Hardy Heron, Intrepid Ibex, Jaunty Jackalope (un paso agregado al final), Karmic Koala y en Debian Lenny.
Antes de instalar, cosas para tener listas
Instalar el servidor con el método de preferencia. Se puede marcar LAMP cuando se instalen los paquetes. Esto agrega al Linux el Apache, MySQL y PHP. Entramos al servidor y nos cambiamos al super-usuario
sudo su
Para estar seguros acerca de MySQL y PHP hacer esto
apt-get install php5-mysql libapache2-mod-php5 mysql-server
Puede que haga falta configurar apache apropiadamente, o al menos asegurarse de que el php5 está habilitado. En Intrepid Ibex, Jaunty o Krmic esto no hace falta:
a2enmod php5
Para que funcione la localización editar /etc/php5/apache2/php.ini and modify as follow (leny/sid):
; PHP's built-in default is text/html default_mimetype = "text/html" ;default_charset = "ISO-8859-1" default_charset = "utf8"
La última línea fuerza la página de caractéres en utf8 para las páginas php (sobreescribe la página de caracteres del apache).
De http://www.freepbx.org/trac/wiki/UbuntuServer
Tuve problemas con otros sitios php i18n php y esta modificación funcionó para ellos
Otros elementos de configuiración que deberías cambiar en el archivo Php.ini para hacer feliz al FreePBX.
; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 100M ; Maximum amount of memory a script may consume (16MB)
Instalar Asterisk
apt-get install asterisk asterisk-mysql asterisk-mp3 php-db php5-gd php-pear sox curl
No hay razón para instalar zaptel en kernels 2.6 o superiores porque el dispositivo de timing lo provee el kernel a menos que, por supuesto estemos usando una placa que lo requiera. Ztdummy ya no es necesario.
En Karmic se instalará la versión 1.6 de Asterisk, en las demás la versión 1.4.
Yo instalé además estos sonidos y avisos en español
apt-get install asterisk-prompt-es asterisk-sounds-extra
Hay dos aproximaciones para resolver el problema de los permisos, uno es agregar el grupo asterisk al usuario www-data que es el usuario por defecto del apache.
1. Mantener el usuario as www-data
adduser www-data asterisk
De esta forma, FreePBX da un error copiando /usr/share/asterisk/bin/agi-bin. Cambiamos el dueño del archivo de esta forma
chown www-data.asterisk -R /usr/share/asterisk
Después de instalar FreePBX hace falta cambiar el usuario en amportal.conf. Esto está en la sección “Instalación de FreePBX”.
Salteamos a la sección 3.
2. Cambiar el apache para que funcione con el usuario asterisk. Esta solución es la más fácil si en este servidor sólo tendremos funcionando el Asterisk.
Editar el archivo /etc/apache2/envvars y cambiar el usuario a asterisk.
#export APACHE_RUN_USER=www-data #export APACHE_RUN_GROUP=www-data export APACHE_RUN_USER=asterisk export APACHE_RUN_GROUP=asterisk
Si uno cambia del método 1 al 2, quedan archivos a nombre de un usuario distinto y pueden aparecer erroes. Se puede borrar los archivos de la sesión en /var/lib/php5 o cambiar el dueño de los archivos a asterisk.
3. Reiniciar el Apache
apache2ctl graceful
Para hacer que se inicie el servidor FOP, cambié el shell por defecto para el usuario asterisk que estaba puesto en false:
usermod -s /bin/bash asterisk
Por lo que entendí, el shell predeterminado para los deribados Debian es el Dash, y para toda esta implementación se espera el Bash como shell.
En /usr/sbin/safe_asterisk cambié la variable BACKGROUND que estaba en 0 a 1.
Instalación de FreePBX
Bajar el FreePBX de http://www.freepbx.org
cd /tmp wget http://mirror.freepbx.org/freepbx-2.5.1.tar.gz cd /usr/src tar xvfz /tmp/freepbx-2.5.1.tar.gz cd freepbx-2.5.1
Lo probé también con la versión 2.6 sin problemas, me falta el 2.7 que recién salió.
Preparar la base de datos. Si tu instalación tiene clave de root para el mysql, como lo pide cuando se instala, entonces tendrás que agregar la opción ‘-p’ en todos los comandos que empiezan con mysql. Por ejemplo, el primer comando sería “mysqladmin create asterisk -p”. Cuando lo pide, poner la contraseña adecuada:
mysqladmin create asterisk mysqladmin create asteriskcdrdb mysql asterisk < SQL/newinstall.sql mysql asteriskcdrdb < SQL/cdr_mysql_table.sql mysql GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109'; GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109'; flush privileges; quit
MUY IMPORTANTE ANTES DE INSTALAR FREEPBX: Hacer una copia de /etc/asterisk/modules.conf. El FreePBX reescribe el archivo y estropea la instalación de Asterisk. Al reiniciar el Asterisk después de instalar el FreePBX, el Asterisk se cierra sin ningún mensaje.
cp /etc/asterisk/modules.conf ~/asterisk-modules.conf
Comenzar la instalación de freepbx:
./install_amp
Pongo la lista de preguntas para contestar, lo demás puede quedar con sus valores por defecto
AMPWEBROOT=/var/www/freepbx
OJO: Si ponemos FreePBX en un subdirectorio, el panel puede no funcionar correctamente en las páginas administrativas. Subí el error en FreePBX y lo corrigieron, pero no me acuerdo en qué versión.
Hay dos formas de hacerlo andar
1. Arreglar el error
Tocar el archivo /var/www/freepbx/admin/views/panel.php
// where it reads // '<iframe width="97%" height="600" frameborder="0" align="top" src="../../panel/index_amp.php?context='.$deptname.'"></iframe>'. // you should erase one step back in the uri, as it shows here '<iframe width="97%" height="600" frameborder="0" align="top" src="../panel/index_amp.php?context='.$deptname.'"></iframe>'.
Vamos al paso 3.
2. Crear un servidor virtual y acceder a la instalación desde otra dirección http://freepbx
Si tienes acceso al dns, o al archivo hosts de tu computadora puedes agregar una entrada para identificar a tu servidor en el Apache. Editar el archivo /etc/apache2/sites-available/freepbx y poner esto.
################# Named VirtualHosts
<VirtualHost *:80>
ServerName freepbx
ServerAlias freepbx
ServerAdmin yourname@yourdomain.com
ErrorLog /var/log/apache2/freepbx.error.log
CustomLog /var/log/apache2/freepbx.access.log combined
DocumentRoot /var/www/freepbx
<Directory /var/www/freepbx>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
AllowOverride All
Allow from all
</Directory>
<Directory /var/www/freepbx/admin>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile freepbx-passwd
Require user admin
</Directory>
</VirtualHost>
##################################################################
Hacemos un vínculo simbólico (bah, un symlink) para que esté disponible
ln -s /etc/apache2/sites-available/freepbx /etc/apache2/sites-enabled/099-freepbx
y agregamos un archivo de accesos si lo deseamos
htpasswd -c /etc/apache2/freepbx-passwd admin
3. Reiniciamos el Apache
/etc/init.d/apache2 restart
Ahora recuperamos la copia de seguridad que hicimos de modules.conf
cp ~/asterisk-modules.conf /etc/asterisk/modules.conf
Si se nos ha olvidado hacer una copia de seguridad, podemos acudir a /var/cache/apt y buscamos por ahí el archivo que viene en el paquete. O también podemos deshabilitar las librerías que impiden que el asterisk funcione. Para deshabilitar una librería podemos agregar estas líneas en /etc/asterisk/modules.conf antes de la directiva global.
noload =>app_directory.so noload =>res_adsi.so
La directiva autoload cargará automáticamente cualquier cosa que esté en el directorio de las librerías (/usr/lib/asterisk/modules) descontando las que figuren expresamente para no ser cargadas. En Ubuntu Hardy Heron, también debemos deshabilitar
noload => app_voicemail_imap.so noload => app_voicemail_odbc.so
De http://www.voip-info.org/wiki/view/Asterisk+modules
app_directory.so => (Extension Directory)<BR> res_adsi.so: Resource for ADSI applications. See http://www.voip-info.org/wiki/view/ADSI
Si mantuvimos al Apache corriendo como www-data agregamos estas líneas al final de /etc/amportal.conf
AMPASTERISKUSER=www-data AMPASTERISKWEBUSER=www-data AMPASTERISKGROUP=asterisk
Para iniciar todo esto al final de todo, agregamos estas líneas en /etc/rc.local antes del exit 0.
/usr/local/sbin/amportal start exit 0
Opcional: Asterisk se inicia por su cuenta después de la instalación por paquetes. Si deseas correr el Asterisk bajo safe_asterisk y administrado por amportal, deshabilita el asterisk de esta manera
update-rc.d -f asterisk remove
Agregamos un symlink y cambiamos los permisos para hacer que las grabaciones del sistema estén disponibles para los IVRs, o preatendedores y menúes.
ln -s /var/lib/asterisk/sounds/custom /usr/local/share/asterisk/sounds/ chown -R asterisk:asterisk /usr/local/share/asterisk/ chmod -R 755 /usr/local/share/asterisk/
/usr/share/asterisk y subdirectorios deben pertenecer por el usuario y el grupo asterisk o aparecen errores en el FreePBX acerca de permisos en el abi-bin. Podemos verificar los permisos
$ ls -l /usr/share | grep asterisk drwxr-xr-x 8 asterisk asterisk 4096 2009-02-11 22:59 asterisk
Si no aparece como arriba, se arreglan así
$ sudo chown -R asterisk:asterisk /usr/share/asterisk
Si usas Ubuntu 9.04 (Jaunty Jackalope) o Karmic Koala necesitarás agregar las siguientes líneas en /etc/apache2/httpd.conf:
DocumentRoot /var/www
y reiniciar apache
apache2ctl restart
Podemos encontrar la interfaz del servidor en http://ip-del-servidor/freepbx.
Para la versión 1.6 de Asterisk hay que revisar el archivo /etc/asterisk/manager.conf o crear un archivo en /etc/asterisk/manager.d/admin.conf y revisar que los permisos de escritura y lectura están completos para el usuario admin
read = system,call,log,verbose,command,agent,user,config,originate,read,write write = system,call,log,verbose,command,agent,user,config,originate,read,write
Las versiones en inglés las publiqué en Ubuntu y en FreePBX
https://wiki.edubuntu.org/installingFreepbx
http://www.freepbx.org/trac/wiki/UbuntuServerIntrepid
También lo puse en los foros
http://ubuntu-ky.ubuntuforums.org/showthread.php?p=8298193
Steliosv agregó unas líneas de configuración para el Asterisk 1.6 que copio abajo, voy a agregarlas en las páginas anteriores.
since i was greatly helped by this post i thought i’d add that if you upgrade to asterisk 1.6 you need to create a new anything.conf file in order for freepbx (2.5.x) to work. i created the file /etc/asterisk/manager.d/admin.conf with the contents
[admin]
secret = password
read = system,call,log,verbose,command,agent,user,config, originate,read,write
write = system,call,log,verbose,command,agent,user,config, originate,read,write
for googling reference this fixes the error in
/var/log/asterisk/messages
manager.c: 127.0.0.1 tried to authenticate with nonexistent user ‘admin’
and
manager.c: 127.0.0.1 failed to authenticate as ‘admin’
and then this following link helped me figure the problem out.
Ubuntu Netbook Remix
Mi suegra adorada tiene una netbook Asus EeePc 900. Cada tanto venía con su computadora en la mano con el mismo diagnóstico: no se conecta a la red wi-fi. No era un problema técnico, la computadora no tenía ningún problema: simplemente el administrador de redes que viene con esa versión de Xandros es bastante incómodo y muy poco intuitivo. Botón derecho, lista de redes, conección, conectar. A pesar de que la red estaba guardada no la retoma automáticamente cuando aparece disponible. Continue reading »
Filed under UltimateGeek | Comment (0)Escritorio Perfecto
Es un tema que vuelve siempre. Intensos debates. Que le pongo esto, que le saco aquello. Todos los sistemas operativos han tratado de redefinir el bendito escritorio, y francamente, NO ME GUSTA NINGUNO.
Qué es el escritorio:
- Un lugar para ver la aplicación que uno está manejando,
- tener y acceder a otras aplicaciones que uno también maneja,
- tener una idea de qué cosas UNO está haciendo,
- tener una idea de qué cosas LA COMPUTADORA está haciendo o necesita hacer,
- tener un área para ver qué OTRAS cosas están sucediendo,
- y tener un mecanismo para poder integrar todas estas cosas para que -de algún modo- trabajen juntas.
Todo esto tiene que poder verse al mismo tiempo, un poco antes o un poco después, en una zona o en otra, de a cachos o todo junto. No es NADA fácil hacer un escritorio que deje contentos a todos y por eso les paso a contar lo que yo experimenté en cáda aspecto del bendito escritorio.
Filed under UltimateGeek | Comment (0)Ubuntu Karmic Koala… ojo con el server!
Desde hace un tiempo que quiero escribir esta entrada pero, por una cosa o por la otra, no he podido hacerlo. Apenas salido el Karmic Koala lo instalé en tres servidores con resultados dispares. De hecho, en dos de tres tuve que volver a instalar una versión anterior.
Cómo servidor LAMP me pareció muy interesante, sobre todo por la versión 2.6.31 del kernel tiene muchas cosas mejoras en la sección de la red, el filesystem y las placas de video… esas cosas que no son necesarias en un servidor, pero bueno, las mejoras están. De hecho, estoy ya usando la versión 2.6.31 para mis computadoras de escritorio aun cuando no tengo Karmic y es un placer para mis placas de video Intel que andan muy bien. Continue reading »
Filed under NetAdmin, UltimateGeek | Tags: bluetooth, karmic, linux, servidor | Comment (0)Bootear de la red
Una de las cosas más interesantes de Linux es la enorme plasticidad que tiene. Es tremendamente divertido y lo que se puede hacer es imaginar cosas y hacerlas realidad. En este caso, una de las tareas que tenía en mente era aprovechar una conexión de internet que voy a dar de baja. Resulta que por razones de conectividad tengo dos conexiones de internet distintas. Hace poco las dos compañías que me brindaban el servicio se fusionaron y, gracias a que se fusionaron en gran parte, empezaron a funcionar las dos muy mal. Se cortaban al mismo tiempo y esa no es la idea de una conexión de respaldo. Por eso contraté una tercera conexión por la que me dieron un período de prueba gratuito de dos meses. Continue reading »
Filed under Diskless, Ser Geek, UltimateGeek | Tags: admin, geek, linux | Comment (0)Falso polimorfismo en Perl5
Estoy descubriendo este nuevo lenguaje y me resulta apasionante en muchas cosas. Tiene una sintaxis violentamente simplificadora -y a veces inentendible- y excepcionales herramientas para comparar strings y asignar variables. Continue reading »
Filed under UltimateGeek | Tags: admin, geek | Comment (0)Quién está usando mi ancho de banda? iftop tiene la respuesta!
Al fin! Estuve buscando esta herramienta durante mucho tiempo y la encontré un poco por casualidad. Tuve que cambiar la forma de hacer la pregunta, porque cuando uno busca en google justamante: “quién usa mi ancho de banda?” o su equivalente en inglés, francés o alemán, las respuestas apuntan para otro lado.
Aparecen herramientas como Zabbix, o Cacti que son complejas de instalar y apuntan a tener toda la red administrada y tabulada. Y después de mucho gráfico y estudio, no dan una respuesta contundente al momento.
Cómo finalmente me incliné por desestimar las capacidades de resolver problemas de los que buscan herramientas web, empecé a buscar add-ons del IP-Cop en modo consola. Lo siento mucho esa descalificación, pero funcionó inmediatamente: dentro de la apretada lista de herramientas del ipcop encontré varias joyitas dentro de la que destaco el iftop.
Qué hace el iftop? Es como el commando top, que muestra la lista de procesos por orden de consumo -o de lo que uno quiera también-, pero muestra la lista de los destinos que más consumen nuestro ancho de banda en una interfaz.
La sintaxis es así:
user@server:~$ sudo iftop -i eth0
nos muestra
25.0Kb 50.0Kb 75.0Kb 100Kb 125Kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
nexus.local:721 => argos.local:nfs 0.98Kb 25.4Kb 6.67Kb
<= 608b 19.2Kb 5.02Kb
nexus.local:57828 => 71.Red-79-153-95.dyn:57633 0b 1.17Kb 1.80Kb
<= 0b 23.7Kb 33.2Kb
nexus.local:53984 => 105.Red-83-56-199.dy:11562 3.83Kb 4.53Kb 4.81Kb
<= 6.72Kb 11.7Kb 10.4Kb
nexus.local:41218 => 71.Red-79-153-95.dyn:57633 0b 644b 1.11Kb
<= 0b 12.8Kb 20.5Kb
nexus.local:60069 => 83.173.187.14.dyn.us:53793 5.48Kb 5.36Kb 4.85Kb
<= 320b 320b 301b
nexus.local:44273 => 201-255-232-67.mrse.:22246 208b 166b 201b
<= 6.11Kb 4.89Kb 5.51Kb
nexus.local:52139 => 128.Red-79-147-135.dy:6935 3.56Kb 3.94Kb 2.31Kb
<= 832b 790b 492b
nexus.local:48458 => 128.Red-79-147-135.dy:6935 3.21Kb 3.89Kb 4.31Kb
<= 624b 666b 636b
nexus.local:49058 => 105.Red-83-56-199.dy:11562 0b 250b 242b
<= 0b 3.67Kb 3.08Kb
nexus.local:47962 => 81.184.53.206.dyn.us:44636 1.16Kb 1.72Kb 3.79Kb
<= 0b 250b 345b
nexus.local:4444 => 91.191.138.9:www 0b 136b 34b
<= 0b 88b 22b
nexus.local:mdns => 224.0.0.251:mdns 0b 177b 442b
<= 0b 0b 0b
────────────────────────────────────────────────────────────────────────────────
TX: cumm: 934KB peak: 146Kb rates: 18.4Kb 48.7Kb 34.9Kb
RX: 3.25MB 146Kb 15.2Kb 78.9Kb 83.7Kb
TOTAL: 4.16MB 292Kb 33.6Kb 128Kb 119Kb
Por orden de consumo, nos muestra la lista de direcciones que tienen mayor importancia. Localizar un comportamiento anómalo es sencillísimo. Otras herramientas muy interesantes han sabido ser: iptraf e ifstatus, que las recomiendo especialmente. Pude instalarlas en IPCop, Debian, Ubuntu, openwrt de sus repositorios más comunes.
El KDE 4.2.1
Incómodo. Esa es la palabra. Estoy incómodo y totalmente podrido de las reviews de KDE4 que dicen qué lindo que es, y que genial es para un usuario de Gnome probar este entorno gráfico durante unas horas y volver al Gnome para escribir un blog flatulento y no tocar más el KDE4 por el resto del año.
Claro, que por lo menos ya no estoy aterrorizado de ver que los desarrolladores de mi entorno favorito estén llevándolo directo al despeñadero. Despeñadero es ese precipicio desde el cual las peñas caen y se rompen. Y la vieja roca del KDE estaba en el fondo, hecha pedazos. Con esta versión la cosa luce un poco más promisoria y puedo volver a respirar.
Filed under Howtos, Random, UltimateGeek | Tags: kde | Comment (0)La Línea de Comando
Lo primero que viene a mi mente cuando pienso en la línea de comando es que puedo administrar una computadora rápidamente y con gran contundencia aún en una conexión muy lenta. Funciona de mil maravillas. Cualquier lego que nos ve aporreando el teclado en un lenguaje totalmente críptico piensa que somos los amos de la matriz y eso le da un toque extra. Pero la línea de comandos es mucho, mucho más que eso.
Filed under UltimateGeek | Tags: desarrollo, geek, linux | Comment (0)Pasar de XEN a KVM
Por ahora la cosa funciona, pero realmente la parí durante todo el día. Me cansé del XEN. Lo que más me jode es cargar un kernel especial y poner a las máquinas virtuales el kernel mapeado. A mi lo que me pasa con el XEN instalado bajo HARDY es que cuando tengo mucha actividad de disco rígido tengo un kernel panic. No es chiste, es muy incómodo.
Filed under Howtos, UltimateGeek | Tags: geek | Comments (2)