Cómo Construir un Sistema de Telefonía IP PBX Basado en la Nube

Mueva sus comunicaciones a la nube y deshaga su caja PBX física

VOIP

La migración de la infraestructura de TI de la oficina a la nube es una opción cada vez más popular para las pymes que desean ahorrar en hardware interno. Sin embargo, el viejo sistema telefónico de la oficina todavía está allí, acuclillado como un sapo en un rincón de la sala de comunicaciones, o atornillado a la pared de la oficina como un homenaje brutalista al plástico azul grisáceo.

Este tutorial le mostrará cómo deshacerse de su antiguo PBX e implementar una solución VoIP de código abierto en la plataforma en la nube de su elección, usando Ubuntu 18.04, Asterisk 13 y FreePBX 14.

Lo primero que debe hacer es elegir un proveedor de nube y configurar una red virtual allí. Si ya ha migrado parte de su infraestructura de TI a la nube, probablemente ya la tenga, pero si no es así, deberá configurarla antes de comenzar con este tutorial. Usamos Azure, que se refleja en nuestras capturas de pantalla. Sin embargo, estas instrucciones son independientes de la plataforma.

El acceso a esta red virtual puede ser a través de una VPN de sitio a sitio desde su oficina a la red virtual a través del servicio VPN de su proveedor en la nube, o directamente a la IP pública del nuevo servidor PBX. De cualquier manera, la conexión a Internet de su oficina deberá tener una dirección IP estática. En este tutorial, nos conectaremos directamente a la IP pública de la PBX. Los usuarios de VPN deberán ajustar la configuración de SIP NAT en consecuencia.

Con una red virtual preparada, podemos comenzar a construir un PBX en la nube.

Paso 1: Implementar VM en la nube

Implemente una máquina virtual Ubuntu 18.04 con una única NIC conectada a esa red virtual. Si genera nuevas claves de acceso para esta implementación, asegúrese de guardarlas en un lugar seguro y documente su ubicación y frase de contraseña, así como el nombre de usuario necesario para iniciar sesión. A través de la consola de administración de su proveedor de nube, asígnele una dirección IP pública estática y configure un grupo de seguridad asociado con esta dirección IP. Las reglas predeterminadas del grupo de seguridad bloquearán el acceso directo al servidor desde Internet.

Incluso si los teléfonos de su oficina acceden a este PBX a través de una VPN, aún necesitará una dirección IP pública para comunicarse con el proveedor de troncales. Cubriremos la configuración de un tronco más adelante en este tutorial. Por ahora, agregue una regla de acceso al grupo de seguridad que permita conexiones desde la dirección IP de su oficina en los puertos TCP 22, 80 y 443.

Paso 2: instalar dependencias

Inicie sesión en su nueva máquina virtual como usuario normal, no como root, incluso si su proveedor de nube lo permite, a través de ssh, y ejecute los siguientes comandos para actualizarlo e instalar algunas dependencias y software necesarios.

sudo apt update
sudo apt upgrade -y
sudo apt install tasksel -y
sudo tasksel install lamp-server
sudo apt install sox mpg123 ffmpeg lame mongodb -y

FreePBX versión 14 y anteriores están diseñadas para php5.6 y no son compatibles con el php7 más nuevo con el que se envía Ubuntu 18.04. Para que funcione, necesitamos agregar el repositorio php5.6 e instalar php5.6. Ejecute los siguientes comandos para agregar el repositorio e instalar y habilitar php5.6 en la PBX.

