Artículo
Revista Ingeniería y Región. 2016; 15(1): 75-83

Implementación y evaluación de un PBX IP usando raspberry pi

Implementation and testing of an IP PBX using raspberry pi

Miguel Angel Hoyos Arcila1 y Julián Adolfo Ramírez Gutiérrez2

 

1 Estudiante de ingeniería electrónica, Universidad del Quindío (Armenia, Quindío, Colombia). E- mail: mahoyosa@ uqvirtual.edu.co
2 Ms.C teoría de señal y comunicaciones. Docente Universidad Surcolombiana. Avenida Pastrana Borrero. Carrera 1- Neiva, Eluda, Colombia. E-mail: julian.ramirez@usco.edu.co
 
Fecha recibido: 15 febrero 2016.
Aprobado: 15 mayo 2016.

Resumen

En un escenario en el que hay un número reducido de usuarios de telefonía IP, hay varias alternativas para prestar el servicio de fonna que no se incurra en la subutilización de los recursos. Una de estas alternativas es utilizar como servidor, un ordenador de bajo costo como la raspberry pi, el cual tiene la ventaja de presentar un bajo consumo de potencia. Este trabajo muestra el procedimiento, y los resultados, de una evaluación de rendimiento realizada a un servidor de telefonía IP, el cual tiene la funcionalidad de un PBX IP. usando como plataforma una tarj eta raspberry pi modelo B. D icha evaluación tiene como finalidad determinar las características de desempeño básicas de la alternativa teniendo en cuenta aspectos como: el consumo de potencia y la calidad del servicio. Como resultado se tiene que la alternativa presentada en este artículo, es una buena opción en escenarios donde sea suficiente un servidor con capacidad para 7 llamadas concurrentes.


Palabras clave: Asterisk; bajo consumo; comunicación verde; raspberry pi; VoIP; WLAN.


Abstract

In a scenario where there is a reduced number of IP telephony users, there are several alternatives to provide the service in such a way that it is not incurred in the underutilization of resources. One of those alternatives is to use as server, a cheap computer like raspberry pi, which has the advantage of presenting low power consumption. This article shows the procedure, and results, of a performance test made to a IP telephony server, which has an IP PBX functionality, using as platform the raspberry pi model B. such test aims to determine the basic features taking into account aspects like: power consumption and quality of service. As a result, the alternative presented in this article, is a good option in scenarios where it is enough to have a server with capacity for 7 concurrent calls.


Keywords: Asterisk; green communications; low power consumption; raspberry pi; VoIP; WLAN.


1. Introducción

Es claro que la industria de las tecnologías de la información y las comunicaciones (TIC) son grandes contribuidores al consumo de potencia eléctricay emisiones de gases de efecto invernadero en el mundo (Wu, et al, 2013). El efecto invernadero y el agotamiento de recursos de energía no renovable incentivan la búsqueda del mejoramiento de la eficiencia energética de los sistemas y dispositivos de telecomunicación (Wu, et al., 2013). La reducción del consumo de potencia también trae beneficios económicos para los operadores de servicios de telecomunicación, al reducir los costos de operación de sus redes, el cual se estima representa tanto como la mitad de los gastos de operación anual de un proveedor de servicio móvil (Yu, et al., 2012).

En un sistema de telefonía IP se puede hacer una reducción en el consumo energético, utilizando hardware de bajo consumo de potencia en escenarios donde no se requiere infraestructura de telecomunicaciones de alta capacidad, como ocurre en zonas de baja utilización de los servicios o baja densidad de usuarios, logrando que la infraestructura se ajuste a los requerimientos del usuario sin desperdiciar recursos económicos y energéticos.

Por otra parte, también se tienen escenarios donde el servicio de energía eléctrica es deficiente, impidiendo la correcta alimentación de sistemas de cómputo, lo que inhabilita tener servidores con funcionamiento ininterrumpido para prestar el servicio. En este caso, la forma de solucionar la falta de equipos TIC es implementando un sistema de bajo consumo de potencia ya que es más fácil adaptarlo a sistemas eléctricos alternativos como baterías, celdas solares, entre otros (Hajdarevic, et al., 2014).

