Provisioning XML
Provisioning XML documents are simply a set of instructions based in an XML document that tells your phone what to do. This is actually the same structure used in CAB installation files.
Provinsioning XML 101 - Learn XML
First a couple of pieces of information for those who are completely new to this.
- XML is simply a text file - don't be afraid
- XML is a structured hierarchical documents consisting of opening and closing tags.
- XML must be well formed - for every opening tag you need a closing tag.
Code:
<XML>
<ELEMENT>
</ELEMENT>
</XML>
- Elements refer to the tags with <> around them and a preceding / before the element name is used to close the tag.
- An element can self terminate by having a trailing / implying there is no data.
Code:
<XML>
<ELEMENT/>
</XML>
- Comments can be made in XML as follows:
Code:
<XML>
<!-- EXAMPLE OF AN ELEMENT WITH AN OPEN AND CLOSE -->
<ELEMENT></ELEMENT>
<!-- EXAMPLE OF AN ELEMENT THAT SELF TERMINATES -->
<ELEMENT/>
</XML>
- Attributes can be contained in an Element and would look like this:
Code:
<XML>
<ELEMENT SAMPLE="See what I am saying"></ELEMENT>
</XML>
Provinsioning XML 102 - wap-provisioningdoc
A wap-provisioningdoc is an xml document that opens with the <wap-provisioningdoc> tag and contains elements with the charachteristics you want to set.
Some charachteristics you might be interested in:
- Bluetooth
- Clock
- DeviceEncryption
- Email2
- FileOperation
- FileSystem
- Home
- Registry
- Sounds
- SpeedDial
- Sync
- WI-FI
Since recreating MSDN is a bit out of scope, here is a reference:
http://msdn.microsoft.com/en-us/library/bb737536.aspx
Provinsioning XML 200 - Common examples
ActiveSync (exchange) - These are the settings I use, your settings may be different.
Code:
<wap-provisioningdoc>
<characteristic type="Sync">
<characteristic type="Connection">
<parm name="Server" value="{your domain}"/>
<parm name="AllowSSLOption" value="1"/>
<parm name="User" value="{your username}"/>
<parm name="Domain" value="{your domain}"/>
<parm name="Password" value="{your password}"/>
<parm name="SavePassword" value="1"/>
</characteristic>
<characteristic type="Settings">
<parm name="PeakStartTime" value="0800"/>
<parm name="PeakEndTime" value="1800"/>
<parm name="PeakFrequency" value="-1"/>
<parm name="BodyTruncation" value="-1"/>
<parm name="SyncWhenRoaming" value="1"/>
<parm name="MIMETruncation" value="51200"/>
<characteristic type="PeakDays">
<parm name="Sun" value="0"/>
<parm name="Mon" value="1"/>
<parm name="Tue" value="1"/>
<parm name="Wed" value="1"/>
<parm name="Thr" value="1"/>
<parm name="Fri" value="1"/>
<parm name="Sat" value="0"/>
</characteristic>
</characteristic>
<characteristic type="Mail">
<parm name="Enabled" value="1"/>
<parm name="MailBodyTruncation" value="-1"/>
<parm name="MailFileAttachments" value="-1"/>
</characteristic>
<characteristic type="Calendar">
<parm name="Enabled" value="1"/>
</characteristic>
<characteristic type="Contacts">
<parm name="Enabled" value="1"/>
</characteristic>
<characteristic type="Tasks">
<parm name="Enabled" value="0"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
ActiveSync (gmail) - These are the settings I use, your settings
Code:
<wap-provisioningdoc>
<characteristic type="Sync">
<characteristic type="Connection">
<parm name="Server" value="m.google.com"/>
<parm name="AllowSSLOption" value="1"/>
<parm name="User" value="{email address}"/>
<parm name="Password" value="{password}"/>
<parm name="SavePassword" value="1"/>
</characteristic>
<characteristic type="Settings">
<parm name="PeakStartTime" value="0800"/>
<parm name="PeakEndTime" value="1800"/>
<parm name="PeakFrequency" value="-1"/>
<parm name="BodyTruncation" value="-1"/>
<parm name="SyncWhenRoaming" value="1"/>
<parm name="MIMETruncation" value="51200"/>
<characteristic type="PeakDays">
<parm name="Sun" value="0"/>
<parm name="Mon" value="1"/>
<parm name="Tue" value="1"/>
<parm name="Wed" value="1"/>
<parm name="Thr" value="1"/>
<parm name="Fri" value="1"/>
<parm name="Sat" value="0"/>
</characteristic>
</characteristic>
<characteristic type="Mail">
<parm name="Enabled" value="1"/>
<parm name="MailBodyTruncation" value="-1"/>
<parm name="MailFileAttachments" value="-1"/>
</characteristic>
<characteristic type="Calendar">
<parm name="Enabled" value="1"/>
</characteristic>
<characteristic type="Contacts">
<parm name="Enabled" value="1"/>
</characteristic>
<characteristic type="Tasks">
<parm name="Enabled" value="0"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
IMAP4 - same disclaimer
Code:
<wap-provisioningdoc>
<characteristic type="EMAIL2">
<characteristic type="{bef6bd14-cdcf-403f-a7a7-f4aa9055bdf8}">
<parm name="SERVICENAME" value="{Name the service}" />
<parm name="SERVICETYPE" value="IMAP4" />
<parm name="INSERVER" value="imap.gmail.com" />
<parm name="OUTSERVER" value="smtp.gmail.com" />
<parm name="NAME" value="{Your Name}" />
<parm name="REPLYADDR" value="{your email}" />
<parm name="AUTHNAME" value="{Your username/email account}" />
<parm name="AUTHSECRET" value="{your password}" />
<parm name="DOMAIN" value="" />
<parm name="AUTHREQUIRED" value="1" />
<parm name="LINGER" value="0" />
<parm name="RETRIEVE" value="-1" />
<parm name="KEEPMAX" value="0" />
<parm name="DWNDAY" value="3" />
<parm name="SMTPALTENABLED" value="0" />
<parm name="SMTPALTAUTHNAME" value="" />
<parm name="SMTPALTPASSWORD" value="" />
<parm name="SMTPALTDOMAIN" value="" />
<characteristic type="TAGPROPS">
<parm name="8128000B" value="1"/>
<parm name="812C000B" value="1"/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
POP3 - The example used here is for checking hotmail using POP3 (your settings may be different)
Code:
<wap-provisioningdoc>
<characteristic type="EMAIL2">
<characteristic type="{618a7a2b-d44e-4069-9df0-c7aa69038a37}">
<parm name="SERVICENAME" value="Hotmail" />
<parm name="SERVICETYPE" value="POP3" />
<parm name="INSERVER" value="pop3.live.com" />
<parm name="OUTSERVER" value="smtp.live.com" />
<parm name="NAME" value="My Name" />
<parm name="REPLYADDR" value="" />
<parm name="AUTHNAME" value="{your account}@hotmail.com" />
<parm name="AUTHSECRET" value="{your passowrd}" />
<parm name="DOMAIN" value="" />
<parm name="AUTHREQUIRED" value="1" />
<parm name="LINGER" value="120" />
<parm name="RETRIEVE" value="-1" />
<parm name="KEEPMAX" value="-1" />
<parm name="DWNDAY" value="3" />
<parm name="SMTPALTENABLED" value="0" />
<parm name="SMTPALTAUTHNAME" value="" />
<parm name="SMTPALTPASSWORD" value="" />
<parm name="SMTPALTDOMAIN" value="" />
<characteristic type="TAGPROPS">
<parm name="8128000B" value="0"/>
<parm name="812C000B" value="0"/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
WI-FI - Other authentication methods exist that you may need to set based on your router - see MSDN link above
Code:
<wap-provisioningdoc>
<characteristic type="Wi-Fi">
<characteristic type="access-point">
<characteristic type="{YOUR SID}">
<parm name="NetworkKey" value="{YOUR KEY}"/>
<parm name="Authentication" value="0"/>
<parm name="Encryption" value="0"/>
<parm name="KeyIndex" value="1"/>
<parm name="KeyProvided" value="0"/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
CLOCK
Code:
<wap-provisioningdoc>
<characteristic type="clock">
<!-- COMMENT - EASTERN US - SEE MSDN -->
<parm name="TimeZone" value="35"/>
</characteristic>
</wap-provisioningdoc>
FAVORITES
Code:
<wap-provisioningdoc>
<characteristic type="BrowserFavorite">
<characteristic type="PPC Geeks">
<parm name="URL" value="http://m.ppcgeeks.com/"/>
<parm name="Order" value="0"/>
</characteristic>
</wap-provisioningdoc>
** Just save these to a text file in your settings folder with an XML file extension.