sudo add-apt-repository ppa: ondrej / php </ dev / null
sudo apt update
sudo apt upgrade -y
sudo apt install php5.6 php5.6-cgi php5.6-cli php5.6-curl php5.6-fpm php5.6-gd -y
sudo apt install php5.6-mbstring php5.6-mysql php5.6-odbc php-xml -y
sudo apt install php5.6-xml php5.6-bcmath php-pear libapache2-mod- php5.6 -y
sudo a2dismod php7.2
sudo a2enmod proxy_fcgi setenvif php5.6
sudo a2enconf php5.6-fpm
sudo actualización-alternativas --set php /usr/bin/php5.6
sudo actualización-alternativas --set phar / usr /bin/phar5.6
sudo update-alternativas --set phar.phar /usr/bin/phar.phar5.6
sudo sed -i 's / www-data / asterisk /' /etc/php/5.6/fpm/pool .d / www.conf

A continuación, agregaremos el repositorio oficial de node.js e instalaremos node.js desde allí. Si bien node.js está disponible en los repositorios estándar de Ubuntu, se requiere una versión más actualizada para FreePBX.

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
actualización de
sudo apt sudo apt install nodejs -y

Paso 3: agregue un archivo de intercambio (opcional)

Si bien algunas personas argumentarían que ya no necesita un archivo de intercambio, Linux generalmente está más contento con uno y Asterisk le advertirá que falta cada vez que inicie sesión.

sudo dd if = / dev / zero of = / var / swapfile bs = 1M count = 2048
sudo chmod 0600 / var / swapfile
sudo mkswap / var / swapfile
sudo swapon / var / swapfile
sudo echo / var / swapfile swap swap valores predeterminados 0 0 >> / etc / fsta

Paso 4: Instale Asterisk

Instale el paquete Asterisk VoIP PBX. De forma predeterminada, esto también instalará los archivos de sonido para inglés, pero si necesita otros idiomas, tendrá que instalarlos por separado. Como ejemplo, también agregaremos francés. Para simplificar las cosas, estamos usando la versión del repositorio predeterminado de Ubuntu, en lugar de usar un repositorio de terceros para obtener una versión más nueva.

sudo apt install asterisk -y
sudo apt install asterisk-core-sounds-fr -y

Paso 5: configurar Apache

Para configurar la central, instalaremos la GUI web de FreePBX. Usaremos la versión 14 de FreePBX. Sin embargo, antes de que podamos hacer eso, necesitamos cambiar algunas configuraciones de Apache. Ejecute los siguientes comandos para configurar Apache para FreePBX:

sudo a2enmod reescribir
sudo sed -i 's / (^ upload_max_filesize = ). * / 120M /' /etc/php/5.6/cgi/php.ini
sudo sed -i 's / www-data / asterisk /' / etc / apache2 / envvars

Ahora abra /etc/apache2/apache2.conf en su editor de texto preferido y vaya a la línea 170. Recuerde usar sudo para editar este archivo como root. Necesitamos cambiar los permisos de anulación para el directorio raíz del servidor web para que FreePBX pueda usar declaraciones de reescritura en archivos htaccess sin causar errores. Busque la sección que tiene este aspecto:

Opciones Índices FollowSymLinks
AllowOverride Ninguno
Requerir todos concedidos

Cambie el valor AllowOverride de None a All, para que se vea así:

Opciones Índices FollowSymLinks
AllowOverride All
Requerir todos concedidos

Ahora reinicie Apache y PHP con los siguientes comandos:

sudo service apache2 restart
sudo service php5.6-fpm restart

Paso 6: Descargue e instale FreePBX

Usaremos la última versión de FreePBX versión 14. Descárguelo y descomprímalo:

cd ~
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz tar xvzf freepbx-14.0-latest.tgz

Esto colocará el instalador de FreePBX en un directorio en su carpeta de inicio llamado «freepbx». Vaya a este directorio e instale FreePBX ejecutando los siguientes comandos. Puede ignorar con seguridad la advertencia de PHP que genera. El instalador le pedirá que proporcione varias respuestas relacionadas con las ubicaciones de instalación y la configuración de la base de datos. Simplemente presione enter cada vez para aceptar el valor predeterminado.

cd ~ / freepbx
sudo ./install
sudo rm /var/www/html/index.html

