Esempio n. 1
0
        public IncomingPhoneNumberResource Hop(
            string twilioAccountSid,
            string relaySid,
            ILogging logging)
        {
            var    original         = IncomingPhoneNumberResource.Fetch(relaySid);
            string relayPhoneNumber = original.PhoneNumber.ToString();

            logging.Log($"Releasing phone number {relayPhoneNumber} {relaySid}");
            IncomingPhoneNumberResource.Delete(relaySid);

            var localAvailableNumbers = LocalResource.Read("US");
            var desiredNumber         = localAvailableNumbers.First();

            logging.Log($"Purchasing new phone number {desiredNumber.PhoneNumber}");

            var newNumber = IncomingPhoneNumberResource.Create(
                twilioAccountSid,
                desiredNumber.PhoneNumber,
                smsMethod: original.SmsMethod,
                smsUrl: original.SmsUrl);

            logging.Log($"New phone number purchased {newNumber.PhoneNumber} {newNumber.Sid}");
            return(newNumber);
        }
Esempio n. 2
0
        public static LocalResource GetTwilioNumber(int areaCode)
        {
            var accountSid = ConfigUtil.GetEnvironmentVariable("accountSid");
            var authToken  = ConfigUtil.GetEnvironmentVariable("authToken");

            TwilioClient.Init(accountSid, authToken);
            var local = LocalResource.Read(areaCode: areaCode, pathCountryCode: "US", limit: 1, smsEnabled: true);

            return(local.FirstOrDefault());
        }
Esempio n. 3
0
        private List <SelectListItem> TwilioPhoneList(int customerid, string phone, int miles)
        {
            Models.Customers customer = _context.Customers.FirstOrDefault(c => c.CustomerId == customerid);

            phone = (string.IsNullOrEmpty(phone) ? "+1" + customer.PrimaryPhone : "+1" + phone);

            TwilioClient.Init(customer.TwilioAccountSid, customer.TwilioAuthToken);
            ResourceSet <LocalResource> localAvailableNumbers = LocalResource.Read("US", nearNumber: phone, distance: miles);

            return((from c in localAvailableNumbers
                    select new SelectListItem {
                Value = c.PhoneNumber.ToString().Substring(2), Text = c.FriendlyName.ToString() + " " + c.Locality
            }).ToList());
        }
Esempio n. 4
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var local = LocalResource.Read();

        foreach (var record in local)
        {
            Console.WriteLine(record.Sid);
        }
    }
        public void TestReadEmptyResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"end\": 0,\"first_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1&Page=0\",\"incoming_phone_numbers\": [],\"last_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1&Page=2\",\"next_page_uri\": null,\"num_pages\": 3,\"page\": 0,\"page_size\": 1,\"previous_page_uri\": null,\"start\": 0,\"total\": 3,\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1\"}"
                         ));

            var response = LocalResource.Read(client: twilioRestClient);

            Assert.NotNull(response);
        }
