Share via


Internet sharing (hotspot)

OEMs can configure and enable internet sharing on the phone. This allows the phone to share its cellular connection over Wi-Fi with up to eight client devices or computers.

The following sample shows how to configure internet sharing with runtime configuration.

<Settings Path="HotSpot">
    <Setting Name="Enabled" Value="1" />
    <Setting Name="EntitlementRequired" Value="1" />
    <Setting Name="EntitlementDll" Value="c:\windows\system32\MOEntitlement.dll" />
    <Setting Name="EntitlementInterval" Value="86400" />
    <Setting Name="MaxUsers" Value="5" />
    <Setting Name="MaxBluetoothUsers" Value="7" />
    <Setting Name="PeerlessTimeout" Value="5" />
    <Setting Name="PublicConnectionTimeout" Value="20" />
    <Setting Name="MOHelpNumber" Value="611" />
    <Setting Name="MOInfoLink" Value="contoso.com/help" />
    <Setting Name="MOAppLink" Value="app://12345678-9012-3456-7890-123456789012" />
    <Setting Name="MOHelpMessage" Value="@HotSpotMOHelp.dll,-101" />
    <Setting Name="DedicatedConnections" Value="zzzConn1 $(__MVID);zzzConn2 $(__MVID)" />
</Settings>

Settings

  • Enabled
    Required. Specifies whether to enable internet sharing on the phone. The default is 0.

    If this is initially set to 0, the feature is turned off and the internet sharing screen is removed from Settings so that the user cannot access it. Configuration changes or connection sharing state changes will not be possible.

    When this is set to 1, the internet sharing screen is added to Settings, though sharing is turned off by default until the user turns it on.

  • EntitlementRequired
    Optional. Specifies whether the device requires an entitlement check to determine if internet sharing should be enabled. Valid values are 0 or 1. The default value is 1.

    By default, the internet sharing service will check entitlement every time an attempt is made to enable internet sharing. This value should be set to 0 for carrier-unlocked phones.

  • EntitlementDll
    This is required if EntitlementRequired is set to 1. Specifies the path to the entitlement DLL that is used to make entitlement checks that verify that the device is entitled to use the internet sharing service on a mobile operator’s network. The value is a string that represents a valid file system path to the entitlement DLL. By default, the internet sharing service fails entitlement checks if this setting is missing or empty. For more information, see the Creating an Entitlement DLL section below.

  • EntitlementInterval
    Optional. The time interval, in seconds, between entitlement checks. Valid values are 0 to 604800 inclusive. The value 0 means disabled. The default value is 86,400 seconds (24 hours).

    If a periodic entitlement check fails, internet sharing is automatically disabled.

  • MaxUsers
    Optional. Specifies the maximum number of simultaneous users that can be connected to a device while in a sharing state. The value must be between 1 and 8 inclusive. The default value is 5.

  • MaxBluetoothUsers
    Optional. Specifies the maximum number of simultaneous Bluetooth users that can be connected to a device while sharing over Bluetooth. The value must be between 1 and 7 inclusive. The default value is 7.

  • PeerlessTimeout
    Optional. The time-out period, in minutes, after which internet sharing should automatically turn off if there are no longer any active clients. This node can be set to any value between 1 and 120 inclusive. A value of 0 is not supported. The default value is 5 minutes.

  • PublicConnectionTimeout
    Optional. The time-out value, in minutes, after which internet sharing is automatically turned off if a cellular connection is not available. This node can be set to any value between 1 and 60 inclusive. The default value is 20 minutes. A time-out is required, so a value of 0 is not supported.

  • MOHelpNumber
    Optional. A mobile operator–specified phone number that is displayed to the user when the internet sharing service fails to start. The user interface displays a message informing the user that they can call the specified number for help.

  • MOInfoLink
    Optional. A mobile operator–specified HTTP link that is displayed to the user when internet sharing is disabled or the device is not entitled. The user interface displays a message informing the user that they can visit the specified link for more information about how to enable the feature.

  • MOAppLink
    Optional. A Windows Phone application link that points to a preinstalled application, provided by the mobile operator, that will help a user to subscribe to the mobile operator’s internet sharing service when internet sharing is not provisioned or entitlement fails. The general format for the link is app://MOappGUID. For example, if your app ID is 12345678-9012-3456-7890-123456789012, you must set the value to app://12345678-9012-3456-7890-123456789012.

  • MOHelpMessage
    Optional. Reference to a localized string, provided by the mobile operator, that is displayed when internet sharing is not enabled due to entitlement failure. The node takes a language-neutral registry value string, which has the following form:

    @<res_dll>,-<str_id>

    where <res_dll> is the resource dll that contains the string and <str_id> is the string identifier. For more information on language-neutral string resource registry values, see Using Registry String Redirection on MSDN.

  • DedicatedConnections
    Optional. Specifies the semicolon separated list of Connection Manager cellular connections that internet sharing will use as the public connections.

    By default, any available connection will be used as a public connection. However, this node allows a mobile operator to specify one or more connection names to use as public connections.

    Specified connections will be mapped, by policy, to the internet sharing service. All attempts to enumerate Connection Manager connections for the internet sharing service will return only the mapped connections.

    Note  

    The mapping policy will also include the connection specified in the TetheringNAIConnection value as well.

    If the specified connections do not exist, internet sharing will not start because it will not have any cellular connections available to share

  • TetheringNAIConnection
    Optional. Specifies the CDMA TetheringNAI Connection Manager cellular connection that internet sharing will use as a public connection.

    If a CDMA mobile operator requires using a Tethering NAI during internet sharing, they must configure a TetheringNAI connection and then specify the connection in this node.

    Specified connections will be mapped, by policy, to the internet sharing service. All attempts to enumerate Connection Manager connections for the internet sharing service will return only the mapped connections.

    Note  

    The mapping policy will also include the connections specified in the DedicatedConnections as well.

    If the specified connections do not exist, internet sharing will not start because it will not have any cellular connections available to share

