Como configurar Asterisk - Parte II (+freePBX)

En este nuevo post estaremos explicando la forma de configurar las extensiones de asterisk mediante freePBX, para ellos vamos a seguir los siguientes pasos.

Primero accedemos a la interfaz de administración de nuestro FreePBX

Luego nos dirigimos al menu 'Applications' y 'Extensions'

Se nos mostrara la siguiente interfaz para poder añadir nuestras extensiones asi como una lista de las extensiones agregadas en la parte superior derecha.

Seleccionamos el tipo de dispositivo a configurar, en este caso será un 'Generic SIP Device' y damos click en submit.



Esto nos mostrará la siguiente interfaz para poder personalizar y configurar nuestra extensión lo primero sera escoger un nombre y una extensión.


Luego configuramos una contraseña para nuestra extensión (los demas campos los dejamos con su valor por defecto) y guardamos los cambios presionando el botón 'submit'.
Para que los cambios se apliquen es necesario que presionemos el botón 'Apply Config' y con esto ya tendremos nuestra extensión configurada.

Para añadir mas extensiones, debes repetir los mismos pasos, solo recuerda configurar tus dispositivos (ekiga o zoiper) con las credenciales que has configurado cada extensión.
 

Como configurar Asterisk - Parte I

En este primer post de configuración vamos realizar las modificaciones necesarias a los archivos de configuración de Asterisk, en este punto ya tenemos Asterisk instalado, por lo tanto no hablaremos de eso si aun no lo has instalado puede ver nuestro post de compilacion de Asterisk paso a paso

Configuración de Asterisk:
El primer archivo a configurar es el sip.conf, ubicado en la capeta /etc/asterisk/ Se deben agregar las siguientes lineas debajo de la sección [general]:


Edición el archivo sip.conf

[general]
;
port=5060
disallow=all
allow=g726
allow=ulaw
allow=alaw
;

Luego, en el mismo archivo agregamos una sección de configuración para cada extensión (cliente) a usar en asterisk.
================================================
;
[80]
type=friend
host=dynamic
language=es
context=internal
secret=80
username=80
callerid=80
dtmfmode=rfc2833
qualify=yes
;
[81]
type=friend
host=dynamic
language=es
context=internal
secret=81
username=81
callerid=81
dtmfmode=rfc2833
qualify=yes
;


Edición el archivo extensions.conf:
De igual forma modificamos este archivo para registrar las extensiones.


;
[general]
;
[internal]
;
exten => 80,1,Dial(SIP/80,26)
exten => 80,n,Hangup
;
exten => 81,1,Dial(SIP/81,26)
exten => 81,n,Hangup
;

Con eso ya tenemos la configuración necesaria para iniciar Asterisk, ahora solo basta reiniciar con #service asterisk restart y ya podremos configurar nuestros clientes en la pc y smartphone.

En el siguiente post estaremos realizando la configuración de las extensiones mediante freePBX.

Esperamos haya sido de ayuda, hasta la próxima!!!!



 

Instalación y configuración de FreePBX

FreePBX es una interfaz gráfica de usuario de código abierto que facilita la tarea de controlar y manejar Asterisk (PBX), al igual que Asterisk, FreePBX está licenciado bajo GPL y es una marca registrada de Schmooze Com Inc.



Se puede instalar como cualquier otro paquete en linux para luego ser configurado o si se prefiere instalar una distribución pre-configurada  que ya lo incluya. Las distribuciones que ya traen Asterisk, FreePBX y mas paquetes relacionados a esta temática son:




En primer lugar debemos asegurar de cumplir con todos los requisitos, para esto haremos lo siguiente:

