Sei sulla pagina 1di 88

Universidad de Costa Rica

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

Ciudad Universitaria Rodrigo Facio, Costa Rica


Diciembre 2013

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:

M.Sc. Teodoro Willink Castro


Profesor gua

M.Sc. Geovanny Delgado


Profesor lector

Ph.D. Jaime Cascante Vindas


Profesor lector

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

Diagrama de conexion - PBX IP servicios basicos . . . . . . . . . .

15

5.1
5.2
5.3
5.4
5.5
5.6
5.7

Diagrama de conexion - Pruebas de desempe


no . . . .
Llamadas generadas simultaneamente - Red local . . .
Llamadas generadas alternadas - Red local . . . . . .
Carga promedio CPU - Red local . . . . . . . . . . . .
Llamadas generadas simultaneamente - Red extendida
Llamadas generadas alternadas - Red extendida . . . .
Carga promedio CPU - Red extendida . . . . . . . . .

.
.
.
.
.
.
.

22
23
24
24
26
26
27

6.1

Cambios en configuracion extension 100 - FreePBX . . . . . . . . .

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

Requerimientos mnimos recomendados - Asterisk . . . . . . . . . .

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>

Todo texto escrito entre los signos mayor que y menor


que, debe sustituirse por la variable descrita por x.

texto

Texto que debe ser ingresado en la terminal o lnea de


comandos de Asterisk.

IP

Por sus siglas en ingles, Internet Protocol. Es un protocolo usado para la comunicacion de datos a traves de una
red.

VoIP

Por sus siglas en ingles, Voice over IP. Grupo de recursos


que hacen posible que la se
nal de voz viaje a traves de
Internet empleando un protocolo IP.

PBX

Por sus siglas en ingles, Private Branch Exchange. Es


cualquier central telefonica conectada directamente a la
red p
ublica de telefona por medio de lneas troncales para
gestionar ademas de las llamadas internas, las entrantes
y salientes con autonoma sobre cualquier otra central
telefonica.

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

Por sus siglas en ingles, Short Message Service. Servicio


disponible en los telefonos moviles que permite el envo
de mensajes cortos (tambien conocidos como mensajes de
texto) entre telefonos moviles .

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

Por sus siglas en ingles, Foreing Exchange Station. Es


el conector en una central telefonica o en la pared de
nuestro hogar, que permite conectar un telefono analogico
est
andar.

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

Por sus siglas en ingles, Session Initiation Protocol. Es


un protocolo desarrollado con la intencion de ser el estandar para la iniciacion, modificacion y finalizacion de sesiones interactivas de usuario donde intervienen elementos
multimedia como el vdeo, voz, mensajera instantanea,
juegos en lnea y realidad virtual.

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

Por sus siglas en ingles, Random-Access Memory. Se


utiliza frecuentemente para describir a los modulos de
memoria utilizados en los computadores personales y servidores. .

PoE

Por sus siglas en ingles, Power over Ethernet. es una


tecnologa que incorpora alimentacion electrica a una infraestructura LAN estandar. Permite que la alimentacion
electrica se suministre a un dispositivo de red usando el
mismo cable que se utiliza para la conexion de red.

SD

Por sus siglas en ingles, Secure Digital. Formato de tarR


jeta de memoria inventado por Panasonic .

WiFi

Por sus siglas en ingles, Wireless Fidelity. Es un mecanismo de conexion de dispositivos electronicos de forma
inalambrica.

USB

Por sus siglas en ingles, Universal Serial Bus. Estandar


industrial que define los cables, conectores y protocolos
usados en un bus para conectar, comunicar y proveer de
alimentacion electrica entre ordenadores y perifericos y
dispositivos electronicos.

ARM

Por sus siglas en ingles, Advanced RISC Machine. Es


una familia de microprocesadores producidos por la empresa ARM Holdings.

NTP

Por sus siglas en ingles, Network Time Protocol. Es un


protocolo de Internet para sincronizar los relojes de los
sistemas informaticos a traves del enrutamiento de paquetes en redes con latencia variable.

SSH

Por sus siglas en ingles, Secure SHell. Es el nombre de


un protocolo y del programa que lo implementa, y sirve
para acceder a maquinas remotas a traves de una red.

URL

Por sus siglas en ingles, Uniform Resource Locator. Es


una secuencia de caracteres, de acuerdo a un formato modelico y estandar, que se usa para nombrar recursos en
Internet para su localizacion o identificacion.

LAN

Por sus siglas en ingles, Local Area Network. Son redes


de propiedad privada, de hasta unos cuantos kilometros
de extension.
xiii

WAN

Por sus siglas en ingles, Wide Area Network. Son redes


que se extienden sobre un area geografica extensa. Las
WAN pueden abarcar ciudades, estados, pases o continentes.

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

Por sus siglas en ingles, General Purpose Input/Output.


Es es un pin generico en un chip, cuyo comportamiento
se puede controlar por el usuario en tiempo de ejecucion.

UAC

Por sus siglas en ingles, User Agent Clients. En una comunicaci


on SIP, se define como agente de usuario cliente
a los usuarios que realizan una peticion de comunicacion.

UAS

Por sus siglas en ingles, User Agent Servers. En una


comunicaci
on SIP, se define como agentes de usuario servidor cuando se recibe una peticion de comunicacion.

xiv

Introducci
on

1.1

Introducci
on del informe

A medida de que pasan los a


nos, el mundo de las telecomunicaciones depende
mayormente de sistemas de comunicacion VoIp (voz sobre IP), esto debido
principalmente al elevado costo que conlleva el trafico internacional por medio
de la telefona convencional. Sin embargo, una de las barreras para la transicion
a telefona VoIP es el costo de los dispositivos necesarios para adoptar esta
tecnologa.
Con este proyecto se busca desarrollar una central telefonica IP basada
principalmente en software de codigo abierto (Asterisk 1 ) y hardware de bajo
costo (RaspBerry Pi 2 ), dirigido a micro y peque
nas empresas que necesitan
migrar a dicha tecnologa sin que esto involucre gastos excesivos e inclusive
innecesarios.
Para facilitar la comprension de esta propuesta, en este documento se inicia
describiendo todas las capacidades con las que cuenta el hardware (RaspBerry
Pi), posteriormente se describen los servicios basicos que por s mismo podra
proporcionar el software (Asterisk ) y luego se ajustan las capacidades de estos
servicios con base a las capacidades con las que cuenta el hardware seleccionado
(RaspBerry Pi & Asterisk ).
Luego de esto se describe la forma en la que se implementa esta plataforma y se documentan todas las pruebas realizadas con el fin de analizar la
congruencia con las capacidades teoricas determinadas anteriormente.
Posteriormente se describen capacidades adicionales posibles de implementar y se implementan algunas de estas capacidades adicionales.
Por u
ltimo, se realizan conclusiones y recomendaciones que se consideren
pertinentes.

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

