static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/user/account string AccountSid = "{{ account_sid }}"; string AuthToken = "{{ auth_token }}"; var twilio = new TwilioRestClient(AccountSid, AuthToken); var options = new AvailablePhoneNumberListRequest(); options.NearLatLong = "37.840699,-122.461853"; options.Distance = 50; options.Contains = "555"; options.InRegion = "CA"; var result = twilio.ListAvailableLocalPhoneNumbers("US", options); // Purchase the first number in the list var availableNumber = result.AvailablePhoneNumbers[0]; var purchaseOptions = new PhoneNumberOptions(); purchaseOptions.PhoneNumber = availableNumber.PhoneNumber; var number = twilio.AddIncomingPhoneNumber(purchaseOptions); Console.WriteLine(number.Sid); }
public IEnumerable <VoipPhone> GetAvailablePhoneNumbers(PhoneNumberType phoneNumberType, string isoCountryCode) { var result = new AvailablePhoneNumberResult(); var request = new AvailablePhoneNumberListRequest { VoiceEnabled = true }; switch (phoneNumberType) { case PhoneNumberType.Local: result = client.ListAvailableLocalPhoneNumbers(isoCountryCode, request); break; /* case PhoneNumberType.Mobile: * result = twilio.ListAvailableMobilePhoneNumbers(isoCountryCode, request); * break;*/ case PhoneNumberType.TollFree: result = client.ListAvailableTollFreePhoneNumbers(isoCountryCode); break; } ThrowIfError(result); return(result.AvailablePhoneNumbers.Select(r => new TwilioPhone(client) { Number = r.PhoneNumber })); }
// // GET: /Numbers/ public ActionResult Index(String IsoCountry) { var accountSid = ConfigurationManager.AppSettings["TwilioAccountSid"]; var authToken = ConfigurationManager.AppSettings["TwilioAuthToken"]; var twilio = new TwilioRestClient(accountSid, authToken); var addresses = twilio.ListAddresses(); if (addresses.RestException != null) { return(new HttpStatusCodeResult(500, addresses.RestException.Message)); } // Return ISO codes only once var availableCountries = addresses.Addresses.Select(m => m.IsoCountry).Distinct(); if (IsoCountry != null) { var options = new AvailablePhoneNumberListRequest { VoiceEnabled = true }; var numbers = twilio.ListAvailableLocalPhoneNumbers(IsoCountry, options); if (numbers.RestException != null) { return(new HttpStatusCodeResult(500, numbers.RestException.Message)); } ViewBag.numbers = numbers.AvailablePhoneNumbers; } ViewBag.countries = availableCountries; return(View()); }
public void ShouldListAvailableLocalPhoneNumbersWithOptions() { RestRequest savedRequest = null; mockClient.Setup(trc => trc.Execute<AvailablePhoneNumberResult>(It.IsAny<RestRequest>())) .Callback<RestRequest>((request) => savedRequest = request) .Returns(new AvailablePhoneNumberResult()); var client = mockClient.Object; AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); options.AreaCode = "314"; options.Contains = "EA"; //contains must be 2 or more characters, unless using * alone options.Distance = 50; client.ListAvailableLocalPhoneNumbers(ISO_COUNTRY_CODE, options); mockClient.Verify(trc => trc.Execute<AvailablePhoneNumberResult>(It.IsAny<RestRequest>()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(4, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); var areaCodeParam = savedRequest.Parameters.Find(x => x.Name == "AreaCode"); Assert.IsNotNull(areaCodeParam); Assert.AreEqual(options.AreaCode, areaCodeParam.Value); var containsParam = savedRequest.Parameters.Find(x => x.Name == "Contains"); Assert.IsNotNull(containsParam); Assert.AreEqual(options.Contains, containsParam.Value); var distanceParam = savedRequest.Parameters.Find(x => x.Name == "Distance"); Assert.IsNotNull(distanceParam); Assert.AreEqual(options.Distance, distanceParam.Value); }
public void ShouldListAvailableLocalPhoneNumbersAsynchronously() { RestRequest savedRequest = null; mockClient.Setup(trc => trc.ExecuteAsync <AvailablePhoneNumberResult>(It.IsAny <RestRequest>(), It.IsAny <Action <AvailablePhoneNumberResult> >())) .Callback <RestRequest, Action <AvailablePhoneNumberResult> >((request, action) => savedRequest = request); var client = mockClient.Object; manualResetEvent = new ManualResetEvent(false); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); client.ListAvailableLocalPhoneNumbers(ISO_COUNTRY_CODE, options, numbers => { manualResetEvent.Set(); }); manualResetEvent.WaitOne(1); mockClient.Verify(trc => trc.ExecuteAsync <AvailablePhoneNumberResult>(It.IsAny <RestRequest>(), It.IsAny <Action <AvailablePhoneNumberResult> >()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(1, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); }
public async Task ShouldListAvailableLocalPhoneNumbers() { RestRequest savedRequest = null; var tcs = new TaskCompletionSource <AvailablePhoneNumberResult>(); tcs.SetResult(new AvailablePhoneNumberResult()); mockClient.Setup(trc => trc.Execute <AvailablePhoneNumberResult>(It.IsAny <RestRequest>())) .Callback <RestRequest>((request) => savedRequest = request) .Returns(tcs.Task); var client = mockClient.Object; AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); await client.ListAvailableLocalPhoneNumbersAsync(ISO_COUNTRY_CODE, options); mockClient.Verify(trc => trc.Execute <AvailablePhoneNumberResult>(It.IsAny <RestRequest>()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(1, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); }
public async Task ShouldListAvailableLocalPhoneNumbers() { RestRequest savedRequest = null; var tcs = new TaskCompletionSource<AvailablePhoneNumberResult>(); tcs.SetResult(new AvailablePhoneNumberResult()); mockClient.Setup(trc => trc.Execute<AvailablePhoneNumberResult>(It.IsAny<RestRequest>())) .Callback<RestRequest>((request) => savedRequest = request) .Returns(tcs.Task); var client = mockClient.Object; AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); await client.ListAvailableLocalPhoneNumbersAsync(ISO_COUNTRY_CODE, options); mockClient.Verify(trc => trc.Execute<AvailablePhoneNumberResult>(It.IsAny<RestRequest>()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(1, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); }
/// <summary> /// Availables the phone number result. /// </summary> /// <returns>AvailablePhoneNumberResult.</returns> public List <PhoneNumber> AvailablePhoneNumberResult() { var searchParms = new AvailablePhoneNumberListRequest(); var numbers = _twilio.ListAvailableLocalPhoneNumbers("US", searchParms); return(numbers.AvailablePhoneNumbers.Select(i => new PhoneNumber { FormattedNumber = i.FriendlyName, Number = i.PhoneNumber }).ToList()); }
public void ShouldListAvailableTollFreePhoneNumbers() { var client = new TwilioRestClient(Credentials.AccountSid, Credentials.AuthToken); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); var result = client.ListAvailableTollFreePhoneNumbers("US"); Assert.IsNotNull(result); Assert.IsNull(result.RestException); Assert.IsNotNull(result.AvailablePhoneNumbers); }
/// <summary> /// Search available local phone numbers /// </summary> /// <param name="isoCountryCode">Two-character ISO country code (US or CA)</param> /// <param name="options">Search filter options. Only properties with values set will be used.</param> /// <param name="callback">Method to call upon successful completion</param> public void ListAvailableLocalPhoneNumbers(string isoCountryCode, AvailablePhoneNumberListRequest options, Action<AvailablePhoneNumberResult> callback) { Require.Argument("isoCountryCode", isoCountryCode); var request = new RestRequest(); request.Resource = "Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local"; request.AddUrlSegment("IsoCountryCode", isoCountryCode); AddNumberSearchParameters(options, request); ExecuteAsync<AvailablePhoneNumberResult>(request, (response) => callback(response)); }
/// <summary> /// Search available local phone numbers /// </summary> /// <param name="isoCountryCode">Two-character ISO country code (US or CA)</param> /// <param name="options">Search filter options. Only properties with values set will be used.</param> public AvailablePhoneNumberResult ListAvailableLocalPhoneNumbers(string isoCountryCode, AvailablePhoneNumberListRequest options) { Require.Argument("isoCountryCode", isoCountryCode); var request = new RestRequest(); request.Resource = "Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local"; request.AddUrlSegment("IsoCountryCode", isoCountryCode); AddNumberSearchParameters(options, request); return Execute<AvailablePhoneNumberResult>(request); }
public void ShouldListAvailableLocalPhoneNumbersWithOptions() { var client = new TwilioRestClient(Credentials.AccountSid, Credentials.AuthToken); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); options.AreaCode = "314"; options.Contains = "EA"; //contains must be 2 or more characters, unless using * alone options.Distance = 50; var result = client.ListAvailableLocalPhoneNumbers("US", options); Assert.IsNotNull(result); Assert.IsNull(result.RestException); Assert.IsNotNull(result.AvailablePhoneNumbers); }
public void ShouldListAvailableTollFreePhoneNumbersAsynchronouslyThatContain() { manualResetEvent = new ManualResetEvent(false); var client = new TwilioRestClient(Credentials.AccountSid, Credentials.AuthToken); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); AvailablePhoneNumberResult result = null; client.ListAvailableTollFreePhoneNumbers("US", "EA", numbers => { result = numbers; manualResetEvent.Set(); }); manualResetEvent.WaitOne(); Assert.IsNotNull(result); Assert.IsNull(result.RestException); Assert.IsNotNull(result.AvailablePhoneNumbers); }
public async Task ShouldListAvailableLocalPhoneNumbersWithOptions() { RestRequest savedRequest = null; var tcs = new TaskCompletionSource <AvailablePhoneNumberResult>(); tcs.SetResult(new AvailablePhoneNumberResult()); mockClient.Setup(trc => trc.Execute <AvailablePhoneNumberResult>(It.IsAny <RestRequest>())) .Callback <RestRequest>((request) => savedRequest = request) .Returns(tcs.Task); var client = mockClient.Object; AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); options.AreaCode = "314"; options.Contains = "EA"; //contains must be 2 or more characters, unless using * alone options.Distance = 50; await client.ListAvailableLocalPhoneNumbersAsync(ISO_COUNTRY_CODE, options); mockClient.Verify(trc => trc.Execute <AvailablePhoneNumberResult>(It.IsAny <RestRequest>()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(4, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); var areaCodeParam = savedRequest.Parameters.Find(x => x.Name == "AreaCode"); Assert.IsNotNull(areaCodeParam); Assert.AreEqual(options.AreaCode, areaCodeParam.Value); var containsParam = savedRequest.Parameters.Find(x => x.Name == "Contains"); Assert.IsNotNull(containsParam); Assert.AreEqual(options.Contains, containsParam.Value); var distanceParam = savedRequest.Parameters.Find(x => x.Name == "Distance"); Assert.IsNotNull(distanceParam); Assert.AreEqual(options.Distance, distanceParam.Value); }
public void ShouldListAvailableLocalPhoneNumbersAsynchronously() { manualResetEvent = new ManualResetEvent(false); var client = new TwilioRestClient(Credentials.AccountSid, Credentials.AuthToken); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); AvailablePhoneNumberResult result = null; client.ListAvailableLocalPhoneNumbers("US", options, numbers => { result = numbers; manualResetEvent.Set(); }); manualResetEvent.WaitOne(); Assert.IsNotNull(result); Assert.IsNull(result.RestException); Assert.IsNotNull(result.AvailablePhoneNumbers); }
static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/user/account string AccountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; string AuthToken = "your_auth_token"; var twilio = new TwilioRestClient(AccountSid, AuthToken); var options = new AvailablePhoneNumberListRequest(); var result = twilio.ListAvailableMobilePhoneNumbers("GB", options); // Purchase the first number on the list var availableNumber = result.AvailablePhoneNumbers[0]; var purchaseOptions = new PhoneNumberOptions(); purchaseOptions.PhoneNumber = availableNumber.PhoneNumber; var number = twilio.AddIncomingPhoneNumber(purchaseOptions); Console.WriteLine(number.Sid); }
static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/user/account string AccountSid = "{{ account_sid }}"; string AuthToken = "{{ auth_token }}"; var twilio = new TwilioRestClient(AccountSid, AuthToken); var options = new AvailablePhoneNumberListRequest(); options.ExcludeLocalAddressRequired = true; var result = twilio.ListAvailableLocalPhoneNumbers("US", options); // Purchase the first number in the list var availableNumber = result.AvailablePhoneNumbers[0]; var purchaseOptions = new PhoneNumberOptions(); purchaseOptions.PhoneNumber = availableNumber.PhoneNumber; var number = twilio.AddIncomingPhoneNumber(purchaseOptions); Console.WriteLine(number.Sid); }
private void AddNumberSearchParameters(AvailablePhoneNumberListRequest options, RestRequest request) { if (options.AreaCode.HasValue()) request.AddParameter("AreaCode", options.AreaCode); if (options.Contains.HasValue()) request.AddParameter("Contains", options.Contains); if (options.Distance.HasValue) request.AddParameter("Distance", options.Distance); if (options.InLata.HasValue()) request.AddParameter("InLata", options.InLata); if (options.InPostalCode.HasValue()) request.AddParameter("InPostalCode", options.InPostalCode); if (options.InRateCenter.HasValue()) request.AddParameter("InRateCenter", options.InRateCenter); if (options.InRegion.HasValue()) request.AddParameter("InRegion", options.InRegion); if (options.NearLatLong.HasValue()) request.AddParameter("NearLatLong", options.NearLatLong); if (options.NearNumber.HasValue()) request.AddParameter("NearNumber", options.NearNumber); }
public void ShouldListAvailableLocalPhoneNumbersAsynchronously() { RestRequest savedRequest = null; mockClient.Setup(trc => trc.ExecuteAsync<AvailablePhoneNumberResult>(It.IsAny<RestRequest>(), It.IsAny<Action<AvailablePhoneNumberResult>>())) .Callback<RestRequest, Action<AvailablePhoneNumberResult>>((request, action) => savedRequest = request); var client = mockClient.Object; manualResetEvent = new ManualResetEvent(false); AvailablePhoneNumberListRequest options = new AvailablePhoneNumberListRequest(); client.ListAvailableLocalPhoneNumbers(ISO_COUNTRY_CODE, options, numbers => { manualResetEvent.Set(); }); manualResetEvent.WaitOne(1); mockClient.Verify(trc => trc.ExecuteAsync<AvailablePhoneNumberResult>(It.IsAny<RestRequest>(), It.IsAny<Action<AvailablePhoneNumberResult>>()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountryCode}/Local.json", savedRequest.Resource); Assert.AreEqual("GET", savedRequest.Method); Assert.AreEqual(1, savedRequest.Parameters.Count); var isoCountryCodeParam = savedRequest.Parameters.Find(x => x.Name == "IsoCountryCode"); Assert.IsNotNull(isoCountryCodeParam); Assert.AreEqual(ISO_COUNTRY_CODE, isoCountryCodeParam.Value); }