Sdílet prostřednictvím


Klientská knihovna azure Communication Phone Numbers pro .NET – verze 1.1.0

Telefonní čísla služby Azure Communication spravují telefonní čísla pro Azure Communication Services.

Zdrojový kód | Dokumentace k | produktu Vzorky

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu Azure Communication Phone Numbers pro .NET pomocí NuGetu:

dotnet add package Azure.Communication.PhoneNumbers

Požadavky

K použití tohoto balíčku potřebujete předplatné Azure a prostředek komunikační služby .

K vytvoření nové komunikační služby můžete použít Azure Portal, Azure PowerShell nebo klientskou knihovnu pro správu .NET.

Klíčové koncepty

Tato sada SDK poskytuje funkce pro snadnou správu direct offer čísel a direct routing čísel.

Čísla direct offer jsou ve dvou typech: zeměpisné a bezplatné. Zeměpisné telefonní tarify jsou telefonní tarify spojené s místem, jehož směrová čísla jsou přidružená k směrovým kódům oblasti zeměpisného umístění. Toll-Free telefonní tarify jsou telefonní tarify, které nejsou přidružené místo. Například v USA můžou bezplatná čísla obsahovat směrová čísla oblastí 800 nebo 888. Spravují se pomocí PhoneNumbersClient

Tato direct routing funkce umožňuje připojit stávající telefonní infrastrukturu ke službě ACS. Konfigurace se spravuje pomocí SipRoutingClientnástroje , který poskytuje metody pro nastavení kmenů PROTOKOLU SIP a pravidel směrování hlasu, aby bylo možné správně zpracovat volání pro vaši telefonní podsíť.

Ověření klienta

Klienty je možné ověřit pomocí připojovacího řetězce získaného z komunikačních prostředků Azure na webu Azure Portal.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);
// Get a connection string to Azure Communication resource.
var connectionString = "<connection_string>";
var client = new SipRoutingClient(connectionString);

Klienti mají také možnost ověřování pomocí ověřování Azure Active Directory. Další informace k tomuto tématu najdete v tématu Identita Azure.

// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);
// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new SipRoutingClient(endpoint, tokenCredential);

Klient telefonních čísel

Přehled typů telefonních čísel

Telefonní čísla mají dva typy: zeměpisné a bezplatné. Zeměpisné telefonní tarify jsou telefonní tarify spojené s místem, jehož směrová čísla jsou přidružená k směrovým kódům oblasti zeměpisného umístění. Toll-Free telefonní tarify jsou telefonní tarify, které nejsou přidružené místo. Například v USA můžou bezplatná čísla obsahovat směrová čísla oblastí 800 nebo 888.

Všechny geografické telefonní tarify v rámci stejné země jsou seskupené do skupiny telefonních tarifů s typem geografického telefonního čísla. Všechny Toll-Free telefonní tarify ve stejné zemi jsou seskupené do skupiny telefonních tarifů.

Vyhledávání, nákup a vydávání telefonních čísel

Telefonní čísla je možné vyhledávat prostřednictvím rozhraní API pro vytváření vyhledávání tak, že zadáte směrové číslo oblasti, množství telefonních čísel, typ aplikace, typ telefonního čísla a možnosti. Zadané množství telefonních čísel bude rezervováno na deset minut a během této doby je možné je zakoupit. Pokud hledání není zakoupeno, telefonní čísla budou po deseti minutách dostupná ostatním uživatelům. Pokud je vyhledávání koupené, telefonní čísla se pořídí pro prostředky Azure.

Telefonní čísla je také možné vydat pomocí rozhraní API verze.

Klient směrování SIP

Funkce přímého směrování umožňuje připojit telefonní infrastrukturu poskytovanou zákazníkem ke komunikačním prostředkům Azure. Aby zákazník správně nastavil konfiguraci směrování, musí pro volání zadat konfiguraci kmene SIP a pravidla směrování SIP. Klient směrování SIP poskytuje potřebné rozhraní pro nastavení této konfigurace.

Při volání se systém pokusí spárovat cílové číslo se vzory čísel regex definovaných tras. Vybere se první trasa, která bude odpovídat číslu. Pořadí porovnávání regulárních výrazů je stejné jako pořadí tras v konfiguraci, proto na pořadí tras záleží. Po spárování trasy se hovor přesměruje do prvního kmene v seznamu kmenů trasy. Pokud kufr není k dispozici, vybere se další kmen v seznamu.

Bezpečnost vlákna

Zaručujeme, že všechny metody instance klienta jsou bezpečné pro přístup z více vláken a nezávislé na sobě (pokyny). Tím se zajistí, že doporučení opakovaného použití instancí klienta bude vždy bezpečné, a to i napříč vlákny.

Další koncepty

Možnosti | klienta Přístup k odpovědi | Dlouhotrvající operace | Zpracování selhání | Diagnostika | Zesměšňovat | Životnost klienta

Příklady

PhoneNumbersClient

Vytvoření klienta PhoneNumbersClient

K vytvoření nového PhoneNumbersClient potřebujete připojovací řetězec k prostředku Azure Communication Services, který můžete získat z webu Azure Portal po vytvoření prostředku.

Nastavení můžete nastavit connectionString na základě proměnné prostředí, nastavení konfigurace nebo jakéhokoliv způsobu, který pro vaši aplikaci funguje.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);

Hledat telefonní čísla

Před nákupem je potřeba telefonní čísla prohledávat. Hledání je dlouhotrvající operace, kterou lze spustit pomocí StartSearchAvailablePhoneNumbers funkce, která vrací SearchAvailablePhoneNumbersOperation objekt. SearchAvailablePhoneNumbersOperation lze použít k aktualizaci stavu operace a ke kontrole úplnosti.

var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);

var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities);
await searchOperation.WaitForCompletionAsync();

Nákup telefonních čísel

Telefonní čísla je možné získat nákupem vyhledávání.

var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();

Výpis zakoupených telefonních čísel

Můžete zobrazit seznam všech telefonních čísel zakoupených pro váš prostředek.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

await foreach (var phoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}

Vydání telefonních čísel

Pokud už telefonní číslo nepotřebujete, můžete ho uvolnit.

var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);

SipRoutingClient

Načtení kmenů a tras SIP

Získejte seznam aktuálně nakonfigurovaných kmenů nebo tras.

var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();

Výměna kmenů a tras SIP

Nahraďte seznam aktuálně nakonfigurovaných kmenů nebo tras.

// The service will not allow trunks that are used in any of the routes to be deleted, therefore first set the routes as empty list, and then update the routes.
var newTrunks = "<new_trunks_list>";
var newRoutes = "<new_routes_list>";
await client.SetRoutesAsync(new List<SipTrunkRoute>());
await client.SetTrunksAsync(newTrunks);
await client.SetRoutesAsync(newRoutes);

Správa jednoho kmene

Kmeny SIP je možné spravovat samostatně pomocí SipRoutingClient nástroje pro načtení, nastavení nebo odstranění jednoho kmene.

Načtení jednoho kmene

// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);

Nastavit jeden kufr

// Set function will either modify existing item or add new item to the collection.
// The trunk is matched based on it's FQDN.
var trunkToSet = "<trunk_to_set>";
await client.SetTrunkAsync(trunkToSet);

Odstranit jeden kmen

// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);

Řešení potíží

Další kroky

Přečtěte si další informace o správě telefonních čísel.

Další informace o přímém směrování

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete na cla.microsoft.com.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo se obraťte na opencode@microsoft.com případné další dotazy nebo komentáře.