Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facultad de Ingeniera
Escuela de Ingeniera El
ectrica
Dise
no e implementaci
on de una central
telef
onica IP basada en RaspBerry Pi y
Asterisk
Por:
Jose Pablo Fernandez Zamora
Dise
no e implementaci
on de una central
telef
onica IP basada en RaspBerry Pi y
Asterisk
Por:
Jose Pablo Fernandez Zamora
IE-0499 Proyecto el
ectrico
Aprobado por el Tribunal:
Resumen
En este proyecto se busca dise
nar e implementar una PBX IP basada en
RaspBerry Pi & Asterisk. A su vez determinar de forma teorica y practica
las capacidades b
asicas que podra ofrecer esta plataforma.
Inicialmente se procedio a describir la informacion existente referente a los
posibles resultados que se podran obtener al realizar la implementacion de la
PBX IP mencionada. Se determino que no existe una forma teorica de definir
esto, debido principalmente al procesador que utiliza RaspBerry Pi.
Posteriormente se realizo la implementacion de este sistema sin agregar
servicios extras que eventualmente podran ofrecerse. Se detallaron todos los
pasos seguidos, recolectando informacion de una amplia variedad de fuentes.
Ademas se brind
o informacion referente a las posibles limitantes que pueden
existir al momento de considerar de forma erronea el uso de dispositivos de
alimentaci
on o almacenamiento.
Se describieron las formas en las que es posible implementar Asterisk y
se determin
o que la forma mas rapida y menos compleja de hacer esta implementaci
on es por medio de dos distribuciones en particular, de las cuales
una a
un es una versi
on de prueba. Con base a toda la informacion consultada
tambien se concluy
o que no existe literatura formal que haga referencia a la
implementaci
on de Asterisk en RaspBerry Pi.
Se hicieron pruebas de desempe
no simulando trafico de llamadas por medio
de clientes dentro y fuera de la red local. Con base en los resultados experimentales obtenidos, se hicieron recomendaciones referentes a la cantidad de
llamadas simult
aneas que puede soportar RaspBerry Pi & Asterisk.
Luego se recolect
o informacion referente a servicios adicionales que se podran implementar en esta plataforma. Por u
ltimo, se implementaron dos de
estos servicios: el uso de troncales inalambricas y la utilizacion de telefonos
R
VoIP marca Cisco
.
Indice general
Indice de figuras
ix
Indice de cuadros
ix
Nomenclatura
xi
1 Introducci
on
1.1 Introducci
on del informe . . . . . . . . . . . . . . . . . . . . . .
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
1
2
2 Marco te
orico
2.1 PBX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 RaspBerry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
9
3 RaspBerryPi y Asterisk
13
3.1 Llamadas simultaneas . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Tiempos de respuesta . . . . . . . . . . . . . . . . . . . . . . . 14
4 Implementaci
on
4.1 Alimentaci
on . . . . . . . . . .
4.2 Memoria de almacenamiento .
4.3 Instalaci
on Asterisk . . . . . .
4.4 Configuraci
on post-instalacion .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
17
17
19
5 Pruebas de desempe
no
21
5.1 SIPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Comunicaciones usuarios red local . . . . . . . . . . . . . . . . 22
5.3 Comunicaciones usuarios red extendida utilizando Internet . . . 23
6 Funciones adicionales
29
6.1 Descripci
on de funciones adicionales . . . . . . . . . . . . . . . 29
6.2 Implementaci
on de funciones adicionales . . . . . . . . . . . . . 31
7 Conclusiones y recomendaciones
vii
35
8 Anexos
37
8.1 Implementaci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.2 Pruebas de desempe
no . . . . . . . . . . . . . . . . . . . . . . . 60
8.3 Implementaci
on de funciones adicionales . . . . . . . . . . . . . 68
Bibliografa
73
viii
Indice de figuras
2.1
2.2
2.3
2.4
PBX manual . . . . . . . . . . . . . . . . . . . . . . .
Ejemplo escabilidad de Asterisk (Akb77, 2013) . . . .
Estructura modular Asterisk . . . . . . . . . . . . . .
Configuraci
on Puerto GPIO - RaspBerry Pi (Cynthec
2013) . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
y Pimoro,
. . . . . . .
12
4.1
15
5.1
5.2
5.3
5.4
5.5
5.6
5.7
.
.
.
.
.
.
.
22
23
24
24
26
26
27
6.1
34
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
Configuraci
on
.
.
.
.
.
.
.
.
.
.
.
.
49
50
51
52
54
56
56
58
59
60
69
70
Caractersticas RaspBerry Pi . . . . . . . . . . . . . . . . . . . . .
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
avanzada - FreePBX . . . . . . . . . . . . . . .
SIP - FreePBX . . . . . . . . . . . . . . . . . .
IAX - FreePBX . . . . . . . . . . . . . . . . . .
extension SIP - FreePBX . . . . . . . . . . . .
extension IAX2 - FreePBX . . . . . . . . . . .
enlace al Servidor 2 Parte 1 - FreePBX . . . .
enlace al Servidor 2 Parte 2 - FreePBX . . . .
ruta de salida al Servidor 2 Parte 1 - FreePBX
ruta de salida al Servidor 2 Parte 2 - FreePBX
ruta de entrada - FreePBX . . . . . . . . . . .
troncal GSM - FreePBX . . . . . . . . . . . . .
ruta de salida GSM - FreePBX . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
6
9
Indice de cuadros
2.1
ix
3.1
14
8.1
8.2
8.3
8.4
8.5
8.6
Par
ametros extensiones SIP . . . . . . . . . . . . .
Par
ametros extensiones IAX2 . . . . . . . . . . . .
Par
ametros enlaces IAX2 - Configuracion saliente .
Par
ametros enlaces IAX2 - Configuracion entrante
Numeraci
on local de extensiones en cada servidor .
Par
ametros de configuraci
on rutas de salida . . . .
53
53
55
55
57
58
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Nomenclatura
<x>
texto
IP
Por sus siglas en ingles, Internet Protocol. Es un protocolo usado para la comunicacion de datos a traves de una
red.
VoIP
PBX
PABX
Por sus siglas en ingles, Private Automatic Branch Exchange. Es una PBX automatica.
PCI
Por sus siglas en ingles, Peripheral Component Interconnect. Es un bus de ordenador estandar para conectar
dispositivos perifericos directamente a su placa base.
PSTN
Por sus siglas en ingles, Public Switched Telephone Network. Conjunto de elementos constituido por todos los
medios de transmision y conmutacion necesarios para enlazar a voluntad dos equipos terminales mediante un circuito fsico que se establece especficamente para la comunicacion y que desaparece una vez que se ha completado
la misma. Se trata por tanto, de una red de telecomunicaciones conmutada.
IRC
Por sus siglas en ingles, Internet Relay Chat. Es un protocolo de comunicacion en tiempo real basado en texto,
que permite debates entre dos o mas personas.
xi
SMS
API
Por sus siglas en ingles, Application Programming Interface. Es el conjunto de funciones y procedimientos que
ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstraccion.
FXS
ISDN
Por sus siglas en ingles, Integrated Services Digital Network. Red que procede por evolucion de la Red Digital
Integrada (RDI) y que facilita conexiones digitales extremo a extremo para proporcionar una amplia gama de
servicios, tanto de voz como de otros tipos, y a la que
los usuarios acceden a traves de un conjunto de interfaces
normalizados.
SIP
H.323
Es un conjunto de normas ITU (International Telecommunication Union) para comunicaciones multimedia que
hacen referencia a los terminales, equipos y servicios estableciendo una se
nalizacion en redes IP.
IAX
Por sus siglas en ingles, Inter-Asterisk eXchange protocol. Es uno de los protocolos utilizado por Asterisk para
manejar conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambien utilizan protocolo
IAX.
MGCP
Por sus siglas en ingles, Media Gateway Control Protocol. Es un protocolo interno de VoIP cuya arquitectura
se diferencia del resto de los protocolos VoIP por ser del
tipo cliente ? servidor.
xii
RAM
PoE
SD
WiFi
Por sus siglas en ingles, Wireless Fidelity. Es un mecanismo de conexion de dispositivos electronicos de forma
inalambrica.
USB
ARM
NTP
SSH
URL
LAN
WAN
G.711
Es un est
andar de codificacion digital para representar
una se
nal de audio en frecuencias de la voz humana,
mediante palabras de 8 bits de resolucion, con una tasa
de 8000 muestras por segundo. Por tanto, el codificador
G.711 proporciona un flujo de datos de 64 Kbit/s.
GSM
Por sus siglas en ingles, Global System for Mobile communications. Es un estandar de codificacion digital que
consume casi la quinta parte de ancho de banda que
G.711. Este proporciona un flujo de datos de 13kbit/s.
GPIO
UAC
UAS
xiv
Introducci
on
1.1
Introducci
on del informe
1.2
Objetivos
Objetivo general
Dise
nar e implementar una central telefonica IP basada en RaspBerry Pi y
Asterisk.
1
2
http://www.asterisk.org/
http://www.raspberrypi.org/
1 Introduccion
Objetivos especficos
Para el desarrollo de este proyecto se establecieron los siguientes objetivos
especficos:
Determinar las capacidades basicas que puede ofrecer una central telef
onica IP basada en una plataforma de RaspBerry PI con [ Asterisk].
Implementar una central telefonica con las capacidades descritas en el
objetivo anterior.
Describir capacidades adicionales que se pueden implementar en esta
plataforma.
Implementar algunas de las capacidades adicionales en esta plataforma.
1.3
Metodologa
Marco te
orico
En este captulo se describen las principales caractersticas de PBX, RaspBerryPi y Asterisk, esto debido principalmente a que son los temas en los que
se fundamenta este proyecto.
2.1
PBX
2 Marco teorico
2.2
Asterisk
Seg
un Bryant et al. (2013), Asterisk es actualmente la PBX mas exitosa en el
mundo y ya es una tecnologa aceptada en la industria de las telecomunicaciones.
Asterisk es una PBX por software que puede ser ejecutado sobre cualquier ordenador est
andar siempre y cuando cumpla con las capacidades de
procesamiento y almacenamiento mnimas. Este software ademas esta basado
en el concepto de software libre, lo cual no lo convierte u
nicamente en una
aplicaci
on gratuita sino tambien en una aplicacion sin restricciones para su
ejecuci
on, distribuci
on e incluso modificacion. Fue creada por Mark Spencer y
actualmente su principal desarrollador es Digium 1 . Es una aplicacion multiplataforma, sin embargo, la plataforma nativa es Linux, la cual ademas es en
la que se cuenta con mayor soporte.
La gran diferencia entre Asterisk y otros software propietarios, es que
Asterisk no tiene restricciones en cuanto a la forma en la que debe funcionar
un sistema de telefona o bien que tecnologas se deben emplear. Debido a
su estructura modular y la su gran flexibilidad, es posible incorporar casi
cualquier tecnologa a esta aplicacion. Sin embargo, una de sus desventajas es
que no es simple de configurar, por lo que es necesario contratar a un experto
en el tema al momento de hacer la implementacion, o adquirir las habilidades
necesarias para realizar esta tarea.
1
http://www.digium.com/
2.2. Asterisk
Principales ventajas
Seg
un Garcia (2008) entre las principales ventajas de Asterisk podemos destacar:
Reducci
on de costos: Esto no se refiere u
nicamente a que la licencia es
de c
odigo abierto, sino tambien en factores determinantes como la unificaci
on de la red, la utilizacion de plataformas para servidores estandar
(por medio del puerto PCI), etc.
Funcionalidad: Asterisk ofrece una variedad de servicios inclusive mayor
a la que muchos otros programas propietario ofrecen por lo que es otra
de sus ventajas.
Escalabilidad: El sistema es tan flexible que ofrece inclusive la posibilidad de paralelizar sus servicios en diversos servidores. Ademas es posible
conectar cada PBX Asterisk con otras, lo que hace posible implementar cualquier topologa de red que sea necesaria (multi-departamental,
multi-sedes, etc). En la figura 2.2 se muestra un ejemplo.
Inter-operabilidad y Flexibilidad: Esto hace referencia a que soporta una
gran cantidad de estandares telefonicos tanto analogicos como para IP.
Lo que permite una amplia posibilidad de interaccion con otros sistemas.
Interfaces
Hasta ahora se ha mencionado a Asterisk como una PBX por software que puede correr sobre cualquier ordenador estandar, sin embargo, parte importante
de las PBX es la posible interactuar con troncales analogicas y esta claro que
un ordenador est
andar no cuenta con puertos fsicos que nos permitan administrar estos canales. Seg
un Bryant et al. (2013), cuando el proyecto Asterisk
naci
o, haban otros posibles proyectos de telefona de codigo abierto, uno de
esos proyectos era la asociacion de Asterisk con Zapata Telephony Project
para el desarrollo de interfaces PSTN (public switched telephone network).
Hoy en da se ha incrementado la cantidad de fabricantes como tambien la
variedad de tipos de interfaces, entre los mas destacados podemos mencionar
a Digium, OpenVox2 , Pika3 , Sangoma4 , Dialogic5 , etc.
2
http://www.openvox.cn/
http://www.pikatechnologies.com/
4
http://www2.sangoma.com/
5
http://www.dialogic.com/
3
2 Marco teorico
Comunidad
Bryant et al. (2013) afirman que otra de las indiscutibles ventajas con las
que cuenta Asterisk actualmente es la extensa y apasionada comunidad de
desarrollo y soporte (dirigida por Digium). Lo cual nace a raz de la gran
cantidad de usuarios satisfechos. Ademas la comunidad cuenta diversos medios
de comunicaci
on como listas de correos, sitios wiki, canales IRC, etc. Los cuales
facilitan la interacci
on con el resto de usuarios.
Servicios
Seg
un Garcia (2008) algunas de las principales servicios que ofrece Asterisk
son:
Receptor de alarmas
2.2. Asterisk
Asistencia automatizada
Autentificaci
on
Lista negra
Grabaci
on de llamadas
Monitoreo de llamadas
Llamadas en espera
Recuperaci
on de llamadas
Gua de llamadas
Transferencia de llamadas
Identificaci
on de usuarios
Conferencias
Integraci
on de base de datos
Marcado por nombre
L
ogica flexible de las extensiones
Lista de directorio interactivo
Respuesta de voz interactivo
Mensajera SMS
Detecci
on de conversaciones
M
odulos
Como se ha mencionado anteriormente la estructura de Asterisk es modular.
Es como una estructura de legos en donde cada lego (modulo) cumple una
funci
on en especfico y al unirlos todos obtenemos un sistema con una amplia
diversidad de servicios, desde los mas simples hasta los mas complejos(Bryant
et al., 2013).
Seg
un Garcia (2008), dependiendo de su funcion los modulos pueden agruparse en los siguientes grupos:
N
ucleo de PBX: Aqu se agrupan todos los modulos relacionados con
un sistema de conmutacion de intercambio de rama privada o bien las
capacidades esenciales de una PBX.
2 Marco teorico
Lanzador de aplicaciones: Este grupo contiene aplicaciones que mejoran
servicios y van un poco m
as alla de los servicios primitivos de una PBX.
Ejemplo de esto puede ser voicemail, lista de directorios, mensajera
SMS, grabaci
on de llamadas, etc.
Codecs y traductor de codecs: Contiene todos los codificadores y decodificadores con los que dispone la PBX para comunicarse con el resto de
dispositivos. Estos son indispensables para realizar un eficiente uso del
ancho de banda (G723, G729, iLBC, GSM, LPC10).
Gestor de entra y salida: Contiene organizacion de tareas de bajo nivel
y sistemas de operaci
on. Su funcion primordial es mantener un buen
rendimiento ante cambios en la demanda de servicios.
Cargador de m
odulos API (Application Programming Interface): Aqu
se agrupan los m
odulos que permiten el uso flexible de las aplicaciones
para ejecutar las acciones requeridas. Ademas permite el desarrollo de
aplicaciones de acuerdo a requerimientos especficos. Se clasifican en 4
tipos:
Canal API
Aplicaci
on API
Traductor de codec API
Formato de archivo API
Canales: Contiene todos los modulos necesarios para la utilizacion de
diversos canales de comunicacion (FXS, ISDN, Bluetooth, ITU, PSTN,
etc).
Protocolos: Contiene informacion de se
nalizacion al momento de establecer comunicaci
on y ademas determinar punto de destino (SIP, H323,
IAX, MGCP, etc). En ocasiones maneja aspectos relacionados con tono,
tiempo de repique, identificacion de llamadas, etc.
2.3. RaspBerry Pi
2.3
RaspBerry Pi
Seg
un RaspBerryPi-Foundation (2013), RaspBerry Pi es un ordenador de placa reducida de bajo costo, desarrollada en el Reino Unido, cuyo proposito inicialmente era promover la educacion de adultos y ni
nos principalmente en el
campo de la inform
atica.
En el cuadro 2.1 se resumen las principales caractersticas de este dispositivo.
Puntos a considerar:
No es posible iniciar el sistema sin una tarjeta SD.
No existe ning
un interruptor de encendido/apagado.
No cuenta con un reloj de tiempo real.
La memoria RAM no es removible ni intercambiable.
No soporta PoE (Power over Ethernet).
10
2 Marco teorico
El tama
no mnimo recomendado para la tarjeta SD es 2GB. Ademas
se le han hecho pruebas con memorias de hasta 32GB y ha funcionado
correctamente.
Ninguno de los modelos cuenta con Wi-Fi (es posible incorporar va
USB).
Para incrementar la cantidad de puertos USB se recomienda el uso de
un HUB con alimentaci
on independiente.
Adem
as este ordenador puede comunicarse con dispositivos externos mediante el conector GPIO incorporado. En la figura 2.4 se muestra informacion
recopilada por Cyntech Components6 y Pimoroni7 acerca de la estructura del
conector. En donde es posible observar que este cuenta con 4 pines de alimentaci
on (2 a 5V y 2 a 3.3V), 5 pines a tierra y 17 pines entrada/salida.
Los pines de entrada/salida est
an divididos en 5 secciones dependiendo de las
capacidades especiales o uso predeterminado para los mismos.
A continuaci
on se describe dicha division y el uso de destinado para cada
uno(Cynthec y Pimoro, 2013):
1. I 2 C(Inter-Integrated Circuit):Es una interfaz de comunicacion de baja
velocidad (usualmente de 10kbit/s hasta 100kbit/s) originalmente disen
ada para la comunicaci
on entre circuitos integrados. Solo requiere dos
lneas para transmitir informacion, SDA para datos y SCL para el reloj.
2. CLK: Se genera una se
nal de reloj de onda cuadrada para uso general
con una frecuencia alrededor de 75MHz.
3. SPI(Serial Peripheral Interface Bus): Conector serial sincronico de dos
vas. El tipo de comunicacion es entre un dispositivo maestro y otro
esclavo en donde el dispositivo maestro provee la se
nal de sincrona. La
informaci
on se transfiere por medio de los puertos MOSI y MISO. Cada
transmisi
on est
a sincronizada por el pulso en SCLK.
4. UART(Universal Asynchronous Receiver/Transmitter):Este es un metodo de transmisi
on de datos bajo conexion en serie. Cada uno de los
dispositivos de comunicaci
on contiene un registro de desplazamiento que
convierte los bytes de datos que se transmiten en un flujo de bits.
6
2.3. RaspBerry Pi
11
M odeloA
M odeloB
Precio
CPU
GPU
RAM
Memoria
Puertos USB
Salida de Video
Salida de Sonido
Red Local
Consumo (tpico)
Alimentaci
on
Dimensiones
Sistema operativo
$25
ARM1176JZF-S a 700MHz
Videocore 4
256MB
Puerto SD
1
RCA y HDMI
Jack de 3.5mm y HDMI
No disponible
300mA
5V - puerto MicroUSB
85.60mm x 56mm x 21mm
Fedora, Debian y ArchLinux
$35
ARM1176JZF-S a 700MHz
Videocore 4
512MB
Puerto SD
2
RCA y HDMI
Jack de 3.5mm y HDMI
Ethernet 10/100 (RJ45)
700mA
5V - puerto MicroUSB
85.60mm x 56mm x 21mm
Fedora, Debian y ArchLinux
5. PWM(Pulse-width modulation):Esta es una manera de controlar la cantidad de energa entregada a un dispositivo por medio de rapidas interrupciones. Tpicamente miles de veces por segundo. Este pin puede ser
utilizado para controlar motores, leds, entre otros.
12
2 Marco teorico
RaspBerryPi y Asterisk
Este captulo busca determinar las capacidades basicas que puede ofrecer una
central telef
onica IP basada en RaspBerry Pi & Asterisk.
A continuaci
on se describe por secciones toda la informacion recolectada
referente a los posibles resultados y aspectos a considerar luego de ejecutar
Asterisk en RaspBerry Pi.
3.1
Llamadas simult
aneas
14
3 RaspBerryPi y Asterisk
Cuadro 3.1: Requerimientos mnimos recomendados - Asterisk
Prop
osito
N
umero de canales
Mnimo recomendado
No mas de 5
5 a 10
hasta 25
mas de 25
3.2
Tiempos de respuesta
Seg
un Meggelen et al. (2007) las necesidades de Asterisk son similares a las
de una aplicaci
on embebida de tiempo real. Esto debido principalmente a que
debe tener prioridad al momento de acceder al procesador y buses del sistema.
En sistemas peque
nos esto no podra causar inconvenientes, sin embargo, para
sistemas de mayor capacidad puede provocar problemas de calidad en el audio.
Debido a esto, independientemente del hardware o sistema operativo en el
que se ejecuta Asterisk es importante determinar adecuadamente los privilegios de ejecuci
on del mismo.
Implementaci
on
En esta secci
on se busca detallar las consideraciones que se hicieron y los
pasos que se siguieron para implementar una central telefonica IP basada en
RaspBerry Pi & Asterisk.
Dispositivos utilizados:
RaspBerry Pi version B.
R
Cargador marca Enercell
modelo
2301775.
R
Memoria microSDHC de 16GB clase 4 marca Silicon Power
con
un
adaptador microSD-SD de la misma marca.
16
4 Implementacion
4.1
Alimentaci
on
RaspBerry Pi
Seg
un RaspBerryPi-Foundation (2013) el consumo de corriente es aproximadamente de 300mA y 700mA para las versiones A y B respectivamente, en
donde se consider
o el uso del dispositivo de red y perifericos USB. En cuanto
al nivel de tension este debe ser 5V y el tipo de conector debe ser MicroUSB.
Debido a esto es indispensable tener una fuente de alimentacion que por lo
menos proporcione la corriente requerida de acuerdo al modelo que tengamos.
De no cumplirse la corriente mnima requerida, un error tpico es que el dispositivo no encienda o bien que los perifericos como el raton o teclado no
funcionen adecuadamente.
Para esta implementaci
on se utilizo una RaspBerry Pi version B por consiR
guiente una fuente de poder marca Enercell
modelo
23017751 con capacidad
de proveer hasta 1.2A a 5V.
Por u
ltimo es importante agregar que seg
un RaspBerryPi-Foundation (2013),
RaspBerry Pi si puede ser alimentado por medio de bateras (4 x AA), sin
embargo, no por PoE2 (por si misma).
R
Este dispositivo puede ser adquirido en cualquier sucursal de RadioShack
con
un precio
equivalente a $21.
2
Power Over Ethernet
4.2
17
Memoria de almacenamiento
Como ya se mencion
o anteriormente RaspBerry Pi cuenta con un puerto SD
para este prop
osito. Las memorias SD (en sus siglas en ingles Secure Digital)
R Seg
es un formato de tarjetas de memorias inventado por Panasonic
.
un SDAssociation (2013) las memorias SD se clasifican principalmente de acuerdo
a su capacidad de almacenamiento, velocidad en el bus y la velocidad de
transferencia.
Capacidad de almacenamiento: Se clasifica en SD, SDHC o SDXD con
una capacidad m
axima de 2GB, 32GB y 2TB respectivamente.
Velocidad en el bus: Se clasifica en normal speed, high speed, UHS-I
y UHS-II con velocidades de bus de 12.5MB/s , 25MB/s y 156MB/s
respectivamente.
Velocidad de transferencia: Esta clasificacion garantiza la velocidad mnima de transferencia. Para speed class3 se clasifican en clase 2, 4, 6
y 10 en donde cada una equivale a 2MB/s, 4MB/s, 6MB/s y 10MB/s
respectivamente.
Seg
un RaspBerryPi-Foundation (2013) la capacidad de almacenamiento
mnima recomendada es de 4GB, ademas se han realizado pruebas exitosas
con memorias de hasta 32GB lo cual implica que se debe usar una memoria
SDHC. En cuanto a la velocidad en el bus ninguna representa limitaciones de
desempe
no para RaspBerryPi por lo que se recomienda normal speed (menor
precio). Por u
ltimo, la velocidad de transferencia si puede afectar el desempe
no
al momento de que el procesador intente acceder a los datos y dicha velocidad
sea limitada por lo que se recomienda clase 10.
Para esta implementacion se utilizo una microSDHC de 16GB clase 4 marR
ca Silicon Power
con
un adaptador microSD-SD de la misma marca.
4.3
Instalaci
on Asterisk
Como ya se mencion
o en el captulo 2, Asterisk es una aplicacion multiplataforma, lo que significa que puede ser ejecutada sobre diferentes sistemas
operativos. Sin embargo, la plataforma nativa es Linux y se recomienda la
ejecuci
on de esta aplicacion en dicha plataforma. Debido a lo anterior, para
esta implementaci
on se utilizo Linux como sistema operativo, en particular la
distribuci
on recomendada para RaspBerry Pi, raspbian.
3
18
4 Implementacion
http://cubian.org/
http://cubieboard.org/
4.4. Configuraci
on post-instalacion
19
Sin embargo, no todas estas distribuciones estan disponibles para RaspBerry Pi, al recopilar informacion respecto al tema u
nicamente se encontraron
las siguientes:
RasPBX
Trixbox
De las cuales Trixbox a
un se encontraba en una version beta. Debido a ello
para esta implementaci
on se realizo la instalacion de RasPBX.
RasPBX est
a basada en Rasbian (Debian7/Wheezy) e incluye:
Asterisk 11.5.0
FreePBX 2.11.0.10
Los pasos seguidos para esta instalacion se detallan en los anexos.
4.4
Configuraci
on post-instalaci
on
Pruebas de desempe
no
5.1
SIPP
Como ya se mencion
o anteriormente, SIPP es un generador de trafico SIP el
cual utiliza agentes de usuario UAC y UAS (esto basicamente hace referencia a
desde donde se est
a generando el trafico). En este caso el trafico se genero desde
un dispositivo cliente (UAC) con linux-debian, por lo que el procedimiento
descrito es aplicable a equipos similares.
En los anexos se describen los pasos seguidos para la instalacion y configuraci
on de SIPP.
21
22
5 Pruebas de desempe
no
5.2
Para generar tr
afico desde la red local, se accedio a la red en la cual se encontraba la PBX IP y posteriormente se apunto a dicha PBX IP por medio de la
IP local. Para hacer esto, desde el ordenador en donde se instalo SIPP, se debe
acceder a la carpeta que se cre
o al momento de la instalacion y posteriormente
ejecutar un comando similar al siguiente:
$ sudo ./sipp -sf
23
5.3
Para generar tr
afico desde la red extendida, se accedio a una red distinta a
la cual se encontraba la PBX IP y posteriormente se apunto a dicha PBX
24
5 Pruebas de desempe
no
25
IP por medio de la IP p
ublica. Para hacer esto, desde el ordenador en donde
se instal
o SIPP, se debe acceder a la carpeta que se creo al momento de la
instalaci
on y posteriormente ejecutar un comando similar al siguiente:
$ sudo ./sipp -sf
26
5 Pruebas de desempe
no
27
Funciones adicionales
6.1
Descripci
on de funciones adicionales
Integraci
on con actuadores
Como ya se mencion
o en el captulo 2, RaspBerry Pi cuenta con pines GPIO,
por lo que existe la posibilidad de integrar la PBX IP con diferentes actuadores.
Esto cobra principal interes en aquellos casos en los que eventualmente es
necesario realizar acciones de control de forma remota, inclusive cuando no se
cuente con acceso a Internet.
A continuaci
on se describen algunos ejemplos para los cuales se podra
utilizar esta caracterstica:
Permitir acceso a areas restringidas (puertas con chapas electricas, etc)
29
30
6 Funciones adicionales
Encender o apagar iluminacion.
Abrir o cerrar port
on electrico (motores).
Variar la velocidad de un motor.
Activar alarma.
Conocer el estado de alg
un dispositivo (ON/OFF).
Conocer el valor de alg
un sensor resistivo.
En donde cada una de las acciones descritas podran realizarse desde una
extensi
on local o incluso desde una llamada externa.
Debido a que RaspBerry Pi cuenta u
nicamente con puertos GPIO, es importante resaltar que no cuenta con entradas ni salidas analogicas por lo que
generalmente podra activar dispositivos u
nicamente de 2 estados (ON/OFF).
Adem
as al utilizar los pines como salidas digitales se manejan tensiones de
3.3V por lo que en la mayora de los casos seria necesario utilizar electronica
adicional para controlar dispositivos de mayor potencia.
En el ejemplo en donde se menciona la posibilidad de variar la velocidad de
un motor, esto se propone obtener gracias a que RaspBerry Pi cuenta con un
puerto PWM. Sin embargo, se considera importante recalcar que RaspBerry
Pi cuenta u
nicamente con un puerto PWM.
En el caso del u
ltimo ejemplo mencionado, en el cual se pretende conocer
el valor de alg
un sensor, esto podra hacerse por medio de una tecnica llamada
RCTIME, en la cual b
asicamente por medio de un puerto de entrada digital
se determina el tiempo de descarga de un capacitor y posteriormente a esto
se deduce el valor resistivo del sensor. Debido a lo anterior es un requisito
indispensable que el sensor sea de tipo resistivo.
En el mercado existen varias tarjetas que se utilizan como interfaz para
los puertos GPIO, en este apartado se mencionaran las caractersticas de una
R
en particular: PiFace
.
R se ajusta f
Seg
un element14 (2013)1 , PiFace
sicamente sobre RaspBerry
Pi, en especfico sobre el puerto GPIO. Cuenta con las siguientes caractersticas:
Dos reles de hasta 20V y 5A.
Cuatro interruptores tactiles.
Ocho entradas digitales.
Ocho LEDs indicadores.
1
6.2. Implementaci
on de funciones adicionales
31
6.2
Implementaci
on de funciones adicionales
En esta secci
on se busca detallar las consideraciones que se hicieron y los
pasos que se siguieron para implementar algunas de las capacidades adicionales
descritas en el secci
on anterior utilizando como plataforma una PBX IP basada
en RaspBerry Pi & Asterisk.
Dispositivos utilizados:
R
M
odem GSM marca Huawei
modelo
E1750.
R
Software PBX propietario de Cisco
R
El siguiente enlace muestra una lista con algunos modelos de telefonos Cisco
y
los
firmware disponibles:
http://www.cisco.com/en/US/docs/voice ip comm/cucme/requirements/guide/cme71spc.htm.
3
32
6 Funciones adicionales
A continuaci
on se describen todos los aspectos relevantes a la implementacion por medio de subsecciones. En donde ademas el orden de dichas secciones
representa la secuencia cronol
ogica realizada:
6.2. Implementaci
on de funciones adicionales
33
existan problemas al momento de recibir mensajes de texto, un posible problema es que la memoria del chip GSM este llena. Para eliminar la informacion
contenida en el chip GSM, en la terminal:
$ asterisk -r
El c
odigo ingresado anteriormente nos dara acceso a la lnea de comandos
de Asterisk, accediendo al mismo en modo de segundo plano, lo que significa
que aunque posteriormente cerremos la lnea de comandos, Asterisk seguira
ejecut
andose.
Para borrar la informacion en el chip GSM es necesario conocer el nombre
que se le asign
o a el m
odem GSM, para esto; ejecutar en la lnea de comandos
de Asterisk :
dongle show devices
Posteriormente en la lnea de comandos de Asterisk :
dongle cmd <nombre del dongle> AT+CPMS=\"SM\",\"SM\",\"SM\"
dongle cmd <nombre del dongle> AT+CMGD=1,4
Por u
ltimo, para salir de la lnea de comandos de Asterisk :
exit
R
Hardphone marca Cisco
En esta secci
on se detallan los pasos seguidos para actualizacion y configuraR
ci
on de un telefono marca Cisco
modelo
CP-7940, ademas de las consideraciones adicionales al momento de configurar la extension para este dispositivo
en una PBX IP basada en RaspBerry Pi & Asterisk.
Actualizaci
on y configuracion Telefono VoIP: Algunos telefonos VoIP
R en particular este modelo, durante el proceso de arranque exCisco
y
traen informaci
on de actualizacion y configuracion desde alg
un servidor
tftp dentro de la red. Por lo que para este proceso se asumira que se
cuenta con dicho servidor funcionando adecuadamente.
En los anexos se indican los pasos seguidos para configurar los parametros de red, la actualizacion del firmware, configuracion general y
configuraci
on de identificacion SIP.
Configuraci
on extension SIP en Asterisk : Al momento de configurar exR
tensiones SIP para dispositivos marca Cisco
se
debe prestar especial
atenci
on a dos parametros. El primero es el de NAT, el cual debe estar
34
6 Funciones adicionales
configurado para que nunca sea tomado en cuenta. El segundo es Qualify, el cual debe estar desactivado. De no configurar de esta manera las
extensiones es posible que el telefono no se registre correctamente o que
presente alg
un otro tipo de problema.
En las figuras 6.1 se muestra la seccion FreePBX Administration
ApplicationsExtensions de FreePBX con las modificaciones en la
configuraci
on de la extensi
on 100 para un correcto funcionamiento con
R
un telefono VoIP marca Cisco
.
Conclusiones y recomendaciones
Conclusiones
Se enumeran las principales conclusiones derivadas de este proyecto.
1. No es posible determinar de forma teorica las capacidades basicas que
podra proporcionar una PBX IP basada en RaspBerry Pi & Asterisk.
Esto porque ademas de que son muchos los factores que intervienen, los
principales desarrolladores de Asterisk ofrecen parametros de referencia
en los cuales no se consideran procesadores ARM. Por lo que a pesar de
que lo que se brinda es solo una referencia poco exacta, no esta referida
a equipos con capacidades parecidas al utilizado en este documento.
2. La implementaci
on de una PBX IP basada en RaspBerry Pi & Asterisk
puede llevarse acabo de muchas formas, desde las mas simples y rapidas,
hasta las m
as complejas y lentas. Sin embargo, las que suelen ser mas
r
apidas tienden a limitar la flexibilidad natural de Asterisk.
3. Factores de alimentacion y dispositivos de almacenamiento pueden limitar considerablemente las capacidades ofrecidas por el hardware utilizado.
4. Actualmente existen u
nicamente dos distribuciones que incluyen el sistema operativo, Asterisk y el resto de paquetes complementarios, en donde
una de estas distribuciones a
un se encuentra en una version de prueba.
5. Para realizar una instalacion de Asterisk sin utilizar ninguna de las distribuciones recomendadas en este proyecto, es necesario tener un amplio
conocimiento sobre dicha aplicacion.
6. Existe mucha literatura muy completa y extensas sobre Asterisk. Sin
embargo, es muy poca la documentacion formal para su aplicacion en
ordenadores de placa reducida como RaspBerry Pi.
7. Existen muchas herramientas que facilitan la realizacion de pruebas de
desempe
no en sistemas de telecomunicaciones como el implementado.
En cada uno de estos programas se pueden simular diversos escenarios
dependiendo de el nivel de estres al que se desea garantizar que el equipo
responda adecuadamente. Sin embargo, los resultados obtenidos no dejan
35
36
7 Conclusiones y recomendaciones
de ser simulaciones y contienen un margen de error con respecto a los
resultados obtenidos ante un trafico de llamadas real.
8. Los resultados obtenidos posteriormente a la generacion de trafico desde
la red extendida manifiesta un comportamiento no constante debido a
que depende del ancho de banda proporcionado por los proveedores de
Internet.
9. Debido a la diversidad de puertos con los que cuenta RaspBerry Pi, es
posible implementar servicios adicionales acorde a necesidades comunes.
Recomendaciones
Se enumeran las principales recomendaciones derivadas de este proyecto.
1. De acuerdo a los resultados experimentales obtenidos en el captulo referente a las pruebas de desempe
no, se recomienda el uso de PBX IP
basados en RaspBerry Pi & Asterisk para situaciones en las cuales no
se requiera un tr
afico superior a 6 o 7 llamadas simultaneas utilizando
codificadores GSM o G711(u-law) respectivamente entre usuarios en la
red local y 3 llamadas simultaneas por Internet utilizando codificadores
GSM o G711(u-law) entre usuarios en la red extendida.
2. De acuerdo a las capacidades de procesamiento requeridas en troncales
GSM, no se recomienda la utilizacion de mas de 1 modemes.
3. Debido a los tiempos de respuesta manifestados por el servidor apache
durante esta implementaci
on. Para situaciones en las que es indispensable un acceso continuo a la administracion WEB de Asterisk por mas
de un usuario simult
aneamente, se recomienda paralelismo este servicio
por medio de otro ordenador (posiblemente otro RaspBerry Pi dedicado
u
nicamente a dicho servicio).
Anexos
8.1
Implementaci
on
38
8 Anexos
a) Primero fue necesario determinar que dispositivos estan actualmente montados, para ello, antes de insertar la tarjeta SD se ejecuto en
la terminal:
$ df-h
Posteriormente se inserto la tarjeta SD y se ejecuto la lnea anterior
nuevamente:
$ df-h
b) Se identific
o la diferencia entre la primer y segunda lista para determinar a que archivo del sistema se asocio la memoria SD.
c) Se desmont
o la memoria SD utilizando el archivo del sistema asociado a la memoria SD (filesystem). En la terminal:
$ umount <filesystem>
d) Se escribi
o en la memoria SD bloques de 4MB provenientes del
archivo que contiene la imagen de RasPBX.
En la terminal:
$ dd bs=4M if=<fuente:ubicacion imagen RasPBX> of=<destino:filesystem>
Es importante tomar en consideracion lo siguiente:
Es posible utilizar bloques de 1MB, sin embargo, el proceso
ser
a considerablemente mas lento.
La instrucci
on anterior debe ejecutarse como superusuario.
Este proceso puede ser lento.
No existe indicador del avance del mismo, para conocerlo es
necesario abrir otra terminal y ejecutar:
$ pkill -USR1 -n -x dd
8.1. Implementaci
on
39
Contrase
na admin.
Contrase
na de administrador Mysql: raspberry.
40
8 Anexos
b) Se descarg
o la versi
on off-line de Noobs. Esto puede hacerse desde:
http://downloads.raspberrypi.org/NOOBS latest
c) Se extrajo el contenido del archivo .zip descargado.
d) Se copiaron todos los archivos descomprimidos en el paso anterior
y se pegaron en la memoria SD.
e) Se extrajo la memoria SD del computador y se inserto en el RaspBerry Pi.
f) Se conect
o perifericos: raton, teclado y monitor.
g) Se conect
o el cable de red.
h) Se conect
o el cable de alimentacion.
Cuando NOOBS inici
o por primera vez redimensiono la particion
FAT32 al mnimo para que posteriormente sea utilizado como partici
on de recuperaci
on. Posteriormente a esto se mostro una lista
de distribuciones de Linux.
i) Se seleccion
o Rasbian, se hizo click en Install y se espero a que
proceso finalizara.
8.1. Implementaci
on
41
$ mkdir -p ~/src/asterisk-complete/asterisk
$ cd ~/src/asterisk-complete/asterisk
4. Descargando ultima version de Asterisk 11. En la terminal:
$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk
-11-current.tar.gz
5. Descomprimiendo archivo descargado. En la terminal:
$ tar xvzf asterisk-11-current.tar.gz
6. Construyendo e instalando aplicacion. En la terminal:
$ cd <nombre carpeta descomprimida>
$ ./configure
7. Compilando e instalando Asterisk. En la terminal:
$ make
$ sudo make install
$ sudo make config
8. Modificaci
on de permisos en donde fue instalado Asterisk. En la terminal:
$
$
$
$
sudo
sudo
sudo
sudo
chown
chown
chown
chown
-R
-R
-R
-R
pi:pi
pi:pi
pi:pi
pi:pi
/var/lib/asterisk/
/var/spool/asterisk/
/var/log/asterisk/
/var/run/asterisk/
42
8 Anexos
$ cp ~/src/asterisk-complete/asterisk/<nombre carpeta descomprimida>/
configs/asterisk.conf.sample /etc/asterisk/asterisk.conf
$ vim /etc/asterisk/asterisk.conf
8.1. Implementaci
on
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
noload
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
43
app_flash.so
app_getcpeid.so
app_setcallerid.so
app_adsiprog.so
app_forkcdr.so
app_sms.so
app_morsecode.so
app_followme.so
app_url.so
app_alarmreceiver.so
app_disa.so
app_dahdiras.so
app_senddtmf.so
app_sayunixtime.so
app_test.so
app_externalivr.so
app_image.so
app_dictate.so
app_festival.so
Configuraci
on post-instalaci
on
En esta secci
on se busca indicar los procedimientos que se siguieron posterior a
la instalaci
on de una distribucion de linux con Asterisk integrado (RasPBX).
Luego de realizar la instalacion de RasPBX se extrajo la memoria SD del
dispositivo en donde fue quemada, se inserto en RaspBerry Pi, se conecto
rat
on, teclado, cable de red, monitor y por u
ltimo, el cable de alimentacion.
Las luces de la placa de RaspBerry Pi se encendieron y el monitor mostro el
arranque de Rasbian. Despues se accedio con el nombre de usuario y contrase
na
por defecto (root/raspberry).
Posteriormente se realizaron los procedimientos contemplados en cada una
de las siguientes secciones:
44
8 Anexos
Raspi-Config
Esta es una herramienta de configuracion de Rasbian la cual se recomienda ejecutarse posteriormente a la instalacion de dicho sistema. Para acceder
u
nicamente es necesario ejecutar la siguiente lnea:
$ raspi-config
Raspi-config cuenta con las siguientes opciones:
Expandir sistema de archivos
Cambiar contrase
na usuario root
Activar o desactivar escritorio al inicio
Opciones de internacionalizacion
Activar c
amara
Adicionar a Rastrack
Overclocking
Opciones avanzadas
Overscan
Hostname
Memory Split
SSH
SPI
Update
Es importante recordar que en el caso de RasPBX, Asterisk se ejecuta sobre
Raspbian, debido a esto se cuentan con opciones de configuracion generales
a pesar de haber instalado una distribucion dirigida a la ejecucion de Asterisk principalmente. Debido a lo anterior, u
nicamente las siguientes opciones
obtienen especial interes:
Expandir sistema de archivos: Al momento en el que fue quemada la
imagen de RasPBX sobre nuestra tarjeta SD se creo una particion con
un tama
no limitado inferior a la capacidad de almacenamiento de la
memoria, debido a esto fue indispensable expandir el sistema de archivos
antes de iniciar con el proceso de actualizacion del sistema.
8.1. Implementaci
on
45
Cambiar contrase
na usuario root: Por cuestiones de seguridad se recomienda realizar este cambio.
Opciones de internacionalizacion: Esta opcion permite modificar el lenguaje del sistema operativo, la zona horaria y la distribucion de su teclado. Para la implementacion se considero como lenguaje del sistema
operativo el ingles (en GB), zona horaria Costa Rica y distribucion en
el teclado tambien en ingles (UK).
Overclocking: Esta opcion permite aumentar la velocidad del procesador. Lo cual eventualmente podra ser una alternativa para aumentar la
capacidad de comunicaciones simultaneas requeridas. Sin embargo, hay
que tomar en consideracion que el aumento de la velocidad del procesador implica disminuir la vida del dispositivo, aumentar el calor disipado
(instalaci
on necesaria de disipadores) y por u
ltimo, aumentar los requerimientos energeticos, por lo que se va a requerir de una fuente mas
potente. Para la implementacion se utilizo la velocidad del procesador
recomendada (por defecto, 700MHz).
Opciones avanzadas:
Hostname: Con el fin de identificar adecuadamente las PBX dentro
de la red local, se recomienda nombrar de diferente manera cada
de estas.
SSH: Esta opcion nos permite activar o desactivar el acceso remoto
por SSH (Secure SHell). Esta activado por defecto, sin embargo, de
ser necesario es posible desactivar este servicio desde aqu.
Update: Esta opcion permite actualizar raspi-config a su version
m
as reciente.
Servidor NTP
RaspBerry Pi no cuenta con un RTC (Real Time Clock). Esto significa que
cada vez que el sistema inicia, la hora actual se obtiene por medio de un servidor NTP (Network Time Protocol). De no contar con acceso a Internet, el
sistema iniciara con la hora y fecha de referencia de unix epoch1 (01/01/1970)
y Asterisk no arrancar
a puesto que el sistema interpreta que retrocedio en el
tiempo. Para evitar esto se instala una aplicacion llamada fake-hwclock la cual
consiste en un conjunto de comandos que periodicamente almacenan en un archivo la hora y fecha actual del sistema. Si el sistema arrancara nuevamente
1
Descripci
on instant
anea del tiempo utilizada por UNIX, la cual representa la cantidad
de segundos transcurridos a partir de la media noche del 1 de enero de 1970.
46
8 Anexos
8.1. Implementaci
on
#
#
#
47
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Actualizaciones
Luego haber realizado las configuraciones basicas descritas anteriormente es
necesario actualizar todo el sistema, este proceso se dividio en 3 partes:
1. Actualizaci
on de dependencias de Asterisk : Esta parte de la actualizaci
on se refiere a todas los paquetes instaladas sobre Raspbian. Por lo
general estos paquetes son herramientas que utiliza Asterisk y FreePBX
para funcionar adecuadamente.
En la terminal:
$ apt-get update
$ apt-get upgrade
En donde la primer lnea se encarga de actualizar la lista de paquetes
disponibles y sus versiones pero no instala ni actualiza ning
un paque-
48
8 Anexos
te. La segunda lnea se encarga recorrer la lista de paquetes instalados
con su versi
on actual y compararla con las versiones disponibles. Luego
actualiza todos los paquetes que no se encuentren en su ultima version
disponible.
2. Actualizaci
on de RasPBX: Esta parte de la actualizacion instala las ultimas incorporaciones y mejoras de RasPBX.
En la terminal:
$ raspbx-upgrade
3. Actualizaci
on de M
odulos - FreePBX:
Como ya se mencion
o anteriormente, FreePBX es la interfaz web que
utiliza RasPBX para Asterisk. Esta parte de la actualizacion instala las
ultimas versiones de los m
odulos que conforman FreePBX. Para esto es
necesario seguir los siguientes pasos:
a) Acceder a la administracion web de Asterisk (FreePBX): Para esto es necesario acceder desde cualquier equipo conectado a la red
por medio del explorador web a la direccion IP estatica asignada
anteriormente al RaspBerry Pi.
b) Ingresar a FreePBX Administration: Utilizar acceso por defecto:
admin/admin.
c) Dirigirse a la pesta
na Admin y posteriormente a Module Admin.
d) Hacer clic en el bot
on Check online, posteriormente se mostraran
en color rojo todos los modulos para los cuales existen versiones
m
as nuevas disponibles. Se debe hacer clic en todos estos modulos,
seleccionar la opci
on Download and Install y por u
ltimo, hacer
clic en el bot
on Process que aparece en la parte superior derecha
de la ventana.
e) Posteriormente el sistema descargara e instalara todos los modulos
indicados.
Configuraci
on inicial Asterisk
Hasta el momento a
un no se ha realizado ninguna configuracion en Asterisk, en
esta secci
on se explica como se configuro inicialmente esta aplicacion por medio
de FreePBX para posteriormente hacer las pruebas de rendimiento mostradas
en el siguiente captulo.
1. Configuraci
on avanzada:
8.1. Implementaci
on
49
a) Se accedi
o a la administracion web de Asterisk (FreePBX).
b) Se ingres
o a FreePBX AdministrationSettingsAdvanced
Settings.
c) Se cambi
o el codigo de administrador.
d) Se cambiaron los todos de indicacion para Costa Rica.
e) Se cambi
o el codigo de acceso para ARI (Asterisk Recording Interface).
f) El resto de parametros se dejan por defecto.
Mientras se fueron realizando los cambios en la configuracion, FreePBX
autom
aticamente fue modificando la informacion en el sistema.
En la figura 8.1 se muestra la seccion FreePBX Administration
Settings Advanced Settings de FreePBX.
2. Configuraci
on SIP:
a) Se accedi
o a la administracion web de Asterisk (FreePBX).
b) Se ingres
o a FreePBX AdministrationSettingsAsterisk
SIP Settings.
50
8 Anexos
c) Par
ametros NAT: Estos se ajustaron por medio de la autoconfiguraci
on (bot
on Auto Configure).
d) Se activaron los siguientes Codecs:
G722
GSM
G729
e) El resto de par
ametros se dejan por defecto.
f) Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit Changes, posteriormente clic en el boton rojo que aparece en
la parte superior con el nombre Apply Config.
En la figura 8.2 se muestra la seccion FreePBX Administration
SettingsAsterisk SIP Settings de FreePBX.
3. Configuraci
on IAX:
a) Se accedi
o a la administracion web de Asterisk (FreePBX).
b) Se ingres
o a FreePBX AdministrationSettingsAsterisk
IAX Settings.
c) Se activaron los siguientes Codecs:
8.1. Implementaci
on
51
G722
GSM
G729
d) El resto de parametros se dejan por defecto.
e) Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit Changes, posteriormente clic en el boton rojo que aparece en
la parte superior con el nombre Apply Config.
En la figura 8.3 se muestra la seccion FreePBX AdministrationSettings
Asterisk IAX Settings de FreePBX.
Configuraci
on de extensiones
1. Extensiones SIP:
a) Se accedi
o a la administracion web de Asterisk (FreePBX).
b) Se ingres
o a FreePBX AdministrationApplicationsExtensions.
c) Se indic
o que la extension era tipo SIP y posteriormente se hizo
clic en Submit.
d) Luego se configuraron u
nicamente los siguientes parametros:
52
8 Anexos
Extensi
on del usuario (User Extension)
Nombre a mostrar (Display Name)
Contrase
na de acceso cliente SIP (secret)
Se activ
o la configuracion NAT (nat = Yes)
Se activ
o el correo de voz (Voicemail status = Enabled)
Contrase
na de acceso correo de voz (Voicemail Password)
e) Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit, posteriormente clic en el boton rojo que aparece en la parte
superior con el nombre Apply Config.
En la figura 8.4 se muestra la seccion FreePBX Administration
ApplicationsExtensionsSIP de FreePBX.
Para la implementaci
on se configuraron 5 extensiones de este tipo. En
la tabla 8.1 se indican los valores para cada uno de los parametros antes
mencionados.
2. Extensiones IAX2:
a) Se accedi
o a la administracion web de Asterisk (FreePBX).
8.1. Implementaci
on
53
Nombre a mostrar
Contrase
na
SIP
Contrase
na
Correo de Voz
100
101
102
103
104
User11
User12
User13
User14
User15
User11
User12
User13
User14
User15
100
101
102
103
104
Nombre a mostrar
Contrase
na
IAX2
Contrase
na
Correo de Voz
105
106
User16
User17
User16
User17
105
106
b) Se ingres
o a FreePBX AdministrationApplications
Extensions.
c) Se indic
o que la extension era tipo IAX2 y posteriormente se hizo
clic en Submit.
d) Luego se configuraron u
nicamente los siguientes parametros:
Extensi
on del usuario (User Extension)
Nombre a mostrar (Display Name)
Contrase
na de acceso cliente IAX2 (secret)
Se activ
o el correo de voz (Voicemail status = Enabled)
Contrase
na de acceso correo de voz (Voicemail Password)
e) Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit, posteriormente clic en el boton rojo que aparece en la parte
superior con el nombre Apply Config.
En la figura 8.5 se muestra la seccion FreePBX Administration
ApplicationsExtensionsIAX2 de FreePBX.
Para la implementacion se configuraron 2 extensiones de este tipo. En
la tabla 8.2 se indican los valores para cada uno de los parametros antes
mencionados.
54
8 Anexos
Configuraci
on de troncales
Con el fin de hacer tambien pruebas externas a la red local en la implementacion, se hicieron 3 enlaces IAX a otras PBX IP ejecutandose tambien sobre
RaspBerry Pi & Asterisk. A continuacion se describen los pasos que se siguieron para su configuraci
on:
1. Se accedi
o a la administracion web de Asterisk (FreePBX).
2. Se ingres
o a FreePBX AdministrationConnectivityTrunks.
3. Luego se seleccion
o el protocolo del enlace, en este caso IAX2.
4. Luego se configuraron u
nicamente los siguientes parametros:
Nombre de la troncal (Trunk Name)
Identificaci
on llamada saliente (Outbound CallerID)
Configuraci
on saliente (Outgoing Settings)
Nombre de la troncal (Trunk Name)
Detalles PEER (PEER Details)
8.1. Implementaci
on
55
Identificacion
llamada entrante
IAX2 Trunk S2
IAX2 Trunk S3
IAX2 Trunk S4
Servidor2
Servidor3
Servidor4
Configuracion saliente
Host
Username
afranpe.sytes.net
200.6.234.140
edwinbasto.no-ip.biz
Servidor1
Servidor1
Servidor1
Secret
SeRvidor1Pf
SeRvidor1Pf
SeRvidor1Pf
Identificacion
llamada entrante
IAX2 Trunk S2
IAX2 Trunk S3
IAX2 Trunk S4
Servidor2
Servidor3
Servidor4
Configuracion entrante
Contenido del usuario
Secret
Servidor2
Servidor3
Servidor4
SeRViDoR2TRK
SeRvidor3GT
SeRvidoR4
host=<host>
username=<Username>
secret=<Secret>
type=peer
Configuraci
on entrante (Incoming Settings)
Contenido del usuario (USER Context = <Contenido del usuario>)
Detalles USUARIO (USER Details)
secret=<Secret>
type=user
context=from-trunk
5. Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit
Changes, posteriormente clic en el boton rojo que aparece en la parte
superior con el nombre Apply Config.
En las tablas 8.3 y 8.4 se indican los valores para cada uno de los enlaces
antes mencionados.
En las figuras 8.6 y 8.7 se muestra la seccion FreePBX Administration
ConnectivityTrunks de FreePBX con la configuracion del enlace al servidor 2.
56
8 Anexos
8.1. Implementaci
on
57
Rango de extensiones
100
200
300
400
199
299
399
499
Configuraci
on de rutas de salida
Posteriormente a la creacion de las troncales, se configuro una ruta de salida
para cada una de las mismas.
Antes de mostrar como se hizo esa configuracion es importante tomar
en consideraci
on la tabla 8.5 la cual muestra la numeracion asignadas a las
extensiones de forma local para cada uno de los servidores. Debido a que se
buscaba hacer los enlaces de una manera transparente, el contenido de la tabla
8.5 es importante para definir la regla de marcacion requerida para acceder a
cada troncal.
A continuaci
on se indican los pasos seguidos para la configuracion de las
rutas de salida:
1. Se accedi
o a la administracion web de Asterisk (FreePBX).
2. Se ingres
o a FreePBX AdministrationConnectivity
Outbound Routes.
3. Luego se configuraron u
nicamente los siguientes parametros:
Nombre de la ruta (Route Name)
En el tipo de ruta se selecciono interno a la empresa (Route Type
= Intra-Company): Esto significa que la extension que utilice esta
troncal se va a identificar con la otra PBX IP con el n
umero de
extensi
on local.
Regla de marcacion (Dial Patterns that will use this Routematch
pattern)
Secuencia de ocupacion de troncales
4. Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit
Changes, posteriormente clic en el boton rojo que aparece en la parte
superior con el nombre Apply Config.
En la tabla 8.6 se indican los parametros de configuracion para cada uno
de las rutas.
58
8 Anexos
Cuadro 8.6: Par
ametros de configuracion rutas de salida
Nombre de la ruta
Regla de marcacion
Secuencia de ocupacion
2XX
3XX
4XX
IAX2 Trunk S2
IAX2 Trunk S3
IAX2 Trunk S4
8.1. Implementaci
on
59
Configuraci
on de rutas de entrada
Para la implementaci
on todas las llamadas entrantes (any DID) se redireccionaron a la extensi
on 100. Para esto se realizaron los siguientes pasos:
1. Se accedi
o a la administracion web de Asterisk (FreePBX).
2. Se ingres
o a FreePBX AdministrationConnectivityInbound
Routes.
3. Luego se selecciono la plantilla que redirecciona todas las llamadas entrantes: Para esto se selecciono la opcion All DIDs ubicado en un cuadro en la parte superior derecha de la pantalla.
4. Luego se configuraron u
nicamente los siguientes parametros:
Descripci
on de la ruta de entrada (Description).
Se defini
o la extension 100 como destino (Set Destination = Extensions <100>User11).
5. Se guardaron y aplicaron los cambios: Hacer clic en el boton Submit
Changes, posteriormente clic en el boton rojo que aparece en la parte
superior con el nombre Apply Config.
60
8 Anexos
8.2
Pruebas de desempe
no
SIPP
A continuaci
on se describen los pasos seguidos para la instalacion y configuracion de SIPP :
1. Primero se instalaron los paquetes necesarios para la compilacion. En la
terminal:
$ apt-get install make gcc g++ automake autoconf
libncurses5-dev python build-essential openssl libpcap-dev
libssl-dev libnet1-dev libgsl0-dev gsl-bin libgsl0ldbl
2. Posteriormente se descarg
o la aplicacion SIPP. En la terminal:
$ wget http://sourceforge.net/projects/sipp/files/sipp/3.2/sipp.svn.tar.gz
61
3. A continuaci
on se procedio a descomprimir el archivo descargado y posteriormente compilar la informacion descomprimida. En la terminal:
$ tar -xzf sipp.svn.tar.gz
$ cd sipp.svn
$ make pcapplay_ossl
4. Posteriormente de haber completado la instalacion fue necesario crear
una extensi
on con una configuracion en especfico, para luego generar
las llamadas desde dicha extension. Debido a que FreePBX no permite
modificar ciertos parametros necesarios, la creacion de esta extension
se realiz
o por c
odigo. Para esto se accedio a RaspBerry Pi & Asterisk,
posteriormente en la terminal:
$ sudo nano /etc/asterisk/sip.conf
Se agreg
o la siguiente informacion al final del documento:
[sipp]
type=friend
context=sipp
host=dynamic
user=sipp
canreinvite=no
disallow=all
allow=ulaw ; Al momento de realizar pruebas con otro codec
se debe modificar este par
ametro.
5. Posteriormente se le creo una regla de marcacion a la extension creada
anteriormente. Desde RaspBerry Pi & Asterisk ; en la consola:
$ sudo nano /etc/asterisk/extensions.conf
Se agreg
o la siguiente informacion al final del documento:
[sipp]
exten =>
exten =>
exten =>
exten =>
5005,1,Answer
5005,n,SetMusicOnHold(default)
5005,n,WaitMusicOnHold(20)
5005,n,Hangup
62
8 Anexos
6. Para que las modificaciones anteriores tengan efecto es necesario acceder
a la lnea de comandos en Asterisk y recargar todos los archivos. Para
esto, desde RaspBerry Pi & Asterisk ; en la consola:
$ asterisk -r
En la lnea de comandos de Asterisk :
reload
7. Por u
ltimo, se crearon dos escenarios, ambos que simulan el trafico RTP
en donde la u
nica variaci
on en cada uno es el codificador utilizado (como
ya se mencion
o, uno para G711 y otro para GSM).
a) Se cre
o un archivo de texto con el nombre uac pcap u.xml, en donde
se simula una codificacion G711, de tipo u-law. Dentro de dicho
archivo se incluy
o el siguiente codigo:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--
-->
-->
63
-->
-->
-->
-->
-->
64
8 Anexos
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<!-- Play a pre-recorded PCAP file (RTP stream)
<nop>
<action>
<exec play_pcap_audio="pcap/g711a.pcap"/>
</action>
</nop>
-->
-->
-->
-->
<pause milliseconds="1000"/>
<!-- The crlf option inserts a blank line in the statistics report. -->
<send retrans="500">
<![CDATA[
BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<recv response="200" crlf="true">
65
</recv>
<!-- definition of the response time repartition table (unit is ms)
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
-->
-->
</scenario>
b) Se cre
o un archivo de texto con el nombre uac pcap g.xml, en donde
se simula una codificacion GSM. Dentro de dicho archivo se incluyo
el siguiente c
odigo:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--
-->
-->
66
8 Anexos
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=c=IN IP[local_ip_type] [local_ip]
t=0 0
m=audio [media_port] RTP/AVP 0 3
a=rtpmap:3 gsm/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11,16
]]>
</send>
<recv response="100" optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<!-- By adding rrs="true" (Record Route Sets), the route sets
<!-- are saved and used for following messages sent. Useful to test
<!-- against stateful SIP proxies/B2BUAs.
<recv response="200" rtd="true" crlf="true">
</recv>
-->
-->
-->
-->
-->
67
</send>
<!-- Play a pre-recorded PCAP file (RTP stream)
<nop>
<action>
<exec play_pcap_audio="pcap/g711a.pcap"/>
</action>
</nop>
-->
-->
-->
-->
<pause milliseconds="1000"/>
<!-- The crlf option inserts a blank line in the statistics report. -->
<send retrans="500">
<![CDATA[
BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<recv response="200" crlf="true">
</recv>
<!-- definition of the response time repartition table (unit is ms)
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
-->
-->
68
8 Anexos
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>
8.3
Implementaci
on de funciones adicionales
8.3. Implementaci
on de funciones adicionales
69
A continuaci
on se indican los pasos seguidos para configurar los parametros
de red:
1. Se conect
o el telefono a la alimentacion electrica.
70
8 Anexos
8.3. Implementaci
on de funciones adicionales
71
P003-12-0-00.sbn
Dichos archivos deben almacenarse en el servidor TFTP para que el telefono
VoIP tenga acceso a los mismos y pueda actualizarse.
Luego se crearon los archivos que contienen la configuracion general y
configuraci
on de identificacion SIP. Estos deben ser nombrados se la siguiente
forma:
SIPDefault.cnf
SIP<MAC>.cnf
A continuaci
on se brinda una descripcion de la funcion de cada uno de los
archivos antes mencionados y el contenido de los mismos:
1. SIPDefault.cnf: Este archivo cuenta con informacion de configuracion general, y a este acceden todos los telefonos VoIP que lo requieran durante
su inicio.
El contenido de este archivo debe ser el siguiente:
image_version: P0S3-12-00-00
proxy1_address: "<IP de la PBX>"
proxy2_address: ""
proxy3_address: ""
proxy4_address: ""
proxy5_address: ""
proxy6_address: ""
proxy_register: 1
messages_uri:
"1"
phone_password: "cisco" ; (Default - cisco)
time_zone: "GMT"
time_format_24hr: 1 ; Muestra la hora en formato 24 horas
date_format: "Y/M/D" ; Formato en el que se muestra la fecha
dial_template: dialplan
2. SIP<MAC>.cnf: Este archivo contiene informacion referente a la identificaci
on SIP. A este archivo u
nicamente accede el telefono con la direccion
MAC respectiva. Por lo que que debe existir un archivo de estos por cada
telefono que lo requiera durante su inicio.
El contenido de este archivo debe ser el siguiente:
image_version: P0S3-12-00-00
# Configuraci
on l
nea 1
72
8 Anexos
line1_name: 100 ; nombre de la extensi
on
line1_authname: "100"
line1_shortname: "100" ; Identificaci
on bot
on de l
nea.
line1_password: "User11"
line1_displayname: "100"; Identificaci
on del usuario
proxy1_port: 5060 ; Puerto SIP
proxy1_address: <IP de la PBX>
# Configuraci
on l
nea 2
line2_name: 103
line2_authname: "103"
line2_shortname: "103"
line2_password: "User14"
line2_displayname: "103";
# Configuraci
on adicional
phone_label: "" ; Texto a mostrar en pantalla.
phone_password: "cisco"
user_info: none
telnet_level: 2
logo_url: "" ; URL de la imagen a mostrar, BMP.
Bibliografa
Akb77 (2013). Asterisk high availabilty - ejemplo escabilidad de asterisk.
http://akb77.com/g/asterisk/asterisk-high-availabilty/.
Asterisk.do
(2013).
Asterisk.do:
Arquitectura
de
asterisk.
http://rdasterisk.blogspot.com/2012/01/arquitectura-de-asterisk-desdeun-punto.html.
Bryant, R., Madsen, L., y Maggelen, J. V. (2013). Asterisk the definitive guide.
OReilly Media.
Cynthec
y
Pimoro
(2013).
GPIO
Cheat
https://www.modmypi.com/blog/raspberry-pi-gpio-cheat-sheet.
Sheet.
element14
(2013).
Piface
digital
for
raspberry
pi.
http://www.element14.com/community/docs/DOC-52857/l/piface-digitalfor-raspberry-pi.
Garcia, R. (2008). Integraci
on de PBX anal
ogica/digital con PBX IP por
software del ministerio del poder popular para la cultura e interconexi
on con
la red PSTN de CANTV. PhD thesis, Universidad Central de Venezuela.
Lyzanor (2012). X86 y arm: Diferencias, ventajas y para que sirve cada
uno. http://www.omicrono.com/2012/12/te-explicamos-todo-sobre-x86-yarm-diferencias-ventajas-y-para-que-sirve-cada-uno/.
Meggelen, J. V., Madsen, L., y Smith, J. (2007). The Future of Telephony.
OReilly Media.
Raspberry&asterisk-community (2013a).
http://www.raspberry-asterisk.org/.
Raspberry
pi
official
web
page.
Rosa, F. S. (2009). Manual de Asterisk y otras hierbas. GNU Free Documentation License.
SD-Association (2013). Sd standard overview. https://www.sdcard.org/.
73