Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
        /// <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);
        }
        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));
        }
Exemplo n.º 12
0
        /// <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 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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 18
0
    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);
    }
Exemplo n.º 19
0
    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);
        }