Git Product home page Git Product logo

openbts's Introduction

Welcome to the OpenBTS source code.


For free support, please subscribe to [email protected].
See http://sourceforge.net/mailarchive/forum.php?forum_name=openbts-discuss
and https://lists.sourceforge.net/lists/listinfo/openbts-discuss for details.

A5/3 support requires installation of liba53.  This can be installed from:
[email protected]:RangeNetworks/liba53.git

Starting with release 4, OpenBTS requires zeromq (zmq).  This can be installed by running:
$ sudo ./NodeManager/install_libzmq.sh

For additional information, refer to http://openbts.org.


These are the directories:

AsteriskConfig	Asterisk configuration files for use with OpenBTS.
CommonLib	Common-use libraries, mostly C++ wrappers for basic facilities.
Control		Control-layer functions for the protocols of GSM 04.08 and SIP.
GSM		The GSM stack.
RRLP		Radio Resource Location Protocol
SIP		Components of the SIP state machines ued by the control layer.
SMS		The SMS stack.
SR		The subscriber registry.
TRXManager	The interface between the GSM stack and the radio.
Transceiver	The software transceiver and specific installation tests.
apps		OpenBTS application binaries.
doc		Project documentation.
tests		Test fixtures for subsets of OpenBTS components.
smqueue		RFC-3428 store-and-forward server for SMS



By default, OpenBTS assumes the following UDP port assignments:

5060 -- Asterisk SIP interface
5061 -- local SIP softphone
5062 -- OpenBTS SIP interface
5063 -- smqueue SIP interface
5064 -- subscriber registry SIP interface
5700-range -- OpenBTS-transceiver interface

These can be controlled in the CONFIG table in /etc/OpenBTS.db.

Standrd paths:
/OpenBTS -- Binary installation and authorization keys.
/etc/OpenBTS -- Configuration databases.
/var/run/ -- Real-time reporting databases.

The script apps/setUpFiles.sh will create these directories and install the
correct files in them.


Releases 2.5 and later include the smqueue SMS server.  It is NOT part of the
normal GNU build process with the rest of OpenBTS.  To build smqueue, go
into the smqueue directory and just type "make -f Makefile.standalone".



Release history:

Release	Name		SVN Reposiory	SVN Rev	Comments

1.0	(none)		SF.net		??		completed L1, L2

1.1	Arnaudville	GNU Radio	r10019 (trunk)

1.2	Breaux Bridge	GNU Radio	r10088 (trunk)	GNU Build, very early assignment

1.3	Carencro	KSP		r1 (trunk)	first post-injunction release

1.4	Donaldsonville	KSP		r23 (trunk)	fixed Ubuntu build error

1.5	Eunice		KSP		r39 (trunk)	fixed L2 bugs related to segmentation
							removed incomplete SMS directory
							moved "abort" calls into L3 subclasses

1.6	New Iberia	KSP		r130 (trunk)	import of all 2.2 improvements to non-SMS release


2.0	St. Francisville KSP		r54 (smswork)	SMS support
							file-based configuration

2.1	Grand Coteau	KSP		r70 (smswork)	DTMF support
							fixed more Linux-related build errors
								-lpthread
								TLMessage constructor
							expanded stack to prevent overflows in Linux
							moved gSIPInterface to main app
							fixed iterator bug in Pager

2.2	Houma		KSP		r122 (smswork)	added LEGAL notice
							removed Assert classes
							stop paging on page response
							fixed Pager-spin bug
							fixed Transceiver spin bugs
							fixed 2^32 microsecond rollover bug
							reduced stack footprints in Transceiver
							fixed SMS timestamps
							check LAI before using TMSI in LUR
							reduced memory requirement by 75%
							removed PagerTest
							fixed stale-transaction bug in paging handler
							fixed USRP clock rollover bug
							faster call connection
							new USRPDevice design

2.3	Jean Lafitte	KSP		r190? (trunk)	check for out-of-date RACH bursts
							better TRX-GSM clock sync
							formal logging system
							command line interface
							emergency call setup

2.4	Kinder		KSP		r208? (trunk)	fixed BCCH neighbor list bug
							support for neighbor lists
							fixed support for non-local Asterisk servers
							cleaner configuration management
							more realtime control of BCCH parameters
							proper rejection of Hold messages
							fixed L3 hanging bug in MTDCheckBYE

2.4.1	Kinder		KSP		r462		fixed lots of valgrind errors

2.4.2	Kinder		KSP		r482		zero-length calling party number bug
							g++ 4.4 #includes

2.5	Lacassine	KSP		r551		imported Joshua Lackey patches
							SIP fixes from Anne Kwong
							SIP fixes from testing with SMS server
							L3 TI handling fixes
							SMS server support
							GNU Radio 3.2 compatibility
							configurable max range and LU-reject cause
							"page" & "testcall" CLI features