Consecuentemente, el presente estudio aborda el interrogante de ¿qué tan efectivo es utilizar como alternativa un PBX IP con hardware raspberry pi para reducir el consumo de potencia en un escenario donde el número de usuarios es pequeño?, por este motivo se debe implementar y evaluar esta alternativa. Este estudio permite validar una alternativa que podría permitir una reducción de costos a nivel energético, lo cual trae beneficios económicos y sociales. La validación que se muestra en el presente artículo consiste en evaluar la alternativa desde el enfoque de consumo de poten-ciay calidad del servicio. De esta forma, se obtienen las características básicas de desempeño con las cuales se puede realizar una comparación con otra alternativa similar.

2. PBX IP

El uso de una plataforma de comunicaciones en escenarios como pequeñas empresas es útil no solo para facilitar la colaboración entre empleados, sino también para estar en contacto con los clientes (Olivera, 2014). Esta conectividad es necesaria cuando se quiere optimizar la productividad de los empleados ya que les ahorra traslados y pérdidas de tiempo innecesarias (Cisco, 2013).

Para el servicio de voz es útil tener un PBX IP, el cual es un PBX con características avanzadas (sistema de conmutación de telefonía a través del protocolo IP) que permite a todos los usuarios compartir un cierto número de líneas telefónicas externas (Rouse, 2015), además de usar servicios adicionales que ofrece la telefonía VoIP como: recepción de correos a la extensión, grabación de llamadas, IVR (menú de atención automático), entre otras.

Una de las ventajas principales de un PBX IP es que usa la red de datos. Esto significa que es posible usar la misma infraestructura a nivel de datos para el acceso a internet y las comunicaciones VoIP, lo cual brinda flexibilidad a medida que la empresa crece (Rouse, 2015).

2.1 descripción de la alternativa propuesta

Un PBX IP de baja capacidad es una alternativa de interés para reducir los costos de los servicios de TI en escenarios donde no hay un uso masivo del servicio de voz, debido al reducido número de usuarios (menos de 20 usuarios), como ocurre en hogares o establecimientos comerciales pequeños. En este caso, una alternativa es utilizar una raspberry pi modelo B actuando como PBX IP (ver figura 1 ), lo cual es posible a través de la instalación del software Asterisk en la tarjeta. De esta forma, los usuarios pueden registrarse en el PBX IP y realizar llamadas entre ellos.

Además, para ofrecer la conectividad de red entre los dispositivos (p. ej. smartphones, tablets, computadores, teléfonos IP, etc.), es posible utilizar la raspberry pi como Access Point de tal forma que los dispositivos compatibles con la red WLAN se puedan conectar a esta.

2.2 Implementation

Para utilizar la raspberry pi, se efectuó la instalación de la versión de wheezy-raspbian (Raspberry pi foundation, 2015), en una tag eta SD; el cual se utiliza como sistema operativo. Además, se realizaron las configuraciones necesarias, a la raspberry pi, utilizando el protocolo SSH.

A continuación se indica el procedimiento de configuración realizado a la tarj eta para su correcto funcionamiento como PBX IP dentro de una red WLAN. En este caso, la misma tarjeta hace las veces de Access Point, de tal forma que los dispositivos conectados a la red WLAN actúen como terminales.

2.2.1 Configuración de la red WLAN

Para que la raspberry pi actúe como un Access Point, se debe instalar una tarjeta de red USB que pueda funcionar en modo maestro. En este caso se utilizó la taijeta de red IL-WN723Ny se instalaron los drivers de dicha taij eta realizando el procedimiento mostrado en “TP-LINK TL-WN725N v2 working on Raspberry Pi (Raspbian) ” (Samuel, 2015). Además se utilizó el paquete hostapd para el manejo de la red IEEE 802.11 y el paquete dnsmasq para el servicio de asignación de direcciones DHCP Los procedimientos para la configuración de hostapd y dnsmasq fueron realizados de acuerdo a “Raspberry Rouler (Wifi hotspot) ” (Andy, 2015) y “How To: Use The Raspberry Pi As A Wireless Access Point Router” (Sirlagz, 2015).

2.2.2 Configuration de Asterisk

Para la instalación de Asterisk se realizó el procedimiento mostrado en “Instalar Asterisk 11.2 certificado en Raspberry pi Model B con Raspbian ” (Sirlagz, 2015). En este caso la versión de Asterisk utilizada fue Asterisk 11.6 certified.