Esempio n. 6
0
        public IEnumerable <VoipPhone> GetAvailablePhoneNumbers(PhoneNumberType phoneNumberType, string isoCountryCode)
        {
            return(phoneNumberType switch
            {
                PhoneNumberType.Local => LocalResource.Read(isoCountryCode, voiceEnabled: true, client: client).Select(r => new TwilioPhone(client, AuthContext, TenantUtil, SecurityContext, BaseCommonLinkUtility)
                {
                    Number = r.PhoneNumber.ToString()
                }),
                PhoneNumberType.TollFree => TollFreeResource.Read(isoCountryCode, voiceEnabled: true, client: client).Select(r => new TwilioPhone(client, AuthContext, TenantUtil, SecurityContext, BaseCommonLinkUtility)
                {
                    Number = r.PhoneNumber.ToString()
                }),

                _ => new List <VoipPhone>(),
            });
        public void TestReadFullResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"available_phone_numbers\": [{\"address_requirements\": \"none\",\"beta\": false,\"capabilities\": {\"mms\": true,\"sms\": false,\"voice\": true},\"friendly_name\": \"(808) 925-1571\",\"iso_country\": \"US\",\"lata\": \"834\",\"latitude\": \"19.720000\",\"longitude\": \"-155.090000\",\"phone_number\": \"+18089251571\",\"postal_code\": \"96720\",\"rate_center\": \"HILO\",\"region\": \"HI\"}],\"end\": 1,\"first_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AvailablePhoneNumbers/US/Local.json?PageSize=50&Page=0\",\"last_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AvailablePhoneNumbers/US/Local.json?PageSize=50&Page=0\",\"next_page_uri\": null,\"num_pages\": 1,\"page\": 0,\"page_size\": 50,\"previous_page_uri\": null,\"start\": 0,\"total\": 1,\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AvailablePhoneNumbers/US/Local.json?PageSize=1\"}"
                         ));

            var response = LocalResource.Read("US", client: twilioRestClient);

            Assert.NotNull(response);
        }
        public void TestReadFullResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"end\": 0,\"first_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1&Page=0\",\"incoming_phone_numbers\": [{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"address_requirements\": \"none\",\"address_sid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"api_version\": \"2010-04-01\",\"beta\": null,\"capabilities\": {\"mms\": true,\"sms\": false,\"voice\": true},\"date_created\": \"Thu, 30 Jul 2015 23:19:04 +0000\",\"date_updated\": \"Thu, 30 Jul 2015 23:19:04 +0000\",\"friendly_name\": \"(808) 925-5327\",\"identity_sid\": \"RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"phone_number\": \"+18089255327\",\"origin\": \"origin\",\"sid\": \"PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"sms_application_sid\": \"\",\"sms_fallback_method\": \"POST\",\"sms_fallback_url\": \"\",\"sms_method\": \"POST\",\"sms_url\": \"\",\"status_callback\": \"\",\"status_callback_method\": \"POST\",\"trunk_sid\": null,\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\",\"voice_application_sid\": \"\",\"voice_caller_id_lookup\": false,\"voice_fallback_method\": \"POST\",\"voice_fallback_url\": null,\"voice_method\": \"POST\",\"voice_url\": null,\"emergency_status\": \"Active\",\"emergency_address_sid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"bundle_sid\": \"BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"}],\"last_page_uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1&Page=2\",\"next_page_uri\": null,\"num_pages\": 3,\"page\": 0,\"page_size\": 1,\"previous_page_uri\": null,\"start\": 0,\"total\": 3,\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/Local.json?PageSize=1\"}"
                         ));

            var response = LocalResource.Read(client: twilioRestClient);

            Assert.NotNull(response);
        }
Esempio n. 9
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var local = LocalResource.Read(limit: 20);

        foreach (var record in local)
        {
            Console.WriteLine(record.Sid);
        }
    }
Esempio n. 10
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var localAvailableNumbers = LocalResource.Read("US", inRegion: "AR");

        // Purchase the first number on the list
        var firstNumber         = localAvailableNumbers.First();
        var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
            phoneNumber: firstNumber.PhoneNumber);

        Console.WriteLine(incomingPhoneNumber.Sid);
    }
Esempio n. 11
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        const string authToken  = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var localAvailableNumbers = LocalResource.Read("US", contains: "STORM");

        // Purchase the first number on the list
        var firstNumber         = localAvailableNumbers.First();
        var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
            phoneNumber: firstNumber.PhoneNumber);

        Console.WriteLine(incomingPhoneNumber.Sid);
    }
Esempio n. 12
0
        public IEnumerable <VoipPhone> GetAvailablePhoneNumbers(PhoneNumberType phoneNumberType, string isoCountryCode)
        {
            switch (phoneNumberType)
            {
            case PhoneNumberType.Local:
                return(LocalResource.Read(isoCountryCode, voiceEnabled: true, client: client).Select(r => new TwilioPhone(client)
                {
                    Number = r.PhoneNumber.ToString()
                }));

            case PhoneNumberType.TollFree:
                return(TollFreeResource.Read(isoCountryCode, voiceEnabled: true, client: client).Select(r => new TwilioPhone(client)
                {
                    Number = r.PhoneNumber.ToString()
                }));
            }

            return(new List <VoipPhone>());
        }