2.5.1	Lacassine	KSP		r595		fixed some build bugs for some Linux distros

2.5.2	Lacassine	KSP		r630		fixed channel assignment bug for Nokia DCT4+ handsets

2.5.3	Lacassine	KSP		r756		merged fix for transceiver startup crash
								due to use of uninitialized variables (r646)
							merged fix for fusb bug from trunk (r582)

2.5.4	Lacassine	KSP		r812		merged fixes to build under latest Fedora and
								to build with git GnuRadio (r814)

2.6	Mamou		KSP		r886		fixed infamous fusb bug (r582)
							fixed idle-filling table size bug
							smoother uplink power control
							load-limiting downlink power control
							new "config" features (optional, static)
							IMEI interrogation
							fixed MOD "missing FIFO" bug
							configurable short code features
							fixed transceiver startup crash (r646)
							readline support is back
							fixed timing advance bug (r844)
							added CLI "chans" command
							track time-of-use in TMSI table (r844)
							added CLI "noise" command (r844)
							added CLI "rxpower" command (r844)
							added CLI "unconfig" command

2.7	Natchitoches	Range	rxxx			converted TMSITable to sqlite3 (r902)
							sqlite3-based configuration (r???)
							converted Logger to syslogd (r903)
							added support for rest octets (r1022)
							external database for transaction reporting (r1184)
							external database for channel status reporting (r1203)
							in-call delivery and submission of text messages (r1231)
							RFC-2833 DMTF (r1249)

2.8	Opelousas	Range	rxxx			added SHA1/RSA image verification
							move databases to /etc and /var
							SIP-based authentication

2.9	Plaquemine	Range				socket-based remote CLI
							merge-in of "S" Release

openbts's People

Contributors

hssamra avatar iedemam avatar kheimerl avatar oleyka avatar openphy avatar pat-thompson avatar scott-vangundy avatar ttsou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openbts's Issues

USRP2 (gpslocked) openbts dowlink transmission works, uplink timing issue .

Hi All,

I am trying to get openBTS 5 to work with the USRP2, but i am unable to get the uplink working. The USRP2 is gps locked.
I cannot see any immediate assignments coming from openBTS ( log files ) caused by the RACH burst from the mobile. I can see the mobile transmitting ( on my analyser ), but there is no SDCCH immediate assignment from openBTS. I see the network, sim card is properly configured. There is no interference on the channel -> checked ( private GSM ). I assume the RACH is never heard by openbts due to timing issues. How can this be resolved, or what am i doing wrong?
EDIT: I see a lot of T3101 timer expiry and that is expiry of immediate assignment after RACH burst from mobile. So my theory is correct. The rach burst is received by OpenBTS, but somehow the mobile keep sending RACH bursts because it misses the immediate assignment command from OpenBTS. ( I see 4 SDCCH channels opened and closed due to T3101 expiry ).

Evert

bladerf

hello people
i come here seeking for help...
i am have bladerf with me and i would like to use it with openbts ..i have however tried to make the transceiver from yatebts but have failed to ....
could anyone here be having a solution to this .....or could anyone provide me with the yatebts transceiver for bladerf that i could make with openbts
thanks

A-BIS over SCTP

HI!
I would like to kindly ask if it is possible to connect a full mode BTS Tower to openbts via SCTP ?

Thank you.

UHD make failed

 Range Networks' software licenses and master customer agreement.


1509351793.118597 140639403624256: 
Starting the system...
ALERT 7149:7156 2017-10-30T15:23:18.1 OpenBTS.cpp:174:startTransceiver: starting transceiver ./transceiver with 1 ARFCNs
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.001.HEAD-0-g929e3b32

Using internal frequency reference
-- Opening a USRP2/N-Series device...
-- Current recv frame size: 1472 bytes
-- Current send frame size: 1472 bytes
ALERT 7159:7159 2017-10-30T15:23:19.6 UHDDevice.cpp:557:open: UHD make failed, device type=usrp2,addr=192.168.10.2,name=,serial=xxxxxxx
ALERT 7159:7159 2017-10-30T15:23:19.6 runTransceiver.cpp:176:main: Transceiver exiting...

EMERG 7149:7156 2017-10-30T15:23:19.6 OpenBTS.cpp:185:startTransceiver: Transceiver quit with status 256. Exiting.

from sudo ./build N210 ,

OS :

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Connect to other mobile networks

Hi im new to openbts and was wondering how I could set it up so I can call other people on other networks like o2 or t-mobile preferably for free using the internet or using my current landline as a proxy

Error when setting NEIGHBOR_TABLE_ON_DISK to 1

I want OpenBTS to use an SQLite database for tracking neighbors, so I set NEIGHBOR_TABLE_ON_DISK to 1 in /openbts/Peering/NeighborTable.h. By default, the macro is set to 0.

