Tesis TeneCastilloJuanPablo
Tesis TeneCastilloJuanPablo
REA TCNICA
Diseo e implementacin de un Sistema de Conmutacin de red para un sistema GSM basado en OpenBTS y Asterisk
AUTOR: Tene Castillo, Juan Pablo DIRECTOR: Quiones Cuenca, Manuel Fernando, Ing.
LOJA - ECUADOR
2013
CERTIFICACIN
Ing. Manuel Fernando Quiones Cuenca, DIRECTOR DEL TRABAJO DE FIN DE TITULACIN
CERTIFICA:
Que el presente trabajo, denominado: Diseo e Implementacin de un Sistema de Conmutacin de red para un sistema GSM basado en OpenBTS y Asterisk, realizado por el profesional en formacin: Tene Castillo, Juan Pablo; cumple con los requisitos establecidos en las normas generales para la Graduacin en la Universidad Tcnica Particular de Loja, tanto en el aspecto de forma como de contenido, por lo cual me permito autorizar su presentacin para los nes pertinentes.
Yo, Juan Pablo Tene Castillo; declaro ser autor del presente trabajo y eximo expresamente a la Universidad Tcnica Particular de Loja y a sus representantes legales de posibles reclamos o acciones legales.
Adicionalmente declaro conocer y aceptar la disposicin del Art. 67 del Estatuto Orgnico de la Universidad Tcnica Particular de Loja, que en su parte pertinente textualmente dice: Forman parte del patrimonio de la Universidad la propiedad intelectual de investigaciones, trabajos cientcos o tcnicos y tesis de grado que se realicen a travs, o con el apoyo nanciero, acadmico o institucional (operativo) de la Universidad.
ii
DEDICATORIA
iv
AGRADECIMIENTO
Al ser a-temporal y a-espacial al cual pertenezco, en quien su voluntad confo, para encaminar mi vida hacia el bien.
A mis padres, por su apoyo incondicional y conanza. A mis hermanos, por alentar mi vida porque cada uno en particular ha ayudado a mantener siempre viva la llama de la esperanza.
A mi director de tesis: Ing. Manuel Quiones, mi profesor y amigo, que siempre se mantiene alerta para el rescate de los jvenes talentos que transitan por la titulacin quien fue inmejorable gua para el desarrollo de este trabajo.
Juan Pablo
ndice general
CERTIFICACIN CESIN DE DERECHOS DEDICATORIA AGRADECIMIENTO ndice de guras ndice de tablas RESUMEN EJECUTIVO ABSTRACT INTRODUCCIN 1. ALCANCE DE LA INVESTIGACIN 1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivos especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Justicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. ESTADO DEL ARTE 2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Sistema Global de Comunicaciones Mviles GSM . . . . . . . . . . . Arquitectura de GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . Mobile Station MS . . . . . . . . . . . . . . . . . . . . . . . . . . . . i ii iv v x xii xiii xiv xv 1 2 2 2 2 3 5 6 7 8 9
vi
NDICE GENERAL
Canales de transmisin . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3. Voz Sobre IP (VoIP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 PBX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Protocolo de VoIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Cdecs de Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 G.711 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Cdec GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4. SDR como plataforma GSM . . . . . . . . . . . . . . . . . . . . . . . 16 Denicin y Aspectos Fundamentales de SDR . . . . . . . . . . . . . 16 Arquitectura de Hardware SDR . . . . . . . . . . . . . . . . . . . . . 17 Antena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Front End de RF . . . . . . . . . . . . . . . . . . . . . . . . . 17 Oscilador Local . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Bloque de Frecuencia Intermedia . . . . . . . . . . . . . . . . 18 Conversin AD/DA . . . . . . . . . . . . . . . . . . . . . . . . 18 Modulador/Demodulador . . . . . . . . . . . . . . . . . . . . 19 3. MATERIALES Y MTODOS 21
3.1. OpenBTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Arquitectura de OpenBTS . . . . . . . . . . . . . . . . . . . . . . . . 23 Transceiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Sipauthserve . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Smqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Bases de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Pila de Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Capa 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Capa 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Capa 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Secuencia de Acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Requerimientos de OpenBTS . . . . . . . . . . . . . . . . . . . . . . . 28 Requerimientos de software . . . . . . . . . . . . . . . . . . . 28 Requerimientos de Hardware . . . . . . . . . . . . . . . . . . . 29 3.2. Conguracin de OpenBTS . . . . . . . . . . . . . . . . . . . . . . . 31 Banda de Operacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Cdigo IMSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Registro de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3. Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
vii
NDICE GENERAL
Arquitectura de Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . 34 Tipos de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Estructura de Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4. Mdulo Chan Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5. Mdulo Google Voice . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.6. Conexin con PSTN . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.7. Dialplan de Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Extensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Funciones adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.8. Universal Software Radio Peripheral USRP . . . . . . . . . . . . . . . 52 Hardware USRP - N210 . . . . . . . . . . . . . . . . . . . . . . . . . 53 Panel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 GPSDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 UHD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4. FUNCIONAMIENTO Y PRUEBAS 57 4.1. Conexin del Equipo N210 . . . . . . . . . . . . . . . . . . . . . . . . 58 4.2. Ejecucin del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3. Registro de terminales en OpenBTS . . . . . . . . . . . . . . . . . . . 61 4.4. Interfaz Grca de Usuario GUI . . . . . . . . . . . . . . . . . . . . . 63 4.5. Vinculacin de telfonos (FXO) . . . . . . . . . . . . . . . . . . . . . 64 MAC del adaptador Bluetooth . . . . . . . . . . . . . . . . . . . . . . 64 MAC del telfono mvil . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.6. Prueba de servicios del sistema . . . . . . . . . . . . . . . . . . . . . 66 5. CONCLUSIONES Y RECOMENDACIONES 69
viii
NDICE GENERAL
A. Instalacin del driver UHD 77 A.1. Conguracin de libreras . . . . . . . . . . . . . . . . . . . . . . . . 77 A.2. Conguracin del controlador . . . . . . . . . . . . . . . . . . . . . . 78 B. Instalacin del Sistema OpenBTS 80 B.1. Conguracin del software . . . . . . . . . . . . . . . . . . . . . . . . 80 B.2. Conguracin de OpenBTS . . . . . . . . . . . . . . . . . . . . . . . 81 B.3. Ejecutando OpenBTS . . . . . . . . . . . . . . . . . . . . . . . . . . 82 B.4. Creacin del servidor de registro (Sipauthserve) . . . . . . . . . . . . 83 C. Conguracin de Asterik Real-Time 85
C.1. Compilacin de sqlite3 y asterisk . . . . . . . . . . . . . . . . . . . . 85 C.2. Instalando el software apropiado . . . . . . . . . . . . . . . . . . . . . 85 C.3. Reinstalando Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 C.4. Archivos de conguracin ODBC . . . . . . . . . . . . . . . . . . . . 88 C.5. Archivos de conguracin en Asterisk . . . . . . . . . . . . . . . . . . 88 D. Proceso de Conexin y Ejecucin 90
D.1. Conexin del equipo USRP N210 . . . . . . . . . . . . . . . . . . . . 90 D.2. Inicio del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 E. Conguracin SIP E.1. sip.conf 93
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
ix
ndice de guras
1.1. Fases de instalacin y anlisis . . . . . . . . . . . . . . . . . . . . . . 2.1. Esquema de acceso al medio en GSM. Tomado de [14] . . . . . . . . . 2.2. Subsistemas de una Red GSM. Modicado de [14] . . . . . . . . . . . 2.3. Estacin Mvil. Tomado de [23] . . . . . . . . . . . . . . . . . . . . . 4 8 9 9
2.4. BSS Sistema de Estaciones Base. . . . . . . . . . . . . . . . . . . . . 10 2.5. Subsistema de Conmutacin de Red NSS. Modicado de [23] . . . . . 11 2.6. Diagrama de Red VoIP. Modicado de [24] . . . . . . . . . . . . . . . 14 2.7. Arquitectura hardware de SDR . . . . . . . . . . . . . . . . . . . . . 17 2.8. Digital Down Converter. Tomado de [5] . . . . . . . . . . . . . . . . . 19 2.9. Digital Up Converter. Tomado de [5] . . . . . . . . . . . . . . . . . . 20 3.1. Sistema OpenBTS. Tomado de [35] . . . . . . . . . . . . . . . . . . . 22 3.2. Arquitectura de red OpenBTS. Fuente Range Networks . . . . . . . . 23 3.3. Pila de protocolos GSM. Modicado de [15] . . . . . . . . . . . . . . 25 3.4. Equipamiento Front End de USRP N210: a) Tarjeta daughterboard WBX 2.2 GHz, b) Antena VERT900 . . . . . . . . . . . . . . . . . . 30 3.5. Arquitectura de Asterisk. Modicado de [37] . . . . . . . . . . . . . . 35 3.6. Diagrama de conexin Chan_Mobile . . . . . . . . . . . . . . . . . . 37 3.7. Diagrama de red OpenBTS-GoogleTalk . . . . . . . . . . . . . . . . . 39 3.8. Seleccin del mdulo Chan_Motif . . . . . . . . . . . . . . . . . . . . 40 3.9. Interfaz de usuario Google - Voice . . . . . . . . . . . . . . . . . . . . 40 3.10. Interfaces FXO - FXS: a) Tarjeta Digium TDM400P, b) Modem Trendnet V92A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.11. Relacin entre los archivos de conguracin y el dialplan. Tomado de [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.12. Arquitectura de hardware USRP. Tomado de [28] . . . . . . . . . . . 53 3.13. Panel frontal del equipo N210 . . . . . . . . . . . . . . . . . . . . . . 55 4.1. Diagrama de conexin del equipo . . . . . . . . . . . . . . . . . . . . 58
NDICE DE FIGURAS
4.2. Frecuencias usadas en la banda GSM850 . . . . . . . . . . . . . . . . 59 4.3. Mensaje de Bienvenida a OpenBTS . . . . . . . . . . . . . . . . . . . 61 4.4. Mensaje de Aviso, nmero de extensin esta en uso . . . . . . . . . . 62 4.5. Mensaje que recibe usuario al ser registrado . . . . . . . . . . . . . . 62 4.6. Ventana de Interfaz Grca de Usuario . . . . . . . . . . . . . . . . . 63 4.7. Servidores de OpenBTS: a) Servidor de Registro, b) Servidor de Mensajes de texto SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.8. Dispositivos mviles conectados a Asterisk . . . . . . . . . . . . . . . 65 4.9. Ejecucin de llamada entre usuario 1001 y usuario 1002 . . . . . . . . 67 4.10. LLamada entre dos telfonos del sistema OpenBTS implementado . . 68 A.1. Equipo USRP N210 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 A.2. Instalacin librerias UHD . . . . . . . . . . . . . . . . . . . . . . . . 78 A.3. Creacin de archivos de conguracin . . . . . . . . . . . . . . . . . . 79 A.4. Instalacin completa UHD . . . . . . . . . . . . . . . . . . . . . . . . 79 C.1. Men de seleccin de componentes Asterisk . . . . . . . . . . . . . . 87
C.2. Men de seleccin de cdecs . . . . . . . . . . . . . . . . . . . . . . . 87 D.1. Hardware de equipo N210 . . . . . . . . . . . . . . . . . . . . . . . . 90 D.2. Mdulo GPSDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 D.3. Base de datos con usuarios registrados . . . . . . . . . . . . . . . . . 92
xi
ndice de tablas
2.1. Series de especicaciones GSM. Modicado de [14] . . . . . . . . . . . 2.2. Bandas de Frecuencia GSM y Nmeros de Canal ARFCN . . . . . . . 7 8
2.3. Estructura del nmero IMSI . . . . . . . . . . . . . . . . . . . . . . . 10 2.4. Canales de Trco en GSM . . . . . . . . . . . . . . . . . . . . . . . 12 2.5. Canales de Control en GSM . . . . . . . . . . . . . . . . . . . . . . . 13 2.6. Tabla de comparacin de Cdecs. Modicado de [26] . . . . . . . . . 15 3.1. Libreras de software necesarias en el sistema . . . . . . . . . . . . . . 29 3.2. Caractersticas de tarjetas RF daughterboards WBX y FRX900 . . . 30 3.3. Caractersticas de la antena VERT900 . . . . . . . . . . . . . . . . . 31 3.4. Cdecs y formatos de audio soportados por Asterisk . . . . . . . . . . 36 3.5. Valores de entrada permitidos en el panel frontal . . . . . . . . . . . . 55
xii
RESUMEN EJECUTIVO
En el presente trabajo de investigacin, se emplean herramientas tanto de hardware como software de licencia libre con el objetivo de construir una estacin base celular libre BTS, a bajo costo, y fcil implementacin, iniciando por la indagacin de los conceptos tcnicos que rigen en los sistemas de telefona mvil, as como en la tecnologa de voz sobre ip VoIP. Para luego realizar una instalacin del sistema denominado OpenBTS, el cual utiliza el hardware USRP, una radio denida por software SDR que permite desplegar una red anloga al estndar GSM, proporcionando el medio de comunicacin con cualquier telfono compatible con dicho estndar para que sea operado como extensin del protocolo de iniciacin de sesiones SIP desde Asterisk, software que ser utilizado como central de telefona IP con varios mdulos de conguracin que integran un sistema de conmutacin donde se ejecutan llamadas telefnicas entre los usuarios que ingresen a la red. PALABRAS CLAVE: OpenBTS, SDR, software libre, GSM, USRP, VoIP, Asterisk.
xiii
ABSTRACT
In the present research, some open source tools of hardware and software are used in order to build a free cellular base station BTS, of low cost and easy implementation, starting with a investigation of the technical concepts about the mobile systems, and the voice over IP VoIP technology. Then is perform a installation of system called OpenBTS, which uses the USRP hardware a software dened radio SDR to deploy a free GSM network, providing the communication with any phone that supports this standard which is switching it as a user agent of the session Initiation protocol SIP from Asterisk computer program, this software is installed as a VoIP PBX system with several modules to integrate a switching system where telephone calls are executed between registered users.
xiv
INTRODUCCIN
La idea de construir una red celular abierta a partir de hardware y software libre, nace en vista de la necesidad de comunicacin en ciertas comunidades que son aisladas por las empresas operadoras mviles al no completar el suciente nmero de usuarios que generen rentabilidad econmica; por otro lado tambin desarrollar un sistema que sirva como una red suplementaria en escenarios de emergencia donde se necesiten soluciones portables y de pronta instalacin. Para iniciar con el proyecto se emplea el sistema OpenBTS, que permite generar una interfaz de radiocomunicacin por aire Um anlogo al estndar de telefona mvil Global System for Mobile Communications (GSM). Este utiliza como infraestructura de red el hardware USRP (Universal Software Radio Peripheral), que aprovecha la exibilidad de la tecnologa de Radio Denida por Software (SDR) para emular una Estacin Base Transceiver BTS. Debido a que el hardware USRP realiza la conversin de la seal analgica a digital mediante un procesamiento asistido por computador, los telfonos mviles compatibles con el estndar GSM pueden ser manejados como extensiones del Protocolo de Iniciacin de Sesin SIP desde Asterisk, un programa de cdigo abierto que acta como centro de conmutacin de telefona IP tanto para la red local de OpenBTS, como para realizar llamadas hacia operadoras mviles privadas. En el primer captulo se argumenta la divergencia existente entre la disponibilidad de dispositivos mviles con el servicio brindado a sectores desprotegidos, adems son establecidas las fases principales de ejecucin del proyecto. En el segundo captulo son recogidos los conceptos tcnicos que describen el funcionamiento de los sistemas de comunicacin mvil, as como los involucrados en la tecnologa de (VoIP). El tercer captulo integra los conceptos adquiridos junto con los requerimientos necesarios para instalar la red celular, cuya conguracin y vericacin se detalla en el cuarto y quinto captulo donde se realizan las pruebas necesarias para comprobar la funcionabilidad del sistema.
xv
La base del hardware usado en el trabajo, es el USRP N210, que posee un procesador FPGA Xilinx Spartan 3A-DSP 3400 con una tarjeta de transmisin y recepcin de tipo WBX, dos antenas VERT900 para conectarlas a cada puerto de la tarjeta, que cubren las bandas GSM 850/900 MHz. Adems, se usa un computador personal de mediana capacidad, el cual debe tener instalado una tarjeta de red Gigabit-Ethernet para la programacin y comunicacin con el USRP.
1 ALCANCE DE LA INVESTIGACIN
1.1.
Objetivos
Objetivo general
Disear e implementar un sistema de conmutacin de llamadas para una red GSM usando Hardware y Software Libre.
Objetivos especcos
Montar una red celular GSM de bajo costo y libre acceso usando el sistema OpenBTS. Instalar y congurar el programa de conmutacin Asterisk, que posibilite la ejecucin de llamadas telefnicas dentro y fuera de la red. Usar sistemas de conexin alternativos para que funcionen como puertas de enlace de la central montada por Asterisk. Realizar la comprobacin de los servicios que ofrece la red abierta de telefona mvil.
1.2.
Justicacin
Durante el primer cuarto del siglo XXI, la integracin de las telecomunicaciones con la sociedad actual, se desenvuelve en conjunto con el incremento de los miles de usuarios que demandan diariamente servicios de comunicacin mvil, de voz, datos y vdeo. Este incesante ujo de informacin ha pasado de ser una necesidad a un dilema social, tal como lo han mencionado algunos estudios cientcos como por ejemplo los realizados por la Universidad Politcnica de Madrid (UPM) [9]. El estndar celular GSM se encuentra extendido en ms de un 90 % alrededor de todo el mundo, contando con ms de 3000 millones de usuarios en 219 pases [22]. Por otro lado en Ecuador, existen ms de 16 millones de dispositivos de comunicaciones mviles activados, de los cuales 14,5 millones son telfonos [12], una cifra que sigue en aumento y supera incluso a la poblacin del pas que se acerca a 14,3 millones de habitantes [11]. Estas cifras pueden suponer hoy en da, que cualquier ciudadano tiene acceso a una red de comunicacin por voz, pero la gran verdad es que todava existen personas y comunidades a las que no llega ningn tipo de tecnologa de comunicacin, por tratarse de lugares poco rentables para las grandes empresas de telecomunicaciones que requieren de un cierto nmero de clientes para iniciar su operacin. 2
En este trabajo, se propone usar equipos de bajo costo junto con la integracin de software de licencia libre, con el n de emular una plataforma de red celular GSM (Global System Mobile)1 que permita brindar un acceso libre a sitios que carecen de cobertura celular, sin implantar una tarifa econmica por cada llamada o mensaje realizado.
1.3.
Metodologa
Durante el desarrollo del proyecto de tesis, la metodologa de investigacin aplicada es un sistema de avance por fases, de esta forma se mantuvo un constante enfoque exploratorio de libros, documentos tcnicos, artculos y publicaciones cientcas, con el n de extraer las ideas principales de sistemas de telefona mvil de cdigo abierto, y aplicarlos junto con un inherente componente heurstico, a n de alcanzar los objetivos planteados dentro del trabajo de investigacin. Se inicio analizando la arquitectura que debe seguir cualquier operador de comunicaciones mviles en el caso de utilizar el estndar GSM para montar una red celular, presentando una breve descripcin del rol que cumplen las partes ms importantes del sistema de comunicacin mvil. Tambin, es mencionado el proceso que siguen las centrales telefnicas basadas en VoIP (Voz sobre IP)2 , enfocando la funcionalidad que presta el software de licencia libre Asterisk, gracias a la integracin de sus componentes con las redes de comunicacin. As mismo, para la comprensin de la transcendencia del tema, se expone el papel que juega la tecnologa SDR en el mbito de las telecomunicaciones modernas, estudiando su arquitectura, para terminar por comprender el procesamiento que ejecuta el dispositivo Universal Software Radio Peripheral (USRP) 3 , con base a su utilizacin en la infraestructura de la red abierta GSM. A partir de las etapas anteriores, se inicia el proceso de conguracin y montaje de la red, tomando como gua el planteamiento del sistema por fases que se describe en la gura 1.1. La primera fase, comprende el sistema de red GSM basado en OpenBTS 4 , se analizan sus partes de forma que sea posible realizar una instalacin y conguracin exitosa, todo como parte de la infraestructura necesaria para implantar un sistema celular de aspecto portable.
1 2
Fase 1
Fase 2
Fase 3
La segunda fase, comprende la instalacin de una central telefnica que permita realizar la gestin y conmutacin de llamadas entre estaciones mviles (MS), dentro y fuera de la propia red, por medio del plan de marcado y las aplicaciones de conexin con que cuente el software usado, Asterisk. Por ultimo se proyecta realizar las pruebas de cada mdulo del sistema, corrigiendo a su vez los errores que se presenten en cada etapa de la implementacin de la red y su central de conmutacin, estas pruebas servirn como gua para el anlisis de los resultados que se obtengan al nalizar el proyecto.
2.1.
Introduccin
El estndar GSM es una tecnologa muy conocida al rededor del mundo actualmente usada por el 90 % de las operadoras mviles, adems ha servido como base para el desarrollo de nuevos tipos de red celular de libre acceso usando herramientas open-source. La mayora de estos proyectos son libreras de software, herramientas de hardware, y componentes de gestin de red desarrollados por profesionales y acionados a las telecomunicaciones. Pero adems, existen empresas como OSCOM1 o Range Networks 2 que fabrican una plataforma tanto de hardware como de software para establecer toda una red celular que pueda ser congurada a medida de las necesidades del usuario. OpenBTS desarrollado por Range Networks, implementa una red GSM con funcionalidades bsicas de telefona mvil, que se apoya de la exibilidad que ofrece la tecnologa de Voz sobre IP (VoIP) y la ubicuidad de la interfaz de aire GSM, estableciendo un servicio de comunicacin entre los usuarios totalmente independiente de una operadora convencional. En GSM, como se explicar ms adelante, las llamadas desde y hacia los abonados mviles son conmutadas por la central de conmutacin mvil, la cual provee las funciones de sealizacin y control necesarias para realizar con xito dichas llamadas, su ubicacin es independiente de la ubicacin de la radiobase. Por otro lado, el sistema OpenBTS no incluye un mdulo de conmutacin, razn por la cual sus creadores sugieren el uso de software gratuito Asterisk, que brinda la facilidad de emular una central telefnica de VoIP y as mismo sus funciones pueden ser fcilmente adaptables para integrar un sistema que permita conectar llamadas locales y con otras redes. Durante este captulo se describen los conceptos tcnicos de los componentes que se involucran en una red de telefona celular GSM, adems de los parmetros que denen las comunicaciones de VoIP. Tambin es discutida la relacin existente entre las radios denidas por software SDR y los sistemas de telefona mvil.
1 2
http://bb.osmocom.org http://rangenetworks.com/
2.2.
El organismo responsable por la estandarizacin del sistema de telefona mvil GSM es el European Telecommunications Standars Institute(ETSI) 1 , este se encarga de emitir especicaciones tcnicas para fabricantes de equipos y operadores de red en la industria de las telecomunicaciones. ETSI ha divido en series todo el estndar GSM, estas series tratan de temas especcos sobre el funcionamiento de GSM, y se encuentran distribuidos tal como se muestra en la tabla 2.1. La interfaz de aire que se la conoce como Um, describe los mtodos usados por la
Serie 01.xx 02.xx 03.xx 04.xx 05.xx 06.xx 07.xx 08.xx 09.xx 10.xx 11.xx 12.xx Tema Aspectos Generales Normas de servicio Caractersticas de red Interfaz y protocolos entre (MS - BS) Capa fsica de red (interfaz de radio) Codicacin de la voz Adaptadores de terminales MS Interfaces BS-MSC Interfuncionamiento de redes Interfuncionamiento de servicios Especicaciones y homologacin Operacin y mantenimiento
estacin mvil MS y la estacin base BTS para establecer una comunicacin bidireccional fullduplex. Um se encuentra denida en las series GSM 04.xx y 05.xx del estndar, donde se denen las frecuencias de operacin ms comunes que son 850 MHz, 900 MHz, 1800 MHz, y 1900 MHz. GSM usa una combinacin de FDMA y TDMA en un espectro total de 25 MHz. El multiplexado se realiza con Frequency Division Multiple Access (FDMA) 2 dividiendo esos 25 MHz en 125 canales de 200 kHz cada uno, y cada canal de 200 kHz a su vez es dividido en 8 ranuras de tiempo utilizando Time Division Multiple Access (TDMA) [2]. Adems usando la tcnica de Frequency Division Duplex (FDD)
3
se
divide en dos la banda GSM, deniendo una banda de frecuencia ascendente, denominada uplink y otra banda de frecuencia descendente llamada downlink, ambas son usadas por las estaciones mviles para su comunicacin. En la tabla 2.2 se enumeran las bandas de frecuencia downlink y uplink para GSM
1 2
Frecuencia Frecuencia
GSM-850 824 - 849 (MHz) 869 - 894 (MHz) 128 - 251 45 MHz
GSM-1800 1710 - 1785 (MHz) 1805 - 1880 (MHz) 512 - 885 95 MHz
GSM-1900 1850 - 1910 (MHz) 1930 - 1990 (MHz) 512 - 810 80 MHz
recomendadas por la ETSI, adems, son usadas en los pases para designarlas a las operadoras que deseen brindar el servicio mvil. Los canales de uplink y dowlink son especicados por un nmero llamado Absolute Radio Frecuency Channel Number (ARFCN) que cumple con la funcin de asignar los canales de transmisin y recepcin que usaran los telfonos en la red. Cada ARFCN tiene un ancho de banda de 270,833 Kbps y utilizan una separacin entre canales de 200 kHz en cualquier banda de GSM.
Gracias al uso de TDMA1 los usuarios en determinada rea pueden compartir un simple canal de radio en diferentes intervalos de tiempo. Estos intervalos son denominados time slots (TS) con una duracin de 0.577 ms. En la Figura 2.1 podemos ver un esquema en el que se divide la banda en funcin del tiempo y la frecuencia, donde el canal fsico es asignado en un preciso ARFCN y un exacto time slot.
Arquitectura de GSM
La arquitectura de red denida por el estndar GSM se compone por tres subsistemas principales como se indica en el siguiente grco. La Estacin Mvil (MS), el Subsistema de Estaciones Base (BSS), y el Subsistema de Red (NSS).
1
http://en.wikipedia.org/wiki/Time_division_multiple_access
Mobile Station
ME
HLR C SIM CARD BTS BSC MSC F ME BTS Um Abis BSC EIR A VLR E GMSC PSTN D
BTS: Base Transceiver Station SIM: Subscriber Identity Module MS: Mobile Station
BSC: Base Station Controller HLR: Home Location Register VLR: Visitor Location Register
MSC: Mobile Switching Center EIR: Equipment Identity Register AuC: Authetication Center
Mobile Station MS
Se trata del telfono mvil que esta provisto de una tarjeta de identicacin de abonado Suscriber Identity Module (SIM)1 , esta permite identicar de manera nica al usuario que se comunica con la red a travs de la interfaz Um.
La tarjeta SIM posee una clave de autenticacin (Ki, Authentication key) asignada por el operador de red para validar el acceso nico, se encuentra almacenada en la base de datos del Centro de Autenticacin (AuC). Mientras que los terminales mviles se identican por medio de un nmero denominado Identicador Internacional de Equipos Mviles (IMEI). Dentro de la tarjeta SIM se almacena un nmero secreto de identicacin denomi1
http://en.wikipedia.org/wiki/Subscriber_identity_module
nado Identicador Internacional de Abonados Mviles (IMSI) como se indica en la tabla 2.3. Est constituido por, el MCC (Cdigo del Pas), el MNC (Mobile Network Code) Cdigo de Red y el MSIN (Nmero de Identicacin del Suscriptor). El MCC IMSI:7409952952503786 MCC 740 ECUADOR MNC 99 CLARO MSIN 52952503786
Tabla 2.3: Estructura del nmero IMSI
identica el pas al cual pertenece la MS, el MNC indica el operador mvil al que esta registrado y el MSIN es un nmero nico que identica al abonado dentro de la red GSM [23].
BTS
BSC
Estacin Base de transmisin (BTS, Base Transceiver Station): Se compone de antenas y transceivers con las que gestiona la radiocomunicacin de las estaciones mviles. Su potencia de transmisin determina el tamao de la celda y proporciona un nmero de canales de radio a la zona a la que da servicio [1]. La MS puede distinguir las celdas por su BSIC (Base Station Identity Code), y su Cell ID (identicacin de celda).
1
http://en.wikipedia.org/wiki/Public_switched_telephone_network
10
Controlador de la estacin (BSC, Base Station Controller): Gestiona los recursos de radio de una o varias estaciones base (BTS). Se encarga del mantenimiento de la llamada de una celda a otra, mientras el equipo mvil se encuentra en movimiento lo que se conoce como "handover"[15].
OMC
VLR
VLR
GMSC
MSC
la red GSM y las otras redes de telecomunicaciones ya sean mviles o jas como la PSTN [23]. Dentro de la estructura del NSS hay una serie de subsistemas que se encargan de controlar diversas funciones del equipo mvil, estos son: Registro de localizacin local (HLR, Home Location Register): El HLR contiene informacin que describe los servicios contratados por el abonado y aquellas opciones a las que tiene acceso. Se almacena adems la ltima localizacin conocida del abonado y el estado de su terminal mvil (si est fuera de servicio, encendido, apagado, en comunicacin). Registro de localizacin de visitante (VLR, Visitor Location Register):Contiene informacin del estado de todos los usuarios que provienen de
11
otras operadoras que necesiten acceso a la red GSM (roaming)1 . Adems conoce si el usuario est o no activo, a efectos de evitar retardos y consumo de recursos innecesarios cuando la estacin mvil est apagada. Centro de Autenticacin (AuC, Authentication Center): Base de datos que almacena informacin condencial de cada abonado de la red. Contiene claves de seguridad que la red utiliza para vericar la identidad del usuario y provee seguridad a los operadores de probables fraudes. Registro de Identidad del Equipo (EIR, Equipment Identity Register): Es una base de datos que puede deshabilitar el acceso a la red a telfonos defectuosos o clonados.
Canales de transmisin
En GSM cada canal fsico de radio para transmisin por el aire puede contener dos tipos de canales lgicos diferenciados por su funcionalidad: los de traco (TCH: TracChannel) y los de control (CCH: control Channel).
Tipo de Canal Canales de trco TCH Denominacin TCH/FS TCH/F9.6 TCH/F4.8 TCH/F2.4 TCH/HS TCH/H4.8 TCH/H2.4 Descripcin Voz a velocidad de 13 Kbps Datos a 9600 bps Datos a 4800 bps Datos a 2400 bps Voz a 7 Kbps Datos a 4800 bps Datos a 2400 bps
Los canales de trco contienen informacin de voz y datos existente en un canal de comunicacin. En la tabla 2.4 se nombra los tipos de canales en funcin a la tasa de transmisin que soporta el sistema. Por otra parte, los canales de control son utilizados para enviar y recibir informacin de sealizacin de los diferentes procesos entre los equipos. Existen varios tipos de canales de control algunos comunes a todos los mviles, y otros dedicados a un terminal especco, entre los que se incluyen los de la tabla 2.5.
1
http://en.wikipedia.org/wiki/Roaming
12
Descripcin Canales de control utilizados para permitir el enganche de estaciones mviles a la red y el monitoreo de las potencias de celdas vecinas. Envian informacin del sistema usando una referencia de frecuencia y otra de tiempo.
SCH (Syncronization Channel) PCH (Pagging Channel) RACH (Random Access Channel) AGCH (Access Grant Channel) SDCCH (Stand-Alone Control Channel) SACCH (SlowAssociates Control Channel) FACCH (Fast Associated Control Channel)
Canales usados para reservar y asignar los recursos de radio y el acceso a canales de control. Canales de control bidireccionales utilizados para prestar servicios de sealizacin y autenticacin de usuario.
2.3.
Es la transmisin de datos de voz en tiempo real, sobre redes basadas en el protocolo de Internet IP [25]. Posibilita la convergencia de varias redes con soporte de IP, la gura 2.6 muestra un diagrama del alcance al que puede llegar la tecnologa de VoIP al integrar varios medios de comunicacin. Este sistema permite establecer un nuevo concepto de comunicacin llamado telefona IP. En donde, las lneas telefnicas convencionales de la red (PSTN) entrantes, pueden ser convertidas a VoIP, a travs de una pasarela (Gateway) que permite recibir y hacer llamadas en la red telefnica normal. Los elementos fundamentales de una red VoIP son: Terminales: Telfonos IP que pueden ser hardware o software. Central de conmutacin: Controla y gestiona los procesos de toda la comunicacin de VoIP. Gateway: Dispositivo que sirve de enlace con otras redes telefnicas. Acta de forma transparente al usuario.
13
Telfono VoIP
Internet
Firewall Firewall Telfono VoIP
Servidor de Telefona Red Telefnica Publica Conmutada Central Telefnica Servidor de Larga Distancia
Servidor de Datos
PBX
Se trata de un tipo de central que no depende directamente del proveedor de telefona convencional. La central telefnica privada PBX posibilita el manejo de las llamadas que se realicen dentro de un edicio o rea de trabajo local, realizando la conmutacin, control y sealizacin de manera autnoma, adems utiliza lneas externas para conectarse con la red pblica de telefona (PSTN) [1]. Las centrales que utilizan el protocolo IP (Internet Protocol) para transmitir informacin de voz se han sintetizado en programas de software con capacidad de telefona IP, como por ejemplo Asterisk [37]. Durante el establecimiento de una conversacin se necesita de un conjunto de reglas que permitan establecer, mantener, administrar y nalizar los elementos de red involucrados. Estas reglas se denominan protocolos y son directamente responsables del funcionamiento de la comunicacin, uno en particular es el Protocolo de Iniciacin de Sesiones (SIP) el cual ha sido parte integral dentro de este proyecto.
Protocolo de VoIP
SIP Fue desarrollado por el IETF. Dene los parmetros de sealizacin para crear, modicar y terminar sesiones con uno o ms participantes. Estas sesiones incluyen llamadas telefnicas por Internet, distribucin de datos multimedia, y conferencias multimedia [25]. SIP ofrece la posibilidad de programar nuevos servicios no denidos por la propia 14
recomendacin. Esta ventaja de su exibilidad es por lo que actualmente es mas usado que otros protocolos. Algunas funciones de sealizacin son: Establecer, modicar y nalizar llamadas. Registrar y localizar participantes. Gestin del conjunto de participantes y componentes del sistema. Los clientes SIP llamados peers o agentes de usuario usan los protocolos TCP (Protocolo de Control Transmisin) y UDP (Protocolo de Datagramas de usuario) para conectar con los servidores SIP. SIP es usado simplemente para iniciar y terminar sesiones multimedia. Todas las comunicaciones en SIP usan el Protocolo de Transporte en Tiempo Real (RTP)1 .
Cdecs de Audio
Para poder transmitir la voz sobre una red IP, necesitamos transformar una seal analgica en digital y viceversa este proceso se conoce como codicacin y decodicacin. El software/hardware que realiza este proceso se denomina cdec, y dependiendo de cual utilicemos variar la calidad de voz, el ancho de banda ocupado y la carga computacional, en la tabla 2.6 podemos ver una comparacin de los cdecs ms utilizados en VoIP. Cdec Ancho de Banda (Kbps) G.711 64 G.726 16/24/32/40 G.729 8 GSM 13 Retardo (ms) 20 - 30 20 - 30 15 20 Estndar Descripcin ITU-T ITU-T ITU-T ETSI PCM ADPCM Combina cdigo de prediccin de linea y estructura algebraica. Prediccin de excitacin con pulso regular a largo plazo
G.711 En redes locales LAN, es el cdec que ms se utiliza. La calidad de audio es ptima y el consumo es moderado. Proporciona un ujo de datos de 64 Kbps [26]. Existen dos modelos:
1
http://es.wikipedia.org/wiki/Real-time_Transport_Protocol
15
ulaw: codica cada 14 muestras en palabras de 8 bits. Usado en EE.UU. y Japn. Alaw: codica cada 13 muestras en palabras de 8 bits. Usado en el resto del mundo. Se toman muestras a una frecuencia de 8 kHz y utiliza PCM (Pulse Code Modulation) para comprimir, descomprimir, codicar y decodicar. Cdec GSM Este cdec es muy reconocido dado que se utiliza regularmente en los canales de lneas mviles. Realmente no prima en la calidad sino en cantidad, un ejemplo claro es el ujo de datos en una conexin Full-Rate que tan solo alcanza los 13 kbps, esta cantidad es la que se utiliza en el sistema de red OpenBTS [35]. Por otro lado, representa un buen mtodo para ahorrar ancho de banda puesto que consume cinco 5 veces menos que el cdec G.711, aunque si trabajamos en conexiones de mala calidad a nivel de tiempo de respuesta (tiempo que tarda en ir y volver un paquete enviado) o de jitter (desviacin estndar del tiempo de respuesta), la voz podra llegar a distorsionarse tanto hasta ser incomprensible.
2.4.
La tecnologa que utilizan los sistemas de telefona mvil ha migrado de analgica a digital con el propsito de ofrecer exibilidad, eciencia, e intuicin en los servicios que los usuarios esperan de sus portadoras. Las radiocomunicaciones denidas por software, son parte de la tecnologa digital que hace posible implementar una interfaz de aire GSM, de esta forma, estaciones base BTS y terminales MS, pueden interactuar a nivel de hardware y software logrando por ejemplo evadir mltiples interferencias de aire durante los periodos de transicin de su continua comunicacin.
http://www.wirelessinnovation.org/
16
SDR es una tecnologa creada para mejorar la interoperabilidad entre diferentes servicios; est compuesta de software y hardware, y puede ser recongurada dinmicamente para habilitar comunicaciones entre una amplia variedad de normas de comunicaciones y protocolos [5]. SDR permite crear dispositivos inalmbricos, equipos de redes multibanda y multifuncionales, que pueden ser dinmicamente recongurados, a travs de actualizaciones de software y reconguraciones de hardware.
RF Front END
Transmisor
Amplificadores F.I.
TX
DUC
ADC Modulador/ Demodulador Digital
DDC OL
Receptor RX DAC
ANALGICO
DIGITAL
Antena La transmisin de la informacin se realiza mediante ondas electromagnticas que son transmitidas al aire. El elemento que radia estas ondas se denomina antena, puede considerarse como un transductor y un adaptador de impedancia al medio de transmisin. Front End de RF Este bloque cuenta con dispositivos electrnicos de estado slido que adaptan el nivel de las seales de entrada para que sea adecuado en las siguientes etapas del 17
SDR. Por ejemplo en el caso de la telefona celular GSM las seales se procesan a la frecuencia de transmisin/recepcin del orden de 1 GHz en la banda de 850 MHz [4]. En el transmisor, se produce una amplicacin de la seal entregada por las etapas de procesamiento hasta el nivel de potencia suciente para su transmisin por el medio fsico. Oscilador Local Genera las frecuencias apropiadas para convertir la frecuencia de RF en la frecuencia intermedia FI, mediante una mezcla no lineal que produce frecuencias de suma y resta. Se selecciona la frecuencia deseada mediante ltros analgicos para su amplicacin en los amplicadores de frecuencia intermedia. Bloque de Frecuencia Intermedia En este bloque de FI se realiza la selectividad y ganancia del receptor, la FI siempre tiene menor frecuencia que la RF debido a que es mas fcil y menos costoso fabricar amplicadores estables para seales de baja frecuencia [2]. Por razones similares, tambin se procesa la seal para la transmisin a una frecuencia inferior para luego convertirla al valor nal y amplicarla hasta el nivel permitido en la antena. Conversin AD/DA Tomando en cuenta que la transmisin por el medio fsico se realiza mediante seales analgicas, pero el procesamiento en el Transceiver es de ndole digital, se hace imprescindible realizar una conversin analgica/digital en el receptor y digital/analgica en el transmisor. A continuacin se describen las partes ms importantes de este bloque: ADC: El convertidor analgico digital (ADC) es un dispositivo que es capaz de ofrecer un valor binario de salida a partir de una entrada analgica de voltaje. Esta denicin involucra los siguientes procesos: Muestreo: Consiste en tomar muestras peridicas de la amplitud de la seal analgica. La velocidad en que se toman las muestras se llama frecuencia de muestreo. Cuanticacin: Mide el nivel de voltaje de cada muestra y le asigna un valor numrico de salida. Cuando no coincide el valor de salida con el de entrada, se dice que existe ruido de cuanticacin.
18
Codicacin: La codicacin consiste en traducir los valores obtenidos durante la cuanticacin en cdigo binario. DDC: El conversor Digital Down Converter se encarga de convertir una seal digital de FI en una seal de banda base. La gura 2.8 ilustra su composicin:
El DDC se compone de un mezclador digital, un oscilador local digital y un ltro digital pasabajos. El mezclador y el oscilador trasladan las muestras digitales de FI en banda base. El ltro limita el ancho de banda de la seal realizando la funcin de decimacin de muestras a un rango menor de muestreo. DUC: Digital Up converter es un conversor que traslada la seal de banda base en frecuencia digital intermedia IF. Luego, es transformada en FI analgica por el convertidor digital analgico (DAC) y esta seal es a su vez convertida en seal RF por el transmisor. El DUC se compone como muestra la gura 2.9. El mezclador y el oscilador local trasladan las muestras de banda base a frecuencia FI. El ltro de interpolacin resuelve la diferencia entre la frecuencia de muestreo del oscilador y la frecuencia de entrada de la seal en banda base. Modulador/Demodulador Para que pueda transmitirse una informacin til mediante una onda electromagntica que se propaga, es necesario imprimir de algn modo esta informacin sobre una seal portadora. Esto se logra modicando alguno de los parmetros que la denen de acuerdo con el valor de la informacin a transmitir. Este proceso se
19
denomina modulacin y el proceso inverso para recuperar la informacin es la demodulacin, es por eso que algunos llaman ha este bloque "MODEM". Estas funciones son actualmente muy complejas y totalmente digitales. Generalmente son realizadas por Procesadores de Propsito General GPP, pero para que las tareas de Modulacin/Demodulacin puedan ser fcilmente programables se utilizan procesadores como DSPs (Digital Signal Processors) o FPGAs (Field Programmable Gate Arrays). Los parmetros que se modican para que la onda transmita informacin til son tpicamente la frecuencia o la fase/amplitud de la seal, utilizando modulaciones de mltiples niveles denominadas en cuadratura [2] mQAM, mPSK, etc. GSM utiliza la modulacin digital 0.3GMSK (Gaussian Minimun Shift Keying). Es un tipo especial de modulacin donde 0.3G describe la banda de Filtro Gaussiano de premodulacin usado para reducir el espectro de la seal modulada. MSK (Minimun Shift Keying) se deriva de la modulacin digital en frecuencia FSK (Frecuency Shift Keying). Cuando la tasa de bits de la seal moduladora es exactamente cuatro veces la traslacin de la frecuencia de la portadora se consigue minimizar el espectro y la modulacin es llamada MSK (Minimun Shift Keying) [8].
20
3 MATERIALES Y MTODOS
21
3.1.
OpenBTS
El sistema OpenBTS, es denido como una aplicacin de software libre desarrollado bajo el sistema operativo multitarea Unix y que utiliza el Hardware USRP (Universal Software Radio Peripheral) para construir la interfaz inalmbrica de radio Um emulando al estndar de comunicaciones mviles GSM. Lo que posibilita que los telfonos celulares circundantes detecten una completa red GSM, y a su vez, estos sean vistos como extensiones del protocolo SIP , permitiendo montar in-situ un sistema de conmutacin o central telefnica gracias al software de licencia libre Asterisk [33].
USRP
OpenBTS
Asterisk
Hardware
Software
La Figura 3.1 muestra en bloques los componentes del sistema OpenBTS. En primera instancia la Antena y el USRP conforman la seccin hardware de la BTS, luego estn Asterisk y la aplicacin OpenBTS constituyendo el software que se instala en un computador formando la otra parte del proyecto. A lo largo de este captulo se explicar el funcionamiento de estas secciones, junto con la conguracin bsica de cada mdulo que cumple con una funcin especca en el sistema. OpenBTS forma la base de un nuevo tipo de red celular que puede ser desarrollada y operada a un costo ms bajo que las tecnologas existentes en muchas aplicaciones, incluyendo zonas rurales y redes privadas de celular en reas remotas [36]. Esto es posible, porque la arquitectura de OpenBTS es diferente de la arquitectura jerrquica GSM convencional, donde la BTS de la red GSM es manejada externamente por la BSC. Hay que recalcar que, OpenBTS no corresponde a una implementacin completa de una red GSM, sino que es la implementacin de hardware y software de una BTS. De este modo es posible ofrecer servicios bsicos de telefona mvil de voz y mensajes cortos de texto SMS.
22
Arquitectura de OpenBTS
Una instalacin completa del sistema OpenBTS versin P2.8 requiere de varios componentes de software que interactuan entre si con la nalidad de emular la arquitectura GSM. En el diagrama 3.2 se puede observar la distribucin que tienen
Transceiver
Asterisk
cada una de las partes en la instalacin. Se debe sealar que las conexiones de color negro son las conexiones realizadas por medio del protocolo (SIP). Las de color rojo son las conexiones del sistema (sqlite3), y las conexiones azules son establecidas por el sistema OBDC (tablas de datos de red local). Transceiver Se trata del radiomodem basado en software, e implementa la capa fsica L1. Se lo llama transceiver considerando que cumple con las funciones de envo y recepcin de la seal de radio Um. El transceiver OpenBTS implementa la red GSM comenzando por la plataforma TDMA de la capa L1 subiendo hasta las capas L3/L4 de aplicacin. Su interfaz SIP es normalmente ejecutada en el puerto 5062. El proceso que ejecuta sus funciones se encuentra en el directorio openbts/trunk/apps/. Sipauthserve Este es el servidor de registro y autorizacin de usuarios, usado para procesar las solicitudes de actualizacin de ubicacin que realiza OpenBTS y ejecuta las correspondientes actualizaciones en la base de datos de usuarios (sqlite3.db). Su interfaz de protocolo SIP, normalmente utiliza el puerto 5064 para su comunicacin. 23
Los archivos del servidor, como su proceso de ejecucin se alojan en el directorio subscriberRegistry/trunk. Smqueue Es el servidor de envo y almacenamiento de mensajes cortos de texto (SMS), los datos de su conguracin se encuentran almacenados en la base de datos smqueue.db localizada en etc/OpenBTS. Puede ser inicializado independientemente del transceiver OpenBTS. La interfaz SIP normalmente se ejecuta en el puerto 5063. Si smqueue no es instalado no afecta al funcionamiento del sistema OpenBTS. Sus procesos se encuentran en smqueue/trunk. Bases de datos OpenBTS.db En esta base de datos se encuentran todos los parmetros de conguracin de OpenBTS, tales como la frecuencia de operacin, ARFCN, potencia, puertos, mensajes de aviso, etc. Aqu se registra cualquier modicacin que se realice a las caractersticas de la red desde su consola de conguracin OpenBTSCLI. Se encuentra archivada en el directorio etc/OpenBTS/. Sqlite3.db (subscriber registry) Es la base de datos donde se alojan todos los usuarios que se registran en la red OpenBTS. Registra tanto los cdigos IMSI de las estaciones mviles como los nmeros de extensin asignados a los mismos, el puerto que utilizan, cdec usado, direccin ip, etc. sipauthserve.db Es el archivo usado por el servidor de registro Sipauthserve para alojar sus datos de conguracin.
Pila de Protocolos
OpenBTS se basa en la misma pila de protocolos que usa GSM denida en la seccin 7 de la especicacin GSM 04.01 [15], siguiendo el modelo de capas OSI (Open System Interconnection)1 . Se encuentra estructurada en tres capas (Layers) que dependen de la interfaz de la arquitectura GSM (Um, Abis2 , y A) a cual corresponda la comunicacin, tal como se muestra en la gura 3.3. La implementacin de la arquitectura de OpenBTS comprende una versin paralela de los canales lgicos del estndar GSM denidos en GSM 04.03 [16], enfocndose en la interfaz de la estacin mvil MS y la de la estacin base BTS por lo que las
1 2
http://es.wikipedia.org/wiki/Modelo_OSI http://en.wikipedia.org/wiki/Application_binary_interface
24
MS
BTS
BSC
MSC
Layer 3
Layer 2
Layer 1
capas del protocolo GSM en las interfaces Abis (BSC) y A (MSC) no son tomadas en cuenta. Cada canal de OpenBTS, es construido siguiendo las capas de GSM que a continuacin nombraremos. Capa 1 Se trata de la interfaz de radio RF, tambin llamada interface Um. Transmite y recibe tramas de control de 184 bits de longitud o tramas de trco de 260 bits de longitud sobre la interfaz de radio en rfagas de 148 bits, una rfaga por timeslot. La capa se subdivide en tres subcapas: Radiomodem: Es el componente de hardware de radio USRP o transceiver denido en la especicacin GSM 05.04. Implementa la interfaz de radio Um. Multiplexado y Sincronizacin: Como ya se ha sealado GSM usa TDMA para subdividir cada canal de radio en un mximo de 16 canales de trco o un mximo de 64 canales de control. Las especicaciones de multiplexacin se denen en GSM 05.02 [19]. En GSM la sincronizacin, es dirigida por la estacin base BTS a travs de los canales de sincronizacin SCH y correccin de frecuencia FCCH. Todos los relojes en la estacin mvil MS, incluyendo el oscilador local y el reloj de smbolo, se acoplan a las seales recibidas desde la BTS, como se describe en la especicacin GSM 05.10. Codicacin: OpenBTS tanto como GSM utilizan codicacin FEC. Esta subcapa proporciona una deteccin y correccin de errores de bit en cada 25
canal, est denida en GSM 05.03 [20]. Como regla general, cada canal GSM utiliza un cdigo de bloque con bit de paridad, una taza de compresin 1:2, un cdigo convolucional de 4to orden, y un intercalador de 4-rafagas a 8-rafagas de bits. Exceptuando para los canales SCH y RACH que no usan intercalador puesto que transmiten en una sola rfaga. En OpenBTS el decodicador FEC, valindose de un decodicador Viterbi basado en software, puede recuperar tramas ntegras con una taza de borrado de bits de exceso del 25 % [34]. Capa 2 Es la capa de enlace de datos, la cual provee tres funciones bsicas: Establecer, mantener y nalizar un enlace. Control de ujo Deteccin de errores Adems realiza la segmentacin de los mensajes de las capas superiores en tramas de L2 para luego ordenar y retransmitir dichas tramas. La capa de enlace de datos es llamada LAPDm y es documentada en las especicaciones GSM 04.05 [17] y 04.06. Es una versin modicada de la interfaz LAPD (Link Access Protocol for D-channel), que es un protocolo para control de enlace en canales D usados para transportar informacin de control y sealizacin en redes ISDN1 . Ambos LAPD y LAPD-m (mvil) son derivadas del protocolo HDLC (High Level Data Link Control) (ISO-13239) [41], usado en frame relay2 , X.25, etc. LAPDm es la mayor de las veces activado en los canales FACCH (Fast Associated Control Channel) y SDCCH (Stand Alone Control Channel), los cuales tienen las mismas funcionalidades del canal D en ISDN (control y sealizacin). Est tambin presente en un canal SACCH (Slow Associated Control Channel) cuando un mensaje de texto es enviado o una llamada es iniciada. Capa 3 En la capa 3 el protocolo de sealizacin GSM se subdivide en 3 subcapas: Administracin de Recursos de radio (RR): Se encarga del establecimiento del enlace de radio entre la estacin mvil y la BTS. Una sesin RR es iniciada por un telfono cuando este solicita el acceso a la red, o bien para
1 2
http://es.wikipedia.org/wiki/Red_Digital_de_Servicios_Integrados http://es.wikipedia.org/wiki/Frame_Relay
26
realizar una llamada. Controla el establecimiento, mantenimiento y terminacin de los canales de radio, incluyendo los handovers [18]. Un handover puede ser el cambio de MS a otra BTS, pero tambin existe el handover intracelular y consiste en cambiar el canal en que se realiza la comunicacin dentro de una misma BTS. Este proceso lo ejecuta la BTS midiendo la seal en todos los canales posibles y no solamente el que est activo, determinando as cual es el que tiene menos interferencia. Administracin de movilidad (MM) Dirige la actualizacin de localizacin y los procedimientos de registro, tanto como la seguridad y autenticacin. Administracin de conexin (CM) Controla en general la llamada, similar a la recomendacin CCITT Q.9311 . Maneja adems los servicios suplementarios y de SMS (Short Message Service).
Secuencia de Acceso
A continuacin se describe el proceso que siguen la estacin mvil MS y la estacin base BTS, cuando el usuario de un telfono realiza una peticin de acceso a la red OpenBTS. 1. La estacin mvil MS es encendida y empieza a escanear las bandas de GSM en bsqueda de un ARFCN con la mejor seal. La seal producida por el USRP debe estar activa para que el telfono la detecte. 2. Cuando el ARFCN ha sido seleccionado, la MS busca el canal lgico de sincronizacin SCH. Si no lo encuentra contina intentando con otro ARFCN de acuerdo a la potencia que este pueda ofrecer. 3. Luego la MS decodica el SCH para obtener sincronizacin con el reloj de la BTS y los relojes de tramas. El contenido del mensaje SCH es descrito en la especicacin GSM 04.08 [18]. 4. Teniendo la correcta sincronizacin, la MS puede demultiplexar el canal de control broadcast BCCH. El BCCH identica la portadora y provee informacin detallada acerca de los servicios ofrecidos por la BTS y sobre la conguracin de multiplexacin en el canal comn de control (CCCH).
1
http://www.itu.int/rec/T-REC-Q.931
27
5. Luego, la MS empieza a decodicar el CCCH y enva peticiones de acceso por medio del canal de acceso aleatorio RACH. Cada mensaje al RACH ocupa una sola rfaga de radio y usa una etiqueta aleatoria. La MS enva mximo 8 rfagas al canal RACH separadas por retrasos aleatorios de 1 a 2 segundos, mientras que revisa si el canal CCCH ha dado una respuesta. 6. La BTS recibe una rfaga del tipo RACH enviada por la MS y responde con un mensaje de asignacin de canal usando el CCCH. En este mensaje la BTS devuelve la etiqueta y el tiempo asignado para la rfaga tipo RACH correspondiente, de esta forma la MS podr reconocer que rfaga ha sido aceptada. Este mensaje tambin asigna el canal SDCCH para realizar una comunicacin. 7. La estacin mvil recibe la asignacin inmediata sobre el canal CCCH y cambia su multiplexacin y posiblemente su ARFCN de acuerdo a los parmetros recibidos en el mensaje anterior. 8. La MS conmuta sobre el canal SDCCH asignado, espera un corto tiempo hasta detectar un SDCCH en estado de reposo. Al vericar el SDCCH, la MS enva una Peticin de Actualizacin de Localizacin (LUR) lo que se puede considerar como una identicacin temporal [18]. 9. Asumiendo que la BTS acepta a la estacin mvil MS, la primera responde con un mensaje de Actualizacin de Localizacin Aceptado (LUA). La MS y BTS cierran el canal SDCCH y liberan los recursos de radio utilizados. 10. Ahora la estacin mvil esta asociada a la BTS y continua monitoreando el CCCH por mensajes de peticin de acceso asociados con las tentativas de llamada o el envo de mensajes de texto SMS.
Requerimientos de OpenBTS
Se han nombrado algunos de los principales componentes que conforman el sistema de comunicacin OpenBTS, pero tambin es necesario detallar los requerimientos tanto de software como de hardware que se deben completar antes de desplegar cualquier comunicacin. Requerimientos de software Es necesario contar con la instalacin del sistema operativo S.O. Linux, en un computador personal. Debido a que el software libre usado en el presente trabajo se ejecuta bajo dicho sistema, se utiliz la versin de Linux Ubuntu 12.04.2 LTS 28
(Precise Pangolin)1 . Tambin se recomienda las versiones Ubuntu 10.04 LTS o Ubuntu 10.10 por la facilidad que presentan estas distribuciones para el manejo de las dependencias de software, como son las libreras y paquetes que compilan e instalan los sistemas OpenBTS, UHD, y Asterisk. En la tabla 3.1 se enumeran los paquetes que deben ser instalados previo a cualquier conguracin de los sistemas anteriormente nombrados.
OpenBTS autoconf libtool libosip2 libortp libusb-1.0 Sqlite3 libsqlite3-dev libboost-all-dev Libreadline6-dev
Al tener completamente instaladas las dependencias de software, se puede realizar la instalacin del software OpenBTS y de los servidores Sipauthserve, Smqueue y OBDC. As mismo, como ya se ha visto el software Asterisk es otro de los programas que deben estar instalados. Algunos autores recomiendan el uso de versiones basadas en Asterisk 1.4 o 1.6. por recomendacin de los programadores de OpenBTS, las versiones basadas en Asterisk 1.8 presentan un problema a nivel de SIP trabajando con OpenBTS, el cual provoca que las llamadas se terminen a los 32 segundos [33]. Para este trabajo se utiliz la versin 11. Requerimientos de Hardware El equipo a utilizar consta de un radio USRP N210, manufacturado por la empresa Ettus Research, e incluye una tarjeta madre motherboard con procesador del tipo FPGA, 2 cables de RF con conectores SMA, una fuente de poder independiente, un cable Ethernet, y componentes para el ensamble del equipo. Conectado a este equipo se utiliza un computador personal PC de mediana capacidad que posea una tarjeta PCI Gigabit Ethernet, que permite la conexin con la interfaz de red del
1
http://releases.ubuntu.com/precise/
29
USRP. Adems, se usan adaptadores USB-Bluetooth, de marca Cambridge Silicon Radio, que se comportan como dispositivos FXO y/o FXS si fuera el caso para la conexin con redes portadoras privadas, gracias a la aplicacin ChanMobile.
Figura 3.4: Equipamiento Front End de USRP N210: a) Tarjeta daughterboard WBX 2.2 GHz, b) Antena VERT900
Adicionalmente se debe adquirir una tarjeta con soporte de RF y dos antenas que constituyan el Front-End del USRP necesarias para cubrir las bandas GSM, ver gura 3.4. En este trabajo se utilizan la tarjeta transmisora y receptora (transceiver) WBX, con una gura de ruido de 5dB que provee una capacidad de ancho de banda de 40 MHz y puede trabajar en frecuencias desde los 50 MHz hasta los 2.2 GHz [30].
Existen mltiples tarjetas RF de este tipo, como las RFX900 que cubren la banda de 800 a 900 MHz o del tipo RFX1800 que cubren el rango de frecuencias de 1800 a 1900 MHz para GSM. Es recomendable usar dos tarjetas hijas para minimizar la diafona entre la trasmisin y la recepcin; de esta forma se obtiene una mejor calidad de la seal y cobertura.[33]. En la tabla 3.2 se muestran las caractersticas de frecuencia y potencia de la tarjeta daugtherboard. El mdulo de transmisin y recepcin utiliza dos antenas VERT900 que poseen las caractersticas listadas en la tabla 3.3. Su ganancia no supera los 3 dBi por lo que el alcance que la red tendr no superar los 84 mts, si se aplica en un espacio libre. Usando la siguiente ecuacin calculamos esta distancia. M l = P IRE P athloss + Grx T Hrx 30 (3.1)
Caractersticas 3 dBi 824 MHz a 960 MHz 1710 MHz a 1990 MHz Cuadribanda Celular/PCS Daughterboards WBX, RFX900, RFX1800
En donde PIRE es la potencia isotrpica radiada Grx es la ganancia del receptor. THrx es la potencia mnima que el receptor puede recibir, y que en base a las especicaciones GSM 05.05 para un receptor clase 4 es 105 dBm. P IRE = 15dB + 3dBi = 18dB (3.2)
Reemplazando en la primera ecuacin los valores de distancia en metros y frecuencia en MHz tenemos. M l = 18 20log (d) + 20log (f ) + 27, 55 + 3dBi (105dB ) 20log (d) = 18 20log (900) 27, 55 + 3dBi (105dB ) log (d) = 38, 5 20 (3.3) (3.4) (3.5) (3.6) (3.7)
Por otro lado como interfaces de usuario, es imprescindible el uso de telfonos celulares compatibles con el estndar GSM y que cuenten con tarjetas SIM. Adems los telfonos gateways FXO, deben poseer capacidad de conexin Bluetooth 2.0; y tener saldo disponible para realizar llamadas en sus respectivas operadoras.
3.2.
Conguracin de OpenBTS
Antes de poner en marcha la red de aire GSM, algunos parmetros importantes de OpenBTS son modicados con el objetivo de no interferir ninguna otra red cercana, e implementar el sistema sin infringir ninguna de las normas tcnicas que la entidad reguladora CONATEL1 emite para el funcionamiento de redes de telefona mvil en el pas [13].
1
http://www.regulaciontelecomunicaciones.gob.ec/
31
Banda de Operacin
OpenBTS puede usar un amplio rango de frecuencias de GSM como por ejemplo GSM850, GSM900, GSM1800 y GSM1900 [34]. Este ser el primer parmetro a denir en las opciones de conguracin. Para la implementacin del proyecto se seleccion la frecuencia de 900 MHz usada en Ecuador para los sistemas de radiolocalizacin, telefona mvil aeronutica y no para servicio GSM. De la misma forma se establece una banda de operacin para OpenBTS esta banda es denida por el Nmero de Canal de Radio-Frecuencia Absoluta ARFCN, el cual dene el mtodo de acceso mltiple en GSM y provee los canales dowlink y uplink de la estacin mvil (MS) para establecer la radiocomunicacin con la Estacin Base Transceiver (BTS). Lo siguiente es denir un sistema de numeracin para la red. En el estndar GSM se utiliza el cdigo IMSI, el cual permite identicar de forma nica una Estacin Mvil MS dentro de la red, este se compone del MCC, MNC y el MSIN, como se explic en la tabla 2.3. OpenBTS maneja este mismo sistema, por lo que los IMSI de los telfonos a usar dentro de la red son manipulados temporalmente para su registro como extensiones SIP dentro de Asterisk. Para proceder ha realizar estos cambios en la versin de OpenBTS P2.8, se debe inicializar el sistema OpenBTS desde el directorio de instalacin </openbts/trunk/apps>. Y haciendo uso de la consola OpenBTSCLI se pueden realizar las modicaciones del sistema usando cdigos especcos para cada parmetro. Para ingresar a dicha consola se ejecuta la siguiente orden en un terminal de Linux. /openbts/trunk/apps/ ./OpenBTSCLI Esto ejecutar la consola de OpenBTS, que mostrar algunas opciones de comandos para ingresar como por ejemplo la opcin ayuda help que indica todas las opciones de entrada disponibles. Una de estas opciones es la sentencia cong la cual muestra la lista de las conguraciones que el sistema posee por defecto. Adems nos ayudar a modicar el primer item planeado que es la frecuencia de operacin, junto con la variable GSM.Radio.Band que contiene dicho valor de frecuencia. Hay que recalcar que OpenBTS realiza una asignacin automtica de frecuencia segn lo soporte el hardware en uso o USRP, por lo que si observamos en la lista de conguracin existir ya un valor establecido. Para ingresar la frecuencia de GSM 900 MHz se usa la siguiente sentencia [27]. >config GSM.Radio.Band 900
32
Cdigo IMSI
A continuacin, debemos identicar los cdigos que conformarn el IMSI de los terminales en la red, podemos denir dentro de la conguracin de OpenBTS el nmero MCC, que en este caso es el 740 que corresponde a Ecuador segn la recomendacin de la Unin Internacional de Telecomunicaciones ITU [10]. Para MNC elegimos un nmero de dos o tres dgitos diferente al que usan los operadores Claro, Movistar o CNT. En este caso se seleccion el nmero 101, quedando de la siguiente manera: >config GSM.Identity.MCC 740 >config GSM.Identity.MNC 101 De igual forma hay que indicar los canales de uplink y downlink que van a ser usados dentro de la banda GSM que previamente se program. Para ello hay que denir el valor de ARFCN ms conveniente para el sistema, segn la tabla 2.2. Denimos este nmero usando la siguiente conguracin. >config GSM.Radio.C0 51
Registro de usuario
Para entregar una experiencia mas interactiva con el usuario, conguramos el mensaje de bienvenida que se recibir una vez que la MS se registre en la red. Para ello hay que modicar las opciones con las siguientes lneas, el mensaje entregado provendr del numero 101:
>config Control.LUR.OpenRegistration.Message Bienvenido, registrate enviando al 101 una extension entre 1001 a 1012 >config Control.LUR.OpenRegistration.ShortCode 101 Por ltimo, para establecer la caracterstica de una red celular abierta se verica que la opcin de registro abierto este activado usando la siguiente declaracin.
>config Control.LUR.OpenRegistration .* Realizada esta conguracin, cualquier telfono celular con una tarjeta SIM puede ingresar a la nueva red GSM si es seleccionada. Lo siguiente es proporcionar un encaminamiento de las llamadas que se generen entre las extensiones. Para lo cual se utiliza la herramienta de conmutacin por software Asterisk.
33
3.3.
Asterisk
Asterisk es un proyecto de cdigo abierto que agrupa la funcionalidad de una central telefnica privada PBX dentro de un paquete de software, permitiendo realizar el registro, conexin y comunicacin de terminales telefnicos conectados al servidor Asterisk. Puede ser instalado en un computador personal de medianas caractersticas, al cual se le aaden tarjetas electrnicas telefnicas FXS, que se conectan con telfonos analgicos y a telfonos software basados en (VoIP) usando protocolos como SIP, H.323, IAX o MGCP. A pesar de que se trata de una aplicacin software ofrece las mismas caractersticas y servicios que un moderno equipo de hardware PBX. Soporta una variedad de tecnologas para hacer y recibir llamadas telefnicas, muchos protocolos VoIP, as como tambin conectividad analgica y digital a las redes de telefona tradicional, o a una red digital de servicios integrados (RDSI) [36]. La instalacin de Asterisk y algunos de sus detalles de conguracin usados para el desarrollo del proyecto de sistema de conmutacin para OpenBTS se encuentran detallados en el anexo C.
Arquitectura de Asterisk
En su ncleo Asterisk se encuentra formado por un conjunto de mdulos que brindan una gran capacidad de abstraccin de los protocolos, cdecs e interfaces utilizados en cada conexin esto es lo que hace de Asterisk una herramienta totalmente exible y adaptable. Existe una variedad de mdulos en funcin de la aplicacin que se vaya a desarrollar, pero Asterisk siempre mantiene cuatro mdulos principales denominados APIs (Application Programming Interface), en la gura 3.5 podemos observar el ncleo de Asterisk.
Tipos de mdulos
Los mdulos en Asterisk proveen de una funcionalidad especica, como puede ser un controlador de canal (p. ejm. chan_sip.so), o un recurso que permite la conexin a una tecnologa externa (como func_odbc.so), el cual es utilizado en la gestin de base de datos de usuarios en la red OpenBTS. Asterisk carga los mdulos al iniciar su aplicacin, pero adems se puede especicar exactamente que mdulos cargar y en que orden, modicando un archivo de conguracin localizado en el directorio /etc/asterisk/modules.conf, con esto se reduce carga en memoria y se obtienen benecios de seguridad [6]. Los tipos de mdulos se clasican en subapartados, los mas bsicos son:
34
Aplicaciones: Son acciones que se aplican al manejo de las llamadas dentro del DialPlan plan de marcado y pueden ser modicadas dentro del archivo extensions.conf. Desde donde se procesan las llamadas entre extensiones que identican a cada dispositivo conectado a la red. Este proceso ser explicado en la parte de conguracin de Asterisk. Una aplicacin comnmente usada es identicada como Dial, la cual lanza una llamada a un canal en funcin de las propiedades que sealemos para su ejecucin. El formato de este tipo de modulos es app_<aplicacin>.so. Controladores de canal: Los mdulos controladores de canal - Channel Drivers aportan la posibilidad de gestionar los canales de manera homognea. Sin estos mdulos, Asterisk no tendra forma de realizar llamadas [6]. Cada llamada entra a Asterisk a travs de un controlador de canal, el cual verica el plan de marcado y asigna un canal de Asterisk a la llamada. El formato de estos mdulos es chan_<controlador>.so Funciones de plan de marcado: Aaden y obtienen determinada informacin especca de cada canal. Son complementarias a las aplicaciones del plan de marcado y ofrecen determinadas mejoras para determinados aspectos del sistema, como el manejo de cadenas de caracteres o la conectividad ODBC (Open DataBase Connectivity, Conectividad Abierta de Bases de Datos), la cual facilita la conexin de la base de datos de usuario con Asterisk. Las funciones no pueden ser llamadas directamente en el plan de marcado, estas son llamadas dentro de las aplicaciones y con letras maysculas [38].
35
Traductor de cdec y formato: Como se ha visto Asterisk soporta muchos cdecs y formatos de audio, como los de la tabla 3.4, pero tambin puede utilizar los APIs de traduccin y formato de audio cuando sea necesario. Esto
Tipo Cdecs de audio Formatos de sonido Soportados ulaw, alaw, gsm, ilbc, speex, g722, g723, g726, g729. GSM, PCM, WAV, OGG, SLINEAR, MP3.
le permite a Asterisk convertir formatos de audio entre llamadas en tiempo real. Por ejemplo, si una llamada se establece desde un circuito PRI (Primary Rate Interface) usando el cdec G.711 y necesita ser pasada a un canal SIP usando por ejemplo G.729, el correspondiente traductor de cdec ser encargado de su conversin.
Estructura de Archivos
Los recursos que Asterisk utiliza en cada mdulo, necesitan estar alojados en directorios especcos dentro del sistema de archivos de Linux. De esta forma se pueden realizar varias tareas de administracin y almacenamiento como por ejemplo las grabaciones de voz, archivos de conguracin y contestacin automtica. Archivos de conguracin: Todos se encuentran en la ruta por defecto /etc/asterisk que se crea en la instalacin de Asterisk. Algunos archivos de conguracin son extensions.conf, sip.conf, manager.conf, adems de otros archivos que denen parmetros para una funcionalidad especca. Una parte de los archivos de conguracin pueden ser editados de forma dinmica a travs de un sistema de Base de datos (sqlite3). A esta funcionalidad se la denomina Asterisk Realtime, y se utiliza dentro del proyecto para brindar una funcionalidad mas intuitiva durante el acceso a la red OpenBTS.
Archivos de Mdulos: Son usualmente instalados en el directorio /asterisk/modules desde donde Asterisk realiza su carga. Si un mdulo no es cargado se debe revisar su existencia en este directorio, caso contrario habr que instalarlo.
36
Almacenamiento temporal: Asterisk usa el almacenamiento temporal para guardar una informacin transitoria, como mensajes de voz, grabaciones de llamadas generadas por algunas aplicaciones [36]. Para este n Asterisk utiliza el directorio /var/spool/asterisk. Tambin existen mdulos mas especcos que integran tecnologas no desarrolladas por la empresa Digium, propietaria de Asterisk, lo que permite agregar medios de conexin no convencionales pero que cumplen la misma funcin. Para el sistema planteado en este trabajo se han utilizado los siguientes tipos:
3.4.
Como controlador de canal de Asterisk permite a los telfonos mviles ser usados como dispositivos FXO (Foreign Exchange Oce), mediante una conexin Bluetooth [39]. Chan_Mobile se inicio con el desarrollo del software chan_cellphone que fue
desarrollado con el objetivo de enlazar los telfonos al servidor Asterisk, de forma que se puedan gestionar las llamadas con la operadora celular. El mdulo se ha actualizado a la versin chan_mobile e integra varios servicios de conexin mediante el protocolo SIP, adems es integrado en el paquete de Asterisk desde su version 1.6. Caractersticas El mdulo posee algunos servicios de inters para el desarrollo del presente trabajo. Permitiendo establecer enlaces salientes con operadoras mviles convencionales 37
externas al sistema OpenBTS, usando un esquema como el mostrado en la gura 3.6. De esta forma se puede realizar la comunicacin mvil a mvil con usuarios externos, algunos de los mencionados servicios se listan a continuacin [39]. Mltiples telfonos celulares pueden ser conectados. Mltiples adaptadores bluetooth pueden ser conectados. Asterisk se conecta automticamente a cada telfono celular cuando este se encuentra dentro del rango de cobertura RF del dispositivo bluetooth. Chan Mobile utiliza comandos especcos para detectar dispositivos cercanos. Son tiles para la conguracin. Cada conexin utiliza un adaptador Bluetooth desocupado. Si se requiere la conexin a una operadora distinta se debe usar otro dispositivo Bluetooth o dongle Las llamadas entrantes desde la red operadora a los telfonos celulares son manejadas por Asterisk. Identicacin de llamadas entrantes. Se debe declarar el plan de salida en un telfono celular con acceso telefnico, dentro del dialplan de Asterisk. La aplicacin CellStatus permite comprobar si un telfono se encuentra en estado conectado o si esta siendo usado por el canal de Asterisk. Existe la aplicacin MobileSMS para enviar mensajes cortos de texto desde Asterisk a travs de un telfono que sirva como FXO [39]. Sin embargo se debe tener en cuenta que no todos los telfonos que poseen conexin bluetooth son compatibles con el mdulo, en esta pagina
1
se puede encontrar
una lista de compatibilidad de los celulares, adems de toda la documentacin del mdulo.
3.5.
OpenBTS se puede comunicar con las aplicaciones de Google Voice y google talk, por medio del uso del mdulo de Asterisk chan_motif un controlador de canal y el mdulo de recursos res_xmpp (ver gura3.7).
1
http://www.voip-info.org/wiki/view/chan_mobile
38
EXTENSION SIP
EXTENSION SIP
USUARIO MOVIL
INTERNET
Estos mdulos deben ser congurados durante la instalacin de asterisk, para lo cual primero debemos de asegurarnos de haber instalado la librera denominada iksemel, a continuacin se muestran los pasos seguidos para descargar e instalar esta librera junto con Asterisk. Cabe indicar que necesitamos contar con una conexin de acceso libre a Internet, para este proyecto inicialmente se utiliz una tarjeta Ethernet adicional modelo TP-link TF3200 con bus PCI compatible con un computador de escritorio, sin embargo tambin ha sido posible usar la conexin inalmbrica que provee la tarjeta 11 b/g/n Wireless LAN PCI Express en un computador porttil. Paso 1 Desde una terminal Linux establecemos el directorio de descarga por ejemplo /usr/src, luego introducimos la siguiente lnea, que instalar y congurar la librera mencionada. apt-get install libiksemel-dev libssl-dev Paso 2 El mdulo res_xmpp depende de los mdulos chan_motif y chan_jingle. Por lo tanto debemos agregarlos en la compilacin de asterisk, que se realiza desde el directorio donde se encuentra instalado, una vez aqu ejecutamos el siguiente comando: make menuselect A continuacin, observaremos un men de seleccin de mdulos y aplicaciones que podemos agregar en la instalacin de Asterisk, dentro de este debemos seleccionar el mdulo chan_motif y chan_jingle mediante el uso de la barra espaciadora que presentar un asterisco * cuando ha sido seleccionado el componente, ver la gura 3.8. Luego tambin seleccionamos dentro de Resource modules el campo res_xmpp. A partir de esto podemos realizar la reinstalacin de Asterisk con los nuevos compo-
39
nentes, para lo cual ejecutamos la siguiente orden dentro del directorio de instalacin de asterisk /usr/src/asterisk. make & make install Esto proporciona a Asterisk nuevas funciones de conexin y recursos de comunicacin con Google. Es importante recordar que debemos tener activada una cuenta en Google voice, para lo cual ingresamos desde un navegador a la cuenta de Gmail y nos dirigimos al cono del servicio, que nos indicar que debemos de instalar el plugin de Google-voice de acuerdo a los pasos establecidos en la pgina, si este procedimiento se cumple el navegador mostrar una interfaz como la de la gura 3.9.
Esta interfaz no es ms que un telfono software con un teclado numrico y una seccin para bsqueda de contacto en funcin del pas que indica la bandera adjunta. Adems se indica el saldo disponible que tenemos para realizar llamadas desde Google. Paso 3 Ahora hay que congurar todos los componentes que intervienen en el canal de
40
comunicacin Asterisk-Google. El primero a congurar es el protocolo Real-time Transport Protocol (RTP )1 , el cual permitir el intercambio de voz en tiempo real. Conguracin del protocolo (RTP): Modicamos las siguientes lneas en el archivo de conguracin rtp.conf localizado en /etc/asterisk. Aqu habilitamos el soporte para ICE (Interactive Connectivity Estalishment)2 general icesupport=yes Si esta opcin no es habilitada recibiremos el siguiente mensaje Unable to add Google ICE candidates as ICE support not available or no candidates available Conguracin del contexto Motif: El controlador de canal Motif es congurado en el archivo motif.conf, y es alojado en /etc/asterisk. Se congura de la siguiente manera. [google] context=incoming-motif disallow=all allow=ulaw connection=google Con las lneas anteriores se han declarado las siguientes condiciones. 1. Las llamadas sern terminadas u originadas desde el contexto incomingmotif. 2. Todos los cdecs son explcitamente deshabilitados en el canal. 3. Se activa solamente el cdec G.711 ulaw. 4. Se utilizar la conexin llamada google del tipo XMPP (Extensible Messaging and Presence Protocol) 3 . Las llamadas con Google pueden soportar algunos cdecs los cuales son listados en la pagina https://developers.google.com/talk/open_communications. Conguracin del mdulo XMPP: El recurso de Asterisk res_xmpp es congurado modicando el archivo xmpp.conf, tambin encontrado en /etc/asterisk/.
1 2
41
Una conguracin normal debe de llevar lo que se muestra a continuacin. serverhost=talk.google.com [email protected] secret=examplepassword priority=25 port=5222 usetls=yes usesasl=yes status=available statusmessage=Imavailable timeout=5 Cada termino anterior corresponde a las siguientes opciones: La conexin es tipo cliente al solicitar a Google el servicio. Especica el servidor de gtalk. Declara el usuario de gtalk que se usa para conectarse ([email protected]). La contrasea del usuario gtalk. Indica la prioridad de conexin. El puerto por el cual opera gtalk. Habilita la seguridad de capa de transporte (TLS) requerida por Google. Activa la capa de seguridad y autenticacin simple (SASL) usada por Google. Muestra el estatus available de gtalk. El mensaje que se mostrar en gtalk. El tiempo de espera para recibir un mensaje con el tiempo de espera en caso se retrase la red. Paso 4 Hasta aqu tenemos todo listo para la ejecucin de llamadas, nicamente hace falta congurar el plan de marcado que identique la marcacin de una extensin. [incoming-motif] exten =>s,1,NoOp() same =>n,Wait(1) same =>n,Answer() same =>n,SendDTMF(1) same =>n,Dial(SIP/1001,20) 42
A continuacin creamos un contexto de Asterisk, donde la extensin s conteste la llamada entrante y a su vez enve un tono DTMF al servidor Google, para luego ejecutar la llamada a la extensin sip 1001. Para realizar llamadas salientes a la aplicacin de Google voice, utilizamos la siguiente declaratoria. exten =>100,1,Dial(Motif/google/[email protected]) Aqu se indica que la tecnologa usada es el mdulo motif, la extensin a marcar es google denida en xmpp.conf, y la cuenta de Google que recibir la llamada se indica con el correo del usuario. Se usa adems la opcin de re-conexin r debido a que Google no posee reglas propias de marcado 1 .
3.6.
Como ya se haba mencionado existen interfaces del tipo FXO y FXS en una central de conmutacin. La primera permite conectar una lnea telefnica analgica perteneciente a la red PSTN (Public Switched Telephone Network). Y la interfaz FXS permite conectar dispositivos analgicos de telefona para que sean reconocidos como extensiones IP, el objetivo de nuestra red mvil es realizar llamadas a telfonos jos de la operadora de telefona convencional, para esta tarea necesitamos un medio fsico de conexin FXO. Inicialmente Asterisk solo funciona con tarjetas fabricadas por la empresa Digium para lo cual se instalan los driver DAHDI (Digium/Asterisk Hardware Device Interface), estas tarjetas brindan el puerto fsico de las interfaces FXO y FXS, podemos encontrar mltiples modelos que se ajustan a cualquier aplicacin de VoIP que se necesite implementar. Una tarjeta Digium de menores prestaciones es la TDM400P de la gura 3.10, que consta de 4 puertos que funcionan como FXO/FXS segn se congure. Pero tambin, la interfaz FXO la puede proporcionar una tarjeta Mdem PCI de bajo presupuesto que sea compatible con los drivers anteriores, esta se debe instalar en el Computador donde se encuentra funcionando Asterisk. El modelo de tarjeta que se ha utilizado en este proyecto es FAX Modem PCI Trendnet V92A. Para que sea reconocida por Asterisk realizamos el siguiente procedimiento: Primero, instalamos los drivers - controladores DAHDI este paquete puede ser descargado desde los repositorios de asterisk www.asterisk.org/downloads, descargaremos la ltima versin, descomprimimos el archivo y a travs de un terminal de Linux ingresamos a ese directorio, para lo que utilizamos los siguientes comandos.
1
https://wiki.asterisk.org/wiki/display/AST/Calling+using+Google
43
(a)
(b)
Figura 3.10: Interfaces FXO - FXS: a) Tarjeta Digium TDM400P, b) Modem Trendnet V92A
# tar xvfz dahdi-linux-complete-2.5.0.2+2.5.0.2.tar.gz # ln -s /usr/src/dahdi-linux-complete-2.5.0.2+2.5.0.2/ dahdi # cd dahdi # make all # make install # make config Los primeros descomprimirn y enviarn el paquete al directorio /usr/src y luego se crea una carpeta llamada dahdi donde se procede a la conguracin e instalacin de los controladores. Si la instalacin se realiz con xito la tarjeta Modem PCI ser automticamente detectada por asterisk e imprimir un mensaje como el siguiente: DAHDI has been configured. List of detected DAHDI devices: pci:0000:07:01.0 wcfxo+ 1057:5608 Wildcard X100P run dahdi_genconf modules to load support for only the DAHDI hardware installed in this system. By default support for all DAHDI hardware is loaded at DAHDI start. Lo cual indica que ha sido reconocida como una wildcard X100P, si no se muestra nada entonces el hardware no es compatible con dahdi, en la siguiente direccin http://docs.tzafrir.org.il/dahdi-linux/README.html se puede vericar la compatibilidad del hardware. El siguiente paso es ejecutar el comando dahdi_cfg, dentro de la consola de asterisk, y luego el comando dahdi_genconf. De esta forma se generan los archivos de conguracin para la tarjeta instalada. Ahora modicaremos uno de esos archivos llamado dahdi_channels.conf, aqu se denen el contexto y callerid que usaremos en 44
nuestra red. Una muestra de esta conguracin es: Span 1: WCTDM/1 Wildcard Wildcard X100P (MASTER) ;;; line=1 WCTDM/1/0 signalling=fxo_ls callerid=Channel 1 <4001> mailbox=4001 group=5 context=from-internal channel =>1 callerid=cnt mailbox=cntbox group=phones context=FXO Es importante sealar que Asterisk no reconoce directamente la conguracin realizada en el archivo dahdi_channels.conf, sino que se debe copiar esta conguracin dentro del archivo chan_dahdi.conf al cual Asterisk tiene como referencia de conguracin. El ltimo paso es congurar el contexto denido en dahdi para que funcione dentro del plan de marcado de Asterisk, en el archivo extensions.conf. En el caso de tarjetas Digium estas poseen varios puertos, que se conguran uno a uno indicando el canal que utilizan para realizar una comunicacin. Pero en nuestro caso la tarjeta Modem PCI solo posee un canal de salida, entonces, la conguracin en el plan de marcado sera. [FXO] exten=>_2X.,1,DIAL(DAHDI/1/$EXTEN:1) exten=>_2X.,2,Hangup() Donde indica que hay que anteponer el 2 a cualquier numeracin de telfono convencional, para utilizar la lnea FXO conectada a la tarjeta. El contexto CNT permite que las llamadas de salida o entrada sean enrutadas desde el canal FXO denido en dahdi_channels.conf. Ahora se podr marcar desde la red OpenBTS a un nmero de telfono convencional. El contenido de los archivos de esta conguracin estn ilustrados en el anexo F.
3.7.
Dialplan de Asterisk
La conguracin de Asterisk en este apartado se enfoca a las funciones que posee el plan de marcado DialPlan con la nalidad de procesar cualquier llamada que se genere dentro del sistema OpenBTS. 45
Tambin debe aclararse que, toda la conguracin que se realice en el Dialplan es guardada en los archivos sip.conf y extensions.conf que se alojan en el directorio /etc/asterisk/. El primero dene los canales SIP que se usan para cursar las llamadas,
Figura 3.11: Relacin entre los archivos de conguracin y el dialplan. Tomado de [6]
especicando las caractersticas tales como (contexto, puerto, tipo de usuario, cdec, etc.). El segundo archivo utiliza los canales denidos en sip.conf y los utiliza dentro de un segmento del plan de marcado llamado contexto, la relacin entre estos dos se esquematiza en la gura 3.11.
Contexto
Dene los espacios del plan de marcado donde las extensiones son procesadas dinmicamente para cumplir una determinada funcin. Una extensin que es denida dentro de un contexto es completamente aislada de extensiones en cualquier otro contexto, a menos que la interaccin sea especcamente permitida [6]. Para denir un contexto se coloca el nombre entre corchetes [ ], el nombre puede estar compuesto de letras minsculas o maysculas de la A a Z y nmeros del 0 al 9. Hay que asegurarse de no dejar espacios en blanco. Por ejemplo para denir el contexto phones se utiliza la siguiente lnea. [phones] A partir de la denicin del contexto, todas las instrucciones puestas a continuacin son parte del contexto, hasta que el siguiente contexto sea denido. Al inicio del plan de marcado hay dos contextos especiales llamados [general] y [globals]. El contexto [general] contiene una lista de conguraciones generales del dialplan. Es importante saber que ninguno de estos dos son realmente contextos, por lo que se debe evitar usar [general], [default], y [globals] como nombres de contextos para evitar conictos del sistema [6].
46
Extensiones
En asterisk a diferencia del sistema de telefona ja, una extensin no se reere solamente a una serie numrica para timbrar un telfono; sino que a ms de cumplir con esa funcin, dene una serie nica de pasos a travs de los que Asterisk llevar a cabo esa llamada. Dentro de cada contexto, podemos denir tantas extensiones como sean requeridas. Asterisk no tendr complicaciones en seguir los pasos denidos para una extensin cuando esta sea activada. Ahora denimos una extensin con la palabra exten seguido de una echa formada por un signo igual y mayor que, tal como se muestra. exten => Luego de esta denicin se coloca el nombre (o nmero) de la extensin. Asterisk permite que los nombres de una extensin puedan ser una combinacin de letras o nmeros. Cada paso en una extensin est compuesto por tres componentes [40]:
El nombre (o nmero) de la extensin. La prioridad, que es el nmero que corresponde al siguiente paso al que Asterisk debe procesar, y. La aplicacin (o comando) que se realizar en ese paso. Estos tres componentes son separados por comas, como se puede ver. exten =>name,priority,aplicatin() Aqu hay un ejemplo sencillo de como se vera una extensin real. exten =>123,1,Answer() El nombre de la extensin llamada es 123, la prioridad es 1, y la aplicacin Answer() contestar la llamada.
Prioridades
Cada extensin puede tener mltiples pasos, llamados prioridades. Las prioridades se enumeran secuencialmente empezando en 1, y cada una ejecuta una aplicacin especca. Por ejemplo en la prioridad uno se contesta la llamada, y en la siguiente prioridad se cuelga.
47
exten =>123,1,Answer() exten =>123,2,Hangup() Para evitar confusin entre prioridades Asterisk desde la versin 1.2 agreg la prioridad n (next), as cada vez que Asterisk encuentra una prioridad llamada n, toma el nmero anterior y lo aumenta en 1. Un ejemplo de esto puede ser: exten =>123,1,Answer() exten =>123,n,hacer algo exten =>123,n,hacer algo ms exten =>123,n,hacer una ultima cosa exten =>123,n,Hangup() Se debe tener en cuenta que siempre debe existir la prioridad 1, pues de lo contrario la extensin dejar de existir para Asterisk, pues no encontrar donde empezar su plan de marcado [6]. Para simplicar el cdigo, se dispone de otra funcin para crear extensiones, se trata del operador same => permite que no sea necesario escribir el nmero de la extensin, siempre que sta permanezca igual a la de la lnea anterior, reemplazando al operador exten =>. exten =>123,1,Answer() same =>n,do something same =>n,do something else same =>n, do one last thing same =>n,Hangup() Los espacios no son necesarios, pero facilita la lectura del plan de marcado. Existen adems etiquetas que se pueden asignar a las prioridades de una extensin, esto sirve para realizar saltos de algn lugar de un plan de marcado a otro, permitiendo asignar una aplicacin determinada a una extensin que cumpla con una condicin [40]. Por ejemplo si un telfono marca a otro que no esta registrado en OpenBTS. La sintaxis que sigue este complemento es: exten =>123,n(etiqueta),aplicacin() Se debe evitar insertar el signo de coma entre la n y el parntesis de la etiqueta.
Aplicaciones
Las aplicaciones, son encargadas de realizar acciones especcas en el canal seleccionado tales como marcar, colgar, la reproduccin de un archivo de sonido, aceptar tonos de entrada, bsqueda en base de datos, entre muchas otras [38]. En los ejemplos anteriores del dialplan se introdujeron dos aplicaciones sencillas: 48
Answer() y Hangup(), las cuales contestan y cuelgan el canal actual respectivamente. Estas funciones no necesitan argumentos, pero la mayora de aplicaciones si requieren recibir informacin, estos argumentos se colocan dentro del parntesis, y se separa usando comas. Por ejemplo la funcin Dial(), puede contener lo siguiente. Dial(SIP/$ARG1,20,rt) Lo que marcar una extensin SIP despus de esperar 20 segundos. Otra funcin bsica muy comn es Playback(), la cual recibe como parmetro la ruta de un archivo de audio para ser reproducido. Asterisk ejecuta secuencialmente los comandos asociados a cada extensin. Esos comandos son realmente aplicaciones que controlan el comportamiento de la llamada y del sistema en s. Por ejemplo al marcar la extensin 200 se reproducir un sonido de saludo hola mundo usando la aplicacin Playback(), y luego se colgara la llamada[40]. exten =>200,1,Answer() same =>n,Playback(hello-world) same =>n,Hangup() Durante la instalacin de asterisk se puede elegir la instalacin de algunos sonidos de ejemplo para reproducirlos en el plan. Existen una variedad de sonidos para usarlos durante una condicin especca, es comn que estos se encuentren en el directorio /var/lib/asterisk/sounds. Otra funcin importante para realizar las funciones de conmutacin es Goto(), la cual sirve para trasladar el estado de la llamada a otra parte del plan de marcado, por ejemplo en el caso que el telfono de un usuario que est registrado en OpenBTS no puede contestar. same =>n,Goto(context,extention,priority) Como ya se ha visto la funcin Dial() sirve para marcar la extensin deseada. Su sintaxis tiene el siguiente orden. exten =>n,Dial(Tecnologa/usuario,timeout,opciones) En el argumento Tecnologa se asigna la abreviatura del tipo de canal que se usar, Asterisk puede manejar algunas tecnologas como SIP, DAHDI e IAX2 [6]. OpenBTS aplica la tecnologa SIP por lo tanto usaremos este argumento. Timeout indica la cantidad de segundos que se deben esperar para recibir una respuesta del equipo llamado. Si la llamada se contesta antes del timeout se desviar la comunicacin y el plan de marcado se dar como terminado. Si el destinatario no contesta, est ocupado o no est disponible, Asterisk asigna una variable llamada DIALSTATUS con el estado del llamado y luego continuar con la siguiente prioridad del plan de marcado [40]. Esta funcin permite terminar las tentativas de llamadas no completadas entre usuarios mviles. 49
Existe una gran cantidad de opciones para usarse como argumento de la funcin Dial(). r y t son dos funciones usadas en nuestro sistema para brindar una mejor solucin a la conmutacin de llamadas. La opcin r enva tonos de espera al llamante y la opcin t permite al llamado transferir la llamada, si es necesario, usando una secuencia de tonos DTMF1 . Dentro de la conguracin del Sistema de Conmutacin para OpenBTS, tambin utilizamos la funcin SET() la cual permite manejar variables dentro del plan de marcado. Estas variables pueden extraer informacin de una base de datos perteneciente a OpenBTS. Para realizar este procedimiento se congura a Asterisk en modo Realtime, lo cual es explicado en el anexo C. Un ejemplo en el que se aplica la funcin Set() sera asignar a la variable VAR la extensin SIP 1001.
exten =>301,1,Set(VAR=SIP/1001) same =>n,Dial(VAR,20) Hay que sealar que Asterisk diferencia entre maysculas y minsculas. En el caso de las variable CHANNEL y EXTEN son reservadas por el sistema, por ejemplo utiliza EXTEN para almacenar el nmero que ha marcado el usuario llamante [38]. Lo anterior se toma en cuenta cuando declaramos variables globales, estas son denidas dentro del contexto [globals] sin usar Set(), adems deben escribirse en maysculas, por ejemplo (NOMBREDEVARIABLE). Las variables usadas en el canal se pueden escribirse combinando minsculas y maysculas, por ejemplo (nombreDeVariable)[6].
[globals] var=SIP/1001 Una variable global tambin puede ser denida dentro de un contexto por medio de la funcin GLOBAL(), por ejemplo para denir VAR usamos: exten =>301,1,Set(GLOBAL(VAR=SIP/1001)) En Asterisk se pueden utilizar patrones de marcado para vericar las extensiones que han sido llamadas, de esta forma se clasican los tipos de extensiones dentro del plan de marcado, por ejemplo si un nmero de telfono mvil empieza por 09 podemos abreviar los siguientes nmeros que le siguen usando la letra X, por ejemplo 09XXXXXXX. Se pueden usar diferentes letras tales como. X coincide con un dgito del 0 al 9 Z coincide con un dgito del 1 al 9
1
http://es.wikipedia.org/wiki/Marcaci%C3%B3n_por_tonos
50
N coincide con un dgito del 2 al 9 . coincide uno o ms caracteres, no importa cual. As podremos por ejemplo formar el dialplan de manera que para llamadas locales, el patrn sera NXXXXXX, pues en los nmeros locales no se usa el 1 en la primera cifra. Un patrn para llamadas nacionales sera por ejemplo 0N2XXXXXX. La funcin GotoIf() tambin es usada dentro del dialplan de OpenBTS, esta funcin realiza un salto condicional, es decir que verica una condicin y dependiendo de su validez salta a una determinada etiqueta. GotoIf(condicin?etiqueta1:etiqueta2) En caso de cumplirse la condicin lgica la llamada ser cambiada a la etiqueta 1 que le corresponda, de lo contrario se cambiar a la etiqueta 2. Para facilidad de la construccin del cdigo de marcacin uno de las dos etiquetas pueden obviarse, por ejemplo: exten =>345,1,Set(TEST=1) same =>n,GotoIf([TEST = 1]?:Quito) same =>n,Playback(Hola-Loja) same =>n,Hangup() same =>n(Quito),Playback(Hola-Quito) same =>n,Hangup()
Macros
A lo largo del plan de marcado se pueden utilizar subrutinas que ayudan a desbordar las peticiones de un canal de comunicaciones, estas subrutinas son llamadas macros. Se deben de transferir los argumentos vlidos para que una macro pueda identicar la funcin que debe realizar. Una macro se dene de igual forma que un contexto pero se debe anteponer la palabra macro seguida de un guion - y luego de ste el nombre que se le va a asignar, por ejemplo para denir la macro claro: [macro-claro]) Ahora para ejecutar esta macro, se debe usar el siguiente argumento: exten =>101,1,Macro(claro,ocupado) Lo que har que al marcar la extensin 101 esta pase a la macro claro, manteniendo el argumento ocupado. Una macro posee unas caractersticas especcas que determinan el origen y los argumentos con que se inicia una peticin de llamada. MACRO_CONTEXT Contexto original desde donde la macro fue llamada. 51
MACRO_EXTEN Extensin original desde donde la macro fue llamada. MACRO_PRIORITY Prioridad original desde donde la macro fue llamada. ARG n Son los argumentos que se pasaron al llamar la macro. En el ejemplo anterior el segmento de la macro ARG 1 sera igual a ocupado.
Funciones adicionales
Para cumplir algunos de los parmetros necesarios dentro del sistema de conmutacin desarrollado en este proyecto, se han utilizado las siguientes funciones especcas. LEN(): esta funcin devuelve el valor numrico del tamao de la variable o extensin que se coloque entre los parntesis. NoOp: La funcin NoOp, sirve para mostrar mensajes en la consola de Asterisk (CLI), esto ayudar a vericar el estado del plan de marcado y de las llamadas que se cursen en el sistema. MusicOnHold(): Permite la reproduccin de un tono de espera para indicar al usuario que llama que debe mantenerse en la lnea. Todas las deniciones anteriores se aplican en el plan de marcado utilizado para realizar el sistema de conmutacin para OpenBTS, este dialplan que describe el comportamiento de cada llamada realizada en el sistema se explica en el anexo F.
3.8.
Se trata de un SDR diseado por la empresa ETTUS Research como propuesta de hardware libre, donde los microprocesadores convencionales pueden actuar como dispositivos de radio bajo un gran ancho de banda, convirtindose en una plataforma exible de bajo costo que permite implementar y disear potentes sistemas de radiocomunicaciones con aplicaciones en tiempo real [7]. En esencia, sirve como procesador digital de banda base y conversor de frecuencia intermedia FI en un sistema de radiocomunicacin. La gran comunidad de cientcos y usuarios han contribuido a la losofa de diseo bsico detrs del USRP que tiene como objetivo realizar todo el procesamiento de seales especcas como modulacin, demodulacin e interpolacin. Todo lo anterior con la ayuda de un computador personal sin tener que adquirir software especializado o pagar una licencia. 52
Cuenta con un PGA (Programable Gain Amplier, amplicador de potencia programable) antes de los ADCs para amplicar la seal de entrada y utilizar el rango completo en caso de que la seal sea dbil. En la parte de transmsin el USRP tiene dos DACs de alta velocidad a 16 bits por muestra y una tasa de 400 mega-muestras por segundo (400 MSPS), contando de igual forma con un PGA despus de los DACs que proporciona hasta 10 mW de ganancia [29]. Estos canales de entrada y salida son conectados a un FPGA (Field-Programable GateArray, Matriz de Compuertas Programable en campo) de la familia Xilinx Spartan 3A-DSP 3400 FPGA, al cual se conecta un chip Gigabit Ethernet que sirve como interfaz de conexin al computador con un ancho de banda de 50 MHz usando una cuantizacin de 8 bits. La FPGA realiza un procesamiento a alta velocidad y reduce la tasa de datos para que puedan ser enviados a travs de la interfaz Gigabit-Ethernet hasta el computador. En el N210, el procesamiento con alta frecuencia de muestreo se realiza en la 53
FPGA, mientras el procesamiento con baja frecuencia de muestreo se realiza en el computador. La conguracin bsica de la FPGA incluye dos DDCs completos, pero tambin es posible la implementacin de 4 DDCs sin ltros de media banda. Esto permite tener 1, 2 o 4 canales de recepcin separados. Las salidas de los ADCs van conectadas a la entradas de los DDC. Estos mezclan, ltran y diezman las seales de entrada en la FPGA. Se utilizan en la recepcin, esencialmente por dos razones: Para convertir la seal en banda de frecuencia FI a una seal en banda base. Para diezmar la seal, logrando que la tasa de datos pueda ser adaptada a la interfaz Gigabit Ethernet y que sea acorde a la capacidad de procesamiento del computador. En la transmisin se realiza el proceso inverso, donde es necesario convertir una seal banda base a una seal de frecuencia intermedia, y enviarla a travs de los DACs. Esto proceso lo realizan los DUC. En la transmisin se usan ltros interpoladores CIC (CascadedIntengrator-Comb, Peine Integrador en Casca) que interpolan las muestras antes de trasladar la seal digital a la frecuencia intermedia por el DUC. Los DDC y DUC combinados con altas tasas de muestreo simplican en gran medida los requerimientos de ltrado analgico. Panel Frontal En la parte frontal del equipo N210 se han colocado 6 leds enumerados y de color verde, que indican un determinado estado del dispositivo como se observa en la gura 3.13. Segn las letras que se han asignado a los leds pueden indicar los siguientes estados si estn encendidos: LED A: El equipo est transmitiendo Tx. LED B: Indica si est conectado el cable tipo MIMO1 . LED C: Recepcin. LED D: El rmware ha sido cargado. LED E: Reloj de referencia. LED F: CPLD (Complex Programmable Logic Device) est activo.
1
http://es.wikipedia.org/wiki/MIMO
54
En el panel tambin encontraremos los puertos tanto de la interfaz Gigabit Ethernet que ser conectada con el computador, el puerto de expansin MIMO utilizado para realizar una conexin en paralelo con otros USRPs si es necesario para sincronizarlos con el mismo reloj.
As mismo tenemos los puertos que ya se han nombrado para conectar las antenas de transmisin y recepcin estos puertos estn etiquetados como RF1 para transmisin y RF2 para recepcin. Y por ultimo estn los puertos REF clock y PPS in que como indican sirven para conectar un reloj de referencia en el primero o un Multivibrador1 en el segundo ambos con la nalidad de realizar la sincronizacin necesaria para las aplicaciones que se desarrollen. La siguiente tabla 3.5 indica los parmetros permitidos de reloj o multivibrador.
Puerto REF Clock PPS in Tolerancia de entrada Max 10 MHz Reference CLock con 0 - 15 dBm nivel de potencia. 3.3 a 5 Vpp (voltaje pico-pico).
GPSDO El dispositivo Global Positioning System Disciplined Oscillator (GPSDO)2 , permite una sincronizacin precisa de muestras para transmisin Tx y recepcin Rx en el USRP, generando una frecuencia de reloj de 10 MHz en su oscilador de salida con una precisin de 0.01 ppm3 , acercndose a la frecuencia de 13 MHz con 0.02 ppm requerido en la mayora de las implementaciones GSM tanto para la generacin de frecuencia como para la sincronizacin del reloj [32]. El USRP N210 tiene incorporado en su tarjeta principal un Oscilador de Cristal de Temperatura Compensada (TCXO) de 64 MHZ con precisin de 2.5 ppm, muy
1 2
55
baja para trabajar como reloj principal en la red. Por lo que se recomienda usar la seal del GPSDO como entrada de reloj de referencia REF en la tarjeta motherboard del USRP. Los pasos correctos para la conexin del GPSDO con el equipo USRP los podemos encontrar en la gua desarrollada por el fabricante [31].
UHD
UHD (USRP Hardware Driver) se trata de el software controlador o driver, que se debe instalar en el ordenador para que pueda interactuar con el radio USRP, es desarrollado por Ettus Research para el desarrollo de aplicaciones con los equipos de la familia USRP. Puede trabajar en los sistemas operativos Linux, Windows, y Mac. Posibilita una Interfaz de Programacin de Aplicaciones (API) para la investigacin de nuevos servicios que se pueden adaptar a los radios basados en software SDR. Los usuarios de UHD pueden realizar la comunicacin del hardware usrp bajo plataformas de desarrollo de software como: GNU Radio LabVIEW MATLAB OpenBTS
56
4 FUNCIONAMIENTO Y PRUEBAS
57
4.1.
Antes de iniciar el sistema de telefona mvil, necesitamos realizar una prueba de funcionamiento y conectividad del equipo USRP con el computador. Todas las pruebas que se realizaron durante este trabajo han sido desarrolladas dentro de un ambiente de laboratorio donde el nivel de seal GSM de otras operadoras es muy bajo. Esto favorece la deteccin y acceso de los telfonos mviles hacia la red GSM implementada.
RX WBX 50 2200 MHz Rx/Tx TX
TELFONO MVIL
BL UE T
OO
TH
DONGLE
DAUGHTERBOARD
RF1
USB
ETHERNET
INTERNET
Es indispensable tener disponible una toma de energa de 110 V en AC (corriente alterna) para facilitar la alimentacin tanto del SDR como el computador. A partir de esto se puede empezar a conectar fsicamente todas las partes como se detalla en la gura 4.1. Primero adaptamos cuidadosamente la tarjeta RF WBX dentro del USRP para luego colocar en los conectores las antenas VERT900 de Tx y Rx, este proceso es detallado en el anexo D. Tambin mediante un cable Ethernet categora 6, conectamos el computador con el SDR y adems realizamos el enlace bluetooth de los telfonos gateway con el servidor asterisk. Por ltimo vericamos si disponemos de una conexin a Internet para comunicarnos con las cuentas Google que deben estar activas. Seguido comprobamos si una nueva conexin en la interfaz Ethernet se ha activado, Ubuntu la detectar automticamente y tendremos que introducir una direccin IP esttica para comunicacin con el USRP que posee la direccin por defecto 192.168.10.2 Una vez realizado lo anterior, ahora se puede ejecutar dentro de un terminal Linux 58
POWER
WIRELESS
RF2
dos aplicaciones que se instalan junto con el UHD la primera uhd_nd_devices detecta el dispositivo USRP conectado, y la segunda uhd_usrp_probe examina el estado de todas las tarjetas que se encuentren activas presentando las caractersticas como rango de frecuencia, sensores activos, y nivel de ganancia que posee cada una ellas. Este procedimiento se lleva a cabo con la nalidad de comprobar que el equipo se encuentre en buen estado y disponible para ejecutar el sistema. A continuacin hacemos uso del programa denominado Kalibrator que permite escanear las bandas de frecuencia GSM activas junto con los identicadores ARFCN usados las redes mviles que operen dentro del rea. Para ejecutar este programa escribimos en un terminal Linux la siguiente lnea de comandos: kal -s GSM850 -F 52000000 -R B Indicando la banda de 850 MHz la cual vamos a escanear, tambin se ingresa la frecuencia de muestreo necesaria para procesar la seal requerida, luego el resultado debe ser similar al mostrado en la gura 4.2. Las opciones de banda a escanear son la GSM850, GSM900, DCS y PCS. El programa muestra el nmero de canal ARFCN usado junto con la potencia y
la frecuencia de cada canal, con esta informacin podremos evitar usar un mismo nmero de ARFCN en nuestra red y causar una interferencia a esa operadora.
4.2.
Realizada la conexin y alimentacin de los equipos procedemos al inicio del sistema OpenBTS, el sistema comprende la ejecucin de los siguientes procesos, todos en el mismo computador: 1. El primer proceso es el servidor de registro (Sipauthserve), el cual se encuentra en el directorio /SubscriberRegistry/Trunk, lo ejecutamos usando la sentencia ./sipauthserve
59
2. Iniciamos el servidor de mensajes de texto SMS (smqueue), ingresamos al directorio /smqueue/trunk/smqueue y lo iniciamos mediante ./smqueue 3. Luego de los servidores anteriores se ejecuta el transceiver (OpenBTS) que est alojado en /openbts/trunk/apps con el comando ./OpenBTS 4. Por ltimo se inicia el servidor Asterisk el cual lo podemos llamar desde una consola de Linux por medio de asterisk -vvvvvvc. Cuando la red se encuentra en funcionamiento y la transmisin est activa, los telfonos dentro de la cobertura de la celda celular podrn notar la existencia de una nueva red dentro de la lista de redes operadoras disponibles en su men de conguracin, la que pueden acceder de forma manual si as lo deciden para registrarse. Al registrarse los telfonos en OpenBTS, este les asigna una Identidad de Usuario Mvil (IMSI) hasta que se registren de forma completa como extensin SIP dentro de Asterisk, si se borran estas identicaciones temporales OpenBTS obliga al telfono a que nuevamente se registre, mas adelante se explica este procedimiento. Luego, tenemos la opcin de abrir la interfaz de lneas de comando (CLI) que ya habamos usado antes, desde aqu podemos generar llamadas a los usuarios y enviar mensajes de texto de prueba, adems podemos observar los identicadores temporales (TIMSI) de las estaciones mviles registradas. Para enviar mensajes a un terminal se utiliza la siguiente sentencia: OpenBTSCLI>sendsms 740000207538464 101 enter text to send: Hola desde Consola message submitted for delivery Donde: 740000207538464 es el nmero IMSI del telfono al que se enva el mensaje 101 es el nmero usado para enviar el mensaje El texto: Hola desde consola es el mensaje en si En el terminal se mostrar una noticacin que el mensaje ha sido remitido para ser enviado, luego el mensaje es recibido en el telfono. Esta funcin permite realizar un chequeo de la conexin de OpenBTS con los terminales y as mismo probar la implementacin de las capas del estndar GSM. Por otro lado Asterisk esta congurado para aceptar llamadas desde cualquier usuario registrado en la red, usando el identicador internacional de usuario IMSI. Dado que el identicador de usuario es demasiado extenso para marcar, se usa extensiones mas cortas dentro del plan de marcado de Asterisk, por lo que se ha determinado 60
conveniente usar nmeros mas cortos para cada telfono en un rango de 1001 a 1012 que dan como base un lmite de registro de 12 usuarios, tomando en cuenta que OpenBTS al usar un solo ARFCN soporta siete llamadas simultaneas [34]. Todos los telfonos que envan la peticin de registro son inicialmente almacenados dentro de la base de datos sqlite3.db con todas las caractersticas de una extensin SIP tales como contexto, callerid, tipo de cdec, puerto, direccin IP, etc. Esta informacin es utilizada simultneamente por el servidor de registro (sipauthserve), el servidor de mensajes (smqueue), y Asterisk, al cual se congura para que maneje la base de datos en tiempo real. Esto quiere decir, que cuando un usuario realice una llamada o enve un SMS a otro usuario, tanto Asterisk como los otros servidores usaran los datos registrados dentro la base. Cada usuario SIP usa el puerto 5062 y la direccin 127.0.0.1 como dominio para iniciar una llamada, esta direccin pertenece al servidor OpenBTS.
4.3.
El usuario que desee acceder a la red OpenBTS debe poseer un telfono celular con su respectiva tarjeta SIM, la tarjeta puede ser libre o de otra operadora la diferencia est en que si se encuentra registrada en una operadora la informacin guardada en su memoria debe ser reiniciada para que tome la informacin de la red OpenBTS, esto se realiza de forma automtica cuando se reinicia el telfono y se selecciona de forma manual la red preferida en este caso se selecciona la red de nombre UTPL.
Al ingresar a la red el telfono, automticamente recibir un mensaje de bienvenida enviado desde la extensin 101 que OpenBTS tiene congurado como nmero outbounb. En el mensaje se solicita que enve una serie de nmeros que servirn como extensin para el usuario; el mensaje en un telfono se ve como en la gura 4.3. La respuesta que el usuario debe dar al mensaje es el nmero a solicitar, en caso de que este nmero este registrado con el IMSI de otro telfono, el usuario recibir una noticacin aclarando que el nmero ya se encuentra en uso, y que adems puede 61
intentar enviando otro nmero dentro del rango establecido como se observa en la gura 4.4.
Al enviar la peticin de registro, cumpliendo con la condicin de que el nmero no est siendo usado por otro usuario, entonces inmediatamente recibir un mensaje de haber completado el registro junto con el nmero aceptado por el sistema, este mensaje esta representado en la gura 4.5. El usuario entonces podr usar su nmero tanto para realizar y recibir llamadas como para enviar o recibir mensajes de texto. Los mensajes de texto poseen un lmite de 160 caracteres por mensaje, para ser usados en cada comunicacin.
En caso de que el usuario no recibi el mensaje de conrmacin, el administrador deber revisar si el nmero enviado est completo y se encuentre dentro del rango establecido. El usuario en ambos casos recibir un mensaje aclarando su estado, ya sea por no haber enviado el nmero completo o porque est en uso, como en el caso anterior.
62
4.4.
Con el objetivo de facilitar el uso del sistema OpenBTS y sus aplicaciones, se ha desarrollado una Interfaz Grca de Usuario, dentro del sistema operativo Ubuntu. El programa que facilit el desarrollo de la GUI, se denomina Gambas http://gambas.sourceforge.net/en/main.html que es una plataforma dentro de Unix, que permite la programacin visual orientada a objetos similar al conocido lenguaje Visual Basic.
La interfaz consta de un mdulo de arranque del sistema, donde el usuario debe iniciar obligatoriamente los servidores de Registro (sipauthserve) y Mensajes (smqueue). Todos los procesos del sistema se ejecutan de manera automtica en terminales del sistema Unix. Donde podremos controlar tanto su inicio como su ejecucin. Luego de ejecutar los servidores, podemos levantar la estacin base abriendo el proceso Transceiver desde la interfaz. A partir de este evento, la red celular de OpenBTS ya puede ser detectada por los telfonos mviles circundantes en el rea. El siguiente componente que debemos iniciar es el servidor Asterisk, que se ejecuta tambin dentro de una consola Unix. Este programa, iniciara sus mdulos de conexin con los telfonos Gateway (FXO), y a su vez ejecuta el sistema de gestin de base de datos ODBC que manejar la tabla de registro de usuarios, y por ltimo cargar el plan de marcado para que las extensiones registradas puedan realizar sus llamadas. A este nivel el sistema se encontrar levantado completamente, por lo que estamos
63
Figura 4.7: Servidores de OpenBTS: a) Servidor de Registro, b) Servidor de Mensajes de texto SMS
en posicin de gestionar el trco generado en nuestra red y administrar sus componentes. Una primera tarea de administracin que podemos realizar es analizar los parmetros de los usuarios registrados en la base de datos (sqlite3.db), para lo cual inicializamos la edicin de la base en el segundo mdulo de la Interfaz GUI, esto conectar la base de datos y podremos dirigirnos al segmento Modicador de terminales/Mviles registrados. Dentro de este segmento, observaremos en la parte superior, los nmeros de los usuarios registrados y sus nmeros IMSIs, al seleccionar uno ellos podremos editar cada uno de los parmetros que denen a ese usuario usando el lenguaje SQL de modicacin de base de datos 1 .
4.5.
Los telfonos que funcionan como puertas de enlace hacia operadoras mviles externas, deben estar conectados primeramente al servidor de Asterisk para que este reconozca el puerto fsico y lgico que proporcionan estos telfonos. Lo primero que debemos congurar es la direccin fsica MAC tanto del dispositivo dongle como del telfono, as como el puerto que est usando para la conexin con Asterisk. Cada parmetro es obtenido como se explica en los siguientes segmentos.
http://www.sql.org/
64
Una vez obtenidos los datos anteriores, ya podemos congurar el chero mobile.conf. La edicin del archivo es realizado mediante el editor de textos ejecutado desde el terminal gedit /etc/asterisk/mobile.conf. Dentro de este colocamos los parmetros que se han obtenido en los pasos anteriores y procedemos a guardar la conguracin.
65
[adapter] address = 00:1B:10:00:2A:EC id = dong [GT-S6102] address = C8:19:F7:3A:9F:5E port = 1 context = phones adapter = dong De vuelta a la consola de Asterisk, recargamos el modulo de chan_mobile mediante los comandos module load chan_mobile.so que actualizar los cambios realizados en la conguracin. Una vez terminado esto, tendremos una peticin en nuestro telfono para conectarnos hacia la mquina que ejecuta Asterisk. Nos solicitar que conrmemos la clave de conexin que permite la vinculacin de ambos dispositivos la cual debemos aceptar. Dentro de Asterisk se muestra que la conexin se ha realizado con xito. Nuevamente, ejecutamos el comando mobile show devices, con el que podremos observar los telfonos asociados al servidor, adems del estado de su conexin y si soportan el envo de SMS.
4.6.
El ltimo paso a comprobar es el comportamiento del sistema frente al uso de los servicios de red que los usuarios realicen una vez que sus telfonos se encuentren dentro de la red OpenBTS, el servicio de llamadas es administrado por el plan de marcado dialplan que hemos congurado en Asterisk y el cual es explicado en el Anexo F. Por otro lado, el sistema de mensajes cortos de texto es manejado por el centro de mensajera smqueue. Los servicios a los cuales el usuario puede acceder son listados a continuacin: Llamadas locales entre usuarios mviles de OpenBTS. Llamadas desde un terminal OpenBTS hacia otra operadora mvil (Claro, Movistar, CNT). Llamadas desde un terminal OpenBTS hacia una cuenta Google activa y congurada en Asterisk. Llamadas desde un terminal OpenBTS hacia un telfono jo. Mensajes de texto SMS entre terminales registrados en la red. 66
Mensajes SMS entre el centro de mensajera y el usuario. Para que un usuario pueda llamar a otro primero debe marcar el nmero que posee el usuario llamado de otra forma su tentativa de llamada ser descartada y colgada. El responsable de que se registren y se ejecuten estas llamadas es Asterisk, y gracias a su consola CLI podemos monitorear el inicio, ejecucin y terminacin de una llamada. Por ejemplo si el usuario que posee el terminal 1001 realiza una tentativa de llamada al usuario 1002, se completa cuando el ltimo contesta esta llamada, todo el proceso que se lleva a cabo puede ser observado dentro de la consola de Asterisk tal como se muestra en la gura 4.9.
Si algn usuario requiere realizar una llamada a un telfono de una operadora mvil privada lo puede hacer marcando desde su terminal el nmero que corresponda al usuario. Esta llamada ser aceptada nicamente si el canal montado por chan_mobile est libre, es decir, solamente se puede realizar una sola llamada por canal debido a que estos canales son construidos por telfonos celulares ordinarios registrados en esas operadoras y no pueden realizar llamadas simultneas. En cuanto a la comunicacin con los servicios de Google, se ha asignado extensiones especcas para cada cuenta de google a marcar, por ejemplo si se quisiera comunicar con la cuenta de Google [email protected] un usuario de celular OpenBTS debe de marcar la extensin 400. Esto puede ser un poco complicado desde el punto de vista del usuario mvil ya que no sabr que esa extensin existe salvo que se comunique previamente mediante mensajes desde consola a todos los usuarios del sistema. Esta tarea la debe de cumplir el administrador de la red para evitar confusiones y congestionamiento en la red. Durante las pruebas realizadas para comprobar la ejecucin de llamadas telefnicas se ha utilizado un esquema de conexin bsico tal como se muestra en la gura 4.10. De esta forma ha sido posible cursar las llamadas realizadas entre los usuarios registrados en la red, en este caso usando dos telfonos se mantiene una comunicacin de prueba cerca de nuestra 67
Figura 4.10: LLamada entre dos telfonos del sistema OpenBTS implementado
BTS, evitando colocar a una distancia menor a los 20 cm. ambos celulares ya que se producira una retroalimentacin en la llamada terminando por distorsionarla. La comunicacin tiene un tiempo de duracin mximo de cinco minutos pasado este tiempo ser nalizada por Asterisk, adems si un usuario llama a otro que no se encuentre registrado, que est fuera del alcance de la red o haya apagado su tlefono, el llamante recibir un tono de aviso alertando de estas condiciones, todo este comportamiento se lo congura en el plan de marcado de Asterisk permitiendo establecer nmeros de servicios especcos que el administrador desee proporcionar en la red.
68
5 CONCLUSIONES Y RECOMENDACIONES
69
CONCLUSIONES Cumplidos nalmente los objetivos propuestos y nalizada la investigacin y ejecucin del trabajo de n de titulacin, se exponen las siguientes conclusiones y recomendaciones. 1. Queda demostrado mediante la prctica y experimentacin, que es posible la construccin de una red telefnica mvil usando componentes de software libre y hardware de bajo costo. 2. Se ha logrado con satisfaccin la integracin de la tecnologa GSM, VoIP, SDR, con la nalidad de despertar el inters en la utilizacin de las redes abiertas de telefona celular como solucin a la necesidad de comunicacin en sectores rurales y escenarios de emergencia. 3. El sistema OpenBTS reduce la infraestructura especializada que utilizan las redes montadas por las operadoras mviles comerciales, minimizando el costo de implementacin en un 90 % para un rea de cobertura no mayor a 35 Km. con una potencia de 10 Watts. 4. El impacto positivo que se intenta generar con la penetracin del telfono mvil en zonas desprotegidas, est encaminado al uso de este dispositivo como plataforma de desarrollo en el mbito de educacin, salud, econmico, y social. 5. Los equipos mviles de los usuarios, deben tener compatibilidad con el estndar GSM y la banda usada en la red, esto signica un gasto menor si se adquiere un modelo de telfono econmico o reciclado. 6. Las tarjetas SIM que han sido usadas en el sistema son propiedad de las operadoras ecuatorianas Claro y Movistar, razn por la cual cada tarjeta posee un valor de autenticacin Ki ya establecido por estas operadoras, esto representa un impedimento al tratar de registrar completamente el telfono con la red implementada. 7. El uso de la comunicacin de voz sobre IP (VoIP) y las caractersticas del protocolo SIP, facilita enormemente el manejo de los terminales de usuario y la conmutacin de las llamadas de mvil a mvil, prestando un servicio telefnico de buena calidad tanto en voz como en tiempo de respuesta. 8. Para facilitar el registro de los usuarios, Asterisk tiene congurada la opcin de auto-crear las extensiones, y junto con el sistema ODBC permite agregar automticamente un nuevo usuario en la base de datos de registros sqlite3.db, 70
esta caracterstica evita realizar manualmente el registro de cada usuario en el archivo de conguracin sip.conf. 9. La mayora de implementaciones GSM usan un reloj de referencia de 13 MHz llamado stratum 3 con una precisin en la frecuencia del orden de 20 ppb. El reloj que usa el equipo USRP por defecto es un oscilador de cristal a una frecuencia de 64 MHz, lo que signica que existe un error entre el reloj principal del sistema y el nmero de smbolos por segundo (symbol rate) que GSM requiere. Para tener un acercamiento al reloj de 13 MHz se utiliz el mdulo GPSDO el cual posee una frecuencia de oscilacin de 10 MHz.
71
RECOMENDACIONES 1. Hay que evitar utilizar el sistema de OpenBTS para realizar cualquier acto de ndole fraudulenta, debido a que este presenta las herramientas sucientes como para confundir a cualquier persona que utilice las redes mviles celulares como medio de comunicacin. 2. La versin de Asterisk 11 es usada en este sistema, por poseer las funciones necesarias para cada conexin entre los sistemas de red, adems brinda la facilidad para que las extensiones SIP se conguren en la red de forma autnoma. 3. Para una conexin con los servicios de Google el servidor o computador debe de tener una conexin a internet y por lo menos una cuenta de google-voice activada. 4. Es recomendable estudiar previamente cada parte que compone el sistema OpenBTS para as reconocer cualquier error de funcionamiento que se produzca durante su ejecucin y puesta en funcionamiento. 5. Cada llamada que se realiza mediante el protocolo SIP necesita del establecimiento de puertos de comunicacin usados tanto por asterisk como por OpenBTS, se recomienda revisar la conguracin del rewall si se encuentra presente y del comportamiento de asignacin de puertos que se use en la red en la que estamos trabajando. 6. El sistema ODBC que permite el acceso a la base de datos de usuarios debe de poseer los permisos de usuario necesarios que faciliten a Asterisk la ejecucin de llamadas. 7. Se recomienda manipular con precaucin los componentes del equipo USRP, con el n de evitar una avera que sea irreparable y que termine por arruinar el funcionamiento del sistema. 8. En vista de que se manejan varias bases de datos tanto para la conguracin y el registro de usuarios en el sistema celular OpenBTS, es recomendable repasar los comandos del sistema SQL que permitan editarlas. 9. El diseo de un sistema de amplicacin de potencia e implementacin de enlaces entrantes, constituye un requerimiento esencial para futuros adelantos en el prototipo de la estacin base BTS presentado en el presente proyecto.
72
Bibliografa
[1] Jos M. Huidobro & Rafael Conesa Sistemas de Telefona - 5ta Edicin , pp. 170-178, (2006). 10, 14 [2] Tomasi, Wayne Sistemas de Comunicaciones Electrnicas - 5ta Edicin, pp. 864-901 ,(2005) 7, 18, 20 [3] Bruce A. Fette Cognitive radio technology - 1ra Edicin, pp. 1-17 ,(2006) 17 [4] Burns, Paul Software dened radio for 3G - 1ra Edicin, pp. 3-25 ,(2003) 18 [5] Hseyin Arslan Cognitive Radio, Software Dened Radio, and Adaptive Wireless Systems - 1ra Edicin, pp. 129-138 ,(2007) x, x, 17, 19, 20 [6] Leif Madsen, Jim Van Meggelen, Russell Bryant Asterisk: The Denitive Guide - 3ra Edicin, pp. 9 - 81, (2011) x, 34, 35, 46, 48, 49, 50 [7] Tong, Z.& Arifianto M.S.& Liau, C. F. Wireless transmission using universal software radio peripheral; Space Science and Communication, International Conference on , vol., no., pp.19,23, 26-27 Oct. (2009),[en linea],disponible en:http://ieeexplore.ieee.org/stamp/ stamp.jsp?tp=&arnumber=5352678&isnumber=5352625 52 [8] Murota, K.& Hirade, K. GMSK Modulation for Digital Mobile Radio Telephony, Communications, IEEE Transactions on, vol.29, no.7, pp.1044,1050,Jul 1981,[en lnea], disponible en: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= 1095089&isnumber=23940 20 [9] Rodrguez S. Francisco, Sez V. Fernando El telfono mvil producto estelar de la red universal digital,[en lnea]. Disponible en: http://web.dit.upm.es/~jsr/ ElTelefonomovilproductoestelardelaRUDv2.2.pdf 2 [10] ITU-T Telecommunication Standarization Sector List of Mobile Country or Geographical Area Codes, Ene. (2004),[en linea], disponible en:http://www.itu.int/itudoc/itu-t/ ob-lists/icc/e212_685.pdf 33 [11] Byron Villacis, Daniela Carrillo Nueva cara sociodemogrca del Ecuador, [en lnea]. Disponible en:http://www.inec.gob.ec/publicaciones_libros/ Nuevacarademograficadeecuador.pdf 2 [12] Superintendencia de Telecomunicaciones del Ecuador Evolucin de telefona mvil en Ecuador, [en lnea]. Disponible en:http://www.supertel.gob.ec/pdf/publicaciones/ revista_supertel_16_final.pdf 2 [13] Superintendencia de Telecomunicaciones del Ecuador Reglamento para el servicio de telefona mvil celular[en linea], disponible en:http://www.conatel.gob. ec/site_conatel/?option=com_content&view=article&catid=335:todos&id=115: -reglamento-para-el-servicio-de-telefonia-movil-celular 31
73
[14] Marc Kahabka Pocket Guide for Fundamentals and GSM Testing, [en lnea]. Disponible en :http://web.itu.edu.tr/~pazarci/WandelGoltermann_gsm.pdf x, x, xii, 7, 8, 9 [15] ETSI Mobile Station -Base Station System (MS - BSS) interface; General aspects and principles, [en linea]. Disponible en: http://www.etsi.org/deliver/etsi_gts/04/0401/05. 00.00_60/gsmts_0401v050000p.pdf x, 11, 24, 25 [16] ETSI Mobile Station -Base Station System (MS - BSS) interface; Channel structures and Access capabilities, [en linea]. Disponible en: http://www.etsi.org/deliver/etsi_gts/ 04/0403/05.01.00_60/gsmts_0403v050100p.pdf 24 [17] ETSI Mobile Station -Base Station System (MS - BSS) interface;Data Link Layer, [en linea]. Disponible en: http://www.etsi.org/deliver/etsi_gts/04/0405/03.01.05_60/ gsmts_0405sv030105p.pdf 26 [18] ETSI Mobile radio interface layer 3 specication, [en linea]. Disponible en: http://www. etsi.org/deliver/etsi_gts/04/0408/05.03.00_60/gsmts_0408v050300p.pdf 27, 28 [19] ETSI Multiplexing and multiple access on the radio path, [en linea]. Disponible en: http: //www.etsi.org/deliver/etsi_gts/05/0502/05.00.00_60/gsmts_0502v050000p.pdf 25 [20] ETSI Channel coding, [en linea]. Disponible en: http://www.etsi.org/deliver/etsi_ gts/05/0503/05.02.00_60/gsmts_0503v050200p.pdf 26 [21] ETSI Radio Transmission and Reception, [en linea]. Disponible en: http://www.etsi. org/deliver/etsi_gts/05/0505/05.00.00_60/gsmts_0505v050000p.pdf [22] Grupo GSM (gsma) About us, [en linea]. Disponible en: http://www.gsma.com/ aboutus/gsm-technology/gsm 2 [23] Nokia Networks Nokia GSM Architecture, [en linea]. Disponible en: http://www. roggeweck.net/uploads/media/Student_-_GSM_Architecture.pdf x, x, 9, 10, 11 [24] J. Xiao, Liu, Dang, Zhao Analysis and Simulation for VoIP Capacity in IEEE 802.11, [en lnea]. Disponible en:http://www.jofcis.com/publishedpapers/2012_8_19_7955_ 7962.pdf x, 14 [25] Jose I. Moreno, Ignacio Soto, David, Larrabeiti Protocolos de Sealizacin para transporte de voz sobre IP, [en lnea]. Disponible en:http://www.it.uc3m.es/~jmoreno/ articulos/protocolssenalizacion.pdf 13, 14 [26] Hira Sathu, Mohib A. Shah Performance Comparision of VoIP codecs on IPv4 and IPv6, [en lnea]. Disponible en:http://www.ijeeee.org/Papers/093-Z00076E00126.pdf xii, 15 [27] Abul Azad OpenBTS Implementation with Universal Software Radio Peripheral,[en lnea]. Disponible en:http://mathinstitution.com/ECE/SDR/sdr_openBTS_aazad.pdf 32 [28] USRP N210 datasheet,[en lnea]. Disponible en:http://www.ettus.com/content/ files/kb/Ettus_Networked_Series.pdf x, 53 Cognitive Radio Universal Software Hardwahttp://www.coe.neu.edu/Research/rcl/theses/
[29] George Fredric Eichinger re, [en lnea]. Disponible en: eichinger-msthesis2012.pdf 53 [30]
74
[31] Ettus Research Installing the GPSDO kit for USRP N200 Series & E100 Series, [en lnea]. Disponible en: https://www.ettus.com/content/files/gpsdo-kit_4.pdf 56 [32] Mlardalens Hgskola Evaluation of Software Dened Radio Platform with respect to implementation of 802.15.4 ZibBee, [en lnea]. Disponible en: http://www.idt.mdh.se/ utbildning/exjobb/files/TR1155.pdf 55 [33] BURGESS, David A. & SAMRA, Harvind S. The Open BTS Project,[en lnea].3 Ago. 2008. Disponible en:http://www.ahzf.de/itstuff/papers/OpenBTSProject. pdf[consulta: 2 Feb. 2013]. 22, 29, 30 [34] Range Networks, Inc. OpenBTS P2.8 Users Manual,[en lnea].Disponible en: http: //wush.net/trac/rangepublic/attachment/wiki/WikiStart/SoftwareP2.8Manual.pdf 26, 32, 61 [35] Dario Flores Manual de uso e instalacin de OpenBTS, [en linea]. Disponible en: http://wush.net/trac/rangepublic/attachment/wiki/WikiStart x, 16, 22 [36] Vasquez, J. & Santa I. & Restrepo J. Prototipo de una Estacin Celular Porttil Para atencin de Emergencias, [en lnea]. Disponible en: http://wush.net/trac/ rangepublic/attachment/wiki/WikiStart/Prototipo%20De%20Una%20Estaci%C3%B3n% 20Celular%20Port%C3%A1til%20Para%20Atenci%C3%B3n%20De%20Emergencias.pdf 22, 34, 37 [37] Spencer Mark & Mack Allison & Cristopher Rhodes The Asterisk Handbook, [en lnea]. Disponible en: http://bananabread.net/AsteriskHandbk_w_Bkmarks.pdf x, 14, 35 [38] Nefta Anaya Fundamentos de Telefona IP e Introduccin a Asterisk/Elastix, [en lnea]. Disponible en: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/ attachments/20130308/40376b0c/attachment.pdf 35, 48, 50 [39] Bowerman David Asterisk Channel Driver to allow Bluetooth Cell/Mobile Phones to be used as FXO devices, and Headsets as FXS devices, [en linea]. Disponible en: http://svnview.digium.com/svn/asterisk-addons/branches/1.6.2/doc/chan_ mobile.txt?view=markup 37, 38 [40] Malcolm Davenport & Russell Bryant A Beginners Guide to Asterisk, [en lnea]. Disponible en: https://wiki.asterisk.org/wiki/display/AST/Getting+Started 47, 48, 49 [41] ISO & IEC Information exchange between systems - High-level data link control (HDLC) procedures, [en linea]. Disponible en: http://webstore.iec.ch/preview/info_ isoiec13239%7Bed3.0%7Den.pdf 26
75
ANEXOS
76
utilizar, es necesario instalar el USRP Hard Drive UHD, que se trata de libreras que permiten el manejo de los recursos de este material.
A.1.
Conguracin de libreras
Para empezar dentro del sistema operativo Ubuntu, abrimos un Terminal de Linux usando la combinacin de teclas Ctrl+Alt+t, donde ingresaremos como usuario root, para esto usamos los comandos sudo su que nos pedir la clave del sistema, y luego usamos los siguientes comandos seguidos de un Enter: # sudo apt-get install libboost-all-dev # libusb-1.0-0-dev python-cheetah doxygen python-docutils Este procedimiento instalar las libreras necesarias para congurar y compilar los archivos del paquete UHD.
77
A.2.
El siguiente paso es descargar los archivos de conguracin del driver UHD que lo podemos hacer desde la siguiente pgina: https://github.com/EttusResearch/ UHD-Mirror/tags. Aqu descargaremos un paquete comprimido en formato tar.gz, existen varias versiones de este software, desde versiones de hace un ao hasta la ltima versin, debemos escoger una que se ajuste a nuestro n, en este caso se utilizar la versin UHD-3.4.1 puesto que esta versin es estable y ya se encuentra "parchada"de algunos errores de compilacin. En n, ya descargado el paquete lo descomprimimos en alguna ruta o directorio de fcil acceso, y luego desde el terminal accedemos a esta carpeta, los comandos a ejecutar son: # cd <uhd-repo-path>/ # cd host # mkdir build # cd build # cmake ../ # make & make test # sudo make install & sudo ldconfig El primer comando cd permite entrar en la carpeta descomprimida que tendr por nombre UHD-Mirror-release-003-004-001, en el caso de que la versin de UHD sea 3.4.1, una vez aqu escribimos el siguiente comando cd host que permite dar atributos de usuario a esta carpeta para luego crear un directorio llamado build para eso se usa mkdir, ya en este directorio podremos ejecutar el programa de creacin cmake. Nota: si la instalacin de Ubuntu no contiene el comando de conguracin cmake lo
78
podemos instalar usando el comando: # sudo apt-get update >actualizar el repositorio de Ubuntu # sudo apt-get install cmake >instalar la libreria cmake Utilizando el comando cmake se crearn los archivos que contienen la conguracin del programa y los ejecutables del mismo, esta conguracin se tarda un poco dependiendo de la velocidad de nuestro equipo, por tanto hasta aqu estamos en condiciones para crear programas que puedan interactuar con el hardware USRP. As mismo la instalacin por consola nos permite realizar una prueba de nuestra
instalacin que la podemos ejecutar usando el comando make test, esto nos asegura que nuestros procesos estn listos para ser ejecutados cuando se los requiera. Por ltimo ejecutamos el comando ldcong que crear los vnculos en memoria cache para las libreras recientemente compartidas en el directorio de instalacin en la lnea de comandos, es decir, que podemos ejecutar estas libreras cuando las llamemos desde un programa que contenga el directorio del driver UHD como ruta de comandos, como por ejemplo el proceso transceiver del sistema OpenBTS.
79
B.1.
OpenBTS puede, en principio, ser congurado y ejecutado en cualquier Sistema Operativo basado en Unix. Sin embargo, la mayora del desarrollo es hecho en Ubuntu 12.04 LTS, as que a partir de este punto se considera que se poseen los conocimientos bsicos de este sistema. 1. Descargar el paquete de OpenBTS: La mejor alternativa para obtener el paquete de utilidades OpenBTS es descargarlo directamente desde el repositorio de cdigo fuente ocial, autenticndose como usuario annimo. Para esto ejecutamos la siguiente lnea de comandos, dentro de un terminal del S.O Linux. # svn co http://wush.net/svn/range/software/public Previamente a obtener el chero del cdigo fuente de OpenBTS, se debe crear una carpeta donde se puedan almacenar los archivos a descargar, esto se puede realizar desde el terminal de Ubuntu con el comando <mkdir openbts>en el directorio de nuestra preferencia, por ejemplo el escritorio. Luego de descargado OpenBTS, procedemos a instalar cada componente, el primero ser el transceiver, para esto nos dirigimos al directorio de descarga /public/ y utilizamos los siguientes comandos: 80
# par autoreconf -i
A continuacin, se procede con la conguracin de los controladores de software transceiver apropiados para el USRP N210. Para los modelos actuales del hardware ETTUS Research (USRP2, B100, N200, y E100 series) se usan las libreras UHD (Universal Hardware Device), la instalacin de estas libreras es descrita en el anexo A, estas permiten ejecutar los siguientes comandos. # cd openbts/trunk # autoreconf -i # ./configure with-uhd with-resamp # Make El siguiente paso es la ejecucin del transceiver congurado para el USRP N210, para esto nos dirigimos al directorio raz de openbts, desde la terminal, este directorio es <openbts/trunk/apps>. Y se utiliza el siguiente comando para realizarlo. # ln -s ../Transceiver52M/transceiver
B.2.
Conguracin de OpenBTS
Con el OpenBTS construido, se debe realizar una conguracin inicial para el funcionamiento del sistema en modo bsico. Existen dos archivos claves que deben ser creados para que todo funcione. El primero es el archivo <OpenBTS.db>, que contiene una base de datos que almacena toda la conguracin hecha a OpenBTS. Debe ser creado e instalado en el directorio </etc/OpenBTS>, el cual todava no existe. As que, se lo pude crear de la siguiente forma desde el directorio de OpenBTS. # sudo mkdir /etc/OpenBTS # sudo sqlite3 -init ./apps/OpenBTS.example.sql Para comprobar que se realiz completamente la instalacin de la base de datos, podemos comprobarlo usando la siguiente sentencia. # sqlite3 /etc/OpenBTS/OpenBTS.db .dump
81
Lo cual mostrar una lista de variables de conguracin, esto quiere decir que la instalacin se ha completado correctamente.
B.3.
Ejecutando OpenBTS
En este punto, se puede realizar una revisin del funcionamiento de OpenBTS, ejecutando la siguiente orden dentro de la carpeta donde se encuentra la instalacin. # cd apps # sudo ./OpenBTS Al realizar esto, nuestro hardware USRP se convertir en la Estacin Base Transceiver (BTS) GSM, que despliega la interface de aire Um. Ahora es posible desde un telfono escanear las redes mviles disponibles, desde donde se podr observar la red existente con nombre UTPL o Test-TMLN, que es la que hemos montado. Si tratamos de ingresar a esa red desde el mismo telfono seremos rechazados, debido a que OpenBTS por defecto solo permite la conexin con terminales registrados en su base de datos. Por otro lado, an no est siendo ejecutado nuestro servidor de registro llamado (Sipauthserve), por tanto ningn telfono podr ingresar. Es necesario entonces, abordar algunas variables de conguracin de OpenBTS a las que se puede acceder nicamente desde la interfaz de comandos OpenBTSCLI, que se inicia desde el siguiente directorio de OpenBTS. # cd apps # sudo ./OpenBTSCLI Al ejecutarse la consola de conguracin OpenBTS>, en esta podemos introducir la opcin <cong>que mostrar una lista de opciones de conguracin de OpenBTS. Existen mltiples opciones de conguracin, que modican el comportamiento del sistema las cuales se describen en la pagina de Range Networks http://wush.net/trac/rangepublic/wiki/openBTSCong. Sin embargo, para la operacin en modo bsico necesitamos solamente modicar las ms importantes que se enumeran a continuacin: GSM.Radio.Band Esta variable contiene la banda de frecuencia GSM en la que trabaja el USRP GSM.Radio.C0 este parmetro es el ARFCN. Debe ser el apropiado para la frecuencia
82
Control.LUR.OpenRegistration es la opcin que permite rechazar o aceptar el registro de los telfonos en la red. Facilita la compilacin e inicializacin del sistema. Una instruccin bsica que debemos modicar, es la forma en que acceden a la red los terminales mviles sin que tengan dicultad en su ingreso. Para realizar esto se utiliza la siguiente sentencia: # config Control.LUR.OpenRegistration .* Lo que brinda un acceso sin restriccin a cualquier estacin mvil MS cercana a la red OpenBTS. Se debe tener precaucin con interferir los telfonos de usuarios que no desean ingresar a la red porque sern conectados a la Estacin Base de nuestro sistema.
B.4.
OpenBTS depende de la instalacin del servidor de autorizacin SIP Sipauthserve para efectuar la conmutacin de trco en la red. Este servidor es indispensable para obtener el funcionamiento completo del sistema. A su vez, el servidor necesita inicialmente de que conguremos primeramente la base de datos del Registro de Abonados que se lo maneja desde el archivo <sqlite3.db>, usando las siguientes lneas: # subscriberRegistry/trunk/configFiles/ # sudo mkdir -p /var/lib/asterisk/sqlite3dir # sudo sqlite3 -init subscriberRegistryInit.sql sudo mkdir /var/run/OpenBTS A continuacin, se procede a la creacin de los archivos ejecutables de Sipauthserve. Dentro de estos archivos existe un proceso demonio que se ejecuta continuamente para facilitar los servicios de autenticacin en el protocolo SIP. Inicialmente, se ejecuta dentro del directorio <subscriberRegistry>el comando de creacin <make>que crea los ejecutables del servidor Sipauthserve. (from svn root) # subscriberRegistry/trunk make
83
Luego, continuando con la creacin de este servidor debemos congurar el acceso a la base de datos del servidor <sipauthserve.db>, por lo que usamos la siguiente sentencia para crear la base de datos dentro del directorio </etc/OpenBts>. # sudo sqlite3 -init sipauthserve.example.sql /etc/OpenBTS/sipauthserve.db ".quit" De esta forma, tenemos la posibilidad de ejecutar sin problemas el servidor sipauthserve en el directorio de <subscriberRegistry>, escribiendo en un terminal Linux, lo siguiente: # sudo ./sipauthserve El servidor no posee una interfaz de programacin por comandos, por lo que podremos observar un mensaje de ejecucin como por ejemplo: ALERT 139639310980928 sipauthserve.cpp:214:main: ./sipauthserve (re)starting Si todos los pasos anteriores se completaron satisfactoriamente, entonces el sistema OpenBTS est listo para ser ejecutado y levantado, con la ayuda del hardware N210. Lo siguiente que se debe hacer es conectar los equipos, PC computador personal y USRP entre s, por medio de un cable de red entre las interfaces Gigabit-Ethernet para realizar la comunicacin. Es necesario seguir una serie de pasos antes de ejecutar una llamada entre dos terminales mviles registrados, los cuales se describen en el Anexo C.
84
Habitualmente asterisk y la libreria sqlite3 son instaladas en el sistema gracias a la utilidad del sistema apt que permite la descarga e instalacin de estos programas desde el repositorio de Linux. Si realizamos la instalacin de Asterisk para que funcione en tiempo-real debemos asegurarnos de remover completamente estos dos paquetes, con el n de que permitan la construccin de los nuevos. Se ejecutan los siguientes comandos en la terminal de Ubuntu. # sudo apt-get remove asterisk sqlite3 # sudo apt-get autoremove
C.2.
Una vez que eliminamos la distribucin de los paquetes anteriores, procedemos a realiza la conguracin e instalacin personalizada de los nuevos programas. A continuacin se menciona los pasos para su efecto. Descargar sqlite3, desde el repositorio ocial 1 , luego de descargar el paquete lo descomprimimos y nos dirigimos a su directorio desde la terminal; aqu conguramos, creamos e instalamos, usando las siguientes sentencias de manera secuencial. # configure, make, make install Sqlite3 debe ser compilado con el atributo denido por
1
http://www.sqlite.org/download.html
85
SQLITE_ENABLE_COLUMN_METADATA, por lo que lo conguramos usando ./congure CFLAGS=DSQLITE_ENABLE_COLUMN_METADATA -02; el siguiente paquete que funciona como editor de base de datos los instalamos por apt-get. # sudo apt-get install libsqlite3-dev
Ahora necesitamos el driver que permite la conexin con las bases de datos implicadas en el sistema, se trata del programa ODBC Open Database Connectivity que brinda conectividad a las bases de datos de cualquier sistema de gestin de datos; y del driver mismo sqliteodbc, al primero lo descargamos desde su pgina ocial http://www.unixodbc.org/, y el segundo desde el repositorio http://www.ch-werner.de/sqliteodbc/, ambos los conguramos e instalamos tal como a sqlite3, usando las siguientes referencias. # configure, make, make install Hasta este punto hemos congurado el sistema de gestin de base de datos. Lo siguiente es conectarlo con asterisk.
C.3.
Reinstalando Asterisk
Las versiones de Asterisk se pueden descargar gratuitamente desde la pgina principal de la empresa Digium http://www.asterisk.org/, una vez descargada la descomprimimos e instalamos normalmente. La diferencia para que funcione junto a ODBC es en el punto de su conguracin, por lo que de acuerdo a la pgina de Range Networks debemos congurar con la siguiente orden: ./congure disablexmldoc. Luego de esto realizamos la seleccin de los paquetes que deseamos se ejecuten junto con Asterisk, para esto usamos la opcin: make menuselect. Veremos un men grco, como el de la gura C.1 en el seleccionamos los elementos Sqlite3 y ODBC, dentro de los mdulos aplications, resource modules y dialplan functions. Debemos asegurarnos que no existen campos ODBC o sqlite3 seleccionados con los signos XXX en el men de conguracin. Si observamos XXX para cualquiera de los componentes sqlite3 - odbc, quiere decir que los paquetes no se encuentran correctamente instalados. Podemos comprobar los errores en el chero cong.log que crea asterisk en su instalacin. Por otro lado si no tenemos problema debemos seleccionar los siguientes componentes: En applications seleccionamos, app_db 86
En Dialplan Modules, seleccionamos, func_odbc En Resource Modules, seleccionamos, res_cong_odbc, res_odbc y res_realtime. Si existe XXX en res_cong_sqlite signica que no se ha tomado el componente del viejo sqlite no del sqlite3. Adems dentro del men aprovechamos para comprobar que en Codec Translators se encuentran seleccionados codec_gsm, codec_alaw y codec_ulaw.
Luego de todo esto estamos listos para instalar completamente la central Asterik, usando los comandos make & make install.
87
C.4.
Luego de nuestra instalacin de Asterisk Real-time, conguramos algunos parmetros de ODBC dentro de los cheros odbcinst.ini y odbc.ini.
En el primero declaramos los mdulos con los que asterisk puede gestionar las bases de datos, por lo que editamos lo siguiente: [SQLite3] Description=SQLite3 ODBC Driver Driver=/usr/local/lib/libsqlite3odbc.so Setup=/usr/local/lib/libsqlite3odbc.so Threading=2 En el chero localizado en /etc/odbc.ini declaramos el nombre de nuestra base de datos junto con el directorio en el que se aloja, en el caso de OpenBTS la base sqlite3.db es donde se encuentran todos los datos de los usuarios registrados. Entonces las lneas quedan como se muestra a continuacin: [asterisk] Description=SQLite3 database Driver=SQLite3 Database=/var/lib/asterisk/sqlite3dir/sqlite3.db Timeout=2000 De esta forma establecemos todos los datos de conguracin con el servidor ODBC.
C.5.
Ya dentro de asterisk debemos tener habilitados algunos parmetros connados a la ejecucin de los mdulos de conexin ODBC, lo cual permita el acceso a los datos de nuestra base sqlite3.db. Estos archivos se los puede editar con el comando gedit desde el terminal, usando el directorio /etc/asterisk. El primer archivo a congurar es modules.conf, este habilita la carga automtica de los mdulos odbc, su contenido debe quedar como sigue:
88
[modules] autoload=yes preload =>res_odbc.so preload =>res_config_odbc.so ; noload =>res_config_odbc.so El siguiente archivo se trata de extcong.conf el cual seala a asterisk a usar el servicio de odbc para el funcionamiento del protocolo SIP en tiempo real. El archivo queda: [settings] sipusers =>odbc,asterisk,sip_buddies sippeers =>odbc,asterisk,sip_buddies A esta altura podemos declarar un contexto de conexin a la base de datos, este contexto dene si se habilita la conexin a la base de datos, en este caso asterisk llamar al contexto [asterisk]el cual ya est declarado en el archivo odbc.ini. El ejemplo queda como sigue: [asterisk] enabled =>yes dsn =>asterisk pre-connect =>yes Por ltimo establecemos la funcin que llamar a el gestor ODBC para que ejecute cualquier orden en lenguaje SQL dentro del dialplan de asterisk. [SQL] dsn=asterisk readsql=$ARG1 En este caso la funcin que se ejecutar en el dialplan sera ODBC_SQL, esta funcin siempre debe de ser declarada con maysculas de otra forma asterisk no la reconocer en su plan de marcado. Si todo este proceso se ha completado satisfactoriamente entonces tenemos camino libre para usar la conguracin de asterisk en tiempo-real; es decir, podremos seleccionar cualquier dato dentro de la base de datos que registra los usuarios en la red OpenBTS, tal como su IMSI, extensin, puerto, direccin ip, cdec, etc.
89
Los siguientes son los pasos recomendados para realizar una correcta conexin del equipo USRP con el computador, y los dispositivos usados en el sistema.
1. Preparar el USRP N210, conectamos la tarjeta (daugtherboard) WBX con la motherboard FPGA utilizando las ranuras de energa, y puenteamos mediante los cables MCX los conectores de salida y entrada RF de la daughterboard con los conectores bnc de la parte frontal del N210 como indica la gura D.1. 2. Luego podemos realizar la conexin del mdulo GPSDO que puede servir como un reloj de referencia de 10 MHz, para realizar esta conexin se coloca 90
el mdulo en el espacio indicado en la gura D.2 y se procede a conectar los respectivos cables tanto de alimentacin como comunicacin.
3. Integramos dos antenas VERT900 a los conectores rf1 y rf2 del radiotransceiver. 4. Energizamos el equipo USRP desde una fuente de voltaje continuo de 9 Voltios - 3 Amperios. Podemos utilizar el adaptador de 110 voltios alternos a voltaje continuo que se incluye en el paquete ETTUS. 5. Luego conectamos mediante el cable Ethernet la interfaz del computador Personal PC, con la interfaz de red que posee el USRP. 6. Revisamos las conexiones Ethernet, de Internet y de Bluetooth presentes en el computador, congurando cada interfaz con los pasos anteriormente descritos. Lo que indica que la conexin bsica del sistema esta list y que podremos arrancar los servidores OpenBTS y Asterisk.
D.2.
1. Antes de iniciar el sistema debemos asegurarnos de que nuestras bases de datos con los registros de usuarios sqlite3-db estn totalmente vacas, por lo que utilizando cualquier editor de bases de datos, y junto con el uso de 91
comandos SQL podemos borrar la informacin de IMSI o estaciones mviles que deseamos purgar de nuestro sistema. Por ejemplo si deseamos borrar el
1001 ejecutamos la siguiente frase: DELETE FROM dialdata_table WHERE id = 3. 2. Abrimos un terminal Linux en el Computador, y ejecutamos el servidor <Sipauthserve>desde el directorio </subscriberRegistry/trunk>. 3. Ejecutamos un nuevo terminal Linux usando Ctrl+T, para ser usado por el sistema <OpenBTS>, entramos al directorio </openbts/ trunk/apps>, seguido en otro terminal ejecutamos tambin la aplicacin <OpenBTSCLI>, desde el mismo directorio. 4. Iniciamos tambin el servidor Asterisk, desde una consola ejecutamos los comandos: asterisk -vvvvvvc, lo cual indica que asterisk mostrara con detalle o en modo verbosity de nivel 6 su ejecucin. 5. Encendemos los telfonos mviles con tarjetas SIM previamente instaladas. Se recomienda que estas tarjetas no pertenezcan a proveedores mviles locales. Si el telfono no accede automticamente a la red, debemos seleccionar que busque de forma manual las redes mviles locales, donde registrar la red OpenBTS y podr ingresar a ella. 6. Realizamos una llamada de prueba, para comprobar la conexin de voz. Marcamos al nmero 600 desde el telfono para llamar al servicio echo. Podremos escuchar nuestra propia voz en el terminal. 7. Si ejecutamos con satisfaccin esta prueba, quiere decir que el sistema est listo.
92
; Opciones de Configuracin del Protocolo SIP (Session Initiation Protocol) en Asterisk ; Autor: Juan Pablo Tene, ;------------------------ General settings------------------------------------------------[general] context=default type=peer insecure=very canreinvite=no addr=127.0.0.1 allowguest=no udpbindaddr=0.0.0.0:5060 bindaddr=127.0.0.1:5060 ; Direccin IP que enlaza paquetes UDP ; Direccin opcional para enlace local
disallow=all ; Deshabilita todas los codecs allow=ulaw ; Habilita el codec ulaw allow=alaw ; codec alaw allow=gsm ; Activa el codec gsm relaxdtmf=yes progressinband=yes ; Puede generar sealizacin en la banda usada ; Existen las opciones: yes, no, never ; Se usa never para nunca usar sealizacin in-band dtmfmode = auto ; ; ; ; ; ; El modo de sealizacin es por Default: rfc2833 Otras Opciones: info : SIP INFO messages (application/dtmf-relay) shortinfo : SIP INFO messages (application/dtmf) inband : Inband audio (requires 64 kbit codec -alaw, ulaw) auto : Usa rfc2833 si es necesario, o elige otra opcin
use_q850_reason = yes
autocreatepeer=persist
; ; ; ; ;
Permite a cualquier usuario registrarse dentro de la red sin autenticacin previa. Ayuda en gran medida a OpenBTS tomar el concepto de red abierta. Puede usar la opcin "yes", pero al reiniciar el plan de marcado los usuarios se borraran.
93
; Si se usa la opcin "persist", los pares creados no son ; borrados en el reinicio. ;----------------------------------------- NAT SUPPORT -----------------------externaddr = 12.34.56.78:9900 ; define la ip publica usada en internet
icesupport = yes ; habilita el soporte de ICE (Interactive Connectivity Establishment) ;----------------------------------------- REALTIME SUPPORT -----------------------rtcachefriends=yes ; Aade usuarios sip del tipo "friend" a la lista interna de ; la configuracin de asterisk realtime rtupdate=yes ; Envia actualizaciones de registro a la base de datos
94
F.1.
extensions.conf
El primer contexto que debemos modicar es el general que describe las funciones del plan de marcado desde la consola de Asterisk, brindando la facilidad de guardar los cambios hechos desde consola y de borrar las variables globales en el reinicio del dialplan.
; Configuracin del Dialplan (Plan de Marcado) en Asterisk ; Autor: Juan Pablo Tene, ;------------------------ General settings-----------------------------------------[general] static=yes writeprotect=no autofallthrough=yes clearglobalvars=yes ; El contexto demo, tiene por finalidad ejecutar la prueba de eco, al marcar desde un ; telfono el nmero 600. [demo] exten => exten => exten => exten =>
; El siguiente contexto es el que refleja toda la configuracin realizada en el fichero ; sip.conf, si es eliminado entonces se borrara tambin la configuracin SIP. [default] include => demo include => phones include => google
95
include => celular ; ; ; ; ; Para conmutar las llamadas hacia otras operadoras mviles se usa el contexto celular, funciona cuando se marca un numero de celular desde OpenBTS, primeramente verifica el estado del telfono Gateway y realiza una prueba lgica para asegurarse que el telfono este libre y pueda realizar una llamada, luego si marca el nmero caso contrario corta la llamada e indica el estado de fuera de servicio.
[celular] exten => _X.,1,MobileStatus(${EXTEN},stado) exten => _X.,2,GotoIf($["${stado}" = "2"]?3:5) exten => _X.,3,Dial(Mobile/GT-S6102/${EXTEN},15) exten => _X.,4,Hangup exten => _X.,5,NoOp(El estado es ${DIALSTATUS}) exten => _X.,6,Playback(ss-noservice) exten => _X.,7,Hangup ; ; ; ; ; ; ; ; Los Estados de MovileStatus pueden ser: 1 = Desconectado. El dispositivo esta fuerar de rango o apagado,etc. 2 = Conectado y en estado espera, esta Libre 3 = Conectado y llamando. Ocupado Como ya se explicado Asterisk puede conectarse al servicio de Google para realizar llamadas VoIP, estas llamadas pueden ser de entrada o salida, si un nmero es marcado desde una cuenta google conectada con Asterisk, entonces sera receptada por la extension s, luego la descolgara y enviara a la extensin correspondiente.
[google] include => phones exten => s,1,NoOp() same => n,Wait(1) same => n,Answer() same => n,SendDTMF(1) same => n,Dial(SIP/${EXTEN},20) exten => 100,1,Dial(Motif/google/[email protected],,r) ; ; ; ; ; ; ; ; ; Pero si se quiere realizar una llamada a una cuenta google desde OpenBTS se debe de marcar la extensin 100 la que marcar la cuenta configurada previamente. Al contexto phones le compete toda la conmutacin que se realice dentro de la red OpenBTS, este comunica las llamadas que inicien marcando el nmero de 4 digitos asignado los telfonos celulares registrados. Utiliza la funcin ODBC_SQL cuando se marca el nmero que puede estar entre 1001 a 1012, lee el nmero de IMSI que contiene la tabla dialdata_table en funcin de la extensin llamada. Una vez que tiene el IMSI lee la direccin IP que le corresponde a ese nmero, asigna como CALLERID el nmero que inicia la llamada y ejecuta esa llamada con los datos anteriores.
[phones] ;carga d datos ;switch => Realtime/[phones]@ include => default include => google icclude => celular
exten => _Z.,1,Set(Name=${ODBC_SQL(select dial from dialdata_table where exten=${EXTEN})}) exten => _Z.,n,Set(IPAddr=${ODBC_SQL(select ipaddr from sip_buddies where name=${Name})}) exten=>_Z.,n,Set(num=${ODBC_SQL(selectexten from dialdata_table where dial=${CALLERID(num)}) exten => _Z.,n,Set(CALLERID(name)=num) exten => _Z.,n,Set(STOP=0) exten => _Z.,n,GotoIf($[[${LEN(${Name})} = ${STOP}]]?STOPCALL) exten => _Z.,n,NoOp(${CALLERID(name)})
96
_Z.,n,NoOp(${CALLERID(num)}) _Z.,n,Dial(SIP/${Name}@${IPAddr}:5062,,r) _Z.,n,Set(TIMEOUT(absolute)=180) _Z.,n,NoOp(El estado es ${DIALSTATUS}) _Z.,n,NoOp(El estado es ${DIALSTATUS}) _X.,n,Set(s-${DIALSTATUS})
Se utiliza una variable llamada STOP para comprobar que la variable name contenga un nmero de IMSI, si este es igual a 0 entonces la llamada no se podr realizar en vista de que ese usuario no existe. Entonces el plan se dirige a la extension STOPCALL donde se colgara la llamada y mostrara un mensaje que indica el nmero que no esta registrado
exten => s,n(STOPCALL),NoOp(El nmero marcado no esta registrado) same => n,Playback(silence/2) same => n,Set(TIMEOUT(absolute)=15) same => n,Answer() same => n,MusicOnHold() same => n,Hangup() ; ; ; ; ; ; ; ; ; Si se realiza la llamada se inicia la etiqueta DIALSTATUS la cual obtiene el estado de la llamada en ese momento puede presentarse los estados: CANCEL, cuando la llamada ha sido cancelada por el emisor. NOASWER, sin respuesta. BUSY, ocupado. CONGESTION, si existe un exceso de peticiones de llamada. CHANUNAVAIL, cuando el telfono ha sido apagado o desconectado. y se inicia un contador que limita la llamada a 3 minutos o 180 segundos, en el caso de que el estado sea ocupado, cancelado, no responda la llamada esta se colgara.
exten => s-CANCEL,1,Hangup() exten => s-NOANSWER,1,Hangup() exten => s-BUSY,1,Busy(30) same => n,Hangup() ; Si DIALSTATUS es congestin, se esperarn 10 segundos, luego de esto, si no cuelga, ; se enviar la llamada al estado no disponible CHANUNAVAIL. exten => s-CONGESTION,1,Congestion(10) same => n,NoOp(la extensin esta congestionada) same => n,Goto(s-CHANUNAVAIL,1) same => n,Hangup() ; Si DIALSTATUS entrega el valor CHANUNAVAIL, o si DIALSTATUS entrega CONGESTION ; se eliminan los datos de ese valor IMSI ya que el estado indica que el usuario ; se a desconectado o esta fuera de rango de cobertura exten => s-CHANUNAVAIL,1,NoOp(EL telfono esta fuera de rango) same => n,Playback(silence/2) same => n,Playback(ss-noservice) same => n,Goto(s-${EXTEN},1) exten => s-${EXTEN},1,Set(OBDC_SQL(DELETE FROM sip_buddies WHERE callerid = ${EXTEN})) same => n,Hangup()
97