Coder Social home page Coder Social logo

rangenetworks / openbts Goto Github PK

View Code? Open in Web Editor NEW
859.0 117.0 325.0 5.64 MB

GSM+GPRS Radio Access Network Node

License: GNU Affero General Public License v3.0

C++ 80.83% Max 0.10% C 1.97% Shell 2.13% MATLAB 0.06% Verilog 13.24% Python 0.04% Makefile 0.66% M4 0.67% GDB 0.01% HTML 0.29%

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

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?

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

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.

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

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

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

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 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.

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

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.

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.

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 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.

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.

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.

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.

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.

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.

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?

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.)

'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

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

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

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.

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.

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?

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.

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?

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.