do not invoke two Assignments (fixup for re-assignment)

Make sure we wait for Assignment responses before dispatching an
Assignment Request towards RAN.

In particular, when the remote call leg sends its codecs, we may trigger
Re-Assignment to match that codec. Make sure this is done only once:
when receiving another SDP message, wait for the first Assignment.

Implement as an osmo_timer, since there still is no osmo_fsm
implementation for Assignment nor for CC trans FSM. Also it doesn't
belong in the msc_a FSM (it should remain in state COMMUNICATING).

Without this patch, new ttcn3 test TC_lu_and_mo_call_reass_for_mt_codec
sporadically fails, if MNCC with SDP falls in-between Assignment Request
and Assignment Complete.

Related: osmo-msc d767c73a1f93253a54d6a8650a4cf2143353bba0 == I8760feaa8598047369ef8c3ab2673013bac8ac8a
Related: osmo-ttcn3-hacks I402ed0523a2a87b83f29c5577b2c828102005d53
Change-Id: I0f1e1a551aed545b555b9f236fc5967b1e4cc940
4 files changed
tree: 7444c8bfda94fd96f4a66bfbfc7645a370a6b3c2
  1. .github/
  2. contrib/
  3. debian/
  4. doc/
  5. include/
  6. m4/
  7. src/
  8. tests/
  9. .gitignore
  10. .gitreview
  11. .mailmap
  12. AUTHORS
  13. configure.ac
  14. COPYING
  15. git-version-gen
  16. Makefile.am
  17. osmoappdesc.py
  18. README.md
  19. README.vty-tests
  20. TODO-RELEASE
README.md

osmo-msc - Osmocom MSC Implementation

This repository contains a C-language implementation of a GSM Mobile Switching Centre (MSC) for 2G (GSM) and 3G (UMTS). It is part of the Osmocom Open Source Mobile Communications project.

OsmoMSC exposes

  • A over IP towards BSCs (e.g. osmo-bsc: 3GPP AoIP or SCCPlite
  • IuCS over IP towards RNCs / HNBGW (e.g. osmo-hnbgw)
  • MGCP towards a co-located osmo-mgw for the RTP streams
  • GSUP (instead of 3GPP MAP) towards osmo-hlr
  • SMPP towards any external SMS sending/receiving applications
  • MNCC as external call-control interface towards e.g. osmo-sip-connectr
  • The Osmocom typical telnet VTY and CTRL interfaces.
  • The Osmocom typical statsd exporter.

OsmoMSC implements

  • mobility management
  • call control (either via built-in MNCC handler or external osmo-sip-connector)
  • voice group call (VGCS) and voice broadcast calls (VBS) as used in GSM-R
  • USSD (exposed via GSUP)
  • SMS (either via built-in SMSC or external via GSUP)

Homepage

You can find the OsmoMSC home page and wiki online at https://osmocom.org/projects/osmomsc/wiki.

GIT Repository

You can clone from the official osmo-msc.git repository using

    git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-msc

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-msc

Documentation

User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.

Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY Reference Manual

Forum

We welcome any osmo-msc related discussions in the Cellular Network Infrastructure -> 2G/3G CN section of the osmocom discourse (web based Forum).

Mailing List

Discussions related to osmo-msc are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Issue Tracker

We use the issue tracker of the osmo-msc project on osmocom.org for tracking the state of bug reports and feature requests. Feel free to submit any issues you may find, or help us out by resolving existing issues.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We use a Gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-msc can be seen at https://gerrit.osmocom.org/#/q/project:osmo-msc+status:open

History

OsmoMSC originated from the OsmoNITB project, which started as a minimalistic all-in-one implementation of the GSM Network. In 2017, OsmoNITB had reached maturity and diversity (including M3UA SIGTRAN and 3G support in the form of IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one approach to fully independent separate programs as in typical GSM networks.

OsmoMSC was one of the parts split off from the old openbsc.git.