81120862 manual openbts

11
Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas Manual Instalación OpenBTS Linux Ubuntu Creado por: Karina Román Kelly Vazques Víctor Medina Ramón Matos

Upload: nunez-luis

Post on 14-Feb-2015

93 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Manual Instalación

OpenBTS

Linux Ubuntu

Creado por:

Karina Román

Kelly Vazques

Víctor Medina

Ramón Matos

Page 2: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Objetivo

Creación de una red de Segunda Generación, GSM, simulando con un computador una BTS y

una centra usando como transceiver de radio un USRP, lo cual permitirá establecer llamadas

entre móviles conectados a la red.

Marco Teórico

Si entendiste todo lo antes dicho, vas por buen camino y no estás leyendo el manual incorrecto,

el cual está garantizado en funcionamiento en un 90% (por versiones de kernel).

Para asegurar que hablamos el mismo idioma, dejaremos claro algunos conceptos:

GSM: El Sistema Global para las Comunicaciones Móviles (Global System for Mobile

Comunication) es un sistema estándar, libre de regalías, de telefonía móvil digital.

Frecuencias GSM: 850, 900, 1800 y 1900 MHz

BTS: Base Transceiver Station es una instalación fija de radio para la comunicación

bidireccional. Se usa para comunicar con una o más radios móviles o portátiles.

PBX: Private Branch Exchange se encarga de establecer conexiones entre terminales de una

misma empresa, o de hacer que se cursen llamadas al exterior.

SIM: Subscriber Identity Module, es una tarjeta inteligente desmontable usada en teléfonos

móviles y módems HSDPA o HSUPA que se conectan al puerto USB.

IMSI: e International Mobile Subscriber es un código de identificación único para cada

dispositivo de telefonía móvil, integrado en la tarjeta SIM, que permite su identificación a través

de las redes GSM y UMTS.

USRP: Equipo que permite realizar diseño e implementación de plataformas de sistemas de

radio programable (SDR).

Herramientas necesarias

Sistema Operativo Ubuntu 10.04 o más reciente

USRP (Universal Software Radio Peripheral) con módulo de frecuencia que contenga un

rango permitido por GMS

UHD, Universal Software Radio Peripheral Hardware Driver

GNU RADIO

Central PBX, Asterisk

OpenBTS

Nota importante: cada software requiere de librerías y dependencias previas

detalladas en la instalación correspondiente y se requiere instalar en el orden

especificado.

Page 3: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Instalando Ubuntu 10.04

Si Windows es muy recomendable que te hagas de una partición para instalar este nuevo OS ya

que su realización en una máquina virtual no es ni garantizada ni efectiva. Lo instalas de la

siguiente manera:

1. Bajar el cd de Ubuntu, grabarlo en un cd y colocarlo en la lectora de cd. Recordar que

en la BIOS se debe indicar que debe bootear desde el CD

2. La primera pantalla es para elegir el idioma y si quieren probar el livecd o

directamente instalar Ubuntu 10.04. Elijen instalar.

3. Elijan su ubicación, y de paso les muestra la hora que tiene esa ubicación

4. Elegir la distribución de teclado. Recomiendo elegir España porque si eligen

Latinoamérica no les tomara la ñ

5. El particionado. Crear una partición para disco SWAP de no más de 2 GB y una tipo

EXT4 en la ruta /

6. Seleccionar la partición EXT4 y presionar instalar

7. Esperar el proceso de instalación termine

Actualizando Ubuntu

Una vez instalado, actualízalo. Muchas de las actualizaciones son del sistema y el kernel. Si no

sabes cómo hacerlo presiona ALT + CTRL + T para abrir la terminal y escribe: sudo apt-get

install update .

Nota: lo necesario es el update, no el upgrade, si no quieres cambiar la versión 10.04 a otra

más reciente no es necesario.

Instalando UHD

UHD son los drivers de hardware necesarios para utilizar los dispositivos USRP. Los pasos a

seguir son los siguientes:

CTRL + ALT + T

