The universal SS7 Library

The Universal SS7 library is a set of open source libraries to process signalling system 7 messages as used in the GSM world and transported over IP (So called Sigtran family of protocols)

Universal SS7 consists of:

ulibUniversal Library abstracting general use things (config files, webserver, layer objects etc)
ulibdba libary to query MySQL Postgres and Redis databases
ulibasn1a library to make it easier to deal with ASN1 encoded objects
ulibsmppa library to deal with the SMPP protocol
ulibsctpa library to extend ulib with SCTP specific sockets
ulibm2paa library implementing the SS7 M2PA (MTP2 over IP) protocol
ulibmtp3a library implementing the SS7 MTP3 and M3UA protocols
ulibgta library implementing SS7 SCCP Global Title handling
ulibsccpa library implementing the SS7 SCCP protocol
ulibtcapa library implementing the SS7 TCAP protocol
ulibgsmmapa library implementing the SS7 GSM-MAP protocol
ulibsmsa library implementing SMS encoding/decoding functions

Related stuff

ulibdnsa library doing DNS functionality
schrittmachera system daemon for hot/standby configurations
schrittmacherclienta library for applications to implement a hot/standby mechanism
operatordba library to translate MNC/MCC into operator names

Install from Repository:

3.1 Add the repository key

wget -O - http://repo.universalss7.ch/debian/key.asc | apt-key add -

3.2 Add the repository

Debian 8 Jessie (amd64, armhf)
echo "deb http://repo.universalss7.ch/debian/ jessie universalss7" > /etc/apt/sources.list.d/universalss7.list
Debian 9 Stretch (amd64, armhf)
echo "deb http://repo.universalss7.ch/debian/ stretch universalss7" > /etc/apt/sources.list.d/universalss7.list
Ubuntu16 (amd64)
echo "deb http://repo.universalss7.ch/debian/ ubuntu16 universalss7" > /etc/apt/sources.list.d/universalss7.list

3.3 Checkout the binaries

apt-get install universalss7


The armhf architecture is used by the Raspberry Pi2 or Pi3 and many similar devices based on arm7. The release versions are currently being built on a very tiny Nano Pi NEO. The intel 32bit version is currently not being built due to no demand.

Building from Source

To build UniversalSS7 under Linux follow these instructions to build gnustep and ulib with Objective C ARC support. Especially to get libobjc2-1.8.1 correctly for support with arc is a bit tricky at times so I would recommend to use the prebuild packages for gnustep and libobjc downloadable from the release above. The ones in the official debian repository do not support ARC and thus will not work. The ones in our universalss7 repository of course will.

Then checkout all repositories above in the order above and do

sudo make install
on each of them. if you want debugging enabled, use
./configure --enable-debug

To build Universal SS7 under macOS, make sure /LibraryFrameworks can be written to from your user (it installs there by default). Furthermore load the SCTP Kernel driver for macOS Sierra.

Then checkout all repositories above in the order above and do

sudo make install
Alternatively you can open the xcode project file and build it from there (make for macOS in this case simply calls xcodebuild).

Current State of the project

The Release-1.8.0 branch is stable for use as SS7 endpoint.
Release 1.8.0's new features:

Plans for the next releases: