Way back in the misty past - October 03, 2005 to be precise - I posted about configuring networks and GPRS entries on Windows Mobile.

I left an open question about how to configure the default GPRS entry the device should use for a specific network destination. For example if I configure 3 different GPRS entries that all connect the device to The Internet meta-network, which one will the device choose? Well there is a default that gets shown in the UI but at the time I couldn't figure out the config settings needed to programmatically set or change this.

Recently I had a question from Sam Mannix asking if I ever solved this and found a way of setting these defaults. Well yes I did, and here is how:

<wap-provisioningdoc>

    <characteristic type="CM_Planner">

        <characteristic type="PreferredConnections">

            <parm name="{436EF144-B4FB-4863-A041-8F905A62C572}" value="Internet GPRS" />

            <parm name="{7022E968-5A97-4051-BC1C-C578E2FBA5D9}" value="WAP GPRS" />

        </characteristic>

    </characteristic>

</wap-provisioningdoc>

The CM_Planner Cofiguration Service Provider (CSP) is responsible for maintaining the default connection entries for each meta-network. In the above XML I'm setting the default GPRS entry for the Internet meta-network {436EF144-B4FB-4863-A041-8F905A62C572} and for the WAP meta-network {7022E968-5A97-4051-BC1C-C578E2FBA5D9}.

The default value string value="xxx", identifies the display name of the GPRS entry. So for example if I had:

<wap-provisioningdoc>

    <characteristic type="CM_GPRSEntries">
        <characteristic type="Internet GPRS">
            <parm name="DestId" value="{436EF144-B4FB-4863-A041-8F905A62C572}" />
            <characteristic type="DevSpecificCellular">
                <parm name="GPRSInfoValid" value="1" />
                <parm name="GPRSInfoAccessPointName" value="MyInternetAPN" />
            </characteristic>
        </characteristic>

        <characteristic type="Alternate GPRS">
            <parm name="DestId" value="{436EF144-B4FB-4863-A041-8F905A62C572}" />
            <characteristic type="DevSpecificCellular">
                <parm name="GPRSInfoValid" value="1" />
                <parm name="GPRSInfoAccessPointName" value="MyOtherAPN" />
            </characteristic>
        </characteristic>
    </characteristic>

</wap-provisioningdoc>

The "Internet GPRS" entry would be the default and Connection Manager will choose that entry over the "Alternate GPRS" entry.

Note: this is true for Windows Mobile 6 Standard. I haven't confirmed this is true for Professional as well, but its very likely.

Marcus