public PhoneNumber ProvisionTollFreePhoneNumber(String phoneNumber, String voiceUrl = null, String voiceFallbackUrl = null)
{
if ((String.IsNullOrEmpty(phoneNumber)))
{
throw new ArgumentNullException("phoneNumber");
}
_parameters.Clear();
_parameters.Add("PhoneNumber", phoneNumber);
if (!String.IsNullOrEmpty(voiceUrl))
{
_parameters.Add("VoiceUrl", voiceUrl);
_parameters.Add("VoiceMethod", "GET");
}
if (!String.IsNullOrEmpty(voiceFallbackUrl))
{
_parameters.Add("VoiceFallbackUrl", voiceFallbackUrl);
}
_twilioResponse = _account.request(String.Format("Accounts/{0}/IncomingPhoneNumbers.json", _account.id), "POST", _parameters);
dynamic data = ParseResponseData(_twilioResponse);
var phone = new PhoneNumber
{
sid = data.sid,
account_sid = data.account_sid,
friendly_name = data.friendly_name,
phone_number = data.phone_number,
voice_url = data.voice_url,
voice_method = data.voice_method,
voice_fallback_url = data.voice_fallback_url,
voice_fallback_method = data.voice_fallback_method,
voice_caller_id_lookup = Convert.ToBoolean(data.voice_caller_id_lookup),
date_created = !String.IsNullOrEmpty(data.date_created) ? Convert.ToDateTime(data.date_created) : null,
date_updated = !String.IsNullOrEmpty(data.date_updated) ? Convert.ToDateTime(data.date_updated) : null,
sms_url = data.sms_url,
sms_method = data.sms_method,
sms_fallback_url = data.sms_fallback_url,
sms_fallback_method = data.sms_fallback_method,
capabilities = new Capabilities
{
sms = !String.IsNullOrEmpty(data.capabilities.sms) ? Convert.ToBoolean(data.capabilities.sms) : null,
voice = !String.IsNullOrEmpty(data.capabilities.voice) ? Convert.ToBoolean(data.capabilities.voice) : null
},
status_callback = data.status_callback,
status_callback_method = data.status_callback_method,
api_version = data.api_version,
uri = data.uri
};
return phone;
}