Instalar Asterisk y freePBX en Debian

Imagen de RazaMetaL

Asterisk es un PBX por software que permite la comunicacion VoIP desde y hacia la telefonía publica. Todas su ventajas las pueden encontrar listadas en http://www.asterisk.org/features .

freePBX es un GUI via browser que permite manejar varias de las características de Asteris de una forma amigable y sencilla.

El presente manual pretende instalar desde la fuentes Asterisk y freePBX en Debian. El mismo procedimiento debería funcionar para otras distribuciones. Manos a la obra:

Antes de empezar debemos tener instaladas las siguientes dependencias:

Para Asterisk:

ncurses
ncurses-dev
openssl
libcurl3-openssl-dev
zlib-bin
zlib1g-dev
bison
bison-1.35

Para freePBX:

libxml2-utils
libxml2-dev
libtiff4
libtiff4-dev
lame
liblame0
liblame-dev
apache2
apache2-dev
mysql-client
libmysqlclient15-dev
mysql-server
php5 (tambien puede ser php4)
php-pear
php5-gd
php5-mysql
php5-cli
linux-source-2.6.15 (es la version que yo tengo en mi Debian Etch)
perl
libaudiofile-dev
curl
sox
sox-dev

1- Instalamos los siguientes modulos para perl:

perl -MCPAN -e "install Net::Telnet"
perl -MCPAN -e "install IPC::Signal"
perl -MCPAN -e "install Proc::WaitStat"
aptitude install mime-construct

2- Instalamos asterisk-perl

wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
tar zvxf asterisk-perl-0.08.tar.gz
cd asterisk-perl-0.08
perl Makefile.PL
make all
make install

3- Modificamos la configuracion de php para que acepte upload de archivos de hasta 20MB, los archivos de audio que utilizaremos para la musica en espera:

vi /etc/php5/apache2/php.ini

; Maximum allowed size for uploaded files.
upload_max_filesize = 20M

4- Descargamos los paquetes que vamos a utilizar durante el proceso de instalación:

cd /usr/src
wget http://ftp.digium.com/pub/libpri/libpri-1.2.2.tar.gz
wget http://ftp.digium.com/pub/zaptel/zaptel-1.2.5.tar.gz
wget http://ftp.digium.com/pub/asterisk/asterisk-1.2.6.tar.gz
wget http://ftp.digium.com/pub/asterisk/asterisk-addons-1.2.2.tar.gz
wget http://ftp.digium.com/pub/asterisk/asterisk-sounds-1.2.2.tar.gz
wget http://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx-2.0.1.tar.gz

tar zvxf libpri-1.2.2.tar.gz
tar zvxf zaptel-1.2.5.tar.gz
tar zvxf asterisk-1.2.6.tar.gz
tar zvxf asterisk-addons-1.2.2.tar.gz
tar zvxf asterisk-sounds-1.2.2.tar.gz
tar zvxf freepbx-2.0.1.tar.gz

5- Creamos un grupo y usuario asterisk:

groupadd asterisk
useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk
mkdir /var/run/asterisk

6- Instalar Asterisk:

cd /usr/src/libpri
make && make install

cd /usr/src/zaptel
make && make install

cd /usr/src/asterisk
make clean && make && make install && make samples

cd /usr/src/asterisk-sounds
make && make install

cd /usr/src/asterisk-addons
make install

Listo, Asterisk ya esta instalado. Ahora vamos a proceder a instalar freePBX.

1- Configuramos mysql, creamos las bases de datos y creamos las tablas, recuerden modificar la contraseña del usuario de la base de datos:

/usr/bin/mysql_install_db
/etc/init.d/mysql start
mysqladmin -u root password 'superpassword'
mysqladmin create asteriskcdrdb --password=superpassword
mysql --user=root --password=superpassword asteriskcdrdb < /usr/src/freepbx-2.0.1.tar.gz/SQL/cdr_mysql_table.sql
mysqladmin create asterisk --password=superpassword
mysql --user root --password=superpassword asterisk < /usr/src/freepbx-2.0.1.tar.gz/SQL/newinstall.sql

2- Configuramos los permisos de acceso a las bases asteriskcdrdb y asterisk creadas en el párrafo anterior, el usuario y contraseña por default es asteriskuser y amp109 respectivamente, esto puede ser modificado de acuerdo a sus necesidades:


mysql --user root --password=superpassword
mysql> GRANT ALL PRIVELEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109'
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
Query OK, 0 rows affected (0.00 sec)
mysql> quit

3- Ejecutamos el script de instalación de freePBX:


/usr/src/freePBX/install_amp

