While Windows Phone 7 isn't just a small-sized Tablet PC or an app platform, it's also a fully featured mobile phone - as the product name might indicate. However, Microsoft tried to keep the settings as lean as possible, sometimes maybe even too lean. For instance the call forwarding settings, which can be found under the Phone Settings menu, only shows call forwarding on or off. However, that's only partly true because the GSM and 3GPP standards know four different kind of call forwarding: divert all calls, divert if no reply, divert if unavailable, divert if busy while Windows Phone 7 only shows and allows to configure divert all calls.

However, since the call forwarding settings aren't stored on the device or SIM card but within the GSM/UMTS networks, the other three options are also fully functional but not changeable through the Windows Phone 7 user interface.

In case you need to change one of the other, or all three call forwarding settings you can easily use USSD codes to do so. USSD is a feature which was introduced with the launch of GSM back in the early 90's and it's still alive, even if most users don't know about this GSM/UMTS feature at all. Nevertheless, it's a handy feature to configure a couple of network related settings - such as call forwarding.

USSD codes work the same way on all networks and GSM/UMTS phones and always look like:

Divert all Calls (21)All incoming calls will be forwarded, doesn't matter if the phone is turned on or not. The USSD code is "21".

Forwarding: **21*DESTINATION_NUMBER# @

Activate: *21# @

Deactivate: #21# @

Delete: ##21# @

Check Status: *#21# @

Divert if no Reply (61)All incoming calls will be forwarded if the call isn't accepted within a defined time. The USSD code is "61".

Forwarding: **61*DESTINATION_NUMBER# @

Activate: *61# @

Deactivate: #61# @

Delete: ##61# @

Check Status: *#61# @

It's even possible to overwrite the carrier's default value after how many seconds the call should be forwarded. The GSM/3GPP standard specifies a value between 5 to 30 seconds (in 5 second steps):

Forwarding: **61*DESTINATION_NUMBER*DELAY# @

Divert if Unavailable (62)All incoming calls will be forwarded if the phone is turned off or out of network coverage. The USSD code is "62".

Forwarding: **62*DESTINATION_NUMBER# @

Activate: *62# @

Deactivate: #62# @

Delete: ##62# @

Check Status: *#62# @

Divert if Busy (67)All the incoming calls will be forwarded if another call is in progress and . The USSD code is "67".

Forwarding: **67*DESTINATION_NUMBER# @

Activate: *67# @

Deactivate: #67# @

Delete: ##67# @

Check Status: *#67# @

Deactivate all Diverts (002)This USSD code deactivates all call forwarding with one single command. The USSD code is "002"

##002# @

Please note that using the unconditional "Divert all Calls (21)" overwrites all conditional call forwarding!

The USSD codes have to be simply typed like a phone number and Windows Phone 7 will present the result right after the phone received the answer from the network.

For sure, it's a workaround since a menu-based configuration would be easier to use but nevertheless. with USSD codes you are not forced to use the SIM card with another phone to setup or check call forwarding.Also, as initially mentioned, the USSD codes above work on any other GSM and UMTS phone as well.

If you then store your call forwarding USSD code (e.g. to your second phone) as contacts in your phonebook as e.g. "ForwOn" and the call forwarding deactivation code as "ForwOff" you just have to call those contacts. If WP7 has Speed Dial (does it?) you can put those two contacts on two buttons of your keyboard and it's only one click for each actions.