Possibility to route SMS messages over GSUP
At the moment there is only one way to route short messages between an Osmocom-based
network and some external entity (e.g. SMSC) - SMPP interface. It's implemented in
both OpenBSC and OsmoMSC, and can be optionally enabled during
the build configuration (using --enable-smpp).
The fundamental problem of SMPP is the need of transcoding between its primitives and
pretty complex SMS protocol. Moreover, in some cases this transcoding is not desired.
In commercial networks MAP (Mobile Application Part, see 3GPP TS 29.002) protocol is
used for forwarding MO/MT short messages between different network entities. There is
a special group of short message management services defined in MAP, see section 12.
The problem of MAP comes from the protocol stack it belongs to - SS7, its complexity.
Instead of SS7/MAP, Generic Subscriber Update Protocol (GSUP) is used in Osmocom CNI.
Basically GSUP is an Osmocom-specific non-standard protocol designed around the same
architecture as the MAP messages/operations, but without the complexity of SS7, and
without the need for ASN.1 encoding.
Implementing a possibility to route SMS messages over GSUP would facilitate the
integration of Osmocom CNI with third-party networks and components. In general,
this task would require us to replicate the SM-related messages and IEs in GSUP,
and to implement proper message forwarding in OsmoMSC.
Draft message sequence charts can be found here: https://gerrit.osmocom.org/10604/
- Extend libosmocore's GSUP implementation with SM-specific mesages and IEs
- Extend TTCN-3 library/GSUP_Types.ttcn with SM-specific mesages and IEs
- Extend the Wireshark dissector with SM-specific messages and IEs
- OsmoMSC: introduce kill-switch for routing SMS over GSUP
- OsmoMSC: forward MO SMS messages over GSUP
- OsmoMSC: accept MT SMS messages over GSUP
- TTCN-3: testing coverage for MO SMS / SMMA
- TTCN-3: testing coverage for MT SMS
- TTCN-3: test case for multi-part SMS
- Document the new SM-related GSUP extensions
- Add MSC diagrams to osmo-gsm-manuals
- OsmoMSC: properly handle MMS indication