public FlowrouteClient(string accessKey, string _secretKey) { _accessKey = accessKey; this._secretKey = _secretKey; Messaging = new MessagingClient(accessKey, _secretKey); PhoneNumbers = new PhoneNumbersClient(accessKey, _secretKey); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the token credential /// and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClientWithTokenCredential(bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.LiveTestStaticEndpoint, (Mode == RecordedTestMode.Playback) ? new MockCredential() : new DefaultAzureCredential(), CreatePhoneNumbersClientOptionsWithCorrelationVectorLogs()); return(isInstrumented ? InstrumentClient(client) : client); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the azure key credential /// and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClientWithAzureKeyCredential(bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.LiveTestStaticEndpoint, new AzureKeyCredential(TestEnvironment.LiveTestStaticAccessKey), CreatePhoneNumbersClientOptionsWithCorrelationVectorLogs()); return(isInstrumented ? InstrumentClient(client) : client); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the azure key credential /// and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClientWithAzureKeyCredential(bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.LiveTestEndpoint, new AzureKeyCredential(TestEnvironment.LiveTestAccessKey), InstrumentClientOptions(new PhoneNumbersClientOptions())); return(isInstrumented ? InstrumentClient(client) : client); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the token credential /// and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClientWithTokenCredential(TokenCredential token, bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.Endpoint, token, InstrumentClientOptions(new PhoneNumbersClientOptions())); return(isInstrumented ? InstrumentClient(client) : client); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the connectionstring via environment /// variables and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClientWithConnectionString(bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.LiveTestStaticConnectionString, CreatePhoneNumbersClientOptionsWithCorrelationVectorLogs()); // We always create the instrumented client to suppress the instrumentation check var instrumentedClient = InstrumentClient(client); return(isInstrumented ? instrumentedClient : client); }
/// <summary> /// Creates a <see cref="PhoneNumbersClient" /> with the connectionstring via environment /// variables and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="PhoneNumbersClient" />.</returns> protected PhoneNumbersClient CreateClient(bool isInstrumented = true) { var client = new PhoneNumbersClient( TestEnvironment.ConnectionString, InstrumentClientOptions(new PhoneNumbersClientOptions())); // We always create the instrumented client to suppress the instrumentation check var instrumentedClient = InstrumentClient(client); return(isInstrumented ? instrumentedClient : client); }
/// <summary>Snippet for SearchPhoneNumbersAsync</summary> public async Task SearchPhoneNumbersRequestObjectAsync() { // Snippet: SearchPhoneNumbersAsync(SearchPhoneNumbersRequest, CallSettings) // Create client PhoneNumbersClient phoneNumbersClient = await PhoneNumbersClient.CreateAsync(); // Initialize request argument(s) SearchPhoneNumbersRequest request = new SearchPhoneNumbersRequest { NumberType = PhoneNumber.Types.PhoneNumberType.Unspecified, CountryCode = "", Prefix = "", SupportsVoice = false, SupportsSms = false, SupportsMms = false, }; // Make the request PagedAsyncEnumerable <SearchPhoneNumbersResponse, PhoneNumber> response = phoneNumbersClient.SearchPhoneNumbersAsync(request); // Iterate over all response items, lazily performing RPCs as required await response.ForEachAsync((PhoneNumber item) => { // Do something with each item Console.WriteLine(item); }); // Or iterate over pages (of server-defined size), performing one RPC per page await response.AsRawResponses().ForEachAsync((SearchPhoneNumbersResponse page) => { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (PhoneNumber item in page) { // Do something with each item Console.WriteLine(item); } }); // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <PhoneNumber> singlePage = await response.ReadPageAsync(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (PhoneNumber item in singlePage) { // Do something with each item Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
static async Task Main(string[] args) { // Get a connection string to our Azure Communication resource. var connectionString = "<connection_string>"; var client = new PhoneNumbersClient(connectionString); // Search phone numbers var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound); var searchOptions = new PhoneNumberSearchOptions { AreaCode = "833", Quantity = 1 }; var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync("US", PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities, searchOptions); await searchOperation.WaitForCompletionAsync(); var phoneNumber = searchOperation.Value.PhoneNumbers.First(); // Purchase searched phone numbers var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId); await purchaseOperation.WaitForCompletionResponseAsync(); // Get purchased phone number(s) var getPhoneNumberResponse = await client.GetPurchasedPhoneNumberAsync(phoneNumber); Console.WriteLine($"Phone number: {getPhoneNumberResponse.Value.PhoneNumber}, country code: {getPhoneNumberResponse.Value.CountryCode}"); var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync(); await foreach (var purchasedPhoneNumber in purchasedPhoneNumbers) { Console.WriteLine($"Phone number: {purchasedPhoneNumber.PhoneNumber}, country code: {purchasedPhoneNumber.CountryCode}"); } // Update capabilities var updateCapabilitiesOperation = await client.StartUpdateCapabilitiesAsync(phoneNumber, calling : PhoneNumberCapabilityType.Outbound, sms : PhoneNumberCapabilityType.InboundOutbound); await updateCapabilitiesOperation.WaitForCompletionAsync(); // Release phone number var releaseOperation = await client.StartReleasePhoneNumberAsync(phoneNumber); await releaseOperation.WaitForCompletionResponseAsync(); }
public void PurchaseAndRelease() { if (!IncludePhoneNumberLiveTests) { Assert.Ignore("Include phone number live tests flag is off."); } var connectionString = TestEnvironment.LiveTestConnectionString; #region Snippet:CreatePhoneNumbersClient // Get a connection string to our Azure Communication resource. //@@var connectionString = "<connection_string>"; var client = new PhoneNumbersClient(connectionString); #endregion Snippet:CreatePhoneNumbersClient #region Snippet:CreatePhoneNumbersClientWithTokenCredential // Get an endpoint to our Azure Communication resource. //@@var endpoint = new Uri("<endpoint_url>"); //@@TokenCredential tokenCredential = new DefaultAzureCredential(); //@@client = new PhoneNumbersClient(endpoint, tokenCredential); #endregion Snippet:CreatePhoneNumbersClientWithTokenCredential client = CreateClient(false); const string countryCode = "US"; #region Snippet:SearchPhoneNumbers var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound); var searchOperation = client.StartSearchAvailablePhoneNumbers(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities); while (!searchOperation.HasCompleted) { //@@ Thread.Sleep(2000); /*@@*/ SleepIfNotInPlaybackMode(); searchOperation.UpdateStatus(); } #endregion Snippet:SearchPhoneNumbers #region Snippet:StartPurchaseSearch var purchaseOperation = client.StartPurchasePhoneNumbers(searchOperation.Value.SearchId); while (!purchaseOperation.HasCompleted) { //@@ Thread.Sleep(2000); /*@@*/ SleepIfNotInPlaybackMode(); purchaseOperation.UpdateStatus(); } #endregion Snippet:StartPurchaseSearch #region Snippet:GetPurchasedPhoneNumbers var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbers(); foreach (var phoneNumber in purchasedPhoneNumbers) { Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}"); } #endregion Snippet:GetPurchasedPhoneNumbers var purchasedPhoneNumber = searchOperation.Value.PhoneNumbers.Single(); #region Snippet:UpdateCapabilitiesNumbers var updateCapabilitiesOperation = client.StartUpdateCapabilities(purchasedPhoneNumber, calling: PhoneNumberCapabilityType.Outbound, sms: PhoneNumberCapabilityType.InboundOutbound); while (!updateCapabilitiesOperation.HasCompleted) { //@@ Thread.Sleep(2000); /*@@*/ SleepIfNotInPlaybackMode(); updateCapabilitiesOperation.UpdateStatus(); } #endregion Snippet:UpdateCapabilitiesNumbers Assert.AreEqual(PhoneNumberCapabilityType.Outbound, updateCapabilitiesOperation.Value.Capabilities.Calling); Assert.AreEqual(PhoneNumberCapabilityType.InboundOutbound, updateCapabilitiesOperation.Value.Capabilities.Sms); purchasedPhoneNumbers = client.GetPurchasedPhoneNumbers(); var beforeReleaseNumberCount = purchasedPhoneNumbers.Count(); #region Snippet:ReleasePhoneNumbers //@@var purchasedPhoneNumber = "<purchased_phone_number>"; var releaseOperation = client.StartReleasePhoneNumber(purchasedPhoneNumber); while (!releaseOperation.HasCompleted) { //@@ Thread.Sleep(2000); /*@@*/ SleepIfNotInPlaybackMode(); releaseOperation.UpdateStatus(); } #endregion Snippet:ReleasePhoneNumbers purchasedPhoneNumbers = client.GetPurchasedPhoneNumbers(); var afterReleaseNumberCount = purchasedPhoneNumbers.Count(); Assert.AreEqual(1, beforeReleaseNumberCount - afterReleaseNumberCount); }