You are previewing Getting Started with OpenBTS.
O'Reilly logo
Getting Started with OpenBTS

Book Description

Deploy your own private mobile network with OpenBTS, the open source software project that converts between the GSM and UMTS wireless radio interface and open IP protocols. With this hands-on, step-by-step guide, you’ll learn how to use OpenBTS to construct simple, flexible, and inexpensive mobile networks with software.

OpenBTS can distribute any internet connection as a mobile network across a large geographic region, and provide connectivity to remote devices in the Internet of Things. Ideal for telecom and software engineers new to this technology, this book helps you build a basic OpenBTS network with voice and SMS services and data capabilities. From there, you can create your own niche product or experimental feature.

  • Select hardware, and set up a base operating system for your project
  • Configure, troubleshoot, and use performance-tuning techniques
  • Expand to a true multinode mobile network complete with Mobility and Handover
  • Add general packet radio service (GPRS) data connectivity, ideal for IoT devices
  • Build applications on top of the OpenBTS NodeManager control and event APIs

Table of Contents

  1. Foreword
  2. Introduction
    1. Who Should Read This Book
    2. Why I Wrote This Book
    3. A Word on Mobile Networks Today
    4. Navigating This Book
    5. Online Resources
    6. Conventions Used in This Book
    7. Safari® Books Online
    8. How to Contact Us
    9. Acknowledgments
  3. 1. Getting Set Up
    1. Hardware Components
      1. Linux Server
      2. Software Defined Radio
      3. Antennas
      4. Test Phones
      5. Test SIMs
        1. Using spare SIMs
        2. DIY SIMs
        3. Batch SIMs
        4. Full-size versus micro versus nano
    2. Operating System and Development Environment Setup
      1. Git Compatibility
      2. Downloading the Code
      3. Building the Code
    3. Installation
      1. Installing Dependencies
        1. Coredumper library
        2. A5/3 library
      2. Installing Components
        1. System configs
        2. Asterisk
        3. SIPAuthServe
        4. SMQueue
        5. OpenBTS
      3. Starting/Stopping Components
  4. 2. Initial Testing and Configuration
    1. Initial State
    2. Confirm Radio Connectivity
      1. Ettus Research Radios
      2. Range Networks Radios
      3. Troubleshooting USB
      4. Troubleshooting Ethernet
    3. Starting Up the Network
      1. The Configuration System and CLI
      2. Changing the Band and ARFCN
      3. Range Networks Radio Calibration
      4. Ettus Research Radio Calibration
    4. Searching for the Network
    5. Testing Radio Frequency Environment Factors
      1. Reducing Noise
        1. Antenna alignment
        2. Downlink transmission power
      2. Boosting Handset Power
    6. First Connection
      1. Finding the IMSI
      2. Finding the IMEI
      3. Adding a Subscriber
      4. Connecting
    7. Test SMS
      1. Echo SMS (411)
      2. Direct SMS
      3. Two-Party SMS
    8. Test Calls
      1. Test Tone Call (2602)
      2. Echo Call (2600)
      3. Two-Party Call
      4. Measuring Link Quality
    9. Configuration System, Continued
      1. config
      2. devconfig
      3. rawconfig
      4. unconfig
      5. rmconfig
    10. Personalizing Your Network
      1. Shortname
      2. Registration Messages
  5. 3. Troubleshooting and Performance Tuning
    1. The stats Command
    2. Runtime Logs
      1. Log Levels
    3. Environmental Tuning
      1. Nonsubscriber Phones
      2. Coverage Area
        1. Shrinking physically
        2. Shrinking by policy
      3. Signal Distortion
    4. Stronger, Cleaner Signals
  6. 4. From Single to Multinode
    1. Mobility, Handover, and Roaming
      1. Mobility
      2. Handover
      3. Roaming
    2. Topology
    3. Central Services Setup
      1. Remove OpenBTS
      2. Configure Logging
      3. Asterisk, SMQueue, and SIPAuthServe
    4. Tower Setup
      1. Configure SIP Proxies
      2. Configure Logging
      3. Topology Reworked
    5. Adding Neighboring Towers
      1. Must Be Identical
        1. Step-by-step
      2. Must Be Unique
        1. Step-by-step
      3. Neighbor List and Command
      4. Neighbor-Enabled Commands
    6. Coverage Overlap Tuning
  7. 5. GPRS
    1. Enabling/Disabling
    2. Central Services
    3. Connecting
    4. Troubleshooting
    5. Performance Tuning
      1. Voice versus GPRS
      2. Individual Handset Throughput
      3. Coverage Area versus Throughput
    6. Expectations
  8. 6. OpenRegistration
    1. Enabling
    2. Personalizing
    3. Disabling
  9. 7. NodeManager APIs
    1. nmcli.py
    2. Version API
    3. Configuration API
      1. Read All Keys
      2. Read One Key
      3. Update
    4. PhysicalStatus API
  10. 8. Onward and Upward
    1. Connecting to the Outside World
      1. Voice
      2. SMS
    2. Spectrum Regulation
    3. Switch Integrations
    4. 3G Data
    5. Open Source Hardware
    6. The Community
    7. The Revolution
  11. A. Quick Reference
    1. GSM Hierarchy
    2. Decibels and Decibel Milliwatts
    3. Network Ports
    4. File Paths
  12. B. Operating System Installation
    1. Downloading and Preparing the Boot Media
    2. Starting the Installation
    3. Configuring the Installation
    4. Adding the OpenBTS User
    5. Network Configuration and Autodetection
    6. Configuring the Disk
    7. Base Software and Updates
    8. Finishing the Installation
    9. First Login
      1. SSH
  13. C. Capturing Traffic
    1. IP Traffic
    2. GSM Traffic
  14. Glossary
  15. Index
  16. Colophon
  17. Copyright