OpenBTS的安装和配置
(2011-05-11 15:42:01)
标签:
openbts软件无线电sdrgsmgnuradioasterisk |
OpenBTS操作指南
一.安装配置OpenBTS和相关软件
1.
A.安装依赖库:
sudo apt-get update
sudo apt-get -y install swig g++ automake libtool python-dev libfftw3-dev \
libcppunit-dev libboost1.38-dev libusb-dev fort77 sdcc sdcc-libraries \
libsdl1.2-dev python-wxgtk2.8 subversion 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
B.下载安装GNUradio:
下载gnuradio-3.2.2.tar.gz
tar xvzf gnuradio-3.1.3.tar.gz
cd gnuradio-3.1.3
./configure
make
sudo make install
sudo ldconfig
2.
A.可以通过package Manager得到libosip和ortp的支持库,通过下面的方法得到:
sudo apt-get install asterisk libosip2-dev
libortp7-*
B.为了保证依赖库的版本符合要求仍通过通常./configure, make, make install process.的方法进行安装:
#download libosip2-3.3.0.tar.gz
tar xvzf libosip2-3.3.0.tar.gz
cd libosip2-3.3.0
./configure
make
sudo make install
#download ortp-0.16.1.tar.gz
tar xvzf ortp-0.16.1.tar.gz
cd ortp-0.16.1
./configure
make
sudo make install
3.
#download asterisdk-1.6.2.6.tar.gz
tar xvzf asterisdk-1.6.2.6.tar.gz
cd asterisdk-1.6.2.6
./configure
make
sudo make install
4.
tar xvzf openbts-2.5.4Lacassine.tar.gz.tar.gz
cd openbts-2.5.4Lacassine
./configure
make
sudo make install
5.
将app/下的openbts.example.config复制为openbts.config,通过修改openbts.config相关参数配置OpenBTS。
A.
B.
C.
6.
A.
B.
1)
通过OpenBTS自身得到IMSI号,当手机试图接入OpenBTS时,会向OpenBTS发送IMSI号,可通过OpenBTS的CLI显示的信息中读出,如下所示:
RadioResource.cpp:152: AccessGrantResponder RA=0x15 when=0:1192710 age=25 TOA=0.0000
ChannelDescription=(typeAndOffset=SDCCH/4-0 TN=0 TSC=0 ARFCN=975) RequestReference=(RA=21 T1'=3 T2=12 T3=24) TimingAdvance=0
MobilityManagement.cpp:119:
LocationUpdatingControll
MobilityManagement.cpp:172:
LocationUpdatingControll
2)
[IMSI460004311159502] ; 460004311159502为IMSI号
callerid=IMSI460004311159502 <2102>;<>内为该手机的号码
canreinvite=no
type=friend
allow=gsm
context=sip-external
host=dynamic
3)
; This is a simple mapping between extensions and IMSIs.
exten => 2102,1,Macro(dialSIP,IMSI460004311159502);
重启Asterisk,在CLI中输入sip reload和dialplan reload。
在CLI中输入 sip show peers 可以看到所在线用户的ip和端口
7.
将OpenBTS中的smqueue/文件夹下的smnet.cpp的第424行
char *p = strchr(str, ':');
char *host, *port;
改为:
const char *p=strchr(str,':');
const char *port;
char *host;
在smqueue/下输入:
make -f Makefile.standalone
二.运行OpenBTS和相关软件:
1.
2.
sudo asterisk -vvvvvc
3.
另外开启一个shell终端
cd openbts-2.5.4Lacassine/smqueue/
sudo ./smqueue
三.手机接入OpenBTS:
1.
A.
B.
C.
四.改装OpenBTS软硬件,使其可以使用外接52M时钟
A.USRP硬件改装:
A. 在J2001处焊接SMA连接头,作为时钟输入, 小心不要弄断J2001与C927之间的连接线
B.
C.
D.
B.GNUradio软件调整:
C.
将usrp/host/lib/legacy/usrp_basic.h的第122行,改为
fpga_master_clock_freq () const { return 52000000; }
将usrp/host/lib/legacy/usrp_standard.cc第703行注释掉
//assert (dac_freq () == 128000000);
D.
将usrp/host/lib/legacy/usrp_basic.cc的第116行改为:
将usrp/host/lib/legacy/usrp_standard.cc的第1024 行注释掉:
将usrp/host/lib/legacy/db_flexrf.cc的第179行改为:
E.
在GNUradio的usrp/文件夹下,重新编译
重新编译OpenBTS,将openbts-2.5.4Lacassine/apps/OpenBTS.config文件中TRX.Path选项改为:
TRX.Path ../Transceiver52M/transceiver
四.附录
1.Asterisk的sip.conf配置示例
…
[IMSI460004311159502] ;手机用户sim卡的IMSI号
callerid=IMSI460004311159502 <2102>
canreinvite=no
type=friend
allow=gsm
context=sip-external
host=dynamic
…
2.Asterisk中extensions.conf的配置示例
…
[sip-local]
; local extensions
; This is a simple mapping between extensions and IMSIs.
exten => 2102,1,Macro(dialSIP,IMSI460004311159502);
…