Cd /usr/local

git clone http://github.com/EttusResearch/UHD-Mirror.git

mkdir build

cd build

cmake ../

Nota: si no tienes cmake instalado, has sudo apt-get install cmake y vuelve al paso

anterior

make

make test

sudo make install

Agrega libuhd.so en LD_LIBRARY_PATH, este archivo está en la carpeta de UHD en

/usr/local.

Page 4: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Instalando GNU Radio

El GNU Radio herramienta de software diseñada para permitir a los usuarios crear

implementaciones de SDR. Aquí se establecen mecanismos y herramientas para crear y

personalizar una gran cantidad de módulos de código fuente que pueden ser utilizados como

parte de una radio, así como ejemplos independientes.

Hay dos formas de instalar GNU Radio:

1. Desde un script en Python que instala todas sus librerías y dependencias junto al GNU

Radio

2. Instalar manualmente las librerías y el GNU Radio

La recomendada por experiencia en la realización es Instalar manualmente las

librerías y el GNU Radio por motivos de importación y exportación de librerías a las

variables del sistema

Los pasos a seguir son:

Descargar el GNU Radio, versión 3.4, desde este link:

http://gnuradio.org/redmine/attachments/download/279/gnuradio-3.4.2.tar.gz y ubicarlo en

/usr/local

Abrir la terminal

Cd /usr/local/

Tar xvfz gnuradio-3.4.2.tar.gz

Ahora instalaremos las librerías necesarias

Natty Narwhal (11.04)

sudo apt-get -y install git-core autoconf automake libtool g++ python-dev swig \

pkg-config libboost-all-dev libfftw3-dev libcppunit-dev libgsl0-dev \

libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy \

python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev \

libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev

Maverick (10.10)

sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev \

swig g++ automake autoconf libtool python-dev libfftw3-dev \

libcppunit-dev libboost-all-dev libusb-dev fort77 sdcc sdcc-libraries \

Page 5: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

libsdl1.2-dev python-wxgtk2.8 git guile-1.8-dev \

libqt4-dev python-numpy ccache python-opengl libgsl0-dev \

python-cheetah python-lxml doxygen qt4-dev-tools \

libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4

Lucid (10.04)

sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev \

swig g++ automake autoconf libtool python-dev libfftw3-dev \

libcppunit-dev libboost-all-dev libusb-dev fort77 sdcc sdcc-libraries \

libsdl1.2-dev python-wxgtk2.8 git-core guile-1.8-dev \

libqt4-dev python-numpy ccache python-opengl libgsl0-dev \

python-cheetah python-lxml doxygen qt4-dev-tools \

libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4

Ahora si instalamos el GNU Radio

Si aún estas en la carpeta, sino vuelve y entra

Cd /usr/local/ xvfz gnuradio-3.4.2

./configure

./make

./make check

Nota: si salen fallidas algunas pruebas ignorarlas

./sudo make install

Configurando para trabajar con el USRP

sudo addgroup usrp

sudo usermod -G usrp -a <YOUR_USERNAME>

echo 'ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe",

SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"' > tmpfile

sudo chown root.root tmpfile

sudo mv tmpfile /etc/udev/rules.d/10-usrp.rules

sudo udevadm control --reload-rules

Para verificar la conexión de un USRP

ls -lR /dev/bus/usb | grep usrp

O también

Lsusrp

Nota: Si este último da errores de librería de importación has lo siguiente:

Cd

Nano .bashrc

Page 6: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Al final agrega las líneas:

export PATH=$PATH:/usr/local/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lcoal/lib/pkgconfig

export PYTHONPATH=$PYTHONPATH:/usr/lcoal/lib/python2.6/site-packages

Ya está listo el GNU Radio.

Para probarlo abre una terminal y teclea con el USRP conectado UHD_fft.py para mostrar el

espectro de señal que está recibiendo.

Nota: si este ejemplo no funciona, no te preocupes, que es probable que sea

problema con la librería de interfaz gráfica de Python y no del GNU Radio, para los

