Freigeben über


Azure Communication Phone Numbers-Clientbibliothek für .NET – Version 1.1.0

Azure Communication Phone Numbers verwaltet Telefonnummern für Azure Communication Services.

Quellcode | Produktdokumentation | Proben

Erste Schritte

Installieren des Pakets

Installieren Sie die Azure Communication Phone Numbers-Clientbibliothek für .NET mit NuGet:

dotnet add package Azure.Communication.PhoneNumbers

Voraussetzungen

Sie benötigen ein Azure-Abonnement und eine Communication Service-Ressource , um dieses Paket verwenden zu können.

Um einen neuen Kommunikationsdienst zu erstellen, können Sie das Azure-Portal, die Azure PowerShell oder die .NET-Verwaltungsclientbibliothek verwenden.

Wichtige Begriffe

Dieses SDK bietet Funktionen zum einfachen Verwalten direct offer und direct routing Zahlen.

Die direct offer Zahlen gibt es in zwei Typen: geografisch und gebührenfrei. Geografische Telefonpläne sind Telefonpläne, die einem Standort zugeordnet sind, dessen Vorwahlnummern der Vorwahl eines geografischen Standorts zugeordnet sind. Toll-Free Telefontarife sind Telefonpläne, die nicht dem Standort zugeordnet sind. In den USA können beispielsweise gebührenfreie Nummern mit Ortsvorwahlen wie 800 oder 888 enthalten. Sie werden mit dem PhoneNumbersClient

Das direct routing Feature ermöglicht das Verbinden Ihrer vorhandenen Telefonieinfrastruktur mit ACS. Die Konfiguration wird mithilfe von verwaltet, die SipRoutingClientMethoden zum Einrichten von SIP-Trunks und VoIP-Routingregeln bereitstellt, um Anrufe für Ihr Telefoniesubnetz ordnungsgemäß zu verarbeiten.

Authentifizieren des Clients

Clients können mithilfe einer Verbindungszeichenfolge authentifiziert werden, die von einer Azure-Kommunikationsressourcen im Azure-Portal abgerufen wurde.

// 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);

Clients haben auch die Möglichkeit, sich mit der Azure Active Directory-Authentifizierung zu authentifizieren. Weitere Informationen zu diesem Thema finden Sie unter Azure Identity.

// 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);

Telefonnummernclient

Übersicht über Telefonnummerntypen

Telefonnummern gibt es in zwei Typen: Geografische und gebührenfreie Telefonnummern. Geografische Telefonpläne sind Telefonpläne, die einem Standort zugeordnet sind, dessen Vorwahlnummern der Vorwahl eines geografischen Standorts zugeordnet sind. Toll-Free Telefontarife sind Telefonpläne, die nicht dem Standort zugeordnet sind. In den USA können beispielsweise gebührenfreie Nummern mit Ortsvorwahlen wie 800 oder 888 enthalten.

Alle geografischen Telefonpläne innerhalb desselben Landes werden in einer Telefonplangruppe mit einem geografischen Telefonnummerntyp gruppiert. Alle Toll-Free Telefonpläne innerhalb desselben Landes werden in einer Telefonplangruppe gruppiert.

Suchen, Kaufen und Freigeben von Telefonnummern

Telefonnummern können über die API für die Sucherstellung durchsucht werden, indem eine Ortsvorwahl, anzahl von Telefonnummern, Anwendungstyp, Telefonnummerntyp und Funktionen angegeben werden. Die angegebene Anzahl von Telefonnummern wird für zehn Minuten reserviert und kann innerhalb dieser Zeit erworben werden. Wenn die Suche nicht gekauft wird, werden die Telefonnummern nach zehn Minuten für andere verfügbar. Wenn die Suche erworben wird, werden die Telefonnummern für die Azure-Ressourcen abgerufen.

Telefonnummern können auch mithilfe der Release-API veröffentlicht werden.

SIP-Routingclient

Das Direktroutingfeature ermöglicht das Verbinden der vom Kunden bereitgestellten Telefonieinfrastruktur mit Azure Communication Resources. Um die Routingkonfiguration ordnungsgemäß einzurichten, muss der Kunde die SIP-Trunkkonfiguration und SIP-Routingregeln für Anrufe bereitstellen. Der SIP-Routingclient stellt die erforderliche Schnittstelle zum Festlegen dieser Konfiguration bereit.

Wenn ein Aufruf erfolgt, versucht das System, die Zielnummer mit den Regex-Nummernmustern definierter Routen abzugleichen. Die erste Route, die mit der Nummer übereinstimmt, wird ausgewählt. Die Reihenfolge des Regex-Abgleichs ist identisch mit der Reihenfolge der Routen in der Konfiguration, daher ist die Reihenfolge der Routen von Bedeutung. Sobald eine Route übereinstimmt, wird der Anruf an den ersten Trunk in der Trunksliste der Route weitergeleitet. Wenn der Trunk nicht verfügbar ist, wird der nächste Trunk in der Liste ausgewählt.

Threadsicherheit

Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch threadsübergreifend.

Zusätzliche Konzepte

Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer

Beispiele

PhoneNumbersClient

Erstellen eines PhoneNumbersClient

Um eine neue PhoneNumbersClient zu erstellen, benötigen Sie eine Verbindungszeichenfolge für die Azure Communication Services Ressource, die Sie aus dem Azure-Portal abrufen können, nachdem Sie die Ressource erstellt haben.

Sie können basierend auf einer Umgebungsvariablen, einer Konfigurationseinstellung oder einer beliebigen Methode, die für Ihre Anwendung funktioniert, festlegen connectionString .

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

Telefonnummern suchen

Telefonnummern müssen durchsucht werden, bevor sie erworben werden können. Suche ist ein Vorgang mit langer Ausführungsdauer, der von einer StartSearchAvailablePhoneNumbers Funktion gestartet werden kann, die ein SearchAvailablePhoneNumbersOperation Objekt zurückgibt. SearchAvailablePhoneNumbersOperationkann verwendet werden, um status des Vorgangs zu aktualisieren und auf Vollständigkeit zu überprüfen.

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

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

Kaufen von Telefonnummern

Telefonnummern können durch den Kauf einer Suche erworben werden.

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

Auflisten gekaufter Telefonnummern

Sie können alle Telefonnummern auflisten, die für Ihre Ressource erworben wurden.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

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

Telefonnummern freigeben

Wenn Sie keine Telefonnummer mehr benötigen, können Sie sie freigeben.

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

SipRoutingClient

Abrufen von SIP-Trunks und -Routen

Rufen Sie die Liste der aktuell konfigurierten Trunks oder Routen ab.

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

Ersetzen von SIP-Trunks und -Routen

Ersetzen Sie die Liste der aktuell konfigurierten Trunks oder Routen.

// 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);

Verwalten eines einzelnen Trunks

SIP-Trunks können separat verwaltet werden, indem Sie einen SipRoutingClient einzelnen Trunk abrufen, festlegen oder löschen.

Abrufen eines einzelnen Trunks

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

Festlegen eines einzelnen Trunks

// 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);

Löschen eines einzelnen Trunks

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

Problembehandlung

Nächste Schritte

Weitere Informationen zum Verwalten von Telefonnummern

Weitere Informationen zum direkten Routing

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.