Ese último comando elimina el archivo de índice predeterminado que se instaló con Apache. Esto ya no es necesario ya que el paquete FreePDX proporciona su propio archivo de índice basado en PHP.

Paso 7: configuración inicial

Para la mayoría de los pasos restantes, nos alejamos de la línea de comando y configuramos el sistema usando el front-end web FreePBX. Abra su navegador web preferido y vaya a la dirección IP pública de su nuevo PBX.

Se le presentará la pantalla de configuración inicial, como se muestra a continuación. Ingrese un nombre de usuario, contraseña y dirección de correo electrónico de administrador, y anote el nombre de usuario y la contraseña en un lugar seguro. También es una buena idea establecer el identificador del sistema en el mismo valor que el nombre de host que eligió para la máquina virtual. Esto evita cualquier confusión que pueda surgir de que el PBX tenga un nombre diferente en la línea de comandos que cuando se usa la interfaz web. Finalmente, haga clic en el botón Enviar en la parte inferior derecha para cerrar esta pantalla.

initial setup

Paso 8: primer inicio de sesión y configuración del módulo

Una vez que haya completado el proceso de configuración inicial, será llevado a la pantalla de inicio de sesión. Haga clic en Administración de FreePBX e inicie sesión con el nombre de usuario y la contraseña de administrador que eligió anteriormente. Como este es su primer inicio de sesión, se le pedirá que configure la configuración regional y la zona horaria del sistema. Ajústelos a los valores correctos y haga clic en el botón Enviar.

Una vez hecho esto, se le dirigirá al panel del sistema. Esta es la página de inicio cuando inicia sesión en la interfaz y le presenta información sobre el estado actual del sistema.

En la parte superior de la página hay varios menús desplegables para administrar el sistema. Tenga en cuenta el botón Aplicar configuración en la parte superior derecha. Se utiliza para confirmar y activar los cambios realizados en la interfaz web de la PBX. Solo se muestra cuando hay cambios no confirmados. No hagas clic en él todavía.

dashboard

Lo primero que debe hacer es actualizar los módulos FreePBX. Pase el mouse sobre el menú Admin en la parte superior izquierda, luego seleccione Module Admin en el menú. Haga clic en Verificar en línea para completar la lista y ver si hay nuevas actualizaciones de módulos disponibles. Una vez que haya terminado, haga clic en el botón Actualizar todo a la derecha, encima de la lista de módulos. Esto marca todos los módulos con actualizaciones disponibles listas para actualizar.

Hacia la parte superior izquierda de la página de actualización del módulo hay una lista de repositorios. Solo usaremos el repositorio estándar preseleccionado, no los extendidos o no compatibles.

initial module upgrade

Ahora haga clic en el botón de proceso hacia la parte superior derecha. En la página siguiente, haga clic en Confirmar y espere a que se actualicen los módulos. Una vez que se complete el proceso, haga clic en el botón Volver en la esquina inferior derecha del cuadro de progreso que apareció cuando confirmó la actualización. Esto lo llevará de regreso a la página de administración del módulo.

Paso 9: instalación del módulo básico

La instalación predeterminada de FreePBX solo viene con los módulos principales. Para un PBX de oficina básico, necesitaremos instalar algunos más para configurar algunas funciones de oficina estándar. De la lista de módulos disponibles, seleccione lo siguiente y haga clic en el botón Descargar e instalar.

En la sección Administrador, seleccione el módulo Copia de seguridad y restauración.
En la sección Aplicaciones, seleccione el módulo Grupos de timbre y calendario.
En la sección Informes, seleccione el módulo Registro de eventos de llamadas.

Con esos cuatro seleccionados, haga clic en el botón Procesar y confirme la instalación en la página siguiente. Una vez completado, haga clic en regresar para cerrar la ventana de estado y volver a la página de administración del módulo una vez más. Haga clic en Verificar en línea nuevamente, luego instale el módulo Condiciones de tiempo de la sección Aplicaciones de la misma manera que lo hizo con los módulos anteriores.