Instalaremos DB en su versión 1.7.14, esto es una libreria que provee una capa de abstracción para la base de datos.
# pear uninstall db 
# pear install db-1.7.14 //ignoramos el mensaje warning
Reiniciamos el servidor
#reboot
Ahora procedemos a descargar y desempaquetar freePBX.
# cd /usr/src
# wget - c http://mirror.freepbx.org/freepbx-2.11.0.40.tgz
# tar xvzf freepbx-2.11.0.40.tgz
Esto creara una carpeta llamada freepbx, accedemos a ella y continuamos con la instalación.
# cd freepbx
Ahora creamos un usuario para la administración del freepbx, de igual manera crearemos una serie de archivos y carpetas necesarias para el proceso de instalación y configuración asi como sus respectivos permisos.
# adduser asterisk --disabled-password --gecos "Asterisk User"
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# mkdir /var/www/asterisk
# chown -R asterisk. /var/www/
Haremos unos cambios menores en la configuración de apache y de php
# sed -i 's/\(^upload_max_filesize = \).*/\120M/'/etc/php5/apache2/php.ini
backup del archivo de configuración
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_bak
# sed -i 's/^\(User\|Group\).*/\1 asterisk/'/etc/apache2/apache2.conf
Reiniciamos el servidor apache
# service apache2 restart
FreePBX necesita una base de datos para almacenar las diferentes configuraciones, para ellos crearemos esas bases asi como el usuario designado a utilizarla (recordar que estamos dentro de la carpeta /usr/src/freepbx/).
# export ASTERISK_DB_PW=raspberry
# mysqladmin -u root -p create asterisk
# mysqladmin -u root -p create asteriskcdrdb
# mysql -u root -p asterisk < SQL/newinstall.sql
# mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -u root -p -e "flush privileges;"
Ya que hemos finalizado con los preparativos, a procedemos a instalar freePBX. 
# ./start_asterisk start
# ./install_amp --webroot /var/www/asterisk
Introducimos o confirmamos algunos parámetros y continuamos: 
# amportal a ma installall
# ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
# amportal start

Si todo ha salido bien, podemos acceder desde el navegador a nuestro server, en este caso a esta ip: http://192.168.2.8/asterisk/admin/config.php, en la primera pantalla configuraremos la contraseña y usuario de administración y luego podremos configurar nuestro freePBX.





Seleccionamos la opción de configuración y veremos un panel con información general, como la siguiente:


Como paso adicional, si lo deseamos podemos cambiarle la configuración de idioma para tenerlo en español, cabe mencionar que esta traducción no se encuentra al 100% por lo que algunas partes continuarán en ingles, pero sin mas los pasos son los siguientes:

Dicha opción la encontramos en 'advanced settings' del menu 'settings'.



Veremos todas las secciones disponibles, de las cuales nos dirigimos a 'GUI behavior', donde modificamos la opción 'Show Languaje Setting' colocando su valor en 'true', guardamos y aplicamos los cambios.


Este cambio permite que aparezca un selector de idioma en la parte superior derecha de nuestra home screen, donde podremos escoger el idioma español.



Ya con esto, tendremos nuestra interfaz en español y nuestro freePBX correctamente instalado y configurado ya listos para empezar a configurar nuestro asterisk, pero esto lo veremos en el siguiente post.


 

Instalar y configurar Ekiga en linux

Ekiga (antes conocido como GnomeMeeting) es un SoftPhone de código abierto, Videoconferencia y la aplicación de mensajería instantánea a través de Internet. 

Es compatible con la calidad de sonido de alta definición y vídeo hasta el tamaño y la calidad de DVD. Es interoperable con muchos otros softwares estándar compatible con diferente hardware y proveedores de servicios, ya que utiliza  los principales estándares de telefonía (SIP y H.323).

Para instalar Ekiga en linux, se puede hacer desde consola por medio del comando "sudo apt-get install ekiga" si estas utilizando una distribución basada en debian o por medio del gestor de instalación de la distribución que estés utilizando según sea tu preferencia, recuerda que en ambas opciones debes ingresar tus credenciales de super usuario para poder instalar o por medio de sudo. En este caso la instalación se realiza en linux mint 17 basado en debian.





