== Location Services: Lb interface to SMLC OsmoBSC and OsmoSMLC support positioning by Timing-Advance (TA), since October 2020. A Perform Location Request is initiated by the MSC via BSSMAP on the A-interface, for a specific subscriber. The request is typically passed on via BSSMAP-LE on the Lb-interface to the SMLC. If required, the SMLC may request the subscriber's Timing Advance (a.k.a. Access Delay) from the BSC via BSSLAP (encapsulated BSSLAP APDU in a BSSMAP-LE Connection Oriented Information message). The SMLC may combine several location and velocity estimate methods to form a GAD PDU containing the resulting geographic location information. In TA-based positioning, the Timing-Advance information from the BSC is combined with the preconfigured latitude and longitude of the serving cell to form a location estimate. This is returned to the BSC via the Lb-interface, and in turn to the MSC via the A-interface. [mscgen] ---- include::{srcdir}/message-sequences/location_services_ta.msc[] ---- Location Services (LCS) are described in 3GPP TS 43.059 <<3gpp-ts-43-059>>. Messages for LCS on the A-interface (BSSMAP, between BSC and MSC) are described in 3GPP TS 48.008 <<3gpp-ts-48-008>>, on the Lb-interface (BSSMAP-LE between BSC and SMLC) in 3GPP TS 49.031 <<3gpp-ts-49-031>>. The resulting geographic location and possibly velocity information is encoded in GAD, described in 3GPP TS 23.032 <<3gpp-ts-23-032>>. [[smlc-config]] === Configure Lb-interface All Lb-interface related configuration is found in the `smlc` section of OsmoBSC's configuration. By default, the Lb-interface is disabled in OsmoBSC. It is started by `enable`. ---- smlc enable ---- On the Lb-interface, OsmoBSC always uses SSN "BSC (BSSMAP-LE)" (SSN code 250) and contacts the remote SMLC on SSN "SMLC (BSSMAP-LE)" (SSN code 252). The point-codes are configurable, and default to OsmoBSC's local point-code 0.23.3 (187), and remote SMLC point-code 0.23.6 (190). Typically, multiple BSCs connect to the same SMLC, so that each BSC needs to have a distinct point-code, while the SMLC has a single, fixed point-code. To configure a different remote SMLC point-code, first configure an arbitrarily named SCCP address in the `cs7` address book, and then apply that to the `smlc-addr` configuration: ---- cs7 instance 0 sccp-address my-smlc point-code 0.42.6 smlc enable smlc-addr my-smlc ---- For the BSC side, it suffices to configure a point-code in the `cs7` section, so that the BSC typically uses the same point-code on A and Lb interfaces. In this example, the BSC has point-code `1.2.3` on the Lb interface: ---- cs7 instance 0 point-code 1.2.3 smlc enable ---- It is also possible to configure a distinct BSC's point-code on Lb, using the `bsc-addr` configuration. In the following example, the BSC uses point-code `0.42.3` only on the Lb interface, while the A interface remains unchanged: ---- cs7 instance 0 sccp-address my-bsc-on-lb point-code 0.42.3 smlc enable bsc-addr my-bsc-on-lb ---- The geographic locations of individual cells are configured at the SMLC. See for example OsmoSMLC's user manual <>.