Manual Instalación OpenBTS Linux Ubuntu
Creado por: Karina Román Kelly Vazques Víctor Medina Ramón Matos
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.
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 t iene 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.
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 \
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 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
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
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)
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
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.
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.
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.
Pontificia Universidad Católica Madre y Maestra –Campus RSTA – Redes Móviles – Prof. Freddy Montas