El desarrollo del trabajo incluy


o los siguientes pasos y procedimientos, listados
en secuencia:
1. Identificaci
on de las capacidades del hardware de RaspBerry PI.
2. Descripci
on de los requerimientos de los servicios basicos proporcionados
por Asterisk.
3. An
alisis te
orico de la capacidad de los servicios basicos que podra proporcionar Asterisk siendo ejecutado sobre RaspBerry PI.
4. Implementaci
on de los servicios basicos proporcionados por una central
telef
onica IP basada en RaspBerryPi & Asterisk
5. Ejecuci
on de pruebas sobre la central telefonica IP implementada.
6. Comparaci
on de resultados del analisis teorico con las pruebas experimentales obtenidas.
7. Identificaci
on de servicios adicionales que se podran incluir en la central
telef
onica IP implementada.
8. Implementaci
on de algunos servicios adicionales a la central telefonica
IP implementada originalmente.

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

Siglas en ingles de Private Branch Exchange. Seg


un Rosa (2009) no es mas que
un panel de conexiones que se instalaba en las empresas con el fin de enlazar
manualmente canales de comunicacion telefonicos. En la figura 2.1 se muestra
una PBX manual.
Conforme pasaba el tiempo se fueron desarrollando nuevos descubrimientos
tecnol
ogicos y alrededor de 1960 empezaron a aparecer las primeras PBX
autom
aticas, las cuales en su momento se conocieron como PABX (Private
Automatic Branch Exchange) en donde la conmutacion ahora se realizaba por
medio de dispositivos electromecanicos o circuitos integrados. El desarrollo
de la PABX permiti
o ventajas principalmente en rapidez y regularidad en el
establecimiento de las comunicaciones. Sin embargo, debido a la popularidad
de la PBX se le sigui
o llamando de esta manera a los sistemas que realizaban
la conmutaci
on de forma automatica (PABX).
Posteriormente a esto debido a la intervencion del transistor y el de la
electr
onica digital nace la telefona digital, las PBX se implementan con electr
onica digital haciendose mas complejas.
Actualmente las PBX han dado un paso mas alla, a tal grado de llegar
a ser implementadas mediante software y ofrecer servicios como conferencias,
buz
on de voz, operadora automatica, administracion remota, etc.
Actualmente una PBX se define como una central telefonica conectada a
una red p
ublica por medio de lneas troncales la cual gestiona ademas de las
llamadas internas, las llamadas entrantes y salientes. Es importante destacar
que com
unmente se le denomina PBX a cualquier central telefonica, lo cual
es err
oneo. Aunque las centrales telefonicas y las PBX administran trafico
telef
onico, la PBX gestiona las llamadas salientes y una central telefonica
u
nicamente interconectara el terminal con una lnea externa.
3

2 Marco teorico

Figura 2.1: PBX manual

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

Figura 2.2: Ejemplo escabilidad de Asterisk (Akb77, 2013)

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.

En la figura 2.3 se muestra gr


aficamente la estructura de Asterisk, en donde
PBX Core representa el grupo de modulos con las funciones mas primitivas de
Asterisk, todos los rect
angulos azules los modulos que conforman el grupo de
protocolos, y los rect
angulos morados y rojos el resto de agrupaciones seg
un
su funci
on.

2.3. RaspBerry Pi

Figura 2.3: Estructura modular Asterisk


(Asterisk.do, 2013)

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

http://www.cyntech.co.uk - Proveedor especializado en componentes electromec


anicos
para una variedad de fabricantes lideres de la industria.
7
http://shop.pimoroni.com - Distribuidor de RaspBerry Pi y componentes adicionales.

2.3. RaspBerry Pi

11

Cuadro 2.1: Caractersticas RaspBerry Pi


Descripci
on

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

Figura 2.4: Configuraci


on Puerto GPIO - RaspBerry Pi (Cynthec y Pimoro,
2013)

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

En cuanto a PBX o centrales telefonicas este aspecto constituye uno de los


par
ametros primordiales, dado que determina las capacidades de comunicacion
simult
aneas que es soportado por el equipo. Este parametro dependiendo del
tr
afico de llamadas simultaneas y total de colaboradores en una empresa puede
ser traducido en el total de usuarios (no simultaneos) para los cuales es posible
brindar una soluci
on de comunicacion.
Lo indicado anteriormente significa que la cantidad de llamadas simultaneas que puede administrar una central telefonica no necesariamente equivale
a la cantidad de usuarios que esta puede administrar. Pues para una empresa
con 100 usuarios en donde el trafico estimado es de 7 llamadas simultaneas
significa que una central telefonica que soporte hasta 10 llamadas simultaneas
seria capaz de administrar poco mas de 100 usuarios. Sin embargo, para otra
empresa en donde u
nicamente se cuenta con 10 usuarios y el trafico de llamadas
sigue siendo 7 llamadas simultaneas, la misma central telefonica descrita anteriormente u
nicamente podra brindar una solucion adecuada para poco mas
de 10 usuarios. La diferencia entre llamadas simultaneas y usuarios adquiere
especial importancia para determinar a que sectores va dirigida la solucion en
estudio.
Meggelen et al. (2007) brinda una tabla con requerimientos mnimos recomendados y la cantidad llamadas simultaneas soportadas, en donde ademas
aclaran que los valores son muy conservadores y que no son definitivos. En el
cuadro 3.1 se muestra la informacion indicada.
En cuanto a las capacidades de RaspBerry Pi comparadas con las del
cuadro 3.1 es importante hacer algunas observaciones:
13

