Making an AlwaysOn Data Connection
4/8/2010
The AlwaysOn feature ensures that the device always keeps the packet data connection once the user establishes a connection, such as GPRS on GSM networks or 1xRTT on CDMA networks. An AlwaysOn connection is established at the point when it is first configured as AlwaysOn. Following initial configuration, Connection Manager will attempt to keep the AlwaysOn connected at all times.
The AlwaysOn setting is applicable for all connections, including GPRS, 1xRTT, and others. You should take care, though, in selecting connections to designate as AlwaysOn. Suspend-resume-capable connections are often good candidates for the AlwaysOn feature. However, you will not want to designate as AlwaysOn an active data connection that can prevent incoming calls from being received. This situation often happens with 1xRTT connections.
Connection Manager will attempt to activate an AlwaysOn GPRS/1xRTT connection in the following cases:
- Connection Manager determines that the AlwaysOn connection is the preferred path for a connection request, but the connection is not already activated.
- A new AlwaysOn connection is provisioned or configured.**
- For GPRS calls, when the registration status has changed through a RIL_NOTIFY_GPRSREGSTATUSCHANGED constant and the lpData notification parameter points to either RIL_REGSTAT_HOME or RIL_REGSTAT_ROAMING.
- For other types of calls — for example, 1xRTT — when the registration status has changed through a RIL_NOTIFY_GPRSREGSTATUSCHANGED constant and the lpData notification parameter points to either RIL_REGSTAT_HOME or RIL_REGSTAT_ROAMING.**
- When a needed resource becomes available — for example, when a RAS call that was using the phone resource is released.
When activation fails in a recoverable way — that is, not through an incorrect username, password, APN, or upon remote disconnect — Connection Manager will use the following retry logic as long as the device remains in the proper registration state (home or roam).
Retry one time immediately.
Retry every 30 minutes until success. To override the 30 minute periodic retry, modify the AlwaysOnRetryInterval registry value.
The AlwaysOnRetryInterval registry key is under HKEY_LOCAL_MACHINE\Comm\ConnMgr\Planner\Settings. The default value for the AlwaysOnRetryInterval registry key, which is a DWORD, is 1,800,000 milliseconds, which equates to 30 minutes. AlwaysOnRetryInterval tells the Connection Manager how often to retry to connect to a disconnected AlwaysOn data connection. An AlwaysOn data connection may fail to connect because the device is out of range, the device is not available, or the device is in use by a higher priority connection request. **
Note
A connection will be kept always-on only if it is configured as such. If the connection receives a disconnect event, it will be disconnected and the change of state will be communicated to the Connection Manager AlwaysOn manager. Connection Manager will then try to reestablish the connection as described above.
The following connection types are set to AlwaysOn by default:
Wi-Fi
Ethernet
Desktop Pass-through (DTPT)
Note
Users can modify the AlwaysOn setting for all connections except for the ones in the preceding list, which are forced AlwaysOn.
The following connection types can never be set to AlwaysOn:
- VPN
- CSD
If the device goes into an idle or sleep state, the AlwaysOn feature helps ensure that any active packet data session is not terminated. The following list shows the events that can trigger a Windows Mobile device to go into an idle state:
User presses the power button
Idle timeout fires
The OEM or application developer explicitly makes a system call to put the device into an idle state
In all the preceding cases, any active packet data connection would be maintained active. Even when the device is in an idle state, it is reachable and immediately available without reconnection when the device comes out of the idle state.