Una vez instalado, procedemos a configurar Ekiga, para poder conectarnos con Asterisk y realizar nuestras llamadas por IP. Las primera vez que abrimos Ekiga, nos presenta el asistente de configuración como se ilustra con la imagen siguiente.


Presionamos "Adelante" y luego ingresamos nuestra información personal. y continuamos.  


Para este ejemplo se realizara en la red local y no necesitaremos configurar la cuenta de Ekiga.net  que nos permite contactar afuera de la red local por medio de una cuenta SIP, las siguientes 3 pantallas tratan sobre esta temática, en este caso saltaremos estas pantallas.


Aquí debemos marcar la casilla en la que confirmar que no queremos registrarnos en Ekiga.net para poder continuar. 


De igual forma marcamos la casilla para poder continuar. 


Una vez lleguemos a la pagina (6 de 9) nos pedirá que seleccionemos el tipo de conexión y como ya se menciono antes se trabajara con la red local (LAN) y proseguimos. 


Luego nos pedirá que seleccionemos los periféricos de audio y vídeo con los que trabajara Ekiga. En nuestro caso dejamos los dispositivos de audio por defecto y en el caso de la web cam seleccionamos la de nuestra preferencia. 



Luego de todos los pasos anteriores nos presentara un resumen de las configuraciones que hemos realizado, si todo esta bien y de acuerdo a lo que necesitamos proseguimos y si no volvemos y hacemos los cambios que consideremos pertinentes. 


Presionamos "Aplicar" finalizando el asistente.
LLegaremos a la pantalla principal.

Luego nos dirigimos a "Editar" y luego a "Preferencias", una vez dentro nos dirigimos a "Protocolos" y configuramos los siguiente. 




En la parte inferior procedemos a configurar el host en el que tenemos Asterisk corriendo, en nuestro caso es el 192.168.2.8 en el puerto 5060 y cerramos.

Ya en la pantalla principal nos dirigimos a realizar una llamada, para esto debemos marcar a la extension del otro cliente configurada.
En este caso la extension 80, en el host de asterisk
sip:80@192.168.2.8:5060




Y listo, ya podemos hacer llamadas en nuestra red local. Esperamos tus comentarios y sugerencias y que este post te haya ayudado. 




 

Compilar Asterisk Paso a Paso

Hay muchas maneras de utilizar o instalar Asterisk en nuestro sistema con LINUX:

  • Descargandolo de los repos de Debian (en nuestro caso usamos Raspbian).
  • Descargarlo de los repos de Digium
  • Utilizando soluciones pre-empaquetadas
  • Desde las fuentes de Asterisk, compilando e instalando

En esta ocasión nosotros usaremos la ultima de las opciones por lo tanto a compilar se ha dicho!!!!!

A continuación mostramos los pasos a seguir para tener funcionando nuestra "Centralita Telefónica"


Preparando la máquina:

Lo primero que tenemos que hacer es instalar una serie de dependencias en nuestro sistema operativo para poder compilar e instalar Asterisk. Como root, ejecutamos lo siguiente en la consola:

aptitude update
aptitude install linux-headers-`uname -r` build-essential libxml2-dev libssl-dev libncurses-dev libnewt-dev doxygen subversion libmysqlclient-dev unixodbc-dev libmyodbc

Cuando se nos pregunte si queremos continuar pulsamos "Y" e intro.
Descargando las fuentes de Asterisk y librerías adicionales:
Lo que descargaremos a continuación será lo siguiente:
Asterisk: Una descripción detallada la puedes encontrar en nuestro post sobre que es asterisk. Descargaremos su código fuente.

Dahdi: Se trata de una serie de librerías y utilidades para poder integrar Asterisk con tarjetas de comunicaciones de diferentes tecnologías. En principio solo es válido para tarjetas Digium. Aún no disponiendo de tarjetas de comunicación en nuestra instalación, habrá que instalar Dahdi para que Asterisk sea capaz de crear salas de conferencia (existen dependencias internas). De Dahdi estaremos descargando un paquete llamado Dahdi-linux-complete, que incluye Dahdi Linux (módulos necesarios para las tarjetas) y Dahdi-Tools (utilidades para gestionar Dahdi).