14

3 RaspBerryPi y Asterisk
Cuadro 3.1: Requerimientos mnimos recomendados - Asterisk
Prop
osito

N
umero de canales

Mnimo recomendado

Sistema como hobby


SOHO (peque
na oficina/oficina en casa)
Sistema para una peque
na empresa
Sistema mediano/grande

No mas de 5
5 a 10
hasta 25
mas de 25

400MHz x86, 256 MB RAM


1 GHz x86, 512 MB RAM
3GHz x86, 1GB RAM
Dual CPUs o m
ultiples servidores

Todos los procesadores indicados en la tabla son arquitectura x86 y el


procesador de RaspBerry Pi es ARM.
Seg
un Lyzanor (2012) los procesadores x86 estan basados en arquitectura CISC (Complex Instruction Set Computing), lo que significa que son
dise
nados para instrucciones complejas, simultaneas y ejecucion lenta.
Por otro lado los procesadores ARM son estructura RISC (Reduced Instruction Set Computer) cuyo objetivo es facilitar el paralelismo en la
ejecuci
on de instrucciones y permitir realizar tareas de menor tama
no
con procesos m
as cortos lo que conlleva a disminucion de energa empleada.
Dado que la arquitectura x86 tiene ventajas sobre ARM relacionadas
al rendimiento es necesario aplicar alguna equivalencia para hacer compatibles los resultados del cuadro 3.1 a las capacidades de RaspBerry
Pi. Sin embargo, dicha equivalencia no existe por lo que el cuadro 3.1
puede ser utilizado u
nicamente como referencia. En el captulo siguiente
se busca determinar dicha capacidad de forma experimental.
La memoria RAM con la que cuenta RaspBerry Pi es la recomendada
para equipos SOHO.

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.

En la figura 4.1 se muestra el diagrama de conexion utilizado durante la


implementaci
on.
A continuaci
on se describen todos los aspectos relevantes a la implementaci
on, en donde el orden de las secciones representa la secuencia cronologica
realizada:

Figura 4.1: Diagrama de conexion - PBX IP servicios basicos


15

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).

Dispositivos externos (USB)


Este es un aspecto de gran relevancia debido principalmente a que normalmente cuando se utiliza dispositivos USB en computadores ordinarios rara
vez se piensa en el consumo de los dispositivos o bien en las limitaciones que
tenga nuestro ordenador para alimentarlos. En ordenadores de placa reducida
como RaspBerry Pi en donde se dise
na principalmente con el fin de mantener un consumo energetico bajo, existen limitaciones en cuanto a la cantidad
de corriente que este puede transmitir. Todo lo dicho anteriormente se resume principalmente en que cuando se deba conectar dispositivos USB como
modemes o discos duros es indispensable para un correcto funcionamiento del
dispositivo el uso de un hub USB con alimentacion independiente, para que de
esta forma el dispositivo se energice por medio del hub y no desde el RaspBerry
Pi.

R
Este dispositivo puede ser adquirido en cualquier sucursal de RadioShack con
un precio
equivalente a $21.
2
Power Over Ethernet

4.2. Memoria de almacenamiento

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

Existe otra clasificaci


on para UHS class.

18

4 Implementacion

Hay muchas formas de instalar Asterisk, en esta seccion se describen dos.


Una la cual se recomienda para sistemas que necesiten ser implementados de
forma muy r
apida y f
acil, y otra requiere un mayor tiempo de implementacion,
ademas es un poco m
as compleja pero es ideal para conocer la estructura y el
funcionamiento primitivo de Asterisk.
Los alcances de esta secci
on son hasta la instalacion de Asterisk. En otras
secciones se detallar
a la forma de configuracion de ciertas funciones, en donde
en dichas etapas se tomar
a como primicia que la instalacion se ha realizado
con base a una distribuci
on de Linux con Asterisk integrado, en particular
RasPBX.
En la implementaci
on se realizo la instalacion en RaspBerry Pi utilizando
una distribuci
on de Linux con Asterisk integrado. Sin embargo, tambien se
realizo la instalaci
on de una distribucion de deban (cubian4 ) y posteriormente
Asterisk en un ordenador de placa reducida llamado Cubieboard2 5 con el fin
de hacer pruebas de comunicaci
on entre la PBX montada en RaspBerry Pi y
la PBX montada en Cubieboard2.

Instalando una distribuci


on de Linux con Asterisk integrado
Seg
un Bryant et al. (2013) se han creado muchas distribuciones basadas fundamentalmente en la ejecuci
on de Asterisk. Estas distribuciones han ganado
tanta popularidad que las personas suelen incluso confundirlas con el mismo
Asterisk. Normalmente estas distribuciones incluyen Asterisk, las dependencias fundamentales de Asterisk, una interfaz de administracion WEB, una
compleja base de datos y un conjunto de instrucciones para que se puedan
realizar cambios en la configuracion.
Existen adem
as distribuciones que inclusive ya tienen integrado el sistema
operativo.
Entre las distribuciones m
as conocidas podemos mencionar:
Asterisk NOW
Elastix
Trixbox
FreePBX Distro
PBX in a Flash
4
5

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.

Instalando Raspbian y posteriormente Asterisk


Esta es otra alternativa al momento de instalar Asterisk en RaspBerry Pi.
Para la implementaci
on no se considero este metodo, debido a que por ser una
instalaci
on mas primitiva y requiere mas tiempo. Sin embargo, en la seccion
de anexos se detallan los pasos recomendados para realizar esta instalacion.

4.4

Configuraci
on post-instalaci
on

Luego de realizar la instalacion de RasPBX fue necesario hacer lo siguiente:


Configuraci
on Raspi-Config.
Instalar programas relacionados al servidor NTP.
Asignaci
on IP est
atica.
Actualizaci
on del sistema.
Configuraci
on inicial Asterisk.
Configuraci
on de extensiones.
Configuraci
on de troncales.
Configuraci
on de rutas de entrada/salida.
La descripci
on y los pasos seguidos para realizar las acciones antes indicadas se detallan en los anexos.

Pruebas de desempe
no