Upon compiling, I encountered several errors. Many of these errors result from several functions/variables being undefined.

NeighborTable.cpp: In member function ‘bool Peering::NeighborTable::ntFindByIP(std::__cxx11::string, Peering::NeighborEntry*)’: NeighborTable.cpp:52:2: error: ‘NeighborTableMap’ has not been declared NeighborTableMap::iterator mit = mNeighborMap.find(ip); ^ NeighborTable.cpp:53:6: error: ‘mit’ was not declared in this scope if (mit == mNeighborMap.end()) { return false; } ^ NeighborTable.cpp:53:13: error: ‘mNeighborMap’ was not declared in this scope if (mit == mNeighborMap.end()) { return false; } ^ NeighborTable.cpp:54:26: error: ‘mit’ was not declared in this scope if (pentry) { *pentry = mit->second; } ^ NeighborTable.cpp: In member function ‘bool Peering::NeighborTable::ntFindByPeerAddr(const sockaddr_in*, Peering::NeighborEntry*)’: NeighborTable.cpp:63:2: error: ‘NeighborTableMap’ has not been declared NeighborTableMap::iterator mit = mNeighborMap.find(ipaddr); ^ NeighborTable.cpp:64:6: error: ‘mit’ was not declared in this scope if (mit == mNeighborMap.end()) { return false; } ^ NeighborTable.cpp:64:13: error: ‘mNeighborMap’ was not declared in this scope if (mit == mNeighborMap.end()) { return false; } ^ NeighborTable.cpp:65:26: error: ‘mit’ was not declared in this scope if (pentry) { *pentry = mit->second; } ^ NeighborTable.cpp: In member function ‘bool Peering::NeighborTable::ntFindByArfcn(int, int, Peering::NeighborEntry*)’: NeighborTable.cpp:77:7: error: ‘NeighborTableMap’ has not been declared for (NeighborTableMap::iterator mit = mNeighborMap.begin(); mit != mNeighborMa ^ NeighborTable.cpp:77:62: error: ‘mit’ was not declared in this scope for (NeighborTableMap::iterator mit = mNeighborMap.begin(); mit != mNeighborMa ^ NeighborTable.cpp:77:69: error: ‘mNeighborMap’ was not declared in this scope for (NeighborTableMap::iterator mit = mNeighborMap.begin(); mit != mNeighborMa ^ NeighborTable.cpp: In function ‘void makeNeighborSet(std::set<std::__cxx11::basic_string<char> >&)’: NeighborTable.cpp:158:20: error: ‘addNeighbor’ was not declared in this scope addNeighbor(&peer); ^ NeighborTable.cpp: In member function ‘bool Peering::NeighborTable::ntAddInfo(Peering::NeighborEntry&)’: NeighborTable.cpp:302:40: error: ‘address’ was not declared in this scope const char *ret = inet_ntop(AF_INET,&(address->sin_addr),addrString,255);

Is there something I am missing here? Or is there another way to configure OpenBTS to use SQLite databases for neighbors?

error: cannot find PDP context for incoming packet for IP

Hey all, I'm not able to connect to GPRS on my OpenBTS setup. I'm stuck at the following error can anyone pls guide me?

 15:32:42.9:  GGSN.IP.TossDuplicatePackets=0
 15:32:42.9:GGSN: DNS servers: 8.8.8.8 0.0.0.0
 15:32:42.9:ip link set sgsntun up 
 15:32:43.1:ip route add to 192.168.99.0/24 dev sgsntun 
 15:32:43.4:ggsn: received proto=128 48 byte packet from 0.0.0.0 to 109.223.105.98 at  15:32:43.4
 15:32:43.4:ggsn: error: cannot find PDP context for incoming packet for IP dstaddr=109.223.XX.XX
 15:32:47.0:ggsn: received proto=128 48 byte packet from 0.0.0.0 to 109.223.XX.XX at  15:32:47.0
 15:32:47.0:ggsn: error: cannot find PDP context for incoming packet for IP dstaddr=109.223.XX.XX
 15:32:51.1:ggsn: received proto=128 48 byte packet from 0.0.0.0 to 109.223.XX.XX at  15:32:51.1
 15:32:51.1:ggsn: error: cannot find PDP context for incoming packet for IP dstaddr=109.223.XX.XX

Is the device not able to communicate through sgsntun interface?

Are the ggsn/sgsn settings messed up?

I haven't plugged in any Ethernet cable to my laptop only connected to Wi-Fi.

Regards.

Compilation error

Hi guys:

I am using Debian 11 (bullseye), 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux.

I succesfully run ./configure, but when running make I have the following errors:

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. "-DREPO_REV=\"7766ef94f2 CommonLibs:76b71d509b\"" -I../apps -I../CommonLibs -I../Control -I../GSM -I../GSMShare -I../GPRS -I../SGSNGGSN -I../SIP -I../SMS -I../TRXManager -I../Globals -I../CLI -I../Peering -I../NodeManager -I../NodeManager/JsonBox-0.4.3/include -I../Scanning -g -O2 -Wall -pthread -ldl -rdynamic -DTIMESTAMP_ISO=\"2023-03-30T11:30:19\" -O3 -lsqlite3 -MT libcommon_la-BitVector.lo -MD -MP -MF .deps/libcommon_la-BitVector.Tpo -c BitVector.cpp -fPIC -DPIC -o .libs/libcommon_la-BitVector.o In file included from /usr/include/unistd.h:1170, from ./Threads.h:34, from ./Logger.h:217, from BitVector.cpp:35: /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:28: error: macro "gettid" passed 1 arguments, but takes just 0 34 | extern __pid_t gettid (void) __THROW; | ^ In file included from BitVector.cpp:35: ./Logger.h:52: note: macro "gettid" defined here 52 | # define gettid() syscall(SYS_gettid) | In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33, from /usr/include/string.h:26, from Vector.h:33, from BitVector.h:30, from BitVector.cpp:30: /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:30: error: expected initializer before ‘throw’ 34 | extern __pid_t gettid (void) __THROW; | ^~~~~~~ make[2]: *** [Makefile:803: libcommon_la-BitVector.lo] Error 1 make[2]: se sale del directorio '/opt/openbts/CommonLibs' make[1]: *** [Makefile:574: all-recursive] Error 1 make[1]: se sale del directorio '/opt/openbts' make: *** [Makefile:505: all] Error 2

Could you please help?

Can I send CMAS?

I want to Cell Broadcast(like CMAS,EAS) to UE (real device like Nexus 5)
Can I do that with openbts?

Datagram read() functions has changed but not the calls to that function

Hello,

when trying to compile the newest version, an error occurs in the file SIP2Interface.cpp.
Here the call to the function read() has only one argument, while the definition of the function has two arguments.

There are many more calls to this function and i am not sure if they are correct.

Bye

Problem with encryption

When trying to set up encryption I end up with the following log output:

Jan  8 10:58:25 openBTS openbts: DEBUG 1785:2042 2016-01-08T10:58:25.8 TMSITable.cpp:161:runQuery:  query=UPDATE TMSI_TABLE SET IMEI='359710049084380',A5_SUPPORT=5,POWER_CLASS=4,kc='96E743AD6398DC00',ASSOCIATED_URI='<tel:017694923917>',ASSERTED_IDENTITY='',ACCESSED=1452247105 WHERE IMSI='262071234567891' checkChanges=1
Jan  8 10:58:25 openBTS openbts: ERR 1785:2042 2016-01-08T10:58:25.8 TMSITable.cpp:165:runQuery: TMSI table query failed: query=UPDATE TMSI_TABLE SET IMEI='359710049084380',A5_SUPPORT=5,POWER_CLASS=4,kc='96E743AD6398DC00',ASSOCIATED_URI='<tel:017694923917>',ASSERTED_IDENTITY='',ACCESSED=1452247105 WHERE IMSI='262071234567891' resultCode=101 changes=0 error:not an error
Jan  8 10:58:25 openBTS openbts: ERR 1785:2042 2016-01-08T10:58:25.8 TMSITable.cpp:999:getKc: sqlite3_single_lookup failed to find kc for 262071234567891
Jan  8 10:58:25 openBTS openbts: DEBUG 1785:2042 2016-01-08T10:58:25.8 L3MobilityManagement.cpp:829:machineRunState: no ki: NOT sending Ciphering Mode Command on C0T0 SDCCH/4-0 state=Established for IMSI262071234567891
Jan  8 10:58:25 openBTS openbts: DEBUG 1785:2042 2016-01-08T10:58:25.8 TMSITable.cpp:161:runQuery:  query=INSERT INTO TMSI_TABLE (IMSI,CREATED,ACCESSED,TMSI,AUTH,REJECT_CODE,OLD_MCC,OLD_MNC,OLD_LAC,OLD_TMSI) VALUES ('262071234567891',1452247105,1452247105,1073741827,1,0,262,7,1000,0) checkChanges=1

Apparently, a key kc is created as expected but then the update query fails. I am a bit irritated by the sqlite error message (error:not an error), however if this code path is executed the runQuery() method will inevitably return false. As a result no encryption is set up.

(When looking at the database file in /var/run/TMSITable.db I can indeed not see the key kc, but I don't yet fully understand if the database I see is up-to-date or if there is a more recent version in memory that still needs to be flushed to disk.)

GGSN PDP Context Activation without PCO

The protocol configuration options (PCO) sent by the MS in the ACTIVATE PDP CONTEXT REQUEST message is optional according to GSM 24.008 9.5.1.
In Ggsn.cpp setPco() we assume, that pcoReq is set. No check is performed to prove that this holds true. OpenBTS simple crashes with a SIGSEGV if pcoReq is empty.
The same is done in L3SmMsgActivatePdpContextAccept::smWriteBody() when writing out the ACTIVATE PDP CONTEXT ACCEPT message as defined in GSM 24.008 9.5.2 (PCO is optional here too).

A simple workaround would be to early out setPco() if pcoReq.size() is 0 and only output PCO in smWriteBody() if mPco.size() is >0.

This, however, would leave the MS without a DNS. setPco() could build a PCO if none was received.

Typo bug ....

For the file
openbts/Control/L3MobilityManagement.cpp
there is the function ....

static void checkForConfigChanges()
{
// TODO: we could save these in the TMSI table properties so that we dont clear the auth cache when
// the BTS is rebooted.
static string saveOpenRegistrationPat, saveRejectPat;
string openRegistrationPat(gConfig.getStr("Control.LUR.OpenRegistration"));
string rejectPat(gConfig.getStr("Control.LUR.OpenRegistration.Reject"));

if (saveOpenRegistrationPat != openRegistrationPat || saveRejectPat != rejectPat) {
    saveOpenRegistrationPat = openRegistrationPat;
    saveRejectPat != rejectPat;
    gTMSITable.tmsiTabClearAuthCache();
}

}

The comparison
saveRejectPat != rejectPat
is used in "if" statement and also in the subsequent code-block.

I presume the block should contain
saveRejectPat = rejectPat;
instead of the no-effect-call
saveRejectPat != rejectPat;

Cheers.

gConfig.defines("Control.LUR.QueryIMEI") Bug ??

case stateHaveImsi:
{
    if (ludata()->mFullQuery && gConfig.defines("Control.LUR.QueryIMEI") && ludata()->store.getImei().size() == 0) { return sendQuery(IMEIType); }
    return machineRunState(stateHaveIds);
}

gConfig.defines 这句是不是应该为 gConfig.getBool

Channel Ciphering (A5)

Hi,

Does OpenBTS support traffic channels ciphering with A5/1 or A5/2? If not do you have a development guide to start the implementation? Or any guidelines? Is there a reason why it doesn't support?

Thank you.

How to put a pricing system on OpenBTS ???

Hello.

I have successfully installed OpenBTS. But the problem for me is that I don't see any documentation that deals with "how to set a pricing system". The idea for me is to:

1 - Create two subscribers with two different phone numbers (2222 and 2210 for example).

2 - Reload only the balance of the 1st subscriber with number 2222.

3 - Set a rate for voice calls per minute.

4 - Set a price for each SMS sent.

5 - Check if the subscriber has a balance that can allow him to make voice calls and SMS.
A - If yes, that he has a balance, make the call or send the SMS.
B - If not, cancel the procedure.

Please help me or direct me to the documents that can allow me to achieve these points described above.
Thank you in advance.

Error when building OpenBTS from source

Hi, good morning!

I've been folloing the wiki regarding to theproccess of building OpenBTS on Ubuntu 16 and after some time, I get the next error when building the Transceiver52:


libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. "-DREPO_REV=\"7766ef94f2 CommonLibs:76b71d509b\"" -I../apps -I../CommonLibs -I../Control -I../GSM -I../GSMShare -I../GPRS -I../SGSNGGSN -I../SIP -I../SMS -I../TRXManager -I../Globals -I../CLI -I../Peering -I../NodeManager -I../NodeManager/JsonBox-0.4.3/include -I../Scanning -g -O2 -Wall -pthread -ldl -rdynamic -DTIMESTAMP_ISO=\"2023-02-28T12:22:24\" -MT radioInterfaceResamp.lo -MD -MP -MF .deps/radioInterfaceResamp.Tpo -c radioInterfaceResamp.cpp -o radioInterfaceResamp.o >/dev/null 2>&1
mv -f .deps/radioInterfaceResamp.Tpo .deps/radioInterfaceResamp.Plo
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..   -D'REPO_REV="7766ef94f2 CommonLibs:76b71d509b"' -I../apps -I../CommonLibs -I../Control -I../GSM -I../GSMShare -I../GPRS -I../SGSNGGSN -I../SIP -I../SMS -I../TRXManager -I../Globals -I../CLI -I../Peering -I../NodeManager -I../NodeManager/JsonBox-0.4.3/include -I../Scanning    -g -O2 -Wall -pthread -ldl -rdynamic -DTIMESTAMP_ISO=`date +'"%Y-%m-%dT%H:%M:%S"'`  -MT UHDDevice.lo -MD -MP -MF .deps/UHDDevice.Tpo -c -o UHDDevice.lo UHDDevice.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. "-DREPO_REV=\"7766ef94f2 CommonLibs:76b71d509b\"" -I../apps -I../CommonLibs -I../Control -I../GSM -I../GSMShare -I../GPRS -I../SGSNGGSN -I../SIP -I../SMS -I../TRXManager -I../Globals -I../CLI -I../Peering -I../NodeManager -I../NodeManager/JsonBox-0.4.3/include -I../Scanning -g -O2 -Wall -pthread -ldl -rdynamic -DTIMESTAMP_ISO=\"2023-02-28T12:22:25\" -MT UHDDevice.lo -MD -MP -MF .deps/UHDDevice.Tpo -c UHDDevice.cpp  -fPIC -DPIC -o .libs/UHDDevice.o
UHDDevice.cpp:29:29: fatal error: uhd/utils/msg.hpp: No existe el archivo o el directorio
compilation terminated.
Makefile:665: fallo en las instrucciones para el objetivo 'UHDDevice.lo'
make[3]: *** [UHDDevice.lo] Error 1
make[3]: se sale del directorio '/home/gbernaldo/Projects/dev/openbts/Transceiver52M'
Makefile:572: fallo en las instrucciones para el objetivo 'all-recursive'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio '/home/gbernaldo/Projects/dev/openbts'
Makefile:503: fallo en las instrucciones para el objetivo 'all'
make[1]: *** [all] Error 2
make[1]: se sale del directorio '/home/gbernaldo/Projects/dev/openbts'
debian/rules:74: fallo en las instrucciones para el objetivo 'install-arch'
make: *** [install-arch] Error 2
dpkg-buildpackage: fallo: fakeroot debian/rules binary devolvió un estado de salida de error 2

Anyway I attach you the full log (Build.log)

The version of libuhd-dev I have installed is the next:

gbernaldo@OpenBTS:~/Projects/dev$ apt show libuhd-dev
Package: libuhd-dev
Version: 3.15.0.0-1-1ubuntu1~xenial1
Priority: optional
Section: libdevel
Source: uhd
Maintainer: Ettus Research <[email protected]>
Installed-Size: 18,3 MB
Depends: libuhd3.15.0 (= 3.15.0.0-1-1ubuntu1~xenial1), python3, python3-mako, python3-numpy, python3-requests, python3-setuptools
Suggests: gnuradio
Download-Size: 3.256 kB
APT-Manual-Installed: yes
APT-Sources: http://ppa.launchpad.net/ettusresearch/uhd/ubuntu xenial/main i386 Packages
Description: universal hardware driver for Ettus Research products
 Host library for the USRP Hardware Driver for Ettus Research products.
 .
 The supported devices provide analog radio receiver and transmitter hardware
 along with digital interfaces for getting signals to and from a software
 defined radio running on the host computer.
 .
 This package contains the header files and documentation for
 developing with libuhd.

N: Hay 1 registro adicional. Utilice la opción «-a» para verlo.

To build the software I followed the steps listed in the wiki (Section Install Base Operating System). In make case they were:

1º git clone https://github.com/RangeNetworks/dev.git
2º cd dev
3º ./clone.sh
4º ./switchto.sh master <- I tried 5.0, 4.0 and v4.0.0 amd all of them failed too
5º ./build.sh B210 <- Becasue my hardware is an Ettus B210.

Please, can someone help mewith this problem?
Sorry for the Spanish text in the logs.

USRP 2920 Support

Hi all,
I am trying to use Open BTS along with USRP 2920 but I can't as it support is not included in build.sh file.
any leads will be very helpful
I am using ubuntu 20.04
USRP: 2920
thank you.

'NodeManager/Makefile.in' not found.how to fix this,pls help.

Preparing build ... configure.ac:85: error: required file
'NodeManager/Makefile.in' not found

TransceiverRAD1/Makefile.am:95: warning: source file
'../apps/GetConfigurationKeys.cpp' is in a subdirectory,

TransceiverRAD1/Makefile.am:95: but option 'subdir-objects' is disabled

automake: warning: possible forward-incompatibility.

automake: At least a source file is in a subdirectory, but the
'subdir-objects'

automake: automake option hasn't been enabled. For now, the corresponding
output

automake: object file(s) will be placed in the top-level directory.
However,

automake: this behaviour will change in future Automake versions: they will

automake: unconditionally cause object files to be placed in the same
subdirectory

automake: of the corresponding sources.

automake: You are advised to start using 'subdir-objects' option throughout
your

automake: project, to avoid future incompatibilities.

ERROR: automake failed

debian packages quality

Are there any plans to make something about it?
It's beyond horrible at the moment: lintian complains do not even fit into screen. The location of files violates every single part of FHS, the creation of hardcoded directory (!) in /home (!!!) is direct security risk, permissions are wrong on almost every single file...

Ideally I'd love to see OpenBTS available directly from Debian/Ubuntu repositories but pushing for that with existing packages is plain embarrassing.

An opportunity to learn> OpenBTS GPRS Troubleshooting ...

Hello people!

Please little bit of your help here. The following enumerated log corresponds to the attempt of a smartphone working only on 2G attempting to connect to the GPRS network established by OpenBTS, I think it corresponds to a TWO-PHASE ACCESS PROCEDURE on CCCH (described here) :

  1. MAC.cpp:1020:makeReservationInt: GPRS1,401111:makeReservation restype=ForRACH afterBSN=401113,fn=1738156 mttype=0 rd->mRSSI=-21 rd->mTimingError=0

  2. MAC.cpp:1056:makeReservationInt: GPRS1,401111: reservation result: bsn=401113 bsn.FN()=1738156 rrbp=0

  3. MAC.cpp:1386:makeSingleBlockImmediateAssign: GPRS1,401111:serviceRACH at gBSNNext=401111 with reservation at RBN=401113=1738156 frames.

  4. MAC.cpp:1407:makeSingleBlockImmediateAssign: GPRS1,401111:GPRS serviceRACH sending L3ImmediateAssignment:RR Immediate Assignment PageMode=(0) DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1) ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512) RequestReference=(RA=0x79 T=40833 T1'=30 T2=13 T3=33) TimingAdvance=0 Single Block Packet Uplink Assignment mAlpha=10 mGamma=31 TBFStartFrame=1738156=(T=40876 T1p=30 T3=25 T2=4)

  5. MAC.cpp:2089:advanceBSNNext: GPRS1,401119:Reservation unanswered ForRACH ttype=0 TBF(null ptr) bsn=401113 fn=1738156res=( bsn=401113 ForRACH)

I think these GPRS Debug messages corresponds to this procedure:

MS ---------------------------------- BTS
----------- RACH --------------------->
<----------- IMM ASS ------------------
---- PCKT CONTROL ACK ------> <<<< FAIL TO ARRIVE AT OPENBTS !!!!
........................................................

What I ask from you here is to correct me on the assumptions that I am doing so I can get a guide to understand this no connection problem. My cellphone rarely connects to GPRS from OpenBTS and when it does it losses the GPRS connection after some time ... I think if I get to understand this and also with the support of GPRS Fundamentals (for example: here) it would be a good source for people that is hopping to get into how things work in GSM/GPRS. So my assumptions are as follows:

**BEFORE 1) and 2): **
At some previous point (maybe at BSN = 400945 or less), OpenBTS received a RACH message (RACH Procedure) from some cellphone. Now, the network has to answer with an Immediate Assignment to deliver Radio Resources to that cellphone, then ...

At 1) and 2):
The function called makeReservationInt from layer MAC (process taking place at BSN = 400946) performs a RRBP (Relative Reserved Block Period) reservation on a future BSN>=400949 (what is exactly BSN??) to expect and receive the Packet Control Acknowledgement (PCA) message from cellphone. I think it indicates at 1) that RACH message was received at frame number 1737445 and that establishment cause was LUR (Location Update Request, mttype=0) and that RSSI = -21dBm and zero timing error. At 2) it indicates that successfully reserved the BSN = 400949 to receive cellphone's PCA.

