Udostępnij za pośrednictwem


Biblioteka klienta numerów telefonów usługi Azure Communication dla platformy .NET — wersja 1.1.0

Numery telefonów komunikacji platformy Azure zarządzają numerami telefonów dla Azure Communication Services.

Kod | źródłowy Dokumentacja | produktu Próbki

Wprowadzenie

Instalowanie pakietu

Zainstaluj bibliotekę klienta numerów telefonów usługi Azure Communication dla platformy .NET przy użyciu narzędzia NuGet:

dotnet add package Azure.Communication.PhoneNumbers

Wymagania wstępne

Do korzystania z tego pakietu potrzebna jest subskrypcja platformy Azure i zasób usługi Communication Service .

Aby utworzyć nową usługę komunikacji, możesz użyć witryny Azure Portal, Azure PowerShell lub biblioteki klienta zarządzania platformy .NET.

Kluczowe pojęcia

Ten zestaw SDK udostępnia funkcje umożliwiające łatwe zarządzanie numerami i direct routing zarządzanie nimidirect offer.

Liczby direct offer są dostępne w dwóch typach: Geographic i Toll-Free. Plany telefonów geograficznych są planami telefonów skojarzonymi z lokalizacją, której numery telefonów są skojarzone z kodem obszaru lokalizacji geograficznej. Toll-Free plany telefonów to plany telefoniczne, które nie są skojarzone z lokalizacją. Na przykład w Stanach Zjednoczonych numery bezpłatne mogą być dostarczane z kodami obszarów, takimi jak 800 lub 888. Są one zarządzane przy użyciu PhoneNumbersClient

Funkcja direct routing umożliwia łączenie istniejącej infrastruktury telefonii z usługą ACS. Konfiguracja jest zarządzana przy użyciu programu SipRoutingClient, który udostępnia metody konfigurowania magistrali SIP i reguł routingu głosowego w celu prawidłowego obsługi wywołań podsieci telefonii.

Uwierzytelnianie klienta

Klienci mogą być uwierzytelniani przy użyciu parametrów połączenia uzyskanych z zasobów komunikacji platformy Azure w witrynie 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);

Klienci mają również możliwość uwierzytelniania przy użyciu uwierzytelniania w usłudze Azure Active Directory. Aby uzyskać więcej informacji na ten temat, zobacz Azure Identity( Tożsamość platformy 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 numerów telefonów

Omówienie typów numerów telefonów

Numery telefonów są dostępne w dwóch typach: Geographic i Toll-Free. Plany telefonów geograficznych są planami telefonów skojarzonymi z lokalizacją, której numery telefonów są skojarzone z kodem obszaru lokalizacji geograficznej. Toll-Free plany telefonów to plany telefoniczne, które nie są skojarzone z lokalizacją. Na przykład w Stanach Zjednoczonych numery bezpłatne mogą być dostarczane z kodami obszarów, takimi jak 800 lub 888.

Wszystkie plany telefonów geograficznych w tym samym kraju są pogrupowane w grupę planów telefonicznych z typem numeru telefonu geograficznego. Wszystkie Toll-Free plany telefoniczne w tym samym kraju są pogrupowane w grupę planów telefonicznych.

Wyszukiwanie, kupowanie i wydawanie numerów telefonów

Numery telefonów można przeszukiwać za pośrednictwem interfejsu API tworzenia wyszukiwania, podając kod warstwowy, ilość numerów telefonów, typ aplikacji, typ telefonu i możliwości. Podana ilość numerów telefonów zostanie zarezerwowana przez dziesięć minut i może zostać zakupiona w tym czasie. Jeśli wyszukiwanie nie zostanie zakupione, numery telefonów staną się dostępne dla innych osób po dziesięciu minutach. Jeśli wyszukiwanie zostanie zakupione, numery telefonów zostaną uzyskane dla zasobów platformy Azure.

Numery telefonów można również zwolnić przy użyciu interfejsu API wydania.

Klient routingu SIP

Funkcja routingu bezpośredniego umożliwia łączenie infrastruktury telefonii dostarczonej przez klienta z zasobami komunikacji platformy Azure. Aby prawidłowo skonfigurować konfigurację routingu, klient musi podać konfigurację magistrali SIP i reguły routingu SIP dla wywołań. Klient routingu SIP udostępnia niezbędny interfejs do ustawienia tej konfiguracji.

Po wywołaniu system próbuje dopasować numer docelowy z wzorcami numerów regularnych zdefiniowanych tras. Zostanie wybrana pierwsza trasa zgodna z liczbą. Kolejność dopasowywania wyrażeń regularnych jest taka sama jak kolejność tras w konfiguracji, dlatego kolejność tras ma znaczenie. Po dopasowaniu trasy wywołanie jest kierowane do pierwszego magistrali na liście magistrali trasy. Jeśli magistrala nie jest dostępna, zostanie zaznaczona następna magistrala na liście.

Bezpieczeństwo wątkowe

Gwarantujemy, że wszystkie metody wystąpienia klienta są bezpieczne wątkowo i niezależne od siebie (wytyczne). Dzięki temu zalecenie ponownego instalowania wystąpień klienta jest zawsze bezpieczne, nawet w wątkach.

Dodatkowe pojęcia

Opcje | klienta Uzyskiwanie dostępu do odpowiedzi | Długotrwałe operacje | Obsługa błędów | Diagnostyka | Szyderczy | Okres istnienia klienta

Przykłady

PhoneNumbersClient

Tworzenie obiektu PhoneNumbersClient

Aby utworzyć nowe PhoneNumbersClient parametry połączenia z zasobem Azure Communication Services, który można pobrać z witryny Azure Portal po utworzeniu zasobu.

Można ustawić connectionString na podstawie zmiennej środowiskowej, ustawienia konfiguracji lub dowolnego sposobu działania aplikacji.

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

Wyszukaj numery telefonów

Numery telefonów należy przeszukać, zanim będzie można je kupić. Wyszukiwanie to długotrwała operacja, którą można uruchomić przez StartSearchAvailablePhoneNumbers funkcję zwracającą SearchAvailablePhoneNumbersOperation obiekt. SearchAvailablePhoneNumbersOperation może służyć do aktualizowania stanu operacji i sprawdzania kompletności.

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

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

Kupowanie numerów telefonów

Numery telefonów można uzyskać, kupując wyszukiwanie.

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

Wyświetlanie zakupionych numerów telefonów

Możesz wyświetlić listę wszystkich numerów telefonów zakupionych dla zasobu.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

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

Wydawanie numerów telefonów

Jeśli nie potrzebujesz już numeru telefonu, możesz go zwolnić.

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

SipRoutingClient

Pobieranie magistrali SIP i tras

Pobierz listę aktualnie skonfigurowanych magistrali lub tras.

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

Zastępowanie magistrali SIP i tras

Zastąp listę aktualnie skonfigurowanych magistrali lub 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);

Zarządzanie pojedynczym magistralą

Magistrale SIP można zarządzać oddzielnie za pomocą polecenia SipRoutingClient do pobierania, ustawiania lub usuwania pojedynczego magistrali.

Pobieranie pojedynczego magistrali

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

Ustawianie pojedynczego bagażnika

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

Usuwanie pojedynczego magistrali

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

Rozwiązywanie problemów

Następne kroki

Przeczytaj więcej na temat zarządzania numerami telefonów

Dowiedz się więcej o routingu bezpośrednim

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.