El objetivo de esta seccion es determinar el comportamiento de RaspBerry


Pi & Asterisk posteriormente a la generacion de trafico VoIp, en particular
utilizando protocolo SIP.
Para lograr este proposito se utilizo una herramienta llamada SIPP, es de
c
odigo libre exclusivo para pruebas y generacion de trafico sobre el protocolo
SIP. Esta incluye un par de escenarios elementales para agentes de usuario
UAC y UAS. Esta herramienta permite establecer y liberar m
ultiples llamadas
utilizando los metodos INVITE y BYE. Ademas permite ejecutar escenarios
personalizados a partir de archivos XML, entre ellos escenarios con trafico
UDP.
Se realizaron pruebas utilizando dos codificadores, G711 y GSM. Se escogieron estos debido a que el primero tiene una buena calidad de audio, requiere
bajo procesamiento y alto ancho de banda, por lo que se recomienda para enlaces dentro de la red local. El segundo por su parte muestra un deterioro en
la calidad del audio, ademas requiere mas procesamiento y un menor ancho
de banda, por lo que es ideal para aplicaciones moviles o bien enlaces desde
la red extendida.
En la figura 5.1 se muestra el diagrama de conexion utilizado durante estas
pruebas.
En las subsecci
on siguiente se indica todo lo referente a la aplicacion utilizada para generar tr
afico, ademas se muestra el codigo utilizado en cada uno
de los escenarios. En las subsecciones siguientes se muestran y analizan los
resultados obtenidos.

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

Figura 5.1: Diagrama de conexion - Pruebas de desempe


no

5.2

Comunicaciones usuarios red local

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

uac_pcap_u.xml -s 5005 192.168.12.20 -r 1 -l 1

El comando anterior lo que hace es generar trafico hacia la extension 5005, en


donde -sf hace referencia al escenario a ejecutar (para G711 -sf uac pcap u.xml
y para GSM -sf uac pcap g.xml ) , -r la taza de generacion de llamadas (llamadas/segundo) y -l la cantidad limite de llamadas simultaneas. Ademas en
la configuraci
on del escenario se asigno una duracion de cada llamada de 9
segundos.
En cada una de las pruebas se efectuo alrededor de 50 llamadas en total, en
donde se vario el limite de llamadas simultaneas desde 1 hasta 27 y obteniendo
as un porcentaje de llamadas perdidas para cada uno de estos valores. Ademas
se guard
o el registro de la carga promedio en el procesador durante la ejecucion
de cada prueba.

5.3. Comunicaciones usuarios red extendida utilizando Internet

23

Figura 5.2: Llamadas generadas simultaneamente - Red local

En la figura 5.2 se muestra el resultado obtenido iniciando y finalizando


todas las llamadas simultaneamente cada 9 segundos.
En la figura 5.3 se muestra el resultado obtenido iniciando y finalizando
todas las llamadas en momentos diferentes posteriormente a los 9 segundos
de haber sido ejecutadas, lo cual reduce substancialmente el porcentaje de
llamadas perdidas.
En la figura 5.4 se muestra el aumento en la carga promedio del procesador
de acuerdo a la cantidad de llamadas simultaneas realizadas. Como se puede
observar, el comportamiento es el esperado, dado que al utilizar un codificador
GSM se requiere mayor uso del procesador.
Con base a las figuras 5.2, 5.3 y 5.4 se determino que la perdida de llamadas
no es un factor determinante en cuanto a comunicaciones locales. Esto debido
a que se requiere generar un trafico cercano a las 14 llamadas simultaneas (en
el escenario con mayor exigencias) para que se provoque un porcentaje de llamadas perdidas significativo. Sin embargo, la carga promedio en el procesador
si aumenta constantemente, por lo que en este caso es la mayor limitacion.
Debido a esto, para no exceder una carga promedio de 0.7 se deben de ejecutar como m
aximo 6 o 7 llamadas simultaneas para codificadores GSM o
G711(u-law) respectivamente, todas desde la red local.

5.3

Comunicaciones usuarios red extendida


utilizando Internet

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

Figura 5.3: Llamadas generadas alternadas - Red local

Figura 5.4: Carga promedio CPU - Red local

5.3. Comunicaciones usuarios red extendida utilizando Internet

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

uac_pcap_u.xml -s 5005 163.178.124.149 -r 1 -l 1

El comando anterior lo que hace es generar trafico hacia la extension 5005, en


donde -sf hace referencia al escenario a ejecutar (para G711 -sf uac pcap u.xml
y para GSM -sf uac pcap g.xml ) , -r la taza de generacion de llamadas (llamadas/segundo) y -l la cantidad limite de llamadas simultaneas. Ademas en
la configuraci
on del escenario se asigno una duracion de cada llamada de 9
segundos.
En cada una de las pruebas se efectuo alrededor de 50 llamadas en total, en
donde se vario el limite de llamadas simultaneas desde 1 hasta 12 y obteniendo
as un porcentaje de llamadas perdidas para cada uno de estos valores. Ademas
se guardo el registro de la carga promedio en el procesador durante la ejecucion
de cada prueba.
En la figura 5.5 se muestra el resultado obtenido iniciando y finalizando
todas las llamadas simultaneamente cada 9 segundos. En esta figura se puede
observar que al cambiar de codificador no se logro reducir el porcentaje de
llamadas perdidas, esto posiblemente debido a que al momento de terminar e
iniciar las llamadas, se hace simultaneamente, lo cual requiere un mayor ancho
de banda en lapsos muy cortos por lo que esto aumenta considerablemente
dicho porcentaje el cual modifica el comportamiento esperado.
En la figura 5.6 se muestra el resultado obtenido iniciando y finalizando
todas las llamadas en momentos diferentes posteriormente a los 9 segundos de
haber sido ejecutadas, lo cual reduce substancialmente el porcentaje de llamadas perdidas. De esta forma se logro observar el comportamiento esperado
luego de cambiar de codificador, puesto que al utilizando un codificador el cual
requiere un menor ancho de banda, se observo la disminucion nuevamente en
el porcentaje de llamadas perdidas.
En la figura 5.7 se muestra el aumento en la carga promedio del procesador de acuerdo a la cantidad de llamadas simultaneas realizadas. Como se
puede observar, al realizar una cantidad inferior a 7 llamadas simultaneas el
comportamiento es el esperado, dado que al utilizar un codificador GSM se
requiere mayor uso del procesador.
De acuerdo a los resultados obtenidos en las figuras 5.5,5.6 y 5.7, se observo
que para no exceder un porcentaje de llamadas perdidas superior al 10 % y
una carga promedio de 0.7 se deben de ejecutar como maximo 3 llamadas
simult
aneas (G711 o GSM), todas desde la red extendida (por Internet).