At 3) and 4)
It denotes the answer itself to the RACH message. The answer is called Immediate Assignment from OpenBTS to cellphone. The message is issued on Block Sequence Number = 400946 at Frame Number (FN) 1737445 (Here, which is the relationship between FN and BSN???). The Radio Resource Immediate Assignment message contains information of the Temporary Block Flow (TBF) that OpenBTS is reserving to "talk" with cellphone:

  • DedicatedModeOrTBF=(TMA=0 Downlink=0 DMOrTBF=1)
  • ChannelDescription=(typeAndOffset=TCH/F TN=2 TSC=2 ARFCN=512)
  • RequestReference=(RA=0x7a T=40104 T1'=30 T2=12 T3=18)
  • TimingAdvance=0
  • Single Block <<<< this leads me to think that it is a one phase access
  • Packet Uplink Assignment
  • mAlpha=10 mGamma=31
  • TBFStartFrame=1737445=(T=40165 T1p=30 T3=28 T2=21)

If the phone successfully receives this message then it will send a Packet Control ACK on BSN=400949 fn=1737445.

But at 5),
OpenBTS says that no answer from cellphone was received at BSN = 400949 fn = 1737445 and hence the TBF establishment was aborted. So, with no TBF, the cellphone does not continues with the following GPRS Attach Procedure, then no GMM protocol is activated, then no PDP Context is created and finally no GPRS data transfer is possible...

