Share via


Azure Communication Phone Numbers-klientbibliotek för .NET – version 1.1.0

Telefonnummer för Azure-kommunikation hanterar telefonnummer för Azure Communication Services.

| Källkod Produktdokumentation | Prover

Komma igång

Installera paketet

Installera Klientbiblioteket för Azure Communication Phone Numbers för .NET med NuGet:

dotnet add package Azure.Communication.PhoneNumbers

Förutsättningar

Du behöver en Azure-prenumeration och en kommunikationstjänstresurs för att kunna använda det här paketet.

Om du vill skapa en ny kommunikationstjänst kan du använda Azure-portalen, Azure PowerShell eller .NET-hanteringsklientbiblioteket.

Viktiga begrepp

Denna SDK tillhandahåller funktioner för att enkelt hantera direct offer och direct routing numrera.

Siffrorna direct offer finns i två typer: Geografisk och Avgiftsfri. Geografiska telefonplaner är telefonplaner som är kopplade till en plats, vars telefonnummers riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonabonnemang är inte telefonabonnemang associerad plats. I USA kan till exempel avgiftsfria nummer levereras med riktnummer som 800 eller 888. De hanteras med hjälp av PhoneNumbersClient

Funktionen direct routing gör det möjligt att ansluta din befintliga telefoniinfrastruktur till ACS. Konfigurationen hanteras med hjälp av SipRoutingClient, som tillhandahåller metoder för att konfigurera SIP-trunkar och röstroutningsregler för att hantera samtal för telefonundernätet korrekt.

Autentisera klienten

Klienter kan autentiseras med hjälp av anslutningssträngen som hämtas från azure-kommunikationsresurser i Azure-portalen.

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

Klienter har också möjlighet att autentisera med Azure Active Directory-autentisering. Mer information om det här avsnittet finns i 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);

Telefonnummerklient

Översikt över telefonnummertyper

Telefonnummer finns i två typer: Geografisk och Avgiftsfri. Geografiska telefonplaner är telefonplaner som är kopplade till en plats, vars telefonnummers riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonabonnemang är inte telefonabonnemang associerad plats. I USA kan till exempel avgiftsfria nummer levereras med riktnummer som 800 eller 888.

Alla geografiska telefonplaner i samma land grupperas i en telefonplansgrupp med en geografisk telefonnummertyp. Alla Toll-Free telefonabonnemang inom samma land grupperas i en telefonplansgrupp.

Söka, köpa och släppa telefonnummer

Telefonnummer kan sökas igenom API:et för att skapa sökningar genom att ange ett riktnummer, antal telefonnummer, programtyp, telefonnummertyp och funktioner. Den angivna mängden telefonnummer reserveras i tio minuter och kan köpas inom denna tid. Om sökningen inte köps blir telefonnumren tillgängliga för andra efter tio minuter. Om sökningen köps hämtas telefonnumren för Azure-resurserna.

Telefonnummer kan också släppas med hjälp av versions-API:et.

SIP-routningsklient

Direktroutningsfunktionen gör det möjligt att ansluta telefoniinfrastruktur som tillhandahålls av kunden till Azure-kommunikationsresurser. För att kunna konfigurera routningskonfigurationen korrekt måste kunden ange SIP-trunkkonfigurationen och SIP-routningsreglerna för anrop. SIP-routningsklienten tillhandahåller det gränssnitt som krävs för att ställa in den här konfigurationen.

När ett anrop görs försöker systemet matcha målnumret med regex-nummermönster för definierade vägar. Den första vägen som matchar talet väljs. Ordningen på regexmatchning är samma som ordningen på rutterna i konfigurationen, och därför är ordningen på rutter viktig. När en väg har matchats dirigeras anropet till den första trunken i vägens trunkslista. Om bagageutrymmet inte är tillgängligt väljs nästa segment i listan.

Trådsäkerhet

Vi garanterar att alla klientinstansmetoder är trådsäkra och oberoende av varandra (riktlinje). Detta säkerställer att rekommendationen att återanvända klientinstanser alltid är säker, även över trådar.

Ytterligare begrepp

Klientalternativ | Åtkomst till svaret | Tidskrävande åtgärder | Hantera fel | Diagnostik | Gäckande | Klientlivslängd

Exempel

PhoneNumbersClient

Skapa en PhoneNumbersClient

Om du vill skapa en ny PhoneNumbersClient behöver du en anslutningssträng till den Azure Communication Services resurs som du kan hämta från Azure-portalen när du har skapat resursen.

Du kan ange connectionString baserat på en miljövariabel, en konfigurationsinställning eller något sätt som fungerar för ditt program.

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

Sök telefonnummer

Telefonnummer måste sökas igenom innan de kan köpas. Sökning är en tidskrävande åtgärd som kan startas av StartSearchAvailablePhoneNumbers en funktion som returnerar ett SearchAvailablePhoneNumbersOperation -objekt. SearchAvailablePhoneNumbersOperation kan användas för att uppdatera status för åtgärden och för att söka efter fullständighet.

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

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

Köpa telefonnummer

Telefonnummer kan hämtas genom att köpa en sökning.

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

Lista köpta telefonnummer

Du kan visa en lista över alla telefonnummer som har köpts för din resurs.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

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

Versionstelefonnummer

Om du inte längre behöver ett telefonnummer kan du släppa det.

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

SipRoutingClient

Hämta SIP-trunkar och vägar

Hämta listan över för närvarande konfigurerade trunkar eller vägar.

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

Ersätta SIP-trunkar och vägar

Ersätt listan över för närvarande konfigurerade trunkar eller vägar.

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

Hantera enkel trunk

SIP-trunkar kan hanteras separat med hjälp SipRoutingClient av för att hämta, ange eller ta bort en enda trunk.

Hämta enkel trunk

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

Ange enkel trunk

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

Ta bort enstaka segment

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

Felsökning

Nästa steg

Läs mer om att hantera telefonnummer

Läs mer om direkt routning

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns i cla.microsoft.com.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekoden eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.