26

5 Pruebas de desempe
no

Figura 5.5: Llamadas generadas simultaneamente - Red extendida

Figura 5.6: Llamadas generadas alternadas - Red extendida

5.3. Comunicaciones usuarios red extendida utilizando Internet

Figura 5.7: Carga promedio CPU - Red extendida

27

Funciones adicionales

Posteriormente a la implementacion y pruebas de desempe


no de RaspBerry Pi
& Asterisk funcionando como PBX IP con los servicios basicos, este captulo
busca describir servicios adicionales que podran ser implementados a esta
plataforma. Posteriormente se implementan algunos de estos servicios.

6.1

Descripci
on de funciones adicionales

Troncal por GSM


Seg
un Raspberry&asterisk-community (2013a) entre las ultimas caractersticas desarrolladas para RaspBerry Pi & Asterisk es la capacidad para hacer
llamadas directamente desde una red GSM/3G por medio de un modem USB
R el modulo chan-dongle de Asterisk. Con esta nueva caractemarca Huawei y
rstica se podra utilizar una ruta externa mas economica para aquellos casos
en los que el proveedor de servicios GMS/3G tenga precios mas bajos que los
proveedores de servicios de troncales SIP, ademas en lugares en donde solo
exista cobertura GSM/3G y no por parte del resto de proveedores.
El hecho de contar con una troncal de este tipo incluso podra utilizarse
como respaldo ante problemas de conectividad con el resto de proveedores de
servicios al
ambricos.
Por u
ltimo, es importante hacer indicar que seg
un Raspberry&asteriskcommunity (2013a) el consumo total por parte de RaspBerry Pi y el modem
USB es aproximadamente 5W, por lo que es una solucion que sigue contando
con un bajo consumo energetico.

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

Uno de los principales distribuidores de RaspBerry Pi.

6.2. Implementaci
on de funciones adicionales

31

Buffers para proteger las entradas y salidas de RaspBerry Pi.


R cuenta con una librer
Adem
as PiFace
a para Python lo que hace su
implementaci
on menos compleja.
R
Hardphone marca Cisco

Este apartado va dirigido principalmente a aquellas situaciones en las cuales


se requiere migrar desde una solucion con Cisco Call Manager2 hacia una
basada en Asterisk. Esto principalmente porque al momento de contemplar
dicha migraci
on, generalmente se desea conservar la mayor cantidad de equipo
instalado originalmente, tal es el caso de los telefonos y adaptadores VoIP.
R
Los telefonos Cisco de
gama empresarial son terminales de alta calidad y
fiabilidad, sin embargo, originalmente utilizan un protocolo de comunicacion
diferente (SCCP). Por lo que es necesario cambiarles el firmware a uno que
soporte un protocolo SIP3 (si esta disponible) para poder utilizarlos con Asterisk. Todo esto a cambio del costo por el nuevo firmware el cual es bastante
inferior al costo del dispositivo.
En el siguiente captulo describen los pasos que se siguieron para actualizar
R
y configurar un telefono Cisco modelo
CP-7940, ademas de las consideraciones adicionales al momento de configurar la extension para este dispositivo en
una PBX IP basada en Asterisk.

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.

Chip GSM proveedor Claro.


R
Telefono VoIP marca Cisco modelo
CP-7940.

En la figura 5.1 se muestra el diagrama de conexion utilizado durante esta


implementaci
on.
2

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:

Troncal por GSM


En esta secci
on se detallan los pasos seguidos para la implementacion de troncales GSM una PBX IP basada en RaspBerry Pi & Asterisk.
Requerimientos del hardware: Primero que nada es importante indicar que existe una tabla recopilada por Raspberry&asterisk-community
(2013b) en la que se indican los modelos que han sido probados y el soporte que ofrece cada uno (transmitir voz, SMS y USSD). Siendo todos
R
los modelos soportados marca Huawei .
Debido a lo anterior esta implementacion se realizo con un modem GSM,
R modelo E1750.
marca Huawei ,
Alimentaci
on: Seg
un Raspberry&asterisk-community (2013a) el consumo de energetico de RaspBerry Pi y un modem GSM es de 5W, por lo
que seria necesario una fuente de alimentacion que proporcione una corriente igual o superior a 1A. Sin embargo, se recomienda para el modem
GSM la utilizaci
on de un hub USB con alimentacion independiente.
Instalaci
on y Configuraci
on: Estos se detallan en los anexos.
Debido a que al configurar las rutas de entrada en el capitulo 4, ya se
haban redireccionado todas las llamadas entrantes a la extension 100, no fue
necesario configurar una ruta de entrada diferente para la troncal GSM.
Para enviar SMSs desde cualquier equipo conectado a la red, basta con
abrir el explorador e ingresar a la direccion http://<IP de la PBX>/sms.
Para enviar USSDs se debe instalar un paquete llamado ussd-webpage. Para
instalarlo, en la terminal:
$ apt-get install ussd-webpage
Posteriormente a la instalaci
on, se pueden enviar USSDs desde cualquier equipo conectado a la red, abrir el explorador e ingresar a la direccion http://<IP
de la PBX>/ussd.
Durante la instalaci
on del controlador del modem GSM, se ingreso un n
umero de telefono y un correo electronico. Al momento de recibir alg
un mensaje
de texto por medio del m
odem GSM, RaspBerry Pi enviara una copia de ese
mensaje al n
umero telef
onico y correo electronico indicados. En dado de que

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

Figura 6.1: Cambios en configuracion extension 100 - FreePBX

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

Instalando una distribuci


