rangenetworks / openbts Goto Github PK
View Code? Open in Web Editor NEWGSM+GPRS Radio Access Network Node
License: GNU Affero General Public License v3.0
GSM+GPRS Radio Access Network Node
License: GNU Affero General Public License v3.0
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/GSM/GSMLogicalChannel.cpp
Line 510 in 646bb6e
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
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
HI!
I would like to kindly ask if it is possible to connect a full mode BTS Tower to openbts via SCTP ?
Thank you.
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
Hi,
I'm going to use the OpenBTSCLI to automate some tasks in OpenBTS, and I was looking forward to use the "Shell Comands" as state in the wiki: http://openbts.org/w/index.php?title=CLI#Shell_Commands
But unfortunately it doesn't work for me. Keeps saying "Command not found".
OpenBTS> ! echo 'nope'
command not found
Am I doing something wrong?
Thank you.
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
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?
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.
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?
I want to Cell Broadcast(like CMAS,EAS) to UE (real device like Nexus 5)
Can I do that with openbts?
openbts doesn't work, maybe it should be hosted via githubpages instead
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
Now the GSM network transmit speed is low.
This project will update to new and support the LTE network?
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.)
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.
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.
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
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.
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.
If one run 'configure' and 'make' in different directory then source directory build fails.
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.
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.
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
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.
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) :
MAC.cpp:1020:makeReservationInt: GPRS1,401111:makeReservation restype=ForRACH afterBSN=401113,fn=1738156 mttype=0 rd->mRSSI=-21 rd->mTimingError=0
MAC.cpp:1056:makeReservationInt: GPRS1,401111: reservation result: bsn=401113 bsn.FN()=1738156 rrbp=0
MAC.cpp:1386:makeSingleBlockImmediateAssign: GPRS1,401111:serviceRACH at gBSNNext=401111 with reservation at RBN=401113=1738156 frames.
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)
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:
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:
Thanks so much for your patience and help.
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?
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.
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.
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?
Does OpenBTS5 support RRLP
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
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.
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.
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.
Openbts can be used with a usb gsm of 5 dollars? Or only needs the ettus usrp b210
It would be nice to have it supported natively as part of UHD device.
The support for osmo-trx which is derivative of OpenBTS already have a branch with LimeSDR supported.
See: https://github.com/myriadrf/osmo-trx/tree/myriadrf/limesdr
Hi mates,
I have build OpenBTS and when I try to start, it gives the following error : "start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused"
Kindly let me know what might be the problem and how to solve it.
Using:
Ubuntu 16.04
OpenBTS master
Build for : N210
USRP NI 2920
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.