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)Servidor en casa
Hoy estaba hablando con un amigo al que considero un “power user”. Es músico y le gusta dedicarse a su música y a su familia, pero tiene una innegable vocación por embrollarse con las computadoras. Tiene una computadora de escritorio, una laptop y un router wi-fi para conectarse con Internet. Todo con Windows. Una combinación letal y realmente poco recomendable. Si algún hacker penetra la red wi-fi se mete, además, en la red privada de la casa. De terror.
Filed under Ser Geek | Comment (0)Internet Antisocial
Internet me a convertido en un ser antisocial. Antes lo era, en algún grado. Ahora voy bordeando los peligrosos precipicios que me convertirían en un ogro pero, por suerte, esta vez no estoy sólo.
Filed under Ser Geek | Comment (0)Por qué el iPad no será un éxito

- Image via Wikipedia
La primera razón por la que creo que los iPad no serán un éxito es porque no son una gran innovación sino una idea extendida, un iPod Touch más grande. Apple nos tiene acostumbrados a mejores cosas. Es un lindo aparato pero me parece que tiene el mismo destino que el Apple TV: a menos que la idea se mejore no será un éxito.
Filed under Ser Geek | Comment (0)Me pregunto si ya es tiempo de decirlo…
Estaba viendo los nuevos chips de Intel y pensaba para mis adentros: otro ladrillo para nuestra pared… y para cuándo les contaremos a las personas lo que realmente estamos haciendo? Es que los Geeks dirigimos la tecnología para cumplir con nuestros planes y, claro está, siempre lo hacemos con beneficios residuales para que el resto del público nos financie. Continue reading »
Filed under Ser Geek | 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)Energía solar… será por lo menos accesible?

- Image by Getty Images via Daylife
Desde hace un montón sueño con tener una casa alimentada con energía solar. Por lo menos pensando en alimentar algunos subsistemas que pueden funcionar bien con energía eléctrica. De hecho, una de las cosas que se tienen que hacer más accesibles son los paneles de distribución eléctrica que permiten tomar electricidad de la fuente más barata. Existen, pero son imposibles de caros y están pensados solamente para grandes industrias. Una de las condiciones más importantes para un hogar normal que tiene acceso a un sistema conectado de electricidad es poder elegir entre distintas fuentes. Continue reading »
Filed under Ser Geek | Tags: futuro, hogar, sociedad | Comment (0)Más dolor para los fans de Star Trek

- Image via Wikipedia
Hace unos días tuve la desgracia de ver la última película de Star Trek. Una terrible pena ver que otra vez se ha recurrido a un viaje temporal que hace un personaje para encontrarse en su pasado para enderezar las cosas en una trama que por lo menos es floja. Continue reading »
Filed under Random | Tags: admin, cine, geek, internet | Comment (0)