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.
Azure SDK for .NET