on de Linux con Asterisk integrado
A continuaci
on se detallan los pasos seguidos para la instalacion de una distribuci
on de Linux con Asterisk integrado, en particular RasPBX.
1. Se descarg
o la imagen de RasPBX (comprimida en un archivo .zip). Esto
puede hacerse desde: http://www.raspberry-asterisk.org/download/raspbx12-08-2013.zip
2. Se extrajo la imagen del archivo .zip descargado.
3. Posteriormente a esto fue necesario quemar la imagen en la tarjeta SD
indicada en secciones anteriores. El procedimiento a seguir depende del
sistema operativo que utilice el equipo en donde se desea quemar la memoria SD.
A continuaci
on se describe este procedimiento para usuarios de Windows y posteriormente Linux.
Para Windows:
a) Descargar el programa Win32Manager, esto puede hacerse desde:
http://sourceforge.net/projects/win32diskimager/
b) Extraer el archivo ejecutable del archivo .zip descargado y ejecutar
como administrador el archivo Win32DiskImager.
c) Seleccionar la ubicacion de la imagen de RasPBX descargada al
inicio y luego definir la letra asignada la memoria SD.
Atenci
on: El siguiente paso eliminara toda la informacion actual
en la memoria SD o en su defecto la del dispositivo asociado a la
letra indicada anteriormente.
d) Hacer click en Write y esperar a que el proceso finalice.
Para Linux (con lnea de comandos):
37

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

Luego de esto se consider


o como terminada la instalacion. Para la implementaci
on en RaspBerry Pi posteriormente a esta subseccion se realizaron
los pasos indicados en la secci
on denominada Configuracion post-instalacion
ubicada m
as adelante.
Para acceder al sistema por SSH:
Nombre de usuario root.
Contrase
na raspberry.
Para acceder a FreePBX (administrador web):
Nombre de usuario admin.

8.1. Implementaci
on

39

Contrase
na admin.
Contrase
na de administrador Mysql: raspberry.

Instalando Raspbian y posteriormente Asterisk


En esta subsecci
on primero se indican dos posibles formas de instalar Raspbian, posteriormente a ello se instala Asterisk de acuerdo a la forma recomendada por Bryant et al. (2013).
Instalando Raspbian:
Existen principalmente dos formas de realizar esta instalacion. Una es muy
semejante a la forma en la que se realiza la instalacion de RasPBX indicada
en la subsecci
on anterior, la cual consiste en quemar en la memoria SD una
imagen descargada desde Internet. Otra de las formas es la que recomienda
RaspBerryPi-Foundation (2013) para usuarios principiantes la cual consiste en
copiar en la memoria SD un paquete de archivos descargado desde Internet,
posteriormente a ello insertar la memoria SD en el RaspBerry Pi y continuar
la instalaci
on desde all.
A continuaci
on se describen los pasos seguidos para cada una de las formas
de instalaci
on descritas anteriormente:
1. Instalando Raspbian desde imagen
a) Se descarg
o la imagen de Raspbian (comprimida en un archivo .zip).
Esto puede hacerse desde:
http://downloads.raspberrypi.org/raspbian latest
b) Seguir los pasos 2 y 3 de la subseccion anterior. Modificando u
nicamente la ubicacion de la imagen de RasPBX por la ubicacion de
la imagen de Raspbian en donde corresponda.
2. Instalando Raspbian desde NOOBS (New Out of Box Software)
a) Se formate
o la memoria SD, posteriormente se creo una particion
FAT32 que abarque todo el espacio de la memoria.
Para usuarios de Windows una alternativa puede ser Formatter 4.
Puede descargarse desde:
https://www.sdcard.org/downloads/formatter 4/
Para usuarios de Linux una alternativa puede ser GParted. Para
instalar, en terminal:
$ sudo apt-get install gparted

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.

Luego de esto se consider


o como terminada la instalacion de Raspbian. Para
acceder al sistema por SSH:
Nombre de usuario pi.
Contrase
na raspberry.
Instalando Asterisk:
Para realizar esta instalaci
on es indispensable que el RaspBerry Pi tenga acceso a Internet.
A continuaci
on se describen los pasos necesarios para la instalacion de
Asterisk en Debian sugeridos por Bryant et al. (2013):
1. Actualizar y reiniciar sistema. En la terminal:
$ sudo apt-get update && sudo apt-get upgrade && sudo reboot
2. Instalando dependencias. En la terminal:
$ sudo apt-get install build-essential subversion libncurses5-dev
libssl-dev libxml2-dev libsqlite3-dev uuid-dev vim-nox
3. Creando estructura de directorios. En la terminal:

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/

9. Crear directorio /etc/asterisk y copiar en su interior archivo muestra


indications.conf. En la terminal:
$
$
$
$

sudo mkdir -p /etc/asterisk


sudo chown pi:pi /etc/asterisk
cd /etc/asterisk/
cp ~/src/asterisk-complete/asterisk/<nombre carpeta descomprimida>/
configs/indications.conf.sample ./indications.conf

10. Copiar archivo muestra asterisk.conf en /etc/asterisk. En la terminal:

42

8 Anexos
$ cp ~/src/asterisk-complete/asterisk/<nombre carpeta descomprimida>/
configs/asterisk.conf.sample /etc/asterisk/asterisk.conf
$ vim /etc/asterisk/asterisk.conf

11. Crear archivo modules.conf en /etc/asterisk. En la terminal:


$ sudo nano /etc/asterisk/modules.conf
12. Ingresar la siguientes informacion dentro del archivo modules.conf y
guardar los cambios:
; The modules.conffile, used to define which modules Asterisk should
; load (or not load).
;
[modules]
autoload=yes
; Resource modules currently not needed
noload => res_speech.so
noload => res_phoneprov.so
noload => res_ael_share.so
noload => res_clialiases.so
noload => res_adsi.so
; PBX modules currently not needed
noload => pbx_ael.so
noload => pbx_dundi.so
; Channel modules currently not needed
noload => chan_oss.so
noload => chan_mgcp.so
noload => chan_skinny.so
noload => chan_phone.so
noload => chan_agent.so
noload => chan_unistim.so
noload => chan_alsa.so
; Application modules currently not needed
noload => app_nbscat.so
noload => app_amd.so
noload => app_minivm.so
noload => app_zapateller.so
noload => app_ices.so
noload => app_sendtext.so
noload => app_speech_utils.so
noload => app_mp3.so

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

