--- title: SUPL CSP description: Learn how the SUPL configuration service provider (CSP) is used to configure the location client. ms.assetid: afad0120-1126-4fc5-8e7a-64b9f2a5eae1 ms.reviewer: manager: dansimp ms.author: dansimp ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman ms.date: 09/12/2019 --- # SUPL CSP The SUPL configuration service provider is used to configure the location client, as shown in the following table:
Location Service SUPL V2 UPL

Connection type

All connections other than CDMA

CDMA

Configuration

  • Settings that need to get pushed to the GNSS driver to configure the SUPL behavior:

    • Address of the Home SUPL (H-SLP) server.

    • H-SLP server certificate.

    • Positioning method.

    • Version of the protocol to use by default.

  • MCC/MNC value pairs which are used to specify which networks' UUIC the SUPL account matches.

  • Address of the server — a mobile positioning center for non-trusted mode.

  • The positioning method used by the MPC for non-trusted mode.

  The SUPL or V2 UPL connection will be reconfigured every time the device is rebooted, a new UICC is inserted, or new settings are provisioned by using OMA Client Provisioning, OMA DM, or test tools. When the device is in roaming mode, it reverts to Mobile Station Standalone mode, in which only the built–in Microsoft location components are used. The following shows the SUPL configuration service provider management object in tree format as used by OMA DM and OMA Client Provisioning. > **Note**   This configuration service provider requires the ID\_CAP\_CSP\_FOUNDATION capability to be accessed from a network configuration application.   ``` ./Vendor/MSFT/ SUPL ----SUPL1 --------AppID --------Addr --------Ext ------------Microsoft ----------------Version ----------------MCCMNPairs ----------------HighAccPositioningMethod ----------------LocMasterSwitchDependencyNII ----------------NIDefaultTimeout ----------------ServerAccessInterval ----------------RootCertificate --------------------Name --------------------Data ----------------RootCertificate2 --------------------Name --------------------Data ----------------RootCertificate3 --------------------Name --------------------Data ----V2UPL1 --------MPC --------PDE --------PositioningMethod_MR --------LocMasterSwitchDependencyNII --------ApplicationTypeIndicator_MR --------NIDefaultTimeout --------ServerAccessInterval ``` **SUPL1** Required for SUPL. Defines the account for the SUPL Enabled Terminal (SET) node. Only one SUPL account is supported at a given time. **AppID** Required. The AppID for SUPL is automatically set to `"ap0004"`. This is a read-only value. **Addr** Optional. Specifies the address of the Home SUPL Location Platform (H-SLP) server for non-proxy mode. The value is a server address specified as a fully qualified domain name, and the port specified as an integer, with the format *server*: *port*. If this value is not specified, the device infers the H-SLP address from the IMSI as defined in the SUPL standard. To use automatic generation of the H-SLP address based on the IMSI, the MNC length must be set correctly on the UICC. Generally, this value is 2 or 3. For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **Version** Optional. Determines the major version of the SUPL protocol to use. For SUPL 1.0.0, set this value to 1. For SUPL 2.0.0, set this value to 2. The default is 1. Refer to FullVersion to define the minor version and the service indicator. **FullVersion** Added in Windows 10, version 2004. Optional. Determines the full version (X.Y.Z where X, Y, and Z are the major version, the minor version, and the service indicator, respectively) of the SUPL protocol to use. The default is 1.0.0. If FullVersion is defined, Version field is ignored. **MCCMNCPairs** Required. List all of the MCC and MNC pairs owned by the mobile operator. This list is used to verify that the UICC matches the network and SUPL can be used. When the UICC and network do not match, the device uses the default location service and does not use SUPL. This value is a string with the format "(X1,Y1)(X2,Y2)…(Xn,Yn)", in which `X` is a MCC and `Y` is an MNC. For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **HighAccPositioningMethod** Optional. Specifies the positioning method that the SUPL client will use for mobile originated position requests. The value can be one of the following integers:
Value Description

0

None: The device uses the default positioning method. In this default mode, the GNSS obtains assistance (time injection, coarse position injection and ephemeris data) from the Microsoft Positioning Service.

1

Mobile Station Assisted: The device contacts the H-SLP server to obtain a position. The H-SLP does the calculation of the position and returns it to the device.

2

Mobile Station Based: The device obtains location-aiding data (almanac, ephemeris data, time and coarse initial position of the device) from the H-SLP server, and the device uses this information to help GPS obtain a fix. All position calculations are done in the device.

3

Mobile Station Standalone: The device obtains assistance as required from the Microsoft location services.

