blob: 4597ab126e4ff606152da425cd719bb5ec12b0cc [file] [log] [blame]
Harald Welte3a6ad2a2017-12-21 20:57:27 +01001msc {
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",
49linecolor="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}