Luego de esto se considero como terminada la instalacion de Asterisk. Es


importante recordar que por este metodo se instalo Asterisk en su forma mas
primitiva. Para ponerlo en funcionamiento es necesario dedicarle mas tiempo
a su implementaci
on. Dado que esto se escapa de los alcances de este proyecto,
para la implementaci
on del mismo se utiliza una distribucion mas completa y
adaptada a RaspBerry Pi (RasPBX).

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

y no detectara el servidor NTP, fake-hwclock ajustara la hora del sistema a


la ultima fecha y hora almacenada.
Para instalar, en la terminal:
$ sudo apt-get install fake-hwclock
Asignaci
on de IP est
atica
Esta subsecci
on es muy importante debido a que es necesario conocer siempre
la ubicaci
on de la PBX ya sea por medio de la direccion IP o bien alg
un URL.
Hay varias formas de conocer siempre dicha ubicacion. Para la implementacion
se utiliz
o la asignaci
on de una IP estatica desde el RaspBerry Pi por lo que
u
nicamente se modifico el archivo /etc/network/interfaces. A continuacion se
muestran los pasos realizados:
1. En la terminal:
$ nano /etc/network/interfaces
2. Posteriormente se modifica el documento con la siguiente informacion:
auto lo
auto eth0
iface lo inet loopback
iface eth0 inet dhcp
address <direcci
on ip>
netmask <mascara de red>
network <red>
broadcast <difusi
on>
gateway <puerta de enlace>
Para la implementaci
on se consideraron los siguientes parametros:
auto lo
#auto eth0
iface lo inet loopback
#iface eth0 inet static
#
address 192.168.1.2
#
netmask 255.255.255.0

8.1. Implementaci
on
#
#
#

47

network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

iface vlan91 inet static # Acceso red


area extensa
address 163.178.124.149
netmask 255.255.255.192
gateway 163.178.124.129
network 163.178.124.128
broadcast 163.178.124.191
vlan_raw_device eth0
auto vlan2052 #Acceso red local
iface vlan2052 inet static
address 192.168.12.20
netmask 255.255.255.0
network 192.168.12.0
broadcast 192.168.12.255
#ntp 192.168.12.11
vlan_raw_device eth0
El formato en la implementacion difiere al indicado inicialmente esto debido a que por disposicion de la administracion de la red de la Escuela de
Ingeniera Electrica fue necesario crear dos redes virtuales. Una para el acceso
a la PBX desde de la red local (LAN) y otra para el acceso desde la red de
area extensa (WAN).

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

Figura 8.1: Configuracion avanzada - FreePBX

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

Figura 8.2: Configuracion SIP - FreePBX

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

Figura 8.3: Configuracion IAX - FreePBX

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

Figura 8.4: Configuracion extension SIP - FreePBX

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

Cuadro 8.1: Parametros extensiones SIP


Extensi
on del
usuario

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

Cuadro 8.2: Parametros extensiones IAX2


Extensi
on del
usuario

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

Figura 8.5: Configuracion extension IAX2 - FreePBX

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

Cuadro 8.3: Par


ametros enlaces IAX2 - Configuracion saliente
Nombre de
la troncal

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

Cuadro 8.4: Par


ametros enlaces IAX2 - Configuracion entrante
Nombre de
la troncal

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

Figura 8.6: Configuraci


on enlace al Servidor 2 Parte 1 - FreePBX

Figura 8.7: Configuraci


on enlace al Servidor 2 Parte 2 - FreePBX

8.1. Implementaci
on

57

Cuadro 8.5: Numeracion local de extensiones en cada servidor


Nombre PBX IP
Servidor1
Servidor2
Servidor3
Servidor4

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

IAX2 Route to Servidor2


IAX2 Route to Servidor3
IAX2 Route to Servidor4

2XX
3XX
4XX

IAX2 Trunk S2
IAX2 Trunk S3
IAX2 Trunk S4

Figura 8.8: Configuraci


on ruta de salida al Servidor 2 Parte 1 - FreePBX

El hecho de que en la regla de marcacion se coloque u


nicamente en el
patron de encuentro (match pattern) significa que el patron de encuentro no
u
nicamente va a contener informacion de la extension con la que se desea
realizar la comunicaci
on sino tambien indicara la troncal por la que se debe de
establecer la comunicaci
on para llegar al destino deseado. Lo anterior implica
que posteriormente a crear las troncales y los enlaces de salida en cada una
de las PBX IP, los usuarios locales de cada PBX IP podran comunicarse entre
ellos como si se comunicaran con extensiones dentro de la misma PBX IP.
En las figuras 8.8 y 8.9 se muestra la seccion FreePBX Administration
ConnectivityOutbound Routes de FreePBX con la configuracion de la
ruta de salida al servidor 2.

8.1. Implementaci
on

59

Figura 8.9: Configuracion ruta de salida al Servidor 2 Parte 2 - FreePBX

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

Figura 8.10: Configuracion ruta de entrada - FreePBX

En la figura 8.10 se muestra la seccion FreePBX Administration


ConnectivityInbound Routes de FreePBX.

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

8.2. Pruebas de desempe


no

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">
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--

This program is free software; you can redistribute it and/or


-->
modify it under the terms of the GNU General Public License as
-->
published by the Free Software Foundation; either version 2 of the -->
License, or (at your option) any later version.
-->
-->
This program is distributed in the hope that it will be useful,
-->
but WITHOUT ANY WARRANTY; without even the implied warranty of
-->
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-->
GNU General Public License for more details.
-->
-->
You should have received a copy of the GNU General Public License -->
along with this program; if not, write to the
-->
Free Software Foundation, Inc.,
-->
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
-->
Sipp uac scenario with pcap (rtp) play
-->
-->

<scenario name="UAC with media">


