Harald Welte | 3a6ad2a | 2017-12-21 20:57:27 +0100 | [diff] [blame] | 1 | msc { |
| 2 | hscale=2; |
| 3 | ms [label="MS"], |
| 4 | bts [label="BTS"], |
| 5 | bsc_l [label="BSC(lchan SDCCH)"], |
| 6 | bsc_l2 [label="BSC(lchan TCH)"], |
| 7 | bsc [label="BSC"], |
| 8 | mgw [label="MGW@BSC"], |
| 9 | m_sc [label="MSC"]; |
| 10 | |
| 11 | ...; |
| 12 | --- [label="MS Requests dedicated channel"]; |
| 13 | ms -> bts [label="RACH: REQ"]; |
| 14 | bts -> bsc [label="RSL Cchan CHAN RQD"]; |
| 15 | bsc_l <= bsc [label="allocate lchan (RR IMM ASS)", textcolor="red", linecolor="red"]; |
| 16 | bts <- bsc_l [label="RSL Dchan (SDCCH) CHAN ACT"]; |
| 17 | bts -> bsc_l [label="RSL Dchan (SDCCH) CHAN ACT ACK"]; |
| 18 | bts <- bsc_l [label="RSL Cchan IMM ASS (RR IMM ASS)"]; |
| 19 | bsc_l box bsc_l [label="Start T3101"]; |
| 20 | ms <- bts [label="AGCH: RR IMM ASS"]; |
| 21 | --- [label="MS Establishes SDCCH"]; |
| 22 | ms -> bts [label="SDCCH: SABM (CM SERV REQ)"]; |
| 23 | ms <- bts [label="SDCCH: UA (CM SERV REQ)"]; |
| 24 | bts -> bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) EST IND", textcolor="green", linecolor="green"]; |
| 25 | bsc_l box bsc_l [label="Stop T3101"]; |
| 26 | bsc_l => bsc [label="GSCON_EV_A_CONN_REQ", textcolor="red", linecolor="red"]; |
| 27 | bsc -> m_sc [label="SCCP CR (BSSMAP COMPL L3 (CM SERV REQ))"]; |
| 28 | bsc <- m_sc [label="SCCP CC"]; |
| 29 | bsc -> bsc [label="GSCON_EV_A_CONN_CFM", textcolor="red", linecolor="red"]; |
| 30 | ms box m_sc [label="Authentication, MM info, ..."]; |
| 31 | bsc <- m_sc [label="SCCP DT1 (DTAP (CM SERV ACK)"]; |
| 32 | bsc -> bsc [label="GSCON_EV_MT_DTAP", textcolor="red", linecolor="red"]; |
| 33 | bsc_l <= bsc [label="lchan_submit_dtap(CM SERV ACK)", textcolor="red", linecolor="red"]; |
| 34 | bts <- bsc_l [label="RSL RLL (SDCCH) DATA REQ (CM SERV ACK)", textcolor="green", linecolor="green"]; |
| 35 | ms <- bts [label="SDCCH: I (CM SERV ACK)"]; |
| 36 | ms -> bts [label="SDCCH: I (CC SETUP)"]; |
| 37 | bts -> bsc_l [label="RSL RLL (SDCCH) DATA IND (CC SETUP)", textcolor="green", linecolor="green"]; |
| 38 | bsc_l -> bsc [label="GSCON_EV_MO_DTAP", textcolor="red", linecolor="red"]; |
| 39 | bsc -> m_sc [label="SCCP DT1 (DTAP (CC SETUP))"]; |
| 40 | ...; |
| 41 | |
| 42 | --- [label="MSC assigns Voice Channel (TCH)"]; |
| 43 | bsc <- m_sc [label="SCCP DT1 (BSSMAP ASSIGNMENT CMD)"]; |
| 44 | bsc -> bsc [label="GSCON_EV_A_ASSIGNMENT_CMD", textcolor="red", linecolor="red"]; |
| 45 | bsc_l2 <= bsc [label="allocate lchan", textcolor="red", linecolor="red"]; |
| 46 | bts <- bsc_l2 [label="RSL Dchan (TCH) CHAN ACT"]; |
| 47 | bts -> bsc_l2 [label="RSL Dchan (TCH) CHAN ACT ACK"]; |
| 48 | bts <- bsc_l [label="RSL RLL (SDDCH) DATA REQ (RR ASSIGNMENT CMD)", textcolor="green", |
| 49 | linecolor="green"]; |
| 50 | bsc_l2 box bsc_l2 [label="Start T3107"]; |
| 51 | ms <- bts [label="SDCCH: I (RR ASSIGNMENT CMD)"]; |
| 52 | ms box ms [label="local-end RLL release", textcolor="green", linecolor="green"]; |
| 53 | bts -> bsc_l [label="RSL RLL (SDCCH) REL IND", textcolor="gray", linecolor="green"]; |
| 54 | bsc_l => bsc [label="GSCON_EV_RLL_REL_IND", textcolor="gray", linecolor="red"]; |
| 55 | bts -> bsc_l [label="RSL Dchan (SDCCH) CONN FAIL IND", textcolor="gray", linecolor="green"]; |
| 56 | bsc_l => bsc [label="GSCON_EV_CONN_FAIL", textcolor="gray", linecolor="red"]; |
| 57 | bsc_l box bsc_l [label="BSC must ignore failures on old channel"]; |
| 58 | ms -> bts [label="TCH: SABM (RR ASSIGNMENT CMPL)"]; |
| 59 | ms <- bts [label="TCH: UA (RR ASSIGNMENT CMPL)"]; |
| 60 | bts -> bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) EST IND", textcolor="green", linecolor="green"]; |
| 61 | bsc_l2 box bsc_l2 [label="Stop T3107"]; |
| 62 | bsc_l2 => bsc [label="GSCON_EV_RR_ASS_COMPL", textcolor="red", linecolor="red"]; |
| 63 | |
| 64 | bsc_l <= bsc [label="release_lchan(SDCCH)", textcolor="red", linecolor="red"]; |
| 65 | bts box bsc_l [label="local-end RLL release", textcolor="green", linecolor="green"]; |
| 66 | bts <- bsc_l [label="RSL Dchan (SDCCH) RF CHAN REL"]; |
| 67 | bts <- bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) REL REQ", textcolor="gray", linecolor="green"]; |
| 68 | bts <- bsc_l [label="RSL DChan (SDCCH) DEACTIVATE SACCH", textcolor="gray", linecolor="black"]; |
| 69 | bts -> bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) RF FAIL IND", textcolor="gray", linecolor="green"]; |
| 70 | bts -> bsc_l [label="RSL Dchan (SDCCH, SAPI0, DCCH) RF CHAN REL ACK"]; |
| 71 | |
| 72 | # connect BTS RTP with BSC-MGW RTP |
| 73 | --- [label="BSC configures RTP on BTS and both sides of MGW"]; |
| 74 | bts <- bsc [label="RSL IPA CRCX", textcolor="blue", linecolor="blue"]; |
| 75 | bts box bts [label="Bind to BTS-local RTP Port (1000)", textcolor="blue", linecolor="blue"]; |
| 76 | bts -> bsc [label="IPA CRCX ACK (BTS:1000)", textcolor="blue", linecolor="blue"]; |
| 77 | bsc -> mgw [label="MGCP CRCX rtpbridge/2@mgw (BTS:1000)", textcolor="blue", linecolor="blue"]; |
| 78 | mgw box mgw [label="Bind to MGW-local RTP Port (2000)\nConnect to BTS:1000", textcolor="blue", linecolor="blue"]; |
| 79 | bsc <- mgw [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:2000)", textcolor="blue", linecolor="blue"]; |
| 80 | bts <- bsc [label="IPA MDCX (MGW:2000)", textcolor="blue", linecolor="blue"]; |
| 81 | bts box bts [label="Connect RTP socket to remote (MGW) RTP Port", textcolor="blue", linecolor="blue"]; |
| 82 | bts -> bsc [label="IPA MDCX ACK", textcolor="blue", linecolor="blue"]; |
| 83 | bsc >> mgw [label="MGCP MDCX rtpbridge/2@mgw", textcolor="gray", linecolor="gray"]; |
| 84 | bsc << mgw [label="MGCP MDCX rtpbridge/2@mgw OK", textcolor="gray", linecolor="gray"]; |
| 85 | ...; |
| 86 | |
| 87 | --- [label="BSC finally can report successful TCH assignment"]; |
| 88 | bsc -> m_sc [label="SCCP DT1 (BSSMAP ASSGN CMPL (3GPP AoIP MGW:3000))"]; |
| 89 | m_sc box m_sc [label="Connect remote RTP to MGW addr from ASSGN CMPL"]; |
| 90 | ...; |
| 91 | |
| 92 | mgw <-> m_sc [label="RTP Audio MGW:3000 MSC:4000", textcolor="blue", linecolor="blue"]; |
| 93 | bts <-> mgw [label="RTP Audio BTS:1000 MGW:2000", textcolor="blue", linecolor="blue"]; |
| 94 | ms <-> bts [label="Um Audio (bidirectional)", textcolor="blue", linecolor="blue"]; |
| 95 | ms <-> m_sc [label="DTAP CC ALERTING"]; |
| 96 | ...; |
| 97 | |
| 98 | --- [label="Further signalling in parallel with RTP (simplified)"]; |
| 99 | ms <- m_sc [label="DTAP CC CONNECT"]; |
| 100 | ms -> m_sc [label="DTAP CC CONNECT ACK"]; |
| 101 | --- [label="Voice Call in Progress"]; |
| 102 | ...; |
| 103 | --- [label="B-end hangs up"]; |
| 104 | ms <- m_sc [label="DTAP CC DISCONNET"]; |
| 105 | ms <- m_sc [label="DTAP CC RELEASE"]; |
| 106 | ms <- m_sc [label="DTAP CC RELEASE COMPL"]; |
| 107 | ...; |
| 108 | bsc <- m_sc [label="SCCP DT1 (BSSMAP CLEAR CMD)"]; |
| 109 | bsc -> bsc [label="GSCON_EV_A_CLEAR_CMD", textcolor="red", linecolor="red"]; |
| 110 | --- [label="BSC must release terrestrial resoures before reporting CLEAR COMPLETE"]; |
| 111 | mgw <- bsc [label="MGCP DLCX rtpbridge/2@mgw", textcolor="blue", linecolor="blue"]; |
| 112 | mgw box mgw [label="Release MSC-facing local RTP port (3000)", textcolor="blue", linecolor="blue"]; |
| 113 | mgw -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK", textcolor="blue", linecolor="blue"]; |
| 114 | |
| 115 | mgw <- bsc [label="MGCP DLCX rtpbridge/2@mgw", textcolor="blue", linecolor="blue"]; |
| 116 | mgw box mgw [label="Release BTS-facing local RTP port (2000)", textcolor="blue", linecolor="blue"]; |
| 117 | mgw -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK", textcolor="blue", linecolor="blue"]; |
| 118 | |
| 119 | bts <- bsc [label="IPA DLCX", textcolor="blue", linecolor="blue"]; |
| 120 | bts box bts [label="Release BTS-local RTP port (1000)", textcolor="blue", linecolor="blue"]; |
| 121 | bts -> bsc [label="IPA DLCX OK", textcolor="blue", linecolor="blue"]; |
| 122 | |
| 123 | bsc -> bsc [label="GSCON_EV_RSL_CLEAR_COMPL", textcolor="red", linecolor="red"]; |
| 124 | bsc -> m_sc [label="SCCP DT1 (BSSMAP CLEAR COMPL)"]; |
| 125 | bsc <- m_sc [label="SCCP RLSD"]; |
| 126 | bsc -> bsc [label="GSCON_EV_A_DISC_IND", textcolor="red", linecolor="red"]; |
| 127 | bsc -> m_sc [label="SCCP RLC"]; |
| 128 | |
| 129 | --- [label="BSC releases radio resources after CLEAR COMPLETE"]; |
| 130 | bsc_l2 <= bsc [label="release_lchan(TCH)", textcolor="red", linecolor="red"]; |
| 131 | bts <- bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) DATA REQ (RR CHANNEL RELEASE)", textcolor="green", linecolor="green"]; |
| 132 | bsc_l2 box bsc_l2 [label="Start T3109"]; |
| 133 | bts <- bsc_l2 [label="RSL Dchan (TCH) DEACTIVATE SACCH"]; |
| 134 | ms <- bts [label="TCH: I (RR CHANNEL RELEASE)"]; |
| 135 | ms -> bts [label="TCH: DISC (RR CHANNEL RELEASE)"]; |
| 136 | bts -> bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) REL IND", textcolor="green", linecolor="green"]; |
| 137 | bsc_l2 => bsc [label="GSCON_EV_RLL_REL_IND", textcolor="red", linecolor="red"]; |
| 138 | bsc_l2 box bsc_l2 [label="Stop T3109; Start T3111"]; |
| 139 | # optional: Conn Fail? |
| 140 | bts <- bsc_l2 [label="RSL Dchan (TCH, SAPI0, DCCH) RF CHAN REL"]; |
| 141 | bts -> bsc_l2 [label="RSL Dchan (TCH, SAPI0, DCCH) RF CHAN REL ACK"]; |
| 142 | bsc_l2 box bsc_l2 [label="T3111 timeout: Channel can be used again"]; |
| 143 | |
| 144 | ...; |
| 145 | |
| 146 | } |