Para configurar el PBX IP en Asterisk, se editó el archivo de configuración del canal SIP para agregar las cuentas de los usuarios con los parámetros correspondientes, y extensions, conf para configurar el plan de marcación con el cual Asterisk sabe que procedimiento debe realizar cuando se hace una llamada a una extensión determinada. También se editó el archivo de configuración voicemail, conf para agregar los buzones de voz de los usuarios.

Los procedimientos para configurar Asterisk, se realizaron en base a la información contenida en el documento “Asterisk Administrator Guide” (2013).

Al realizar los procedimientos citados anteriormente, la raspberry pi proporciona el servicio de red WLAN actuando como Access Point y el servicio de VoIP actuando como PBX IP. En este caso el PBX IP maneja llamadas usando el protocolo de sesión SIP (el cual es utilizado como protocolo de señalización para la transmisión de tráfico en tiempo real), y el códec de voz alaw (utilizado para convertir la señal de voz en bytes).

2.3 Procedimiento de pruebas

En esta sección se especifica el procedimiento para realizar las mediciones de los parámetros de funcionamiento. Después, en la siguiente sección, se presentan los resultados obtenidos al realizar estas mediciones.

2.3.1 Medición de la capacidad

El obj etivo de la medición de la capacidad del PBX IP, es estimar el número de llamadas concurrentes que la raspberry pi puede manejar. Para realizar estas medidas se acudió a una herramienta de software llamada SIPp, la cual genera un número determinado de llamadas SIP, ejecutando un agente de usuario servidor (UAS) que hace las veces del usuario que recibe la llamada, y un agente de usuario cliente (UAC) que hace las veces del usuario que realiza la llamada.

Las llamadas SIP usadas en la prueba, realizan un intercambio de mensajes como el que se muestra en la figura 2.

La conexión entre el PBX IP y el generador de llamadas se hizo a través de la interface WIFI (donde solo había tráfico correspondiente a las llamadas de voz) como se ve en la figura 3.

Bajo estas condiciones, se pudo observar el comportamiento de la raspberry pi (uso del CPU) para determinar con cuantas llamadas se satura el sistema.

Con el fin de obtener el uso de la CPU de la raspberry pi, se acudió al Task Manager de la raspberry pi, el cual se encuentra en la interface gráfica de raspbian. De esta forma se obtuvo la gráfica de uso de la CPU vs número de llamadas en curso mostrada en la figura 6.

2.3.2 Medición de la calidad del servicio

Los parámetros básicos de funcionamiento para evaluar el desempeño del sistema en cuanto a la comunicación VoIP son: el retardo de paquetes RTP, el jitter, y el porcentaje de pérdida de paquetes. Estos parámetros de calidad de servicio afectan directamente la calidad de la voz (Cisco, 2005).

Para garantizar una calidad de servicio aceptable es necesario mantener los valores de retardo, jitter, y porcentaje de pérdida de paquetes, dentro de los límites apropiados. Los requerimientos para estos tres factores, de acuerdo a la guía de referencia de cisco “Enterprise QoS Solution Reference Network Design Guide” (2005), se encuentran en la tabla 1.

Con el fin de obtener los datos de retardo, jitter, y porcentaje de pérdida de paquetes RTP de una llamada VoIP, se realizó una llamada hacia el computador con el software wireshark, el cual permite analizar los paquetes que llegan y salen por la interface de red del PC. Al mismo tiempo, se generó la congestión a través del generador de llamadas SIPp, de tal manera que se pudiera observar el comportamiento del retardo, el jitter, y lapérdida de paquetes, cuando el número de llamadas concurrentes aumentaba. En la figura 4 se observa el escenario de pruebas utilizado para estas mediciones.

La tasa de generación de llamadas, en SIPp, fue de una llamada por segundo. Cada llamada tuvo una duración de 70 segundos, las cuales producían tráfico de voz con códec alaw en ambos sentidos. El número de llamadas generadas fue incrementado en cada experimento, de acuerdo al número de llamadas concurrentes deseado en el experimento.

2.3.3 Medición del consumo de potencia

