Instalar Asterisk + FreePBX en Ubuntu 14.04

Asterisk Logo
En la entrada de hoy vamos a ver cómo instalar Asterisk y FreePBX en un servidor Ubuntu 14.04. Asterisk es un software que proporcionará a nuestro servidor funcionalidades de una centralita pbx. FreePBX por su parte es una interfaz web que nos hará la vida mas fácil a la hora de configurar Asterisk,sobre todo si no estamos familiarizados con el sistema Asterisk.

Requisitos previos

Antes de comenzar tenemos que asegurarnos que nuestro servidor tiene instalados openssh y lamp(apache, mysql, php), en caso de no ser así los instalamos.
Como todos los comandos que vamos a lanzar en el tutorial los vamos a hacer como usuario root, lo primero que vamos a hacer es cambiarnos al usuario root:

$sudo -s

Actualizamos el sistema:

# apt-get update
# apt-get upgrade

Instalamos las dependencias necesarias:

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
  mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox\
  libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\
  libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev\
  libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\
  libspandsp-dev

Reiniciamos el sistema:

# reboot

Instalamos Pear db:

# pear uninstall db
# pear install db-1.7.14

Instalamos las dependencias para Google Voice:

# cd /usr/src
# wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
# tar xf iksemel-1.4.tar.gz
# cd iksemel-*
# ./configure
# make
# make install

Instalar y configurar Asterisk

Nos situamos en el directorio /usr/src y descargamos los ficheros necesarios:

# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz
# git clone https://github.com/akheron/jansson.git
# git clone https://github.com/asterisk/pjproject.git

Compilamos e instalamos pjproject:

# cd /usr/src/pjproject
# ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
# make dep
# make
# make install

Compilamos e instalamos jansson:

# cd /usr/src/jansson
# autoreconf -i
# ./configure
# make
# make install

Compilamos e instalamos Asterisk:

# cd /usr/src
# tar xvfz asterisk-12-current.tar.gz
# cd asterisk-12.8.2/
# ./configure
# contrib/scripts/get_mp3_source.sh
# make menuselect

En este punto se nos abrirá un menú donde podemos seleccionar los diferentes módulos a añadir, en mi caso he dejado todo por defecto y tan solo he añadido el soporte para mp3:
menuselect
Una vez guardamos y salimos continuamos con la instalación:

# make
# make install
# make config
# ldconfig

Instalamos Asterisk-Extra-Sounds:

# cd /var/lib/asterisk/sounds
# wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
# tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
# rm -f asterisk-extra-sounds-en-wav-current.tar.gz

Instalar y configurar FreePBX

Descargamos y extraemos los ficheros de FreePBX:

# cd /
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz
# tar vxfz freepbx-12-latest.tgz

Creamos el usuario asterisk y modificamos permisos de los directorios:

useradd -m asterisk
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# rm -rf /var/www/html

Hacemos unas modificaciones en los ficheros php.ini y apache2.conf:

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# service apache2 restart

Preparamos MySQL. Con el siguiente comando generamos una contraseña segura para las comunicaciones entre FreePBX y MySQL:

# export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`

Ahora accedemos a mysql con el usuario root, creamos las bases de datos que usará asterisk y asignamos todos los permisos sobre esas bases de datos al usuario asterisk:

# mysql -u root -p
mysql> create database asterisk
mysql> create database asteriskcdrdb
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';
mysql> flush privileges;
mysql> quit

Nos movemos al directorio /freepbx y desde ahí lanzamos el resto de comandos para la instalación de freepbx:

# cd  /freepbx
# ./start_asterisk start
# ./install_amp --installdb --username=asterisk --password=${ASTERISK_DB_PW}
# amportal chown
# amportal a ma installall
# amportal a reload
# amportal a ma refreshsignatures
# amportal chown

Para terminar creamos el siguiente enlace simbólico e iniciamos freepbx:

ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart

Ahora ya podemos abrir un navegador y como url ponemos http://x.x.x.x/admin donde x.x.x.x será la ip de nuestro servidor.
freepbx web

Anuncios