Questions:

  1. Correct my explanation PLEASE PLEASE PLEASE! so I can understand where I am.
  2. Is there any solution to this problem? Is my cellphone not answering the Immediate Assignments or Is my cellphone not receiving correctly the Immediate Assignment?
  3. At this poing, the phone is only registered on the network but now being able to access any service? or only GPRS services? What can I troubleshoot related with the power?

Thanks so much for your patience and help.

GPRS Issue

Phones are unable to attach to gprs all of a sudden. I have mobile data turned on, roaming as well as one APN defined on phone but attachment never happens.
When i do "sgsn list" in CLI i get no result but "gprs list" gives me result.
Can you help me resolve this ASAP?

Running OpenBTS "./OpenBTS command not found"

capture1
I am installing OpenBTS on Ubuntu 16.04 LTS. I'm following the steps provided on

http://openbts.org/w/index.php?title=BuildInstallRun

When prompted to install the transceiver I am running the Ettus Research USRP N201. I was able to verify that was working and seeing the device during testing. As far as I can tell everything works up until I get to the Running OpenBTS portion. I've attached an image of the file structure that I am seeing, however, when trying to run ./OpenBTS from $HOME/dev/openbts/apps as instructed I got the command not found error.

Has anyone run into this problem/issue or have any troubleshooting steps that I can look into. Thank You!
P.S. I will apologize if this is not the correct location to address an issue like this.

