Configuring CDMA and GSM Radios Default Phone Features
A version of this page is also available for
4/8/2010
Phone features work on top of either a GSM or CDMA radio stack. OEMs own the radio stack and ship a radio stack that is appropriate for their hardware.
Use the Features value of the HKEY_CURRENT_USER\ControlPanel\Phone registry key to configure GSM and CDMA specific UI and radio features. OEMs are responsible for configuring this registry key based on their radio stack and RIL driver.
The Features value of the HKEY_CURRENT_USER\ControlPanel\Phone registry key is a set of bit flags representing support for various CDMA, GSM and other features. The bit flags are defined in Phcanvas.h. This registry value must be specified in your Platform.reg
file.
The following table shows the Microsoft recommended CDMA and GSM default configurations for the Features value under the HKEY_CURRENT_USER\ControlPanel\Phone registry key.
Registry key | Description |
---|---|
"Features" = dword:0002B820 |
Microsoft recommended default configuration for CDMA radios. |
"Features"=dword:0206C7D8 |
Microsoft recommended default configuration for GSM radios. |
Features"=dword: 0646C7D8 |
Microsoft recommended default configuration for CDMA radios operating in Global Mode. |
Features"=dword: 0042B838 |
Microsoft recommended default configuration for GSM radios operating in Global Mode. |
The following registry key example shows how to set the recommended CDMA and GSM default configurations.
[HKEY_CURRENT_USER\ControlPanel\Phone]
"Features"=dword:0002B820 // CDMA
"Features"=dword:0206C7D8 // GSM
Some of the Features bit flags are dynamically generated during boot and some are statically read from the registry.
Note
Do not set the bit flags that are dynamically generated during boot. These flags are not stored in or read from the registry.
In addition, for GSM radios, you should also set the following registry key
[HKEY_LOCAL_MACHINE\Security\Phone]
"Features"=dword:18 // GSM Only
The following table shows the Features bit flags that are dynamically generated during boot.
Value | Bitmask | Description |
---|---|---|
SHDFL_NOPHONE |
0x00000000 |
No phone is supported. |
SHDFL_PHONE |
0x00000001 |
Phone is supported. |
SHDFL_PHONE_RADIOPRESENT |
0x00000002 |
A radio is present. |
SHDFL_PHONE_RADIOON |
0x00000004 |
The radio is on. |
SHDFL_PHONE_GLOBALMODE |
0x00400000 |
Indicates that the phone is a global phone, and is capable of switching between GSM and CDMA radio modes. If this option is set on a device, it should always be set, regardless of the current operating mode of the phone. |
SHDFL_PHONE_SUPPORTMULTILINES |
0x00010000 |
Support multi-lines. This flag is not used from or stored in the registry. |
The following table shows the Features bit flags that are statically read from the registry.
Value | Bitmask | Description |
---|---|---|
SHDFL_PHONE_LOCKFACILITY |
0x00000008 |
The radio supports PIN locking. SIM Security UI should be shown. This bit is supported only for the [HKEY_LOCAL_MACHINE\Security\Phone] registry key, and not [HKEY_CURRENT_USER\ControlPanel\Phone]. |
SHDFL_PHONE_SIMSUPPORT |
0x00000010 |
The radio supports a SIM. The UI presenting SIM features should be shown. This bit is supported only for the [HKEY_LOCAL_MACHINE\Security\Phone] registry key, and not [HKEY_CURRENT_USER\ControlPanel\Phone]. |
SHDFL_PHONE_VOICEDIALCONNECTS |
0x00000020 |
Voice calls are considered connected as soon as RIL_Dial succeeds. If this bit is cleared, calls will not be considered connected until RIL_GetCallList shows that this call is in the RIL_CALLSTAT_ACTIVE state. |
SHDFL_PHONE_UNIQUECALLTRACKING |
0x00000040 |
Implies that RIL_GetCallList report the state of each connected call and the UI should reflect this state. GSM call state semantics are implied. Clearing this bit implies CDMA call state semantics. |
SHDFL_PHONE_AUTOTHREEWAYCALLING |
0x00000080 |
When set, dialing a second call will result in a call to RIL_Dial. When clear, dialing a second call will result in a call to RIL_Flash. |
SHDFL_PHONE_INTLPLUS |
0x00000100 |
Convert "0" to "+" when the "0" key is held down. |
SHDFL_PHONE_SMSUNICODE |
0x00000200 |
If set, sending Short Message Service (SMS) in Unicode format is supported. If clear, SMS Unicode UI will be hidden. |
SHDFL_PHONE_0340SMS |
0x00000400 |
Use the GSM Short Message Service (SMS) standard to send SMS. |
SHDFL_PHONE_SUPPORTVOICEPRIVACY |
0x00000800 |
Voice privacy UI should be shown. |
SHDFL_PHONE_AKEY |
0x00001000 |
A-Key UI should be shown. |
SHDFL_PHONE_IS637SMS |
0x00002000 |
Use the CDMA Short Message Service (SMS) standard to send SMS. |
SHDFL_PHONE_SUPPORTGPRS |
0x00004000 |
GPRS UI should be shown. |
SHDFL_PHONE_SUPPORTMOSMS |
0x00008000 |
The ability to send Short Message Service (SMS) should be shown in the UI. |
SHDFL_PHONE_SUPPORTSPEAKERPHONE |
0x00020000 |
Speakerphone UI should be shown. The driver should support IOCTL_SPEAKER_GETMODE and IOCTL_SPEAKER_SETMODE. |
SHDFL_PHONE_SUPPORTWCMP |
0x00040000 |
Indicates that WCMP is supported over the Short Message Service (SMS) transport. |
SHDFL_PHONE_SUPPORTAUTOPREFIX |
0x00080000 |
Enables the Auto-Prefix dialing UI and feature. When the user selects this feature and fills in an area code, the phone prepends the area code to every dial string. |
SHDFL_PHONE_SUPPORTINTERNATIONALCODE |
0x00100000 |
Enables prepopulation of the dialer with the international dialing code when the user presses and holds "0". |
SHDFL_PHONE_SUPPORTLOCATIONICONS |
0x01000000 |
Locations icons should be shown based on location status as reported by the RIL_NOTIFY_LOCATION notification and the RIL_GetCurrentLocationStatus function. |
SHDFL_PHONE_SUPPORT0230DIALPARSING |
0x02000000 |
GSM supplementary service codes should be parsed as specified by the European Telecommunications Standards Institute (ETSI) standard. |
Configuring Auto-Prefixing
Auto-prefixing allows you to automatically add a designated prefix that will be dialed prior each call. To automatically enable auto-prefix dialing in Call Options Settings, enable the registry key shown in the following table. If this registry key is not set, the user must select the option manually in Call Option in the Settings menu to use auto-prefixing.
Registry key | Description |
---|---|
"AutoPrefix" = DWORD: 1 |
Always use auto-prefix dialing if auto-prefix feature flags have been turned on. |
"AutoPrefix" = DWORD: 0 |
Default Setting. |
If the user wants to dial a different area code than the one set in Call Options Settings, special characters can be defined which override the auto-prefix. These characters allow the user to manually enter a different area code, if desired.
All special characters which override the auto-prefix feature must be set in the following registry key. If there are no special characters, do not create the value.
[HKEY_CURRENT_USER\ControlPanel\Phone]
"AutoPrefixOverrides"=<A string list of single characters>
There should be no spaces or delimiters in-between characters. For example, the example shown below will, if auto-prefix is enabled and the area code set to "425", cause "425" to be dialed automatically prior to the actual number dialed.
"AutoPrefixOverrides"="*#"