Yesterday we've reached a remarkable milestone: the new OsmoMSC has first subscribed a 3G as well as a 2G phone at the same time!
Recall the recent big developments in Osmocom:
- creating OsmoHLR to manage subscribers asynchronously and across voice and data realms,
- separating an OsmoMSC off OsmoNITB,
- creating a true asynchronous state machine driven VLR in OsmoMSC,
- adding UMTS authentication with Milenage,
- supporting IuCS (and IuPS) to enable hNodeB driven 3G in Osmocom,
- and last but not least adding a true A interface to OsmoMSC using our brand new SCCP/M3UA impementation.
After this work has reached a stage where we can subscribe phones, send SMS and call each other using AoverIP and 3G separately, the remaining big step was to combine all of this in the new OsmoMSC: can we talk both A over IP to our separate OsmoBSC as well as IuCS via OsmoHNBGW to a 3G hNodeB, at the same time?
Some patches are still in the queue, but since yesterday, the answer is a resounding: Yes!
Typical for a software engineer's mindset, the joy of reaching this milestone is immediately followed by an outlook of what is left open:
- Split the current / legacy openbsc.git repository in separate new projects and lay the OsmoNITB to rest.
- Rename our MGCP gateway (osmo-bsc_mgcp) to OsmoMGW and teach it to transcode between TRAU frames, RTP and the 3G IuUP to facilitate voice calls between all of legacy BTS models using E1, our "current" 2G BTSes talking RTP over IP as well as 3G hNodeBs that encapsulate IuUP in RTP.
- Polish to production quality, update the docs and package for various platforms.
These are exciting times to be part of Osmocom: big changes are finally converging, to open up new horizons for FOSS driven cellular network technology.