SUPL CSP

Warning

Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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 diagram 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.

supl csp (dm,cp)

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 version of the SUPL protocol to use. For SUPL 1.0, set this value to 1. For SUPL 2.0, set this value to 2. The default is 1.

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 and the CM_ProxyEntries configuration service provider 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 version="1.0" encoding="utf-8"?>
<wap-provisioningdoc>
  <characteristic type="SUPL">
    <characteristic type="SUPL1">
      <parm name="Addr" value="supl.abc.def.example.com: 7777" />
      <characteristic type="Ext">
      <characteristic type="Microsoft">
      <characteristic type="RootCertificate">
        <parm name="Name" value="certName.cer" />
        <parm name="Data" value="" datatype="binary"/>
      </characteristic>
         <parm name="MCCMNCPairs" value="(111,000)(222,111)(333,333)(444,222)" />
         <parm name="HighAccPositioningMethod" datatype="integer" value="0" />
         <parm name="LocMasterSwitchDependencyNII" datatype="integer" value="1" />
      </characteristic>
      </characteristic>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

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 version="1.0" encoding="utf-8"?>
<wap-provisioningdoc>
  <characteristic type="SUPL">
    <characteristic type="V2UPL1">
      <parm name="MPC" value="192.0.2.1:7777" />
      <parm name="PDE" value="192.0.2.1:7778" />
      <parm name="PositioningMethod_MR" datatype="integer" value="1" />
    </characteristic>
    <characteristic type="SUPL1">
      <parm name="Addr" value="supl.abc.def.example.com:7777" />
      <characteristic type="Ext">
      <characteristic type="Microsoft">
      <characteristic type="RootCertificate">
        <parm name="Name" value="certName.cer" />
        <parm name="Data" value="" datatype="binary"/>
      </characteristic>
         <parm name="MCCMNCPairs" value="(111,000)(222,111)(333,333)(444,222)" />
         <parm name="HighAccPositioningMethod" datatype="integer" value="2" />
         <parm name="LocMasterSwitchDependencyNII" datatype="integer" value="1" />
      </characteristic>
      </characteristic>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

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.

<SyncML xmlns="SYNCML:SYNCML1.1">
    <SyncBody>
        <Add>
            <CmdID>Add FQDN</CmdID>
            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Addr</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">chr</Format>
                </Meta>
                <Data>supl.abc.def.example.com:2222</Data>
            </Item>
        </Add>
        <Add>
            <CmdID>Add MCCMNC</CmdID>
            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/MCCMNCPairs</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">chr</Format>
                </Meta>
                <Data>(111,000)(222,111)(333,333)(444,222)</Data>
            </Item>
        </Add>
        <Add>
            <CmdID>Add HighAccPositioningMethod</CmdID>
            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/HighAccPositioningMethod</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">int</Format>
                </Meta>
                <Data>2</Data>
            </Item>
        </Add>
        <Add>
            <CmdID>Add LocMasterSWDepend</CmdID>
            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/LocMasterSwitchDependencyNII</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">int</Format>
                </Meta>
                <Data>1</Data>
            </Item>
        </Add>
        <Add>
            <CmdID>Add Cert name</CmdID>

            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/RootCertificate/Name</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">chr</Format>
                </Meta>
                <Data>certName.cer</Data>
            </Item>
        </Add>
        <Add>
            <CmdID>Add Cert data - 200</CmdID>

            <Item>
                <Target><LocURI>./Vendor/MSFT/SUPL/SUPL1/Ext/Microsoft/RootCertificate/Data</LocURI></Target>
                <Meta>
                <Format xmlns="syncml:metinf">b64</Format>
                </Meta>
                <Data></Data>
            </Item>
        </Add>
        <Final/>
    </SyncBody>
</SyncML>

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

Configuration service provider reference