Si tenemos tarjetas zaptel es necesario editar la configuración, mas información de como hacerlo la pueden encontrar en:
http://voip-info.org/wiki-Asterisk+config+files

4- Agregamos al usuario asterisk al grupo www-data:


www-data:x:33:asterisk

5- Damos permisos al usuario asterisk para que pueda escribir los archivos de sesion:

chown asterisk /var/lib/php/sessi*

6- Creamos un script para que asterisk se ejecute al inicio:


#! /bin/sh
#
# asterisk start the asterisk PBX
# (c) Mark Purcell
# May be distributed under the terms of this General Public License
#
# Based on:
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg .
# Modified for Debian GNU/Linux
# by Ian Murdock .
#
# Version: @(#)skeleton 1.9 26-Feb-2001

#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=asterisk
USER=$NAME
GROUP=$USER
DAEMON=/usr/sbin/$NAME
DESC="Asterisk PBX"
PIDFILE="/var/run/asterisk/asterisk.pid"

# by default: use real-time priority
PARAMS=""
AST_REALTIME="yes"
RUNASTERISK="no"
if [ -r /etc/default/$NAME ]; then . /etc/default/$NAME; fi

if [ "$RUNASTERISK" != "yes" ];then
echo "Asterisk not yet configured. Edit /etc/default/asterisk first."
exit 1
fi

if [ "$AST_REALTIME" != "no" ]
then
PARAMS="$PARAMS -p"
fi

if [ "x$USER" = "x" ]
then
echo "Error: empty USER name"
exit 1
fi
if [ `id -u "$USER"` = 0 ]
then
echo "Starting as root not supported."
exit 1
fi
PARAMS="$PARAMS -U $USER"

if [ "x$AST_DEBUG_PARAMS" = x ]
then
AST_DEBUG_PARAMS=-cvvvvvddddd
fi
if [ "$RUNASTSAFE" = "yes" ];then
# The value of WRAPPER_DAEMON in can be set in /etc/default/asterisk
WRAPPER_DAEMON=${WRAPPER_DAEMON:-/usr/sbin/safe_asterisk}
REALDAEMON="$WRAPPER_DAEMON"
else
REALDAEMON="$DAEMON"
fi

test -x $DAEMON || exit 0

set -e

status() {
plist=`ps auxw | grep "$DAEMON" | grep -v grep | awk '{print $2}' | tr '\012' ' '`
if [ "$plist" = "" ]; then
echo "$DESC is stopped"
return 1
else
echo "$DESC is running: $plist"
return 0
fi
}

case "$1" in
debug)
# we add too many special parameters that I don't want to skip
# accidentally. I'm afraid that skipping -U once may cause
# confusing results. I also want to maintain the user's choice
# of -p
echo "Debugging $DESC: "
$DAEMON $PARAMS $AST_DEBUG_PARAMS
exit 0
;;
start)
if status > /dev/null; then
echo "$DESC is already running. Use restart."
exit 1
fi
echo -n "Starting $DESC: "
if [ "$RUNASTSAFE" != "yes" ];then
# TODO: what if we cought the wrapper just as its asterisk
# was killed? status should check for the wrapper if we're in
# "safe mode"
if status > /dev/null; then
echo "$DESC is already running. Use restart."
exit 1
fi
fi
echo -n "Starting $DESC: "
start-stop-daemon --start --group $GROUP --pidfile "$PIDFILE" \
--exec $REALDAEMON -- $PARAMS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
if [ "$RUNASTSAFE" = "yes" ];then
# hopefully this will work. Untested
$REALDAEMON -rx 'stop now' > /dev/null || true
else
# Try gracefully.
# this may hang in some cases. Specifically, when the asterisk
# processes is stopped. No bother to worry about cleanup:
# it will either fail or die when asterisk dies.
( $DAEMON -rx 'stop now' > /dev/null 2>&1 & ) &
fi
echo -n "$NAME"
## giving a small grace time to shut down cleanly.
#sleep 2 # you can add timeouts in the comma
if [ "$RUNASTSAFE" = "yes" ];then
start-stop-daemon --quiet --oknodo --stop --exec $WRAPPER_DAEMON
fi
# just making sure it's really, really dead.
# KILL is necessary just in case there's an asterisk -r in the background
start-stop-daemon --stop --quiet --oknodo --retry=0/2/TERM/2/KILL/5 --exec $REALDAEMON
echo "."
;;
reload)
echo "Reloading $DESC configuration files."
$DAEMON -rx 'reload'
;;
logger-reload)
$DAEMON -rx 'logger reload'
;;
extensions-reload)
echo "Reloading $DESC configuration files."
$DAEMON -rx 'extensions reload'
;;
restart|force-reload)
$0 stop
$0 start
;;
status)
status
exit $?
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|logger-reload|extensions-reload|force-reload}" >&2
echo "Usage: $N {start|stop|status|debug|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

