Git Product home page Git Product logo

osmonitb-docker's Introduction

osmonitb-docker - OpenBSC NITB Docker container

osmonitb-docker is a Docker container for OpenBSC in osmo-nitb mode. OpenBSC is the implementation of GSM Base Station Controller. Here's the configuration tested:

 +----------------------------------------+
 | MacBook                                |
 |                                        |
 |  +-------------------------------+     |
 |  | VirtualBox VM                 |     |
 |  |                               |     |
 |  |  +----------------------+     |     |             |
 |  |  | Docker container     |     |     |         \   |   /       |
 |  |  | (Ubuntu 12.04)       |     |     |          \  |  /        |
 |  |  |                      |     |     |           \ | /         |
 |  |  |  +-------------+     |     |     |        +----+----+     +-------+
 |  |  |  | OpenBSC     |     |     |     |        |         |     | GSM   |
 |  |  |  | (osmo-nitb) |<-------------------------+   BTS   |     | phone |
 |  |  |  |             |     |     |     |        |         |     |       |
 |  |  |  +-------------+     |     |     |        |         |     |       |
 |  |  |                      |     |     |        |         |     |       |
 |  |  +----------------------+     |     |        +---------+     +-------+
 |  |                               |     |
 |  +-------------------------------+     |
 |                                        |
 +----------------------------------------+

BTS was comprised of Fairwaves UmSITE hardware and OsmoBTS software.

Note: OpenBSC runs perfectly fine inside UmSITE computer, alongside OsmoBTS. But OpenBSC could control several BTSes. Additionally, the above configuration is convenient during development.

Run and enter Vagrant VM

(skip if running Ubuntu natively)

env BRIDGED_NETWORK=no vagrant up
vagrant ssh
cd /vagrant

Build Docker image

docker build -rm -t shamrin/osmonitb .

Reboot Vagrant VM

(skip if running Ubuntu natively)

Reboot the VM and run ifconfig to check Docker host IP address:

exit
vagrant halt
vagrant up --no-provision # with bridged network
vagrant ssh
ifconfig

Note: VM directly connects (via bridge) to the same network as your host, so make sure you can trust your network.

Run Docker container

docker run -v $HOME/db:/var/db -i -t -p 3002:3002 -p 3003:3003 -p 30000:30000/udp -p 30001:30001/udp -p 30002:30002/udp -p 30003:30003/udp -p 30004:30004/udp -p 30005:30005/udp -p 30006:30006/udp -p 30007:30007/udp -p 30008:30008/udp -p 30009:30009/udp -p 30010:30010/udp -p 30011:30011/udp -p 30012:30012/udp shamrin/osmonitb start-nitb -i 10.0.0.10 GSM1800 10 20

Replace 10.0.0.10 with the IP address of Docker host, GSM1800 with the band you use, 10 and 20 with your ARFCNs (run ... start-nitb -h for help).

Note: Docker doesn't support port ranges yet, that's why (RTP) ports has to be all specified one by one. Add ports to support more phone calls.

Configure OsmoBTS

Set oml remote-ip in OsmoBTS config to point to OpenBSC IP address (the same as above) and make sure OsmoBTS IP is reachable. E.g.:

oml remote-ip 10.0.0.10
rtp bind-ip 0.0.0.0

Your personal GSM network is now ready!

Note: run either in faraday cage or with proper licenses.

Attach to running container

docker ps --no-trunc # note full container ID
sudo lxc-attach -n FULL_CONTAINER_ID
telnet localhost 4242 # OpenBSC VTY

osmonitb-docker's People

Contributors

shamrin avatar

Watchers

 avatar

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.