fines este ejemplo exitoso no es necesario.

Instalando PBX Asterisk

Asterisk es un programa de software libre (bajo licencia GPL) que proporciona funcionalidades

de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número

determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor

deVoIP o bien a una RDSI tanto básicos como primarios.

Al igual que GNU Radio podemos instalar Asterisk y sus librerías de forma manual, pero a

diferencia del GNU la instalación manual no instala los componentes en los directorios

necesarios para su correcto funcionamiento e integración con otro software.

Los pasos son los siguientes:

Abre la terminal, CTRL + ALT + T

Sudo apt-get install asterisk

Esperar el proceso termine, que incluye descarga, compilación e instalación

A diferencia del GNU Radio, Asterisk si necesita de una configuración para que el propósito sea

exitoso.

Configurando Asterisk

Abre la terminal

Cd /etc/asterisk

Sudo gedit sip.conf

Al final del archivo en el editor de texto agrega:

[IMSI número 1] callerid=6001

Page 7: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

canreinvite=no type=friend allow=gsm context=sip-local host=dynamic dtmfmode=info [IMSI número 2] callerid=6002 canreinvite=no type=friend allow=gsm context=sip-local host=dynamic dtmfmode=info [1001] username=1001 secret=1001 ;canreinvite=no type=friend allow=gsm context=sip-local host=dynamic bindport = 5061 ;dtmfmode=info

Guardar y cerrar

En el mismo directorio

Sudo gedit extensions.conf

Agregar al final del archivo en el editor de texto:

[macro-dialGSM] exten => s,1,Dial(SIP/${ARG1}) exten => s,2,Goto(s-${DIALSTATUS},1) exten => s-CANCEL,1,Hangup exten => s-NOANSWER,1,Hangup exten => s-BUSY,1,Busy(30) exten => s-CONGESTION,1,Congestion(30) exten => s-CHANUNAVAIL,1,playback(ss-noservice) exten => s-CANCEL,1,Hangup [sip-local] exten => 1001,1,Macro(dialGSM,SIP/1001) exten => 6001,1,Macro(dialGSM,SIP/IMSI número 1) exten => 6002,1,Macro(dialGSM,SIP/IMSI número 2)

Page 8: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Listo Asterisk está configurado.

Nota: Aún hace falta completar los campos IMSI número 1 y el IMSI número 2 en

ambos SIP.conf y EXTENSIONS.conf con los IMSIs correctos que vamos usar.

Instalando el OpenBTS

Si te preguntas para que necesite todo lo anterior instalado para instalar OpenBTS, hay un

gráfico que puede que aclare la interrogante, por el momento sin tomar en cuenta el SMQUEU

que es para el envío de SMS:

Por último el programa que servirá como estación base entre la central y los móviles. Es una

aplicación Unix que usa software de radio para presentar una interfaz área de 2G GSM bajo sus

estándares usando un conmutador o PBX con SIP para interconectar las llamadas.

El software OpenBTS tiene tres versiones:

Publica

Comercial

Para los fines usaremos la comercial, definida por su creador como experimentación, educación

o evaluación.

Los pasos a seguir son los siguientes:

Descargar OpenBTS versión Mamou de este link:

http://sourceforge.net/projects/openbts/files/openbts-2.6.0Mamou.tar.gz/download

Ubicarlo en /usr/local/src

Page 9: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Abrir terminal

Cd /usr/local/src

Tar xvfz openbts-2.6.0Mamou.tar.gz

Instala algunas librerías necesarias para compilación si aún no existen en tu sistema:

sudo apt-get install autoconf libtool, libosip2-dev, libortp-dev, libusb-1.0-0-dev, g++,

sqlite3, libsqlite3-dev, erlang

En el mismo directorio /usr/local/openbts-2.6.0Mamou

Autoreconf –i

./configure

Make

Cd Transceiver52M

Make

Cd ../apps

Ln –s ../Transceiver52M/transceiver

Sudo mkdir –p /usr/local/share/usrp/rev4