4

OTDOA

5

AFLT

  The default is 0. The default method in Windows devices provides high-quality assisted GNSS positioning for mobile originated position requests without loading the mobile operator’s network or location services. > **Important**   The Mobile Station Assisted, OTDOA, and AFLT positioning methods must only be configured for test purposes.   For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **LocMasterSwitchDependencyNII** Optional. Boolean. Specifies whether the location toggle on the **location** screen in **Settings** is also used to manage SUPL network-initiated (NI) requests for location. If the value is set to 0, the NI behavior is independent from the current location toggle setting. If the value is set to 1, the NI behavior follows the current location toggle setting. The default value is 1. This value manages the settings for both SUPL and v2 UPL. If a device is configured for both SUPL and V2 UPL and these values differ, the SUPL setting will always be used.
Location toggle setting LocMasterSwitchDependencyNII setting NI request processing allowed

On

0

Yes

On

1

Yes

Off

0

Yes

Off

1

No (unless privacyOverride is set)

  When the location toggle is set to Off and this value is set to 1, the following application requests will fail: - `noNotificationNoVerification` - `notificationOnly` - `notificationAndVerficationAllowedNA` - `notificationAndVerficationDeniedNA` However, if `privacyOverride` is set in the message, the location will be returned. When the location toggle is set to Off and this value is set to 0, the location toggle does not prevent SUPL network-initiated requests from working. For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **NIDefaultTimeout** Optional. Time in seconds that the network-initiated location request is displayed to the user, while awaiting a response and before doing the default action. The default is 30 seconds. A value between 20 and 60 seconds is recommended. This value manages the settings for both SUPL and v2 UPL. If a device is configured for both SUPL and V2 UPL and these values differ, the SUPL setting will always be used. **ServerAccessInterval** Optional. Integer. Defines the minimum interval of time in seconds between mobile originated requests sent to the server to prevent overloading the mobile operator's network. The default value is 60. **RootCertificate** Required. Specifies the root certificate for the H-SLP server. Windows does not support a non-secure mode. If this node is not included, the configuration service provider will fail but may not return a specific error. **RootCertificate/Name** Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate/Data** The base 64 encoded blob of the H-SLP root certificate. **RootCertificate2** Specifies the root certificate for the H-SLP server. **RootCertificate2/Name** Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate2/Data** The base 64 encoded blob of the H-SLP root certificate. **RootCertificate3** Specifies the root certificate for the H-SLP server. **RootCertificate3/Name** Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate3/Data** The base 64 encoded blob of the H-SLP root certificate. **RootCertificate4** Added in Windows 10, version 1809. Specifies the root certificate for the H-SLP server. **RootCertificate4/Name** Added in Windows 10, version 1809. Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate4/Data** Added in Windows 10, version 1809. The base 64 encoded blob of the H-SLP root certificate. **RootCertificate5** Added in Windows 10, version 1809. Specifies the root certificate for the H-SLP server. **RootCertificate5/Name** Added in Windows 10, version 1809. Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate5/Data** Added in Windows 10, version 1809. The base 64 encoded blob of the H-SLP root certificate. **RootCertificate6** Added in Windows 10, version 1809. Specifies the root certificate for the H-SLP server. **RootCertificate6/Name** Added in Windows 10, version 1809. Specifies the name of the H-SLP root certificate as a string, in the format *name*.cer. **RootCertificate6/Data** Added in Windows 10, version 1809. The base 64 encoded blob of the H-SLP root certificate. **V2UPL1** Required for V2 UPL for CDMA. Specifies the account settings for user plane location and IS-801 for CDMA. Only one account is supported at a given time. **MPC** Optional. The address of the mobile positioning center (MPC), in the format *ipAddress*: *portNumber*. For non-trusted mode of operation, this parameter is mandatory and the PDE parameter must be empty. **PDE** Optional. The address of the Position Determination Entity (PDE), in the format *ipAddress*: *portNumber*. For non-trusted mode of operation, this parameter must be empty. **PositioningMethod\_MR** Optional. Specifies the positioning method that the SUPL client will use for mobile originated position requests. The value can be one of the following integers:
Value Description

0

None: The device uses the default positioning method. In this default mode, the GNSS obtains assistance (time injection, coarse position injection, and ephemeris data) from the Microsoft Positioning Service.

1

Mobile Station Assisted: The device contacts the H-SLP server to obtain a position. The H-SLP does the calculation of the position and returns it to the device.

2

