Manual OpenBTS
-
Upload
samuel-hernandez -
Category
Documents
-
view
850 -
download
0
Transcript of Manual OpenBTS
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 1/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
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 2/11
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ésde 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.
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 3/11
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.
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 4/11
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 crearimplementaciones 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 laslibrerí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 \
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 5/11
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
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 6/11
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
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 7/11
Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas
canreinvite=notype=friendallow=gsmcontext=sip-localhost=dynamicdtmfmode=info
[IMSI número 2]callerid=6002canreinvite=notype=friendallow=gsmcontext=sip-localhost=dynamicdtmfmode=info
[1001]
username=1001secret=1001;canreinvite=notype=friendallow=gsmcontext=sip-localhost=dynamicbindport = 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,Hangupexten => 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)
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 8/11
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óno 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
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 9/11
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.
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 10/11
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.
5/13/2018 Manual OpenBTS - slidepdf.com
http://slidepdf.com/reader/full/manual-openbts 11/11
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.