module install

Paso 10: menú de configuración avanzada

Pase el mouse sobre Configuración en el extremo derecho de la barra de menú, luego seleccione Configuración avanzada en el menú desplegable. Desplácese hacia abajo hasta Dialplan y Operational. Busque el ajuste Tonos de indicación de país y ajústelo al valor correcto para su país. Luego, desplácese un poco hacia abajo, aún dentro de esta sección, y ubique la configuración del controlador de canal SIP. Establezca esto en «chan_sip». Desplácese hasta la parte inferior de la página y haga clic en Enviar.

A continuación, vuelva a colocar el mouse sobre el menú Configuración y seleccione Configuración SIP de Asterisk en el menú. En la pestaña Configuración general de SIP, busque la sección Configuración de NAT y haga clic en el botón Detectar configuración de red para completar automáticamente la configuración de NAT correcta.

Si se está conectando al PBX a través de una VPN desde su oficina a la red en la nube, entonces deberá agregar los rangos de IP de su oficina a la lista de redes locales aquí.

A continuación, haga clic en la pestaña Configuración de Chan SIP. En la parte superior de las opciones, configure NAT en sí, luego desplácese hacia abajo en la página hasta llegar a la sección Configuración general avanzada. Establezca el valor del puerto de enlace en 5060 y el valor del puerto de enlace TLS en 5061. Desplácese hasta la parte inferior y haga clic en Enviar en la parte inferior derecha.

sip port settings

Paso 11: Agregar extensiones y un grupo de timbre

A continuación, necesitamos configurar algunas extensiones. Vamos a utilizar SIP, el tipo de extensión más común que se utiliza tanto para teléfonos de escritorio VoIP como para softphones. Pase el mouse sobre el menú Aplicaciones y seleccione Extensiones en el menú desplegable. Haga clic en el botón Agregar extensión y seleccione Nueva extensión Chan_SIP.

Ingrese un número y un nombre para mostrar para la nueva extensión y anote el número de extensión junto con el valor «Secreto». Los necesitará, así como la dirección IP del PBX, para configurar sus teléfonos. Puede dejar el valor de CID de salida en blanco ya que, en este caso, lo establecerá el tronco cuando lo configuremos más adelante.

A continuación, haga clic en la pestaña Correo de voz, habilite el correo de voz y configure una contraseña. El correo de voz es opcional, pero es útil tener al menos una extensión habilitada como destino de conmutación por error para las llamadas entrantes sin respuesta.

Ahora vaya a la pestaña Avanzado, localice la opción Modo NAT y configúrela en «Sí – (force_rport, comedia)». Finalmente, haga clic en el botón Enviar en la parte inferior derecha. Repita este proceso para cada nuevo número de extensión que necesite agregar a su sistema. Usamos números de extensión de tres dígitos, pero puede usar la longitud que desee.

Aquellos de ustedes que usen una VPN de sitio a sitio para acceder al PBX querrán en cambio configurar el modo NAT para sus extensiones en «No – (no)».

Una vez hecho esto, haga clic en el botón Aplicar configuración en la parte superior derecha y espere hasta que desaparezca el mensaje «Recarga» antes de continuar a continuación.

Vuelva al menú Aplicaciones y seleccione Grupos de timbre en el menú desplegable. Haga clic en Agregar grupo de timbre. En la página siguiente, los detalles principales que debe completar son el número del grupo de timbre, la descripción del grupo y la lista de extensiones. Las extensiones se pueden agregar fácilmente a la lista utilizando el menú desplegable Selección rápida de usuario a la derecha del cuadro Lista de extensiones.

Es mejor usar un número de longitud diferente para los grupos de timbre que para las extensiones, ya que los distingue claramente para los usuarios. Usaremos números de cuatro dígitos para los grupos de llamada, pero puede usar tantos dígitos como desee.

