From c5733a98c9a51022134e1466a1c7f55720faa2e7 Mon Sep 17 00:00:00 2001 From: Nikita Kuklich Date: Mon, 27 Mar 2023 18:43:03 +0200 Subject: [PATCH] #3133279 Direct routing GA - Quick Starts (#79) * #3133279 Direct routing GA - Quick Starts Add Quick Start code for dotnet * #3133279 Direct routing GA - Quick Starts correction * #3133279 Direct routing GA - Quick Starts correction * #3133279 Direct routing GA - Quick Starts Remove VS installation dependency * #3133279 Direct routing GA - Quick Starts Remove white-space --------- Co-authored-by: Nikita Kuklich --- DirectRouting/DirectRouting.csproj | 14 +++++++++++ DirectRouting/Program.cs | 21 ++++++++++++++++ DirectRouting/README.md | 39 ++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 DirectRouting/DirectRouting.csproj create mode 100644 DirectRouting/Program.cs create mode 100644 DirectRouting/README.md diff --git a/DirectRouting/DirectRouting.csproj b/DirectRouting/DirectRouting.csproj new file mode 100644 index 00000000..e9237965 --- /dev/null +++ b/DirectRouting/DirectRouting.csproj @@ -0,0 +1,14 @@ + + + + Exe + net7.0 + enable + enable + + + + + + + diff --git a/DirectRouting/Program.cs b/DirectRouting/Program.cs new file mode 100644 index 00000000..05af624e --- /dev/null +++ b/DirectRouting/Program.cs @@ -0,0 +1,21 @@ +using Azure.Communication.PhoneNumbers.SipRouting; + +var connectionString = "endpoint=https://.communication.azure.com/;accesskey="; +var client = new SipRoutingClient(connectionString); + +var usSbcFqdn = "sbc.us.contoso.com"; +var euSbcFqdn = "sbc.eu.contoso.com"; +var sbcPort = 1234; +var usTrunk = new SipTrunk(usSbcFqdn, sbcPort); +var euTrunk = new SipTrunk(euSbcFqdn, sbcPort); + +var response = await client.SetTrunksAsync(new List { usTrunk, euTrunk }); + +Console.WriteLine($"SetTrunks operation result: { response.Status }.{Environment.NewLine}Trunks: { response.Content }"); + +var usRoute = new SipTrunkRoute("UsRoute", "^\\+1(\\d{10})$", trunks: new List { usSbcFqdn }); +var defaultRoute = new SipTrunkRoute("DefaultRoute", "^\\+\\d+$", trunks: new List { usSbcFqdn, euSbcFqdn }); + +response = await client.SetRoutesAsync(new List { usRoute, defaultRoute }); + +Console.WriteLine($"SetRoutes operation result: {response.Status}.{Environment.NewLine}Routes: {response.Content}"); diff --git a/DirectRouting/README.md b/DirectRouting/README.md new file mode 100644 index 00000000..03df80b3 --- /dev/null +++ b/DirectRouting/README.md @@ -0,0 +1,39 @@ +--- +page_type: sample +languages: +- csharp +products: +- azure +- azure-communication-services +--- + + +# Direct Routing Configuration + +For full instructions on how to build this code sample from scratch, look at [Quickstart: Direct Routing](https://docs.microsoft.com/azure/communication-services/quickstarts/telephony-sms/voice-routing-sdk-config?pivots=programming-language-csharp) + +## Prerequisites + +- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F). +- The latest version [.NET Core client library](https://dotnet.microsoft.com/download/dotnet-core) for your operating system. +- An active Communication Services resource and connection string. [Create a Communication Services resource](https://docs.microsoft.com/azure/communication-services/quickstarts/create-communication-resource?tabs=windows&pivots=platform-net). + +## Code Structure + +- **./DirectRouting/Program.cs:** Core application code with manage phone numbers implementation. +- **./DirectRouting/DirectRouting.csproj:** Project configuration file. + +## Before running sample code + +1. Open an instance of PowerShell, Windows Terminal, Command Prompt or equivalent and navigate to the directory that you'd like to clone the sample to. +2. `git clone https://github.com/Azure-Samples/Communication-Services-dotnet-quickstarts.git` +3. With the `Connection String` procured in pre-requisites, add it to the **DirectRouting/program.cs** file. Assign your connection string in line 3: + ```csharp + var connectionString = "endpoint=https://.communication.azure.com/;accesskey="; + ``` + +## Run Locally + +```console +dotnet run +```