Local Call Local Switch » History » Version 7
laforge, 05/28/2018 11:34 PM
1 | 5 | laforge | {{>toc}} |
---|---|---|---|
2 | |||
3 | 1 | laforge | h1. Local Call Local Switch |
4 | |||
5 | In the classic 3GPP architecture, all calls go from BTS to BSC to MSC, only then to go back all the same way in case the second call leg is also in the same cell. Particularly in case of statellite or other expensive/slow back-haul this is far from ideal. |
||
6 | |||
7 | Using LCLS, a BSC can know which of the two call legs belong to one call, and can then directly bridge the RTP/media locally. |
||
8 | |||
9 | 4 | laforge | h2. Affected messages |
10 | |||
11 | h3. BSSMAP ASSIGNMENT REQUEST |
||
12 | |||
13 | This message may contain the following, LCLS related IEs: |
||
14 | * Global Call Reference |
||
15 | * LCLS Configuration |
||
16 | * LCLS Connection Status Control |
||
17 | * LCLS Correlation Not Needed |
||
18 | |||
19 | Using those LCLS related IEs, the MSC can grant the BSS to elect to use LCLS for this call [leg]. |
||
20 | |||
21 | h3. BSSMAP ASSIGNMENT COMPLETE |
||
22 | |||
23 | * LCLS BSS Status |
||
24 | |||
25 | Using this, the BSC can inform the MSC on whether or not LCLS was enabled. |
||
26 | |||
27 | h3. BSSMAP HANDOVER REQUEST |
||
28 | |||
29 | 6 | laforge | * Global Call Reference |
30 | 4 | laforge | * LCLS Configuration |
31 | * LCLS Connection Status Control |
||
32 | |||
33 | Request from MSC to target BSC. The MSC specifies which kind of LCLS (if any) is permitted and/or requested. |
||
34 | |||
35 | h3. BSSMAP HANDOVER REQUEST ACK |
||
36 | |||
37 | * LCLS BSS Status |
||
38 | |||
39 | Acknowledgement from targe BSC to MSC in response to a @BSSMAP HANDOVER REQUEST@. |
||
40 | The LCLS BSS Status contains the [possibly modified] LCLS status for the call. |
||
41 | |||
42 | h3. BSSMAP HANDOVER COMPLETE |
||
43 | |||
44 | * LCLS BSS Status |
||
45 | |||
46 | Informs the MSC that the MS has successfully accessed the target cell. The LCLS BSS Status contains the [possibly modified] LCLS status for the call. |
||
47 | |||
48 | h3. BSSMAP HANDOVER PERFORMED |
||
49 | |||
50 | * LCLS BSS Status |
||
51 | |||
52 | unilateral notification from BSC to MSC about an internal (intra-BSC) hand-over having been performed. The LCLS BSS Status contains the [possibly modified] LCLS status for the call. |
||
53 | |||
54 | h3. BSSMAP INTERNAL HANDOVER CMD |
||
55 | |||
56 | * LCLS Connection Status Control |
||
57 | |||
58 | This is sent in AoIP from MSC to BSC in response to am earlier @BSMAP INTERNAL HANDOVER REQUIRED@. We don't implement this in OsmoBSC. |
||
59 | |||
60 | h3. BSSMAP LCLS CONNECT CONTROL |
||
61 | |||
62 | * LCLS Configuration |
||
63 | * LCLS Connection Status Control |
||
64 | |||
65 | Sent by MSC to BSC in order to change the configuration/permission of LCLS during an ongoing call. |
||
66 | |||
67 | h3. BSSMAP LCLS CONNET CONTROL ACK |
||
68 | |||
69 | * LCLS BSS Status |
||
70 | |||
71 | Sent by BSC to MSC in response to a @BSSMAP LCLS CONNECT CONTROL@, indicating the [possibly updated] LCLS status. |
||
72 | |||
73 | h3. BSSMAP LCLS NOTIFICATION |
||
74 | |||
75 | * LCLS BSS Status |
||
76 | * LCLS Break Request |
||
77 | |||
78 | This message is sent from the BSC to the MSC to inform it about some changes in the LCLS status. This could e.g. be the case after a BSS-internal hand-over where the new BTS/channel doesn't support LCLS. |
||
79 | |||
80 | 7 | laforge | h2. Implementation Ideas |
81 | |||
82 | h3. Information storage |
||
83 | |||
84 | Each @bsc_subscr_conn@ should contain |
||
85 | * uint8_t lcls_config (4 bit field + presence 1/0) |
||
86 | * uint8_t lcls_csc (4 bit field + presence 1/0) |
||
87 | * uint8_t gcr[15] |
||
88 | * uint8_t gcr_len; |
||
89 | |||
90 | Every time we receive LCLS CFG or CSC, we have to update this state in the @bsc_subscr_conn@ and (as needed) change the user plane switching via MGCP |
||
91 | |||
92 | |||
93 | h3. check_and_enable_lcls() |
||
94 | |||
95 | # does own CFG + CSC permit LCLS? |
||
96 | # do we have another call with same Global Call ID? |
||
97 | # does other leg CFG + CSC permit LCLS? |
||
98 | #* activate LCLS, update state variables |
||
99 | #* send NOTIFY for other leg to MSC |
||
100 | |||
101 | h3. MGW bits |
||
102 | |||
103 | h4. LCLS_CFG_both_way |
||
104 | |||
105 | the easiest option: connect own MGCP EP to other MGCP EP |
||
106 | * requires MGCP MDCX on our side + other side |
||
107 | |||
108 | h4. LCLS_CFG_both_way_and_bicast_UL |
||
109 | |||
110 | h4. LCLS_CFG_both_way_and_send_DL |
||
111 | |||
112 | h4. LCLS_CFG_both_way_and_send_DL_block_local_DL |
||
113 | |||
114 | * connect other MGCP EP to local MGCP EP (using MDCX) |
||
115 | * switch other MGCP EP into recvonly mode, discarding whatever it sends |
||
116 | * TBD |
||
117 | |||
118 | h4. LCLS_CFG_both_way_and_bicast_UL_send_DL |
||
119 | |||
120 | * TBD |
||
121 | |||
122 | h4. LCLS_CFG_both_way_and_bicast_UL_send_DL_block_local_DL |
||
123 | |||
124 | * TBD |
||
125 | |||
126 | 1 | laforge | h2. Spec references |
127 | |||
128 | * http://www.3gpp.org/DynaReport/23284.htm |
||
129 | 2 | laforge | ** "3GPP TS 23.284 Rel 14":http://www.etsi.org/deliver/etsi_ts/123200_123299/123284/14.00.00_60/ts_123284v140000p.pdf |
130 | 1 | laforge | * http://www.3gpp.org/DynaReport/WiCr--440021.htm |
131 | * http://www.3gpp.org/DynaReport/WiCr--430001.htm |
||
132 | 3 | laforge | |
133 | h2. Other references |
||
134 | |||
135 | * OsmoDevCon 2018 video: https://media.ccc.de/v/DVE7UU |
||
136 | * OsmoDevCon 2018 slides: https://pretalx.sysmocom.de/media/osmodevcon2018-lcls.pdf |