Por último, desplácese hasta el final de la página y haga clic en el cuadro «Destino si no hay respuesta». Seleccione Correo de voz de la lista de opciones y elija a qué casilla de correo de voz de la extensión deben ir las llamadas no contestadas.

add ring group

Paso 12: agregue una ruta troncal y saliente

Para hacer y recibir llamadas, la central necesita una troncal. Los troncales VoIP están disponibles en muchos proveedores diferentes. Cuál es mejor para usted dependerá de sus requisitos y presupuesto.

Pase el mouse sobre el menú Conectividad y seleccione Troncales en el menú desplegable. Haga clic en Agregar troncal y seleccione el tipo correcto para que coincida con la oferta de su proveedor de troncales VoIP. En este caso usaremos un tronco SIP, ya que son los más comunes.

En la pestaña General de la página Agregar troncal, elija un nombre para su troncal. Si planea tener múltiples troncales de diferentes proveedores de VoIP, es útil nombrar cada troncal como su proveedor. Configure los valores de Outbound CallerID y Maximum Channels según los valores proporcionados por su proveedor de troncales.

trunk general tab

A continuación, haga clic en la pestaña Configuración SIP e ingrese los detalles proporcionados por su proveedor de troncales VoIP. Para los nombres de troncales entrantes y salientes, usamos el nombre de troncal que proporcionamos en la pestaña general, con «_in» y «_out» adjuntos.

trunk sip incoming

trunk sip outgoing

A continuación, necesitamos agregar una ruta de salida para realizar llamadas fuera de la PBX. Estamos usando el método de prefijo tradicional, en este caso prefijando un número con un ‘9’ para obtener una línea exterior. Alternativamente, puede programar el PBX para determinar si un número es interno o externo basándose en la coincidencia del patrón del número, pero eso es más complicado, ya que debe conocer todos los patrones de números posibles que sus usuarios pueden marcar.

Pase el mouse sobre Conectividad en la barra de menú y seleccione Rutas de salida en el menú desplegable. Haga clic en Agregar ruta saliente. En la pestaña Configuración de ruta, asigne un nombre a la ruta y seleccione la troncal que acaba de crear en la lista desplegable de Secuencia de troncales para rutas coincidentes.

A continuación, haga clic en la pestaña Patrones de marcación y complete el patrón de marcación. Establezca el prefijo en ‘9’ y ponga un punto en el cuadro «patrón de coincidencia». Esto coincidirá con cualquier número que marque que comience con un ‘9’ y elimine el ‘9’ inicial. Entonces, para llamar al 0343 222 1234, una línea externa, en realidad debe marcar 90343 222 1234. Finalmente, haga clic en Enviar en la parte inferior derecha.

outbound route settings

outbound route dial pattern

Paso 13: agregue rutas de salida a los servicios de emergencia

Todos los sistemas telefónicos deben poder realizar llamadas de emergencia y priorizarlas sobre las llamadas normales. Para hacer esto, se crea una ruta de salida de emergencia especial.

Una vez más, pase el mouse sobre Conectividad en la barra de menú, seleccione Rutas de salida en el menú y luego haga clic en Agregar ruta de salida. En la pestaña Configuración de ruta, asigne a la ruta un nombre como «Emergencia» o «999», configure el CID de la ruta en su número de teléfono geográfico, según lo provisto por su proveedor de VoIP, y configure el tipo de ruta en «Emergencia».

Este último paso da prioridad a las llamadas a los servicios de emergencia sobre otras rutas. En el caso de que todos los canales estén en uso cuando alguien realiza una llamada de emergencia, el PBX desconectará otra llamada para liberar un canal para la llamada de emergencia. Establezca la Posición de la ruta en primero, por encima de su ruta de salida normal.

 

Categorías Negocios

Deja un comentario