# MO-Call with OsmoBTS + OsmoBSC using A/IP with IPA/SCCPlite # Supported since 2010 using osmo-bsc + osmo-bsc_nat msc { hscale=2; ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"]; ms box m_sc [label="We assume a SDCCH is already established"]; ...; ms -> m_sc [label="DTAP CC SETUP"]; ms <- m_sc [label="DTAP CC CALL PROCEEDING"]; bsc <- m_sc [label="BSSAP ASSIGN REQ"]; bts <- bsc [label="RSL CHAN ACT"]; bts -> bsc [label="RSL CHAN ACT ACK"]; ms <-> bsc [label="Assignment"]; bsc -> m_sc [label="BSSAP ASSIGN CMPL"]; ...; bts <- bsc [label="IPA CRCX"]; bts box bts [label="Bind to BSC-local RTP Port"]; bts -> bsc [label="IPA CRCX ACK"]; bts <- bsc [label="IPA MDCX"]; bts box bts [label="Connect RTP socket to remote (bsc_mgcp) RTP Port"]; bts -> bsc [label="IPA MDCX ACK"]; mgcp <- m_sc [label="MGCP CRCX 1@mgw"]; mgcp box mgcp [label="Bind to BTS-local RTP Port"]; mgcp -> m_sc [label="MGCP CRCX 1@mgw OK"]; mgcp <- m_sc [label="MGCP MDCX 1@mgw (recvonly) "]; mgcp box mgcp [label="Connect RTP socket to remote (MSC) RTP Port"]; mgcp -> m_sc [label="MGCP MDCX 1@mgw OK"]; mgcp <= m_sc [label="RTP Audio"]; bts <= mgcp [label="RTP Audio"]; ms <= bts [label="Um Audio (unidirectional)"]; ms <- m_sc [label="DTAP CC ALERTING"]; ...; mgcp <- m_sc [label="MGCP MDCX (sndrecv) "]; mgcp box mgcp [label="Switch to bi-directional audio"]; mgcp -> m_sc [label="MGCP MDCX OK"]; mgcp <=> m_sc [label="RTP Audio"]; bts <=> mgcp [label="RTP Audio"]; ms <=> bts [label="Um Audio (bidirectional)"]; ...; ms <- m_sc [label="DTAP CC CONNECT"]; ms -> m_sc [label="DTAP CC CONNECT ACK"]; mgcp <- m_sc [label="MGCP MDCX 1@mgw (sndrecv) "]; mgcp box mgcp [label="Why?"]; mgcp -> m_sc [label="MGCP MDCX 1@mgw OK"]; --- [label="Voice Call in Progress"]; ms <- m_sc [label="DTAP CC DISCONNET"]; ms <- m_sc [label="DTAP CC RELEASE"]; ms <- m_sc [label="DTAP CC RELEASE COMPL"]; ...; bsc <- m_sc [label="BSSMAP CLEAR CMD"]; bsc -> m_sc [label="BSSMAP CLEAR COMPL"]; bsc <- m_sc [label="SCCP RLSD"]; bsc -> m_sc [label="SCCP RLC"]; ...; mgcp <- m_sc [label="MGCP DLCX 1@mgw"]; mgcp box mgcp [label="Release local RTP port"]; mgcp -> m_sc [label="MGCP DLCX 1@mgw OK"]; }