Libpri: Librerías necesarias para cuando queremos conectar Asterisk con líneas primarias (PRI). Al ocupar muy poco espacio y no consumir ningún recurso adicional, las instalaremos por si en un futuro hace falta pinchar una tarjeta para RDSI PRI en Asterisk.

Los pasos que hay que dar para empezar a descargar las fuentes son los siguientes: (hay que ser usuario root):

cd /usr/src #Nos colocamos en el directorio estándar para descargar fuentes
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
Ahora ya tenemos las fuentes descargadas.

Compilamos e instalamos libpri:
Primero descomprimimos el tarball (fichero tar.gz) descargado
tar xzvf libpri-1.4-current.tar.gz
Nos movemos dentro del directorio de libpri:
cd libpri-1.4.*
Compilamos e instalamos:
make
make install
Volvemos al directorio /usr/src:
cd ../


Instalar los linux headers 
En este caso 3.12.28+ para la version del kernel y lo descargamos de aqui:
http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-3.12.28%2b_3.12.28%2b-2_armhf.deb


Compilando e instalando Dahdi:
Extraemos el tarball:
tar xzvf dahdi-linux-complete-current.tar.gz
Nos movemos al directorio:
cd dahdi-linux-complete-*
Compilamos e instalamos:
make
make install
make config
Volvemos al directorio /usr/src:
cd ../

Compilando e instalando Asterisk:

Extraemos el tarball:

tar xzvf asterisk-1.8-current.tar.gz
Nos situamos en el directorio:
cd asterisk-1.8*
Configuramos, compilamos e instalamos:
./configure
Una vez finalizado el comando anterior, veremos algo como lo siguiente si cumplimos todos los requisitos: 


Ahora vamos a seleccionar/deseleccionar los componentes de Asterisk. Si vas a hacer una instalación solo para pruebas no hay por qué cambiar ninguna opción. Sea como sea, hay que ejecutar el siguiente comando:


make menuselect
Veras una ventana como la siguiente:
Presionamos “Save & Exit” para guardar la configuración (aunque no se seleccione nada). Para proceder con la compilación e instalación ejecutamos las siguientes órdenes:
make
make install
make config

Iniciando Asterisk por primera vez:

Tanto Asterisk como Dahdi se gestionan como un servicio más de un sistema Linux. Tenemos que arrancar ambos componentes por primera vez de forma manual. Haremos los siguiente para Dahdi y Asterisk respectivamente:
service dahdi start
service asterisk start
Accediendo a la consola de Asterisk:

Podemos acceder a la consola o CLI de Asterisk usando el siguiente comando:
asterisk -r
También es válido el comando “rasterisk”.
Apagando Asterisk:

Si queremos apagar Asterisk desde el CLI tenemos que ejecutar el siguiente comando:
core stop gracefully
Lo que hará será apagar Asterisk cuando no se estén procesando llamadas. Para apagar Asterisk, sin importarnos el estado en que se encuentre podemos hacer desde la consola:
service asterisk stop
Para reiniciarlo:
service asterisk restart
Para salir del CLI de Asterisk, sin apagarlo, escribimos en el propio CLI:
exit





 

Cómo instalar Raspbian en una Raspberry Pi



Ahora vamos a hablar sobre la instalación de Raspbian (versión de Debian adaptada a un raspi) en una Raspberry pi usando una memoria sd.