Additional requirements for CDMA networks

For CDMA networks that use a separate Network Access Identity (NAI) for internet sharing, the Connections parameter TetheringNAI is used. The following sample demonstrates how to specify the connection.

<Settings Path="Connections">
    <Setting Name="Cellular/TetheringNAIConn $(__MVID)/Version" Value="1" />
    <Setting Name="Cellular/TetheringNAIConn $(__MVID)/UserName" Value="" />
    <Setting Name="Cellular/TetheringNAIConn $(__MVID)/Password" Value="" />
    <Setting Name="Cellular/TetheringNAIConn $(__MVID)/TetheringNAI" Value="1" />
</Settings>
<Settings Path="HotSpot">
    <Setting Name="Enabled" Value="1" />
    <Setting Name="EntitlementRequired" Value="0" />
    <Setting Name="TetheringNAIConnection" Value="TetheringNAIConn $(__MVID)" />
</Settings>

Note that CDMA phones are limited to one active data connection at a time. This means any application or service (such as email or MMS) that is bound to another connection may not work while internet sharing is turned on.

Creating an Entitlement DLL

For mobile operator networks that require an entitlement check, the OEM must provide a DLL in the phone image that implements a function with the following signature:

ICS_ENTITLEMENT_RESULT IsEntitled(void);

The EntitlementDll parameter must be set to a string that is the path to this DLL.

The DLL must be code signed in a specific way, see Sign binaries and packages.

During an entitlement check the internet Sharing service loads the specified DLL and then call the IsEntitled function. The function must connect to the server to perform any required validation, then return one of the following ICS_ENTITLEMENT_RESULT enumeration values.

Value Description

ENTITLEMENT_SUCCESS

The device is allowed to connect to the server.

ENTITLEMENT_FAILED

The device is not allowed to connect to the server

ENTITLEMENT_UNAVAILABLE

The entitlement check failed because the device could not contact the server or acquire a connection to verify entitlement.

 

The definition for the ICS_ENTITLEMENT_RESULT is in the header file IcsEntitlementh, which ships with the Windows Phone Adaptation Kit.

 

 

Send comments about this topic to Microsoft