Mobile Station Based: The device obtains location-aiding data (almanac, ephemeris data, time and coarse initial position of the device) from the H-SLP server, and the device uses this information to help GPS obtain a fix. All position calculations are done in the device.

3

Mobile Station Standalone: The device obtains assistance as required from the Microsoft location services.

4

AFLT

  The default is 0. The default method provides high-quality assisted GNSS positioning for mobile originated position requests without loading the mobile operator’s network or location services. > **Important**   The Mobile Station Assisted and AFLT positioning methods must only be configured for test purposes.   For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **LocMasterSwitchDependencyNII** Optional. Boolean. Specifies whether the location toggle on the **location** screen in **Settings** is also used to manage network-initiated requests for location. If the value is set to 0, the NI behavior is independent from the current location toggle setting. If the value is set to 1, the NI behavior follows the current location toggle setting. For CDMA devices, this value must be set to 1. The default value is 1. This value manages the settings for both SUPL and v2 UPL. If a device is configured for both SUPL and V2 UPL and these values differ, the SUPL setting will always be used.
Location toggle setting LocMasterSwitchDependencyNII setting NI request processing allowed

On

0

Yes

On

1

Yes

Off

0

Yes

Off

1

No (unless privacyOverride is set)

  When the location toggle is set to Off and this value is set to 1, the following application requests will fail: - `noNotificationNoVerification` - `notificationOnly` - `notificationAndVerficationAllowedNA` - `notificationAndVerficationDeniedNA` However, if `privacyOverride` is set in the message, the location will be returned. When the location toggle is set to Off and this value is set to 0, the location toggle does not prevent SUPL network-initiated requests from working. For OMA DM, if the format for this node is incorrect the entry will be ignored and an error will be returned, but the configuration service provider will continue processing the rest of the parameters. **ApplicationTypeIndicator\_MR** Required. This value must always be set to `00000011`. **NIDefaultTimeout** Optional. Time in seconds that the network-initiated location request is displayed to the user, while awaiting a response and before doing the default action. The default is 30 seconds. A value between 20 and 60 seconds is recommended. This value manages the settings for both SUPL and v2 UPL. If a device is configured for both SUPL and V2 UPL and these values differ, the SUPL setting will always be used. **ServerAccessInterval** Optional. Integer. Defines the minimum interval of time in seconds between mobile originated requests sent to the server to prevent overloading the mobile operator's network. The default value is 60. ## Unsupported Nodes The following optional nodes are not supported on Windows devices. - ProviderID - Name - PrefConRef - ToConRef - ToConRef/<X> - ToConRef/<X>/ConRef - AddrType If the configuration application tries to set, delete or query these nodes, a response indicating this node is not implemented will be returned over OMA DM. In OMA Client Provisioning, the request to set this node will be ignored and the configuration service provider will continue processing the rest of the nodes. If a mobile operator requires the communication with the H-SLP to take place over a specific connection rather than a default cellular connection, then this must be configured by using the [CM\_CellularEntries configuration service provider](cm-cellularentries-csp.md) and the [CM\_ProxyEntries configuration service provider](cm-proxyentries-csp.md) to map the H-SLP server with the required connection. ## OMA Client Provisioning examples Adding new configuration information for a H-SLP server for SUPL. Values in italic must be replaced with correct settings for the mobile operator network. A valid binary blob must be included for the root certificate data value. ```xml ``` Adding a SUPL and a V2 UPL account to the same device. Values in italic must be replaced with correct settings for the mobile operator network. A valid binary blob must be included for the root certificate data value. ```xml ``` ## OMA DM examples Adding a SUPL account to a device. Values in italic must be replaced with correct settings for the mobile operator network. A valid binary blob must be included for the root certificate data value. ```xml Add FQDN ./Vendor/MSFT/SUPL/SUPL1/Addr chr supl.abc.def.example.com:2222 Add MCCMNC ./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/MCCMNCPairs chr (111,000)(222,111)(333,333)(444,222) Add HighAccPositioningMethod ./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/HighAccPositioningMethod int 2 Add LocMasterSWDepend ./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/LocMasterSwitchDependencyNII int 1 Add Cert name ./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/RootCertificate/Name chr certName.cer Add Cert data - 200 ./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/RootCertificate/Data b64 ``` ## Microsoft Custom Elements The following table shows the Microsoft custom elements that this configuration service provider supports for OMA Client Provisioning.
Elements Available

parm-query

Yes

characteristic-query

Yes

Recursive query: No

Top level query: No

  ## Related topics [Configuration service provider reference](configuration-service-provider-reference.md)