7- Creamos los links con update-rc.d:

update-rc.d asterisk defaults

8- Creamos el archivo asterisk en /etc/default que contenga:

vi /etc/default/asterisk
RUNASTERISK=yes

9- Abrimos con un navegador la direccion http://ip.del.servidor.asterisk/amportal y listo, ya tenemos freePBX instalado para configurar Asterisk sin necesidad de ser un gurú :)

Comentarios

O hacer eso o usar

Imagen de devilsoulblack

O hacer eso o usar asterisk@home :) que viene con el amp incorporado
® { No HopE & No FeaR } ®
Be part of the change, because We are the change..
Projects:
Orenses.org: http://www.orenses.org
DeVilSoulBlacK WebLog: http://www.devilsoulblack.com
DeVilSoulBlacK Channel: #Siliconvalley *!*@DAL.net

® { No HopE & No FeaR } ®
Be part of the change, because We are the change..
Projects:
Orenses.org: http://www.orenses.org

Quote:O hacer eso o usar

Imagen de RazaMetaL
Cita:
O hacer eso o usar asterisk@home Smiling que viene con el amp incorporado

Ajap.. pero A@H instala Asterisk en CentOS y no en Debian :)

-------------------------

Antes de preguntar visita esta dirección :evil:

 

-----

Visita este link :evil:

Ya esta instalado pero......

Muy buen manual, ya lo tengo instalado, he configurado extensiones para hacer pruebas pero al acceder con softphones x-lite, sale el siguiente mensaje.
Login failed! Contact Network Administrador.
Y en la consola de asterisk esto:
Apr 7 16:11:39 NOTICE[9439]: chan_sip.c:7733 handle_request: Registration from 'santiago ' failed for '192.168.70.7'
porfa ayudame.
Gracias

Haz un : tail -f

Imagen de RazaMetaL

Haz un :

tail -f /var/log/asterisk/full

Y muestranos la salida cuando tratas de registrarte. Trata de cambiar la extension 'santiago' a una extension 'numerica'.

-------------------------

Antes de preguntar visita esta dirección :evil:

 

-----

Visita este link :evil:

Apr 10 10:26:45

Apr 10 10:26:45 NOTICE[10849]: Registration from 'santiago ' failed for '192.168.70.7'
Este es el error q sale al tratar de ingresar la extension es 20 , santiago es el nombre del usuario en el x-lite, puede ser problema del softphone x-lite q estoy usando? q otro softphone me recomendarias?
Apr 10 10:26:45 NOTICE[10849]: Registration from 'santiago ' failed for '192.168.70.7'

Tu nombre de usuario, debe

Imagen de RazaMetaL

Tu nombre de usuario, debe ser 20.

Muestranos aquí la parte referente a la extensión 20 de tu archivo sip-additional.con

Y por favor, haz las preguntas en el foro respectivo, el mail privado es para soporte pagado.

-------------------------

Antes de preguntar visita esta dirección :evil:

 

-----

Visita este link :evil:

No carga Asterisk con FreePBX

Imagen de Mellileo

Hola genios:

He instalado el freepbx sobre FC5, pero al momento de ejecutar el comando "amportal start" por consola, se genera el siguiente error: "Loading module format_mp3.so failed!".

Asterisk antes de montar el Freepbx funcionaba bien en una LAN, despues de montado del Freepbx asterisk dejó de funcionar hasta por consola.

Qué puedo hacer para solucionar el problema??

Mil gracias por la ayuda!!!

Mellileo!!

Edita

Imagen de RazaMetaL

Edita /etc/asterisk/modules.conf y agrega la linea:

noload => format_mp3.so

Revisa si en /var/lib/asterisk/modules tienes el archivo format_mp3.so si no lo tienes vas a tener que recompilarlo.

-------------------------

Antes de preguntar visita esta dirección :evil:

 

-----

Visita este link :evil:

Consulta Asterisk

Amigos quiero instalar AsterisK en mi debian Sarge 3.1 r1
inicio con tratar de instalar los paquetes:
ncurses
ncurses-dev
libcurl3-openssl-dev
zlib-bin
zlib1g-dev
y estos paquetes no estan disponibles existe alguna fuente para agregarla en mi source.list y poder descargarlos?
solo pude instalar :

openssl
bison
bison-1.35

Páginas