Para determinar el consumo de potencia del dispositivo, se midió el voltaj e y la corriente que suministra la fuente de alimentación a la raspberry pi. Para realizar la medición de la comente consumida por la raspberry pi, se utilizó el método de shunt. Dicho método es un procedimiento para determinar la corriente que consume un dispositivo. Este método consiste en medir la caída de voltaje en una resistencia conocida como la resistencia de shunt, la cual se inserta en la línea de suministro de potencia de tal manera que la corriente en la resistencia es igual a la corriente en el dispositivo. Para medir el voltaj e se puede utilizar un multímetro digital y/o un osciloscopio (Nakutis, 2013).

En la figura 5 se muestran las conexiones realizadas para medir el voltaje en la resistencia de shunt. En este caso se utilizó una resistencia de 1Q y una fuente regulada de 5 voltios.

Para obtener la corriente suministrada por la fuente, se divide el voltaje en la resistencia de shunt sobre el valor de la resistencia.

3. Análisis de resultados

3.1 Resultados de las mediciones de capacidad

En la figura 6 se observa como aumenta el uso de la CPU acorde al número de llamadas concurrentes. Cuando el número de llamadas concurrentes sobre WLAN es mayor a 12, se satura la CPU del sistema.

De acuerdo a esto, el número de llamadas concurrentes que la raspberry pi es capaz de manejar exitosamente, no superaría las 12 llamadas debido a la saturación.

3.2 Resultados de las mediciones de calidad del servicio

En la figura 7 se puede observar el gráfico de retardo promedio, en el que se puede apreciar un valor casi constante de aproximadamente 20ms, cuando el número de llamadas en curso es menor a 7. Al superar dicho número de llamadas concurrentes, se observa como el retardo promedio empieza a aumentar, posiblemente porque el uso de la CPU es muy alto (mayor a 80%) cuando hay más de 7 llamadas concurrentes, causando una degradación de la calidad del servicio. Debido a que el retardo permanece por debajo del valor máximo aceptable de 150ms, de acuerdo a la tabla 1 (Cisco, 2005), los efectos del retardo no deberían ser apreciables para el usuario.

Como se ve en la figura 8, cuando el número de llamadas concurrentes es menor a 7, el valor del jitter promedio es de alrededor de 22ms. También se puede notar que cuando el número de llamadas concurrentes supéralas 7 llamadas, el jitter promedio incrementa superando el valor máximo aceptable, el cual es de

30ms de acuerdo a la tabla 1 0. Por consiguiente, se espera que el jitter genere una degradación apreciable de la calidad de la voz cuando el número de llamadas concurrentes sea mayor a 7.

La pérdida de paquetes permanece aproximadamente en 0%, cuando el número de llamadas concurrentes es menor a 7, como se muestra en la figura 9. Además se puede observar que al haber un número de llamadas concurrentes mayor o igual a 8, la pérdida de paquetes crece considerablemente.

Cuando el número de llamadas es mayor a 7, el porcentaje de pérdida de paquetes sobrepasa el umbral de 1%, como se ve en la figura 9, el cual es el valor máximo aceptable para la pérdida de paquetes de acuerdo a la tabla 1 (Cisco, 2005). Como consecuencia, la pérdida de paquetes empieza a generar una degradación considerable en la calidad de la voz debido a las brechas que dejan los paquetes perdidos.

En resumen, de acuerdo a las medidas anteriores, se observó que la calidad del servicio sufre una degradación considerable cuando el número de llamadas concurrentes es mayor 7. Por esta razón se considera que el número de llamadas concurrentes que la raspberry pi es capaz de manej ar exitosamente es siete.

3.3 Resultados de la medición del consumo de potencia

Al medir el voltaj e en la resistencia de shunt (figura 5), se puede conocer la corriente, (I=V/R). La resistencia de shunt y la resistencia de la fuente produce un porcentaje de error en la medida de la corriente, por lo que se debe procurar que el valor de dichas resistencias sea lo más pequeño posible.

En la figura 10 se observa el voltaj e medido en la resistencia de shunt al encender la raspberry pi. En esta grafica se puede ver como el voltaje parte de 0 voltios, y al encender la raspberry pi, este crece hasta estabilizarse en un valor de aproximadamente 500mV Debido a que la resistencia de shunt tiene un valor de IQ, la corriente es aproximadamente 500mA.

En el momento en el que se inicia la red WLAN en la raspberry pi, empiezan a aparecer unos picos de voltaj e como se observa en la figura 11, lo cual influye en lapotenciapromedio consumida, aumentando el voltaje promedio medido en la resistencia de shunt, en 80mv de acuerdo a las medidas realizadas con el multímetro. Por consiguiente, la interface WLAN aporta un consumo de corriente de 80mA.