Sudo cp ../Transceiver52M/std_inband.rbf /usr/local/share/usrp/rev4/

Listo, el OpenBTS está instalado.

Configurando el OpenBTS

La configuración básica necesaria para que el OpenBTS trabaje bajo una red GSM en nuestro

país (República Dominicana) es necesaria la siguiente configuración:

Abre terminal, CTRL + ALT + T

Cd /usr/local/src/ openbts-2.6.0Mamou

Cd apps

Sudo gedit OpenBTS.conf

Cambiar los siguientes parámetros

GSM.RADIO.BAND – 51

GSM.RADIO.C0

Listo, el OpenBTS está configurado.

Instalando Softphone

El softphone SIP para probar llamadas desde el computador y los móviles y viceversa,

marcando las extensiones especificadas en Asterisk, elegido fue Twinkle. Lo pueden descargar

del repositorio de Ubuntu 10.04 o tecleando en la terminal sudo apt-get install twinkle.

Page 10: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

Una vez instalado seguir los siguientes pasos:

Configurar profile

Poner nombre de profile

En nombre de usuario poner la extensión especificada en asterisk “1001”

Host: 127.0.0.1

Password: la secret especifica en asterisk “1001”

Authname poner “1001”

Real poner “1001”

Dar click en Aceptar

Seleccionar el usuario creado y darle en RUN

Nota: Si sale un error de puerto, “puerto 6061 es usado”, dar OK e ignorarlo. Volver

abrir Twinkle que se encuentra en la barra de menú para traer al frente la interfaz

de las llamadas, y autenticarse con username 1001 y password 1001.

Integrando los software y el USRP

Una vez realizado con éxito los pasos anteriores de instalación y configuración de los softwres

necesarios para la creación de la red GSM vamos a integrar el funcionamiento de cada uno.

Sigue los pasos:

Conectar el USRP al puerto USB

Abrir una Terminal

Comprobar el USRP está siendo reconocido con “lsusrp”, debe salir un campo

especificando el puerto.

Abrir cliente Asterisk en otra terminal, teclear:

Asterisk –r

Debe salir en la terminal, CLI>

Abrir cliente OpenBTS

Abrir otra terminal

Cd /usr/local/src/ openbts-2.6.0Mamou/apps

Sudo ./OpenBTS

Debe salir en la terminal OpenBTS>

Abrir Twinkle si ya no lo tienes, y autenticarse.

Tomar un móvil y registrarse en la red con el nombre especificado en la configuración del

OpenBTS.

Intentar hacer llamada al softphone marcando la extensión 1001.

Page 11: 81120862 Manual OpenBTS

Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas

En la terminal de Asterisk, verificar un error de intento de número IMSI de 15

caracteres.

Tomar ese número IMSI y pegarlo en la configuración del SIP.conf y EXTENSIONS.conf

de Asterisk. En el parámetro “IMSI número 1”.

Guardar los SIP.conf y EXTENSIONS.conf

En la terminal de Asterisk teclear:

Sip reload

Dialplan reload

Hacer el mismo proceso con el móvil número 2, a diferencia de que el campo a cambiar es el

“IMSI número 2” en los archivos SIP.conf y EXTENSIONS.conf.

Listo, ya está hecha toda la configuración necesaria para la comunicación entre móviles.

Intentos

Intenta llamar de un móvil al softphone marcando la extensión 1001

Intenta llamar del softphone a un móvil con la extensión correspondiente especificada

en Asterisk

Intenta llamar de un móvil a otro marcando las extensiones correspondientes

especificadas en Asterisk

Si el primer proceso fue exitoso y los otros dos no, no estes triste, simplemete resetea la

consola de Asterisk, cerrándola y volviéndola abrir e intenta nuevamente.

Ahora sí las llamadas deben ser exitosas en cualquier sentido.

Nota: De no ser así revisar los pasos de la instalación y configuración de Asterisk y

OpenBTS nuevamente.

Fin del manual,

Esperamos que haya sido útil.