25 Responses to “Instalar Asterisk + FreePBX en Ubuntu 14.04”


  1. 1 luisgagocasasis 10/16/2015 en 3:53

    Hola, buenas noches Alberto, una ayuda por favor.

    E llegado a hasta este paso:

    ./install_amp –installdb –username=asterisk –password=${ASTERISK_DB_PW}

    pero me sale

    Try running ./install_amp –username=user –password=pass (using your own user and pass)
    [FATAL] Cannot connect to database

    Creo que al ejecutar la linea me salieron algunas opciones que no sabia cual rellenar.

    Que me recomiendas que haga en ese caso.
    Por que creo que ahi radica mi problema de [FATAL]

    Te agradecería que me puedas ayudar.
    Estaré atento a tu respuesta.

    • 2 Alberto Castillo 10/19/2015 en 13:52

      Hola,
      el usuario que creaste para acceder a la base de datos se llama también “asterisk” y usaste la variable ${ASTERISK_DB_PW} como password del usuario?

      Un saludo

      • 3 ferney blanco 04/12/2016 en 2:45

        Alberto buenas noches me podrias colaborar con ese punto tambien hasta hay llego y me presenta el mismo inconveniente le agradeceria muchas gracias

      • 4 Anónimo 05/15/2016 en 8:20

        ${ASTERISK_DB_PW} debes cambiar donde dice ASTERISK por una clave

  2. 5 Rodolfo Robles Villanueva 11/19/2015 en 15:01

    Hola Alberto Castillo, eh seguido el tutorial al pie de la letra y me eh encontrado con un problema muy recurrente, cuando ejecuto el ultimo comando start FreePBX me devuelve un error sobre upstart y para solucionarlo leí que se deben ejecutar 2 comandos mas que son:

    dpkg-divert –local –rename –add /sbin/initctl
    ln -s /bin/true /sbin/initctl

    Después de estas lineas de comando, ya se ejecuta normalmente el start FreePBX y puedo acceder a la web para crear el usuario y contraseña.

    Ahora mi problema es que después de apagar el equipo y encender me aparece la pantalla del login, capturo mi password y cuando doy enter solo me aparece el fondo de pantalla y el puntero del mouse y no eh podido solucionar ese problema.

    Eh leído y ejecutado varios comando para reiniciar, reinstalar y sustituir la interfaz gráfica, eh reiniciado el servidor x, actualizado el sistema, instale la interfaz de gnome pero hace lo mismo.

    Podrías apoyarme ya que me eh quedado estancado y por mas comando que eh ejecutado no eh podido solucionarlo.

    Estaré en espera de tu valioso apoyo.

    Saludos…

    • 6 Alberto Castillo 11/20/2015 en 21:32

      No sabría decirte que es lo que ha podido pasarte, con lo que es complicado darte una solución… No obstante prueba a ver los siguientes comandos, a ver si consiguen reparar el problema:
      sudo apt-get update
      sudo dpkg –configure -a
      sudo apt-get update
      sudo apt-get dist-upgrade

  3. 7 corporacionsucar 02/25/2016 en 15:01

    Hola Alberto me podrias ayudar indicandome sobre los dispositivos que necesito para que pueda realizar llamadas una vez ya implementado este servidor asterisk

  4. 9 luisgagocasas 02/26/2016 en 15:14

    Alberto en caso que instale esto en un servidor con ip fija el servidor debe tener algún puerto activo o es por defecto? o tiene que tener algunas características como mínimo el servidor?

    por que cuando hago la llamada a una exención solo timbra mas no se llega a escuchar la voz de la otra persona.

    Alguna sugerencia?

    • 10 Alberto Castillo 02/26/2016 en 15:52

      Hola Luis, si no hay ningún problema de configuración, yo diría que es problema del protocolo RTP, probablemente hay algún firewall o nat por ahí en medio que este capando ese tráfico. Lo mejor sería capturar el tráfico con un sniffer y ver como se comporta para determinar donde esta el fallo…

  5. 11 Berny Aybar 05/05/2016 en 2:50

    Buenas Noches,

    tengo un problema con el comando amportal, estoy en la carpeta freepbx pero no puedo ejecutar los comando del penultimo paso, en la carpeta freepbx no me aparece el binario amportal para ejecutarlo, alguna solucion

  6. 13 Karim 06/05/2016 en 13:52

    Buenas alberto;

    Al ejecutar el comando amportal chown me da error el siguiente msg “amportal: no se encontró la orden”.

    Creo que tiene que ver con el paso anterior, te pego lo que me indica al hacer el ./install_amp

    -1/ Si cambio ${ASTERISK_DB_PW} donde dice ASTERISK por la clave que he puesto me sale => -bash: –password=${RcS1231*_DB_PW}: sustitución errónea

    -2/ Si no la cambio y pego el comando tal y como lo tienes puesto tu. me sale => Checking for PEAR DB..OK
    Checking for PEAR Console::Getopt..OK
    Console_Getopt: option requires an argument –password

    La verdad es que estoy un poco perdido te agradezco de antemano tu ayuda y te felicito por el tutorial que la verdad es estupendo.

    • 14 Alberto Castillo 06/05/2016 en 15:26

      Hola, veo que sois varios los que estáis teniendo problemas con el password, si quieres en lugar de utilizar una variable puedes poner una contraseña a tu elección.
      Repite los pasos donde creas el usuario que se conectará a mysql y sustituye donde pone contraseña por el password que tu quieras. Entiendo que así no tendrías que tener problemas:
      Te pego las líneas:
      GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY ‘contraseña’;
      GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY ‘contraseña’;

      Y ahora puedes continuar con la instalación utilizando el password que has definido en los pasos anteriores:
      ./install_amp –installdb –username=asterisk –password=contraseña

      • 15 Karim 06/05/2016 en 16:26

        Muchas gracias Alberto;

        Ya funciona!!! 😉

      • 16 Karim 06/05/2016 en 16:41

        Buenas de nuevo Alberto;

        He llegado al ultimo paso donde ejecuto el comando Start FreePBX, la cuestion es que al ejecutarlo me devuelve el siguiente error
        # Start FreePBX
        No se ha encontrado la orden «Start», quizás quiso decir:
        La orden «tart» del paquete «tart» (universe)
        La orden «start» del paquete «upstart» (main)
        Start: no se encontró la orden

        He intentado probarlo despues de ejecutar los comando que indica el colega Rodolfo Robles Villanueva en su comentario mas arriba, pero me devuelve lo mismo

        Muchas gracias de nuevo

      • 17 Alberto Castillo 06/05/2016 en 18:03

        Hola Karim,
        con el comando “amportal restart” ya debería iniciarse FreePBX, prueba a ver si puedes acceder desde el navegador:
        http://IP de tu servidor/admin

        Un saludo

  7. 18 lolo 06/05/2016 en 17:49

    Hola Karim,
    Igual es una tontería pero creo que el comando correcto sería:
    start FreePBX
    La s en minuscula… no se si lo estas haciendo así…

    Saludos

  8. 19 Anónimo 06/16/2016 en 2:18

    caballero muy buenas noches

    a mi me pasa que me instala amportal igualmente tambien me inician los servicios de asterisk apache todo me aparece que se encuentra estupendo pero cuando ingreso en el navegador http://x.x.x.x/admin me aparece not found apache 2.2 que me faltara; espero su pronta respuesta

    muchas gracias

  9. 20 romina_romero 06/24/2016 en 4:33

    disculpa muy buenas noches tengo un problema cuando se instala # cd /var/lib/asterisk/sounds no me encuentra la carpeta de asterisk, como puedo hacer o como pudo instalarlo, segui todos los pasos y me quede en ese punto.

    Gracias
    Romina

  10. 21 D 07/31/2016 en 20:40

    Hola tengo ubuntu 14 servidor y me salta el error

    PEAR must be installed (requires DB.php). Include path: .:/usr/share/php:/usr/share/pear
    al realizar el siguiente comando ./install_amp –installdb –username=asterisk –password=${ASTERISK_DB_PW}
    con la correccion del password.

    Pero lo que no entiendo es por que en https://community.asterisk.org/t/fatal-pear-must-be-installed-requires-db-php-include-path/65585 dice que no es necesario.
    Un saludo
    y gracias

  11. 22 D 07/31/2016 en 21:34

    Me autorespondo: error en It seems that the Archive_Tar PEAR component needs to be replaced/upgraded.

  12. 23 Anónimo 05/08/2017 en 20:37

    # wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz

    esta en error 440

    que otra pagina se puede descargar???


  1. 1 FreePBX: Crear Extensión | Échale un vistazo... Trackback en 08/26/2015 en 22:00

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




TELDAT CTI
VCA-DCV
JNCIA
CCNA

Introduce tu correo electrónico y recibe todas las actualizaciones

Únete a otros 147 seguidores

agosto 2015
L M X J V S D
« Jun   Oct »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Actualizaciones de Twitter

Blog Stats

  • 437,155 Visitas
Creative Commons

A %d blogueros les gusta esto: