# MO-Call with OsmoBTS + OsmoBSC with true 3GPP AoIP msc { hscale=2; ms [label="MS"], bts [label="OsmoBTS\n1.1.1.1"], bsc[label="OsmoBSC"], mgcp[label="OsmoMGW@BSC\n3.3.3.3"], m_sc[label="MSC"], mgw_m[label="MGW@MSC\n5.5.5.5"]; 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"]; m_sc -> mgw_m [label="Request allocation of local RTP port"]; m_sc <- mgw_m [label="Respond with RTP port the MGW bound to (5.5.5.5:4000)"]; bsc <- m_sc [label="BSSAP ASSIGN REQ (3GPP AoIP, CN RTP IP/Port 5.5.5.5:4000)"]; bts <- bsc [label="RSL CHAN ACT (TCH)"]; bts -> bsc [label="RSL CHAN ACT ACK"]; ms <-> bsc [label="RR Assignment of TCH"]; ...; # connect BTS RTP with BSC-MGW RTP bts <- bsc [label="IPA CRCX"]; bts box bts [label="Bind to BTS-local RTP Port (1.1.1.1:1000)"]; bts -> bsc [label="IPA CRCX ACK (1.1.1.1:1000)"]; bsc -> mgcp [label="MGCP CRCX rtpbridge/2@mgw (1.1.1.1:1000)"]; mgcp box mgcp [label="Bind to MGW-local RTP Port (3.3.3.3:2000)\nConnect to 1.1.1.1:1000"]; bsc <- mgcp [label="MGCP CRCX rtpbridge/2@mgw OK (3.3.3.3:2000)"]; bts <- bsc [label="IPA MDCX (3.3.3.3:2000)"]; bts box bts [label="Connect RTP socket to remote (MGW) RTP Port"]; bts -> bsc [label="IPA MDCX ACK"]; bsc -> mgcp [label="MGCP MDCX rtpbridge/2@mgw (optional)"]; bsc <- mgcp [label="MGCP MDCX rtpbridge/2@mgw OK (optional)"]; ...; mgcp <- bsc [label="MGCP CRCX rtpbridge/2@mgw (5.5.5.5:4000)"]; mgcp box mgcp [label="Bind to MGW-local RTP Port (3.3.3.3:3000)\nConnect to 5.5.5.5:4000"]; mgcp -> bsc [label="MGCP CRCX rtpbridge/2@mgw OK (3.3.3.3:3000)"]; ...; bsc -> m_sc [label="BSSAP ASSIGN CMPL (3GPP AoIP 3.3.3.3:3000)"]; m_sc -> mgw_m [label="Request MGW to connect RTP to remote endpoint 3.3.3.3:3000"]; mgw_m box mgw_m [label="Connect RTP to 3.3.3.3:3000"]; ...; mgcp <=> mgw_m [label="RTP Audio 3.3.3.3:3000 5.5.5.5:4000"]; bts <=> mgcp [label="RTP Audio 1.1.1.1:1000 3.3.3.3:2000"]; ms <=> bts [label="Um Audio (bidirectional)"]; ms <-> m_sc [label="DTAP CC ALERTING"]; ...; ms <- m_sc [label="DTAP CC CONNECT"]; ms -> m_sc [label="DTAP CC CONNECT ACK"]; --- [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"]; m_sc -> mgw_m [label="Request release RTP port/termination"]; mgw_m box mgw_m [label="Release RTP port 5.5.5.5:4000"]; bsc -> m_sc [label="BSSMAP CLEAR COMPL"]; bsc <- m_sc [label="SCCP RLSD"]; bsc -> m_sc [label="SCCP RLC"]; ...; mgcp <- bsc [label="MGCP DLCX rtpbridge/2@mgw"]; mgcp box mgcp [label="Release MSC-facing local RTP port (3.3.3.3:3000)"]; mgcp -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK"]; mgcp <- bsc [label="MGCP DLCX rtpbridge/2@mgw"]; mgcp box mgcp [label="Release BTS-facing local RTP port (3.3.3.3:2000)"]; mgcp -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK"]; bts <- bsc [label="IPA DLCX"]; bts box bts [label="Release BTS-local RTP port (1.1.1.1:1000)"]; bts -> bsc [label="IPA DLCX OK"]; }