this is how I do it for WindowsPhone
void checkGuid()
{
object uniqueID;
DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueID);
byte[] bID = (byte[])uniqueID;
_clientID = Convert.ToBase64String(bID);
Debug.WriteLine(_clientID);
if (!IsolatedStorageSettings.ApplicationSettings.Contains("Guid"))
{
IsolatedStorageSettings.ApplicationSettings.Add("Guid", _clientID);
}
}
as for keeping their phone number, as far as I am aware of Microsoft automatically present the user with an agreement in response to what they detected the app needs to use,
You can present the Users with an EULA of some sort when they launch the app that asks them for permission to use their phone number