Al aumentar el número de llamadas concurrentes (a una tasa de 1 llamada cada 500ms), se puede apreciar un cambio en el voltaje de la resistencia de shunt como se ve en la figura 12, donde se observa un aumento en el número y amplitud de picos de voltaje cada 500ms, influyendo en el consumo de potencia promedio (figura 14).

Al apagar la raspberry pi, el voltaj e en la resistencia de shunt desciende hasta 160mV, de acuerdo a las

medidas en el osciloscopio (figura 13), lo cual quiere decir que la raspberry pi tiene un consumo de corriente de 160mA cuando está apagada y conectada a la fuente de suministro. Esto implica costos debido al consumo de potencia en estado off.

Por último, se realizó la medición de los valores de voltaje en la resistencia de shunt, utilizando un multímetro digital, con diferentes números de llamadas en curso. Se pudo observar que por cada llamada, el voltaje en la resistencia de shunt aumenta 8mV aproximadamente, lo cual quiere decir que el consumo de corriente que aporta cada llamada en curso es de 8mA aproximadamente.

Multiplicando la corriente consumida, obtenida a partir de las medidas en la resistencia de shunt, por el voltaje suministrado por la fuente (5v), se obtiene la potencia en la figura 14. Como se observa en esta figura, el consumo de potencia crece al aumentar el número de llamadas en curso hasta llegar a 12 llamadas, donde se observa una saturación del consumo de potencia. Probablemente este comportamiento es causado porque al haber 12 o más llamadas en curso, el uso de la CPU es de 100% como se ve en la figura 6.

En resumen se pudo observar, de acuerdo a los resultados anteriores, que cada llamada en curso sobre la raspberry pi supone un consumo de potencia adicional, por lo que el consumo de potencia crece al aumentar el número de llamadas concurrentes. Cuando el número de llamadas concurrentes es mayor a 12 el consumo de potencia es de 3.14watts; siendo este, el consumo de potencia máximo en el escenario de pruebas planteado.

3.4 Características generales de desempeño

Las características de rendimiento se presentan en la tabla 2. Estas características son estimaciones realizadas de acuerdo a las medidas obtenidas en esta sección. Es necesario aclarar que estos valores pueden variar dependiendo del escenario particular, ya que los

dispositivos utilizados en conjunto con la raspberry pi, pueden influir en los factores que se tuvieron en cuenta para la medición.

3.5. Comparación de las características