Cannot launch OpenBTS. Connecting to 127.0.0.1:49300... connect stream socket: Connection refused

Hello.

I am trying to launch OpenBTS for the first time after installation, and I get this type of error:

Connecting to 127.0.0.1:49300...
connect stream socket: Connection refused

However, as you can see below, I already launched OpenBTS with the command "sudo systemctl start openbts":

root@Cheg:/home/chegmarco/Documents# cd OpenBTS
root@Cheg:/home/chegmarco/Documents/OpenBTS# sudo systemctl start openbts
root@Cheg:/home/chegmarco/Documents/OpenBTS# sudo systemctl start smqueue
root@Cheg:/home/chegmarco/Documents/OpenBTS# sudo systemctl start sipauthserve
root@Cheg:/home/chegmarco/Documents/OpenBTS# sudo systemctl start asterisk
root@Cheg:/home/chegmarco/Documents/OpenBTS# cd dev
root@Cheg:/home/chegmarco/Documents/OpenBTS/dev# cd openbts
root@Cheg:/home/chegmarco/Documents/OpenBTS/dev/openbts# cd apps
root@Cheg:/home/chegmarco/Documents/OpenBTS/dev/openbts/apps# sudo ./OpenBTSCLI
OpenBTS Command Line Interface (CLI) utility
Copyright 2012, 2013, 2014 Range Networks, Inc.
Licensed under GPLv2.
Includes libreadline, GPLv2.
Connecting to 127.0.0.1:49300...
connect stream socket: Connection refused
Is OpenBTS running?

