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); }
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 number = IncomingPhoneNumberResource.Fetch("PN2a0747eba6abf96b7e3c3ff0b4530f6e"); Console.WriteLine(number.PhoneNumber); }
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 number = IncomingPhoneNumberResource.Fetch("PN2a0747eba6abf96b7e3c3ff0b4530f6e"); Console.WriteLine(number.PhoneNumber); }
public static IServiceCollection AddTwilioTextApi(this IServiceCollection services, TextConfig config) { TwilioClient.Init(config.Twilio.AccountSid, config.Twilio.AuthToken); var incoming = IncomingPhoneNumberResource.Fetch(pathSid: config.Twilio.PhoneSid); services.Configure <TextServiceSettings>(options => { options.AlphaCode = config.AlphaCode; options.PhoneNumber = incoming.PhoneNumber.ToString(); }); services.AddScoped <ITextSendService, TwillioTextSendService>(); return(services); }
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 incomingPhoneNumber = IncomingPhoneNumberResource.Fetch( pathSid: "PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(incomingPhoneNumber.FriendlyName); }
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 incomingPhoneNumber = IncomingPhoneNumberResource.Fetch( pathSid: "PN2a0747eba6abf96b7e3c3ff0b4530f6e" ); Console.WriteLine(incomingPhoneNumber.FriendlyName); }
public void TestFetchResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"address_requirements\": \"none\",\"address_sid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"api_version\": \"2010-04-01\",\"beta\": false,\"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\",\"emergency_status\": \"Active\",\"emergency_address_sid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"friendly_name\": \"(808) 925-5327\",\"identity_sid\": \"RIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"origin\": \"origin\",\"phone_number\": \"+18089255327\",\"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}" )); var response = IncomingPhoneNumberResource.Fetch("PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public VoipPhone GetPhone(string phoneSid) { var phone = IncomingPhoneNumberResource.Fetch(phoneSid, client: client); var result = new TwilioPhone(client) { Id = phone.Sid, Number = phone.PhoneNumber.ToString(), Settings = new TwilioVoipSettings() }; if (phone.VoiceUrl == null) { result.Settings.VoiceUrl = result.Settings.Connect(false); } return(result); }
public void TestFetchRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Get, Twilio.Rest.Domain.Api, "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/IncomingPhoneNumbers/PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json", "" ); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { IncomingPhoneNumberResource.Fetch("PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
public void ConfigureServices(IServiceCollection services) { var db = new DatabaseConfig(); var mqtt = new MqttConfig(); var timeouts = new TimeoutConfig(); var mail = new MailConfig(); var text = new TextConfig(); this.Configuration.GetSection("Mail").Bind(mail); this.Configuration.GetSection("Database").Bind(db); this.Configuration.GetSection("Mqtt").Bind(mqtt); this.Configuration.GetSection("Timeouts").Bind(timeouts); this.Configuration.GetSection("Text").Bind(text); var privatemqtt = mqtt.InternalBroker; services.AddConnectionStrings(db.Networking.ConnectionString, db.SensateIoT.ConnectionString); services.AddAuthorizationContext(); services.AddNetworkingContext(); services.AddDocumentStore(db.MongoDB.ConnectionString, db.MongoDB.DatabaseName, db.MongoDB.MaxConnections); services.Configure <TimeoutConfig>(this.Configuration.GetSection("Timeouts")); services.Configure <MqttConfig>(this.Configuration.GetSection("Mqtt")); services.Configure <MetricsOptions>(this.Configuration.GetSection("HttpServer:Metrics")); services.AddHostedService <MetricsService>(); services.AddInternalMqttService(options => { options.Ssl = privatemqtt.Ssl; options.Host = privatemqtt.Host; options.Port = privatemqtt.Port; options.Username = privatemqtt.Username; options.Password = privatemqtt.Password; options.Id = Guid.NewGuid().ToString(); options.TopicShare = "$share/triggers/"; }); services.Configure <RouterSettings>(s => { s.Host = this.Configuration.GetValue <string>("Router:Host"); s.Port = this.Configuration.GetValue <ushort>("Router:Port"); s.Secure = this.Configuration.GetValue <bool>("Router:Secure"); }); if (mail.Provider == "SendGrid") { services.AddSingleton <IEmailSender, SendGridMailer>(); services.Configure <SendGridAuthOptions>(opts => { opts.FromName = mail.FromName; opts.From = mail.From; opts.Key = mail.SendGrid.Key; opts.Username = mail.SendGrid.Username; }); } else if (mail.Provider == "SMTP") { services.AddSingleton <IEmailSender, SmtpMailer>(); services.Configure <SmtpAuthOptions>(opts => { opts.FromName = mail.FromName; opts.From = mail.From; opts.Password = mail.Smtp.Password; opts.Username = mail.Smtp.Username; opts.Ssl = mail.Smtp.Ssl; opts.Port = mail.Smtp.Port; opts.Host = mail.Smtp.Host; }); } if (text.Provider == "Twillio") { TwilioClient.Init(text.Twilio.AccountSid, text.Twilio.AuthToken); var incoming = IncomingPhoneNumberResource.Fetch(pathSid: text.Twilio.PhoneSid); services.Configure <TextServiceSettings>(options => { options.AlphaCode = text.AlphaCode; options.PhoneNumber = incoming.PhoneNumber.ToString(); }); services.AddScoped <ITextSendService, TwillioTextSendService>(); } else { throw new InvalidOperationException("Text provider not configured!"); } services.AddScoped <IControlMessageRepository, ControlMessageRepository>(); services.AddScoped <ITriggerRepository, TriggerRepository>(); services.AddScoped <IControlMessageRepository, ControlMessageRepository>(); services.AddScoped <ITriggerActionExecutionService, TriggerActionExecutionService>(); services.AddSingleton <IDataPointMatchingService, DataPointMatchingService>(); services.AddSingleton <IRegexMatchingService, RegexMatchingService>(); services.AddSingleton <IRouterClient, RouterClient>(); services.AddSingleton <IEmailSender, SmtpMailer>(); services.AddSingleton <ITriggerActionCache, TriggerActionCache>(); services.AddHostedService <TriggerActionReloadService>(); services.AddHttpClient(); services.AddMqttHandlers(); }