<!-- In client mode (sipp placing calls), the Call-ID MUST be
<!-- generated by sipp. To do so, use [call_id] keyword.
<send retrans="500">
<![CDATA[
INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0

-->
-->

8.2. Pruebas de desempe


no

63

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]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: sip:sipp@[local_ip]:[local_port]
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 [auto_media_port] RTP/AVP 0
a=rtpmap:0 PCMU/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>

-->
-->
-->

<!-- Packet lost can be simulated in any send/recv message by


<!-- by adding the lost = "10". Value can be [1-100] percent.
<send>
<![CDATA[

-->
-->

ACK 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: 1 ACK

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 8 seconds, which is approximately the duration of the


<!-- PCAP file
<pause milliseconds="8000"/>

-->
-->

<!-- Play an out of band DTMF 1


<nop>
<action>
<exec play_pcap_audio="pcap/dtmf_2833_1.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">

8.2. Pruebas de desempe


no

65

</recv>
<!-- definition of the response time repartition table (unit is ms)
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

-->

<!-- definition of the call length repartition table (unit is ms)


<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

-->

</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">
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--

This program is free software; you can redistribute it and/or


-->
modify it under the terms of the GNU General Public License as
-->
published by the Free Software Foundation; either version 2 of the -->
License, or (at your option) any later version.
-->
-->
This program is distributed in the hope that it will be useful,
-->
but WITHOUT ANY WARRANTY; without even the implied warranty of
-->
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-->
GNU General Public License for more details.
-->
-->
You should have received a copy of the GNU General Public License -->
along with this program; if not, write to the
-->
Free Software Foundation, Inc.,
-->
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
-->
Sipp uac scenario with pcap (rtp) play
-->
-->

<scenario name="UAC with media">


<!-- In client mode (sipp placing calls), the Call-ID MUST be
<!-- generated by sipp. To do so, use [call_id] keyword.
<send retrans="500">
<![CDATA[
INVITE 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]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: sip:sipp@[local_ip]:[local_port]

-->
-->

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>

-->
-->
-->

<!-- Packet lost can be simulated in any send/recv message by


<!-- by adding the lost = "10". Value can be [1-100] percent.
<send>
<![CDATA[

-->
-->

ACK 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: 1 ACK
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>

8.2. Pruebas de desempe


no

67

</send>
<!-- Play a pre-recorded PCAP file (RTP stream)
<nop>
<action>
<exec play_pcap_audio="pcap/g711a.pcap"/>
</action>
</nop>

-->

<!-- Pause 8 seconds, which is approximately the duration of the


<!-- PCAP file
<pause milliseconds="8000"/>

-->
-->

<!-- Play an out of band DTMF 1


<nop>
<action>
<exec play_pcap_audio="pcap/dtmf_2833_1.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"/>

-->

<!-- definition of the call length repartition table (unit is ms)

-->

68

8 Anexos
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>

8.3

Implementaci
on de funciones adicionales

Troncal por GSM


A continuaci
on se detallan los pasos seguidos para la instalacion del modem
GSM.
1. Se desactiv
o el pin de chip GSM utilizado.
2. Se introdujo el chip GSM en el modem.
3. Antes de conectar al m
odem al RaspBerry Pi, se instalo el controlador
del m
odem GSM. En la terminal:
$ install-dongle
4. Posteriormente a la instalacion se procedio a conectar el modem GSM.
5. Se accedi
o a la administracion web de Asterisk (FreePBX).
6. Se ingres
o a FreePBX AdministrationConnectivityTrunks.
7. Se seleccion
o el protocolo del enlace, en este caso Custom Trunk.
8. Luego se configuraron u
nicamente los siguientes parametros:
Nombre de la troncal (Trunk Name = GSM CLARO)
Identificaci
on llamada saliente (Outbound CallerID = <n
umero telef
onico>)
Opciones CID (Opciones CID = Allow any CID)
Cadena de marcado personalizada
dongle/dongle0/$OUTNUM$
9. 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.
10. Se ingres
o a FreePBX AdministrationConnectivity
Outbound Routes.

8.3. Implementaci
on de funciones adicionales

69

Figura 8.11: Configuracion troncal GSM - FreePBX

11. Luego se configuraron u


nicamente los siguientes parametros:
Nombre de la ruta (Route Name = Gsm)
Regla de marcacion (Dial Patterns that will use this Routeprefix
= 9 y Routematch pattern = XXXXXXXX)
Secuencia de ocupacion de troncales (Trunk Sequence for Matched
Routes 0 = GSM CLARO)
12. 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 figuras 8.11 y 8.12 se muestra la seccion FreePBX Administration
ConnectivityTrunks y FreePBX AdministrationConnectivity
Outbound Routes de FreePBX con la configuracion indicada anteriormente.
R
Hardphone marca Cisco modelo
CP-7940

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

Figura 8.12: Configuracion ruta de salida GSM - FreePBX

2. Posteriormente a que el telefono iniciara, se presiono el boton Settings


y se accedi
o a Unlock Changes, luego se ingreso la contrase
na de administraci
on (la cual para este modelo en particular es cisco). Lo anterior
nos da acceso a modificar los parametros de configuracion, de no hacerlo
u
nicamente nos va a permitir observar dichos parametros.
3. Luego se ingres
o a Network Settings, se activo DHCP y ademas el uso
de un servidor TFTP alternativo.
4. Posteriormente se guardaron los cambios y dentro de Network Settings
se ajusto la direccion IP del servidor TFTP.
Posteriormente a la configuracion de los parametros de red, se procedio
a descargar una versi
on de firmware que soporte SIP. Por lo general son 4
archivos y para una versi
on de firmware 12.0, los nombres de los archivos
deben ser similares a los siguientes:
P0S3-12-0-00.loads
P0S3-12-0-00.sb2
P003-12-0-00.bin

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.

Posteriormente se debe reiniciar el telefono presionando los botones *,6


y Settings simult
aneamente, hasta que los LEDs en los botones Headset,
Mute y Speaker empiecen a parpadear secuencialmente. El telefono iniciara
nuevamente cargando el nuevo firmware y la configuracion respectiva.

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/.

Asterisk for raspberry pi.

Raspberry&asterisk-community (2013b). Gsm voip gateway with chan dongle.


http://wiki.e1550.mobi/doku.php?id=requirements.
RaspBerryPi-Foundation (2013).
http://www.raspberrypi.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

Potrebbero piacerti anche