Esempio n. 13
0
        public void TestReadRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Get,
                Twilio.Rest.Domain.Api,
                "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/IncomingPhoneNumbers/Local.json",
                ""
                );

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                LocalResource.Read(client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        const string nearLatLong           = "37.840699,-122.461853";
        var          localAvailableNumbers = LocalResource.Read("US",
                                                                nearLatLong: nearLatLong,
                                                                distance: 50,
                                                                contains: "555",
                                                                inRegion: "CA");

        var firstNumber         = localAvailableNumbers.First();
        var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
            phoneNumber: firstNumber.PhoneNumber);

        Console.WriteLine(incomingPhoneNumber.Sid);
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        const string authToken  = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        const string nearLatLong           = "37.840699,-122.461853";
        var          localAvailableNumbers = LocalResource.Read("US",
                                                                nearLatLong: nearLatLong,
                                                                distance: 50,
                                                                contains: "555",
                                                                inRegion: "CA");

        var firstNumber         = localAvailableNumbers.First();
        var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
            phoneNumber: firstNumber.PhoneNumber);

        Console.WriteLine(incomingPhoneNumber.Sid);
    }
Esempio n. 16
0
 public List <string> GetAvailableNumbers(int areaCode)
 {
     return(LocalResource.Read("US", areaCode: areaCode, smsEnabled: true, limit: 5).Select(lr => lr.PhoneNumber.ToString()).ToList());
 }
Esempio n. 17
0
 public IEnumerable <LocalResource> GetAvailableNumbers(string countryCode, int areaCode)
 {
     return(LocalResource.Read(countryCode, areaCode: areaCode, mmsEnabled: true));
 }
Esempio n. 18
0
        public List <TextNumber> GetAvailableNumbers(string country, string areaCode)
        {
            var availableNumbers = new List <TextNumber>();

            TwilioClient.Init(Config.NumberProviderConfig.TwilioAccountSid, Config.NumberProviderConfig.TwilioAuthToken);
            ResourceSet <LocalResource> numbers;

            if (country == "US" || country == "CA" || country == "GB")
            {
                if (!string.IsNullOrWhiteSpace(areaCode))
                {
                    numbers = LocalResource.Read(country, areaCode: int.Parse(areaCode), smsEnabled: true);
                }
                else
                {
                    numbers = LocalResource.Read(country, smsEnabled: true);
                }

                if (numbers != null)
                {
                    foreach (var number in numbers)
                    {
                        var textNumber = new TextNumber();
                        textNumber.msisdn  = number.PhoneNumber.ToString();
                        textNumber.country = number.IsoCountry;
                        textNumber.Number  = number.FriendlyName.ToString();

                        availableNumbers.Add(textNumber);
                    }
                }
            }
            else
            {
                ResourceSet <MobileResource> mobileNumbers;

                if (!string.IsNullOrWhiteSpace(areaCode))
                {
                    mobileNumbers = MobileResource.Read(country, areaCode: int.Parse(areaCode), smsEnabled: true);
                }
                else
                {
                    mobileNumbers = MobileResource.Read(country, smsEnabled: true);
                }

                if (mobileNumbers != null)
                {
                    foreach (var number in mobileNumbers)
                    {
                        var textNumber = new TextNumber();
                        textNumber.msisdn  = number.PhoneNumber.ToString();
                        textNumber.country = number.IsoCountry;
                        textNumber.Number  = number.FriendlyName.ToString();

                        availableNumbers.Add(textNumber);
                    }
                }
            }

            if (availableNumbers.Count > 10)
            {
                return(availableNumbers.Take(10).ToList());
            }

            return(availableNumbers);
        }