root@Cheg:/home/chegmarco/Documents/OpenBTS/dev/openbts/apps#

Please help me.

no match for ‘operator<<’

I get a lot of these errors with the Log(level) function/class when I try to compile on a Raspberry Pi Debian Stretch:

`L3StateMachine.cpp: In member function ‘void Control::MachineBase::machineErrorMessage(int, int, const GSM::L3Message*, const SIP::DialogMessage*, const char*)’:
L3StateMachine.cpp:88:20: error: no match for ‘operator<<’ (operand types are ‘std::ostringstream {aka std::__cxx11::basic_ostringstream}’ and ‘std::ostringstream {aka std:
Log(level).get() <<os <<" Unexpected L3 message:"<<l3msg;

In file included from /usr/include/c++/6/istream:39:0,
              from /usr/include/c++/6/sstream:38,
              from ../CommonLibs/Logger.h:41,
              from L3StateMachine.h:31,
              from L3StateMachine.cpp:19:
/usr/include/c++/6/ostream:628:5: note: candidate: std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Tstringstream<char>] <near match>
  operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
  ^~~~~~~~
`
g++ (Raspbian 6.3.0-18+rpi1) 6.3.0 20170516
Does anyone know a reason/solution?

IP Address not assigned

Hi,

I am using OpenBTS GSM with USRP N210. When the UE is attached, it does not have any IP Address assigned to it. I queried using the CLI Command, sgsn list, and it shows the list of devices attached without IP address. On the device UI, it shows GPRS Connected but no IP Address. See the attached snippet.

How can I have a valid IP address assigned to the UE?

Thanks,
Vipul

image

adalm-pluto support

I would like to know why adalm-pluto is not supported? Not only openbts, but also others such as srslte
What makes it not supported? Is it some kind of API or command interface that only the more expensive SDRs provide?
Can it be ported to adalm-pluto?

Thanks.

Database for SMS in OpenBTS not found

I am unable to find sqlite db for sms received in openbts. I can easilt found tmsitable.db for IMEI , IMSI and other parameters. Please tell me the way out. I cannot find transaction.db as well. smqueue.db and openbts.db are also present. I configured transaction.db but still could not find it.

GPRS Issues

There are multiple issues being reported regarding GPRS reliability in 5.0. This is a general ticket to collect notes and see if there are commonalities.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.