include::{commondir}/chapters/osmux/osmux.adoc[] === Osmux Support in {program-name} ==== {program-name} in a A/IP with IPA/SCCPlite network setup In this kind of setup, the CN side of BSC co-located MGW is managed by the MSC, meaning the use of Osmux is transparent to BSC since MSC takes care of both peer MGW connections. Moreover, in this case the MSC has no dynamic information on Osmux support in the BSC co-located MGW until `CRCX` time, which means configuration on both nodes need to be carefully set up so they can work together. Osmux usage in {program-name} in managed through the VTY command `osmux (on|off|only)`. Since there's no dynamic information on Osmux support, it may be required in the future to have an extra VTY command which can be set per BSC to fine-tune which ones should use Osmux and which shouldn't. {program-name} will behave differently during call set up based on the VTY command presented above: * `off`: {program-name} won't include an `X-Osmux` extension to `CRCX` sent to the BSC co-located MGW when configuring the CN side of the MGW endpoint. If the MGW answers with a `CRCX ACK` containing an `X-Osmux`, {program-name} will cancel the call establishment. * `on`: {program-name} will initially configure its co-located MGW to use Osmux, then similarly send a `CRCX` with an `X-Osmux` extension towards the BSC co-located MGW. Under this configuration, if the BSC co-located MGW didn't support Osmux, it could send a `CRCX ACK` without `X-Osmux` extension or fail (depending on its own configuration), and {program-name} could choose to re-create its local connection as non-Osmux (RTP) (and possibly try again against BSC co-located MGW), but this behavior is currently not implemented. As a result, currently `on` behaves the same as `only`. * `only`: {program-name} will configure its co-located MGW as well as the BSC co-located MGW to use Osmux by including the `X-Osmux` MGCP extension. If MGW rejects to use Osmux, {program-name} will reject the call and the call establishment will fail. ==== {program-name} in a 3GPP AoIP network setup Osmux usage in {program-name} in managed through the VTY command `osmux (on|off|only)`. Once enabled (`on` or `only`), {program-name} will start appending the vendor specific _Osmux Support_ IE in _BSSMAP RESET_ and _BSSMAP RESET-ACK_ message towards the BSC in order to announce it supports Osmux, and BSC will do the same. This way, {program-name} can decide whether to use Osmux or not based on this information when setting up a call (this time using _Osmux CID_ IE). It should be noted that this option should not be enabled unless BSCs managed by {program-name} support handling this extension IE (like OsmoBSC), 3rd-party BSCs might otherwise refuse the related _RESET_/_RESET-ACK_ messages. {program-name} will behave differently during call set up based on the VTY command presented above: * `off`: {program-name} won't use Osmux. That is, it will send a _BSSMAP Assign Request_ without the _Osmux CID_ IE, and will send a `CRCX` without `X-Osmux` extension towards its co-located MGW. * `on`: If BSC announced Osmux support to {program-name} during _BSSMAP RESET_ time, then {program-name} will set up the call to use Osmux (by adding `X-Osmux` to MGCP `CRCX` and _Osmux CID_ IE to _BSSMAP Assign Request_). If the BSC didn't announce Osmux support to {program-name}, then {program-name} will use RTP to set up the call (by avoiding addition of previously described bits). * `only`: Same as per `on`, except that {program-name} will allow to set up only Osmux calls on the CN-side, this is, it will reject to set up voice calls for BSC which didn't announce Osmux support.