3GPP LCLS (Local Call, Local Switch) ==================================== :author: Harald Welte :copyright: 2018 by Harald Welte (License: CC-BY-SA) :backend: slidy :max-width: 45em == Classic GSM User Plane * user plane joins signaling plane at all times * voice circuit between two phones in same BTS ** goes from BTS to BSC (Abis) where a BSC-colocated TRAU is located ** goes from BSC to MSC (A, typiclaly G.711)) ** returns from MSC to same BSC ** returns from same BSC to same BTS * this is of course far from optimal == Problems with classic approach * works great with low-latency, land-based/wired TDM network * works not well with remote sites connected via satellite (VSAT) ** maritime sector ** rural BTSs in areas where no other back-haul is available * various vendors have implemented proprietary solutions ** conveniently creating vendor lock-in == 3GPP LCLS to the rescue * official 3GPP standard appears to solve the problem in interoperable fashion * underlying principle quite simple: ** each call gets a _Global Call Reference_ on A inerface ** this allows BSC to identify two legs of same call ** this enables BSC to locally switch the user plane between such calls image::lcls-overview.png[width=100%] == 3GPP LCLS problem domains * early media / alerting phase * what about playback of voice announcements ("your prepaid account is low")? * what about lawful interception? * what about hand-over implications (intra-BSC, inter-BSC, inter-MSC, inter-RAT, ...)? == 3GPP LCLS early media image::lcls-conn_model_1.png[width=100%] == 3GPP LCLS early media image::lcls-conn_model_2.png[width=100%] == 3GPP LCLS tone / announcement image::lcls-announcement.png[width=100%] == 3GPP LCLS: Negotiation in CN * don't blindly activate LCLS, but _negotiate_ it ** all calls start non-locally switched * LCLS negotiation on Nc interface (ISUP, BICC, SIP-I) between MSCs * LCLS negotiation only succeeds if all CN (MSC) support it ** LCLS-Negotiation-Request IE ** LCLS-Negotiation-Response IE ** LCLS-Configuration-Preference IE == 3GPP LCLS Negotiation results * variety of different possible media configurations (examples) ** classic non-local (non-LCLS) ** connected both-way in BSS (basic LCLS) ** connected both way in BSS _and_ bi-casted UL to CN ** connected both way in BSS _and_ send access DL from CN *** BSS may combine or replace local DL data with DL data from CN ** connected both way in BSS _and_ send access DL from CN, block local DL == 3GPP LCLS: Implications on A / BSSMAP * BSS is instructed about media configuration in BSSMAP ** during call establishment *** BSSMAP ASSIGNMENT REQ with GCR + LCLS-Config IEs *** BSSMAP ASSIGNMENT COMPLETE with LCLS-BSS-Status IE ** during handover *** BSSMAP HANDOVER COMPLETE with LCLS-BSS-Status IE ** at any other time *** BSSMAP LCLS-NOTIFICATION from BSS -> MSS *** BSSMAP LCLS-CONNECT-CONTROL message MSS -> BSS == 3GPP LCLS: Osmocom Plans . Plan: support minimal sub-set without bi-casting .. in OsmoBSC ... requires us to add BSSMAP LCLS IEs/Messages ... will use MGCP to re-configure the CN-side RTP connection on OsmoMGW ... development will be test-driven (develop TTCN-3 tests first) .. in OsmoMSC (only among RANs connected to single MSC) ... requires us to permit/enable LCLS on AoIP == Further Reading * 3GPP TS 23.284 http://www.3gpp.org/DynaReport/23284.htm * 3GPP WI 430001 (LCLS-CN) http://www.3gpp.org/DynaReport/WiCr--440021.htm * 3GPP WI 440021 http://www.3gpp.org/DynaReport/WiCr--440021.htm * http://osmocom.org/projects/cellular-infrastructure/wiki/Local_Call_Local_Switch * Osmocom tickets ** http://osmocom.org/issues/1602 ** http://osmocom.org/issues/2487 == EOF End of File