Haciendo una comparación de las características de capacidad y consumo de potencia, entre el dispositivo Xcore86 DX (NorthTec, 2015), el cual tiene una capacidad de 38 llamadas concurrentes (Determine the maximum capacity of an Asterisk PBX, 2015) y un consumo de potencia de 9w (NorthTec, 2015), y el PBX IP presentado en este trabajo, el cual tiene una capacidad de 7 llamadas concurrentes y un consumo de potencia de 3.14w, se puede observar que la alternativa presentada en este trabajo está en desventaja con el dispositivo Xcore86 DX, ya que el mismo tiene una capacidad de 5.43 veces más (3 8/ solo consume 2.87 veces la potencia que consume el PBX IP presentado en este trabajo (9/3.14 sXwàtts)- A pesar de esto, es probable que haya casos en los que la capacidad del PBX IP presentado en este trabajo sea suficiente, por lo que esta sigue siendo una buena alternativa al consumir menor potencia. Por otra parte, el costo de la raspberry pi, el cual es de alrededor de 35 dólares (NorthTec, 2015), es menor al costo del Xcore86 DX cuyo precio ronda los 140 dólares (NorthTec, 2015).

4. Conclusiones

En este estudio se realizó la implementación y evaluación de un PBX IP Asterisk usando una raspberry pi, y se hizo una comparación a nivel de hardware con otra alternativa utilizando las características de capacidad de llamadas concurrentes y consumo de potencia, cuyos valores fueron estimados. Encontrándose que la alternativa presentada en este trabajo es una buena opción en escenarios donde una capacidad de 7 llamadas concurrentes sea suficiente; ya que esta consume una potencia de 3.14w, la cual es menor a la potencia consumida por el dispositivo Xcore86 DX que es de 9w. Se realizó la medición de los parámetros de VoIP, para obtener las características de desempeño del PBX IP, teniendo en cuenta el rango de valores apropiados citados en la tabla 1, observando en que situaciones se degradaba la calidad de VoIP. De esta forma se observa que la calidad de VoIP se degrada cuando el número de llamadas sobre WLAN es mayor a 7, en el escenario de pruebas planteado. Se realizó la medición de la corriente consumida por la raspberry pi, utilizando el método de la corriente de shunt, para determinar la potencia consumida. De esta forma se observó como el consumo de corriente aumenta, a medida que crece el número de llamadas concurrentes sobre la red WLAN, en la raspberry pi. Consecuentemente, cada llamada sobre WLAN implica un costo energético en el servidor VoIP, debido a un consumo de corriente de aproximadamente 8mApor llamada. También se encontró, a partir de la misma prueba que el consumo de potencia máximo es de 3.14 watts el cual se produce cuando hay más de 12 llamadas concurrentes sobre WLAN.


5. Referencias bibliográficas

Andy., 2015. Raspberry Router (Wifi hotspot). Consultado el 25 de abril de 2015. http://andypi.co.uk/ ?page_id=220.

Asterisk Development Team, 2013. Asterisk Administrator Guide, 42, 48-58, 60-67.

Cisco Latam, 2013. Tecnología, Innovación y crecimiento.

Cisco, 2005. QoS Requirements of VoIP. Enterprise QoS Solution Reference Network Design Guide, 19

Hajdarevic, K., Konjicija S., and Subasi, A., 2014. Svxlink VOIP implementation using raspberry Pi in education and disaster relief situations, Telecommunications (BIHTEL), X International Symposium on, Sarajevo.

Hajdarevic, K., and Konjicija S., 2015. A low energy computer infrastructure for radio VOIP supported communication and SDR APRS in education and disaster relief situations. Information and Communication Technology, Electronics and Microelectronics (MIPRO).

MCM Electronics. 512MB Raspberry Pi™ Model B Project Board. Recuperado el 23 de noviembre de 2015. http://www.mcmelectronics.com/product/RASPBERRY-PI-RASPBRRY-MODB-512M-/83-14421.

Modulo Consulting. Determine the maximum capacity of an Asterisk PBX. Recuperado el 26 de Agosto de 2015. http://www.modulo.ro/voip-articles-and-tutorials/determine-the-maximum-capacity-of-an-asterisk-pbx.

Nakutis, Z., 2013. Power consumption measurement methods. Embedded Systems Power Consumption Measunnent Methods Overview.

NorthTec, 2015. MicroClient Jr Dx.

Olivera, S., 2014. Las comunicaciones unificadas y los tres factores críticos para la supervivencia de la PyMe. Cisco.

Raspberry pi foundation. Raspbian-2014. Consultado el 1 de septiembre de 2015. http://downloads.raspberrypi.org/raspbian/images/2012-07-15-wheezy-raspbian/.

Rouse, M., 2015. IP PBX (private branch exchange). Consultado el 10 de diciembre de 2015. http://searchunifiedcommunications.techtarget.com/definition/IP-PBX.

Samuel., 2015. TP-LINK TL-WN725N v2 working on Raspberry Pi (Raspbian). Consultado el 23 de abril de 2015. http://www.mendrugox.net/.

Sirlagz., 2015. "How To: Use The Raspberry Pi As A Wireless Access Point/Router”. Consultado el 26 de abril de 2015. http://sirlagz.net/2012/08/09/liow-to-use-the-raspberry-pi-as-a-wireless-access-pointrouter-p art-1/

VozToVoice, "Instalar Asterisk 11.2 certificado en Raspberry pi Model B con Raspbian”. Recuperado el 16 de abril de 2015. https://www.voztovoice.org/?q=node/655.

Wu, J., Rangan, S., Zhang, H., 2013. Green Communications -Theoretical Fundamentals, Algorithms and Applications. CRC Press.

Yu, E., R., Zhang X., Leung, V., C. M., 2012. Introduction en E Richard Yu, Green Communication and Networking, 1-2. CRC Press.

Zhao, C., W., et al. 2015. Exploring IOT Application Using Raspberry Pi. International Journal of Computer Networks and Applications.