Si la tarjeta tiene algun sistema de archivos y es montada automaticamente por el sistema operativo, es necesario desmontarla antes de proceder (#umount /dev/sd*)

A continuación descargamos la última versión de Raspbian desde el siguiente enlace:


La imagen se encuentra dentro de un zip, por lo que es necesario descomprimirla:


Utilizando la herramienta dd procedemos a volcar el contenido de la imagen en la tarjeta SD. Cabe aclarar que es necesario contar con una tarjeta SD o pendrive de al menos 4Gb de capacidad.


Una vez que finalizada copia, retiramos la tarjeta SD y la insertamos en la Raspberry Pi.

Advertencia: la siguiente instrucción provocará la perdida total de los datos que se encuentran almacenados dentro de la tarjeta SD.

Ahora pasamos a la configuración !!!!!


Lo primero que debe hacer después de arrancar Raspberry Pi es configurar tu Raspberry Pi. Cada sistema Raspberry Pi viene con su propia herramienta de configuración de software. Por ejemplo, utilice Raspi-config para Raspbian, Firstboot para Pidora, etc.

Vamos a mostrar como realizar las configuraciones iniciales en Raspbian para Raspberry Pi utilizando herramienta raspi-config. La primera vez la configuracion de Raspberry Pi incluye la ampliación de sistema de archivos local en todo el espacio de la tarjeta SD, el cambio de nombre del host, activando el servicio SSH, permitiendo el arranque de escritorio, etc.

Una vez que el  Raspbian está instalado en la tarjeta SD, introduce la tarjeta SD en el lector de tarjetas de la Raspi. Asegúrate que todo (HDMI monitor / TV, teclado y ratón) está debidamente conectados.
Despues de arrancar el sistema, verás las siguientes opciones de configuración que aparecen en la pantalla.

Esta es la herramienta de configuración de la Raspberry Pi llamada raspi-config . Si quieres puedes omitir esta parte, y ejecutar la herramienta más tarde si sabes lo que estás haciendo. Sin embargo, es aconsejable ir a través de las opciones para la instalación por primera vez.




Extendiendo el sistema de archivos


Si escribiste la imagen Raspbian en la tarjeta SD usando el comando dd, que normalmente usa alrededor de 3 GB del espacio de tu tarjeta. Esto significa que si tienes 4 GB o más de almacenamiento, el sistema Raspbian por defecto no reconocerá todo el espacio disponible para tarjetas SD. Entonces ¿cómo se puede utilizar el espacio restante, o en otras palabras, ¿cómo se puede "extender" el sistema de archivos Raspbian, para que reconozca todo el espacio de la tarjeta SD?

Aqui es cuando la opción de menú "Expand Filesystem" puede ayudar. Haz click en la opción, te servirá de guía para ampliar la partición raíz con fdisk como se muestra a continuación.



La partición resultante resultante tendrá efecto después de reiniciar Raspberry Pi.



Activar el inicio de Escritorio / Scratch


La opción de menú “Enable Boot to Desktop” en Raspi-config permite iniciar automáticamente e iniciar sesión en el escritorio GUI de Raspbian al arrancar. También puedes activar el entorno de programación de Scratch. Por defecto, Raspbian está configurado para arrancar en un registro de consola. Dependiendo de tu caso puedes activar el arranque desde el escritorio.

Opciones avanzadas

En el menú "Advanced Options", puedes manejar varias opciones importantes de Raspberry Pi. En este menú, verás varias opciones avanzadas, como las que se muestran a continuación. 

La opción "Overscan" es útil cuando se configura un monitor externo o un televisor HDMI correctamente. El valor por defecto está activado, pero para asegurarse, elije el botón "Activar" de nuevo en el interior del menú Overscan.


Si quieres cambiar el nombre del host de la Raspberry Pi, elije la opción "Hostname" y escriba el nombre que vas a utilizar como nombre de host. El valor predeterminado del nombre de host es "raspberry".

Por último, no te olvides de activar el servicio SSH en Raspberry Pi eligiendo el menú SSH y entrar en el botón "Enable". Se necesita el servicio SSH cuando deseas ejecutar Raspberry Pi sin cabecera.
Una vez que hayas terminado con la configuración, termina Raspi-config y reiniciar Raspberry Pi.
La siguiente captura de pantalla muestra el escritorio GUI Raspbian con entrada por defecto (nombre de usuario: "pi" y la contraseña: "raspberry").