Клиентская библиотека номеров телефонов связи Azure для .NET версии 1.1.0

Номера телефонов связи Azure управляют номерами телефонов для Службы коммуникации Azure.

Исходный код | Документация по продукту | Образцы

Начало работы

Установка пакета

Установите клиентую библиотеку номеров телефонов для связи Azure для .NET с помощью NuGet:

dotnet add package Azure.Communication.PhoneNumbers

Предварительные требования

Для использования этого пакета вам потребуется подписка Azure и ресурс Службы коммуникации .

Чтобы создать службу коммуникации, можно использовать портал Azure, Azure PowerShell или клиентская библиотека управления .NET.

Основные понятия

Этот пакет SDK предоставляет функциональные возможности для простого управления номерами direct offer и direct routing .

Номера direct offer бывают двух типов: географические и бесплатные. Географические тарифные планы — это телефонные планы, связанные с расположением, коды регионов которых номера телефонов связаны с кодом региона географического расположения. Toll-Free тарифные планы — это планы телефонов, не связанные с расположением. Например, в США бесплатные номера могут поставляются с кодами городов, такими как 800 или 888. Управление ими осуществляется с помощью PhoneNumbersClient

Эта direct routing функция позволяет подключать существующую инфраструктуру телефонии к ACS. Конфигурация управляется с помощью SipRoutingClient, который предоставляет методы для настройки магистралей SIP и правил маршрутизации голосовой связи для правильной обработки вызовов для подсети телефонии.

Аутентификация клиента

Клиенты могут проходить проверку подлинности с помощью строки подключения, полученной из Ресурсов коммуникации Azure на портале Azure.

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

Клиенты также могут проходить проверку подлинности с помощью проверки подлинности Azure Active Directory. Дополнительные сведения об этой теме см. в статье Удостоверение 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);

Клиент номеров телефонов

Обзор типов телефонных номеров

Номера телефонов бывают двух типов: географические и бесплатные. Географические тарифные планы — это телефонные планы, связанные с расположением, коды регионов которых номера телефонов связаны с кодом региона географического расположения. Toll-Free тарифные планы — это планы телефонов, не связанные с расположением. Например, в США бесплатные номера могут поставляются с кодами городов, такими как 800 или 888.

Все географические тарифные планы в одной стране сгруппированы в группу планов телефонов с типом географических номеров телефонов. Все Toll-Free тарифные планы в одной стране группируются в группу планов телефонов.

Поиск, приобретение и освобождение телефонных номеров

Для поиска номеров телефонов можно использовать API создания поиска, указав код региона, количество номеров телефонов, тип приложения, тип номера телефона и возможности. Указанное количество номеров телефонов будет зарезервировано на десять минут и может быть приобретено в течение этого времени. Если поиск не был приобретен, номера телефонов станут доступны другим пользователям через десять минут. Если поиск приобретен, то для ресурсов Azure будут получены номера телефонов.

Номера телефонов также можно освободить с помощью API выпуска.

Клиент маршрутизации SIP

Функция прямой маршрутизации позволяет подключать предоставленную клиентом инфраструктуру телефонии к коммуникационным ресурсам Azure. Чтобы правильно настроить конфигурацию маршрутизации, клиенту необходимо предоставить конфигурацию магистрали SIP и правила маршрутизации SIP для вызовов. Клиент маршрутизации SIP предоставляет необходимый интерфейс для настройки этой конфигурации.

При вызове система пытается сопоставить целевой номер с шаблонами номеров регулярных выражений определенных маршрутов. Будет выбран первый маршрут, соответствующий номеру. Порядок сопоставления регулярных выражений совпадает с порядком маршрутов в конфигурации, поэтому порядок маршрутов имеет значение. После сопоставления маршрута вызов направляется на первую магистраль в списке магистралей маршрута. Если магистраль недоступна, выбирается следующая магистраль в списке.

Потокобезопасность

Мы гарантируем, что все методы экземпляра клиента являются потокобезопасны и независимы друг от друга (руководство). Это гарантирует, что рекомендация по повторному использованию экземпляров клиента всегда будет безопасной, даже в разных потоках.

Дополнительные понятия

Параметры | клиента Доступ к ответу | Длительные операции | Обработка сбоев | Диагностики | Насмешливый | Время существования клиента

Примеры

PhoneNumbersClient

Создание PhoneNumbersClient

Чтобы создать новыйPhoneNumbersClient, вам потребуется строка подключения к ресурсу Службы коммуникации Azure, которую можно получить на портале Azure после создания ресурса.

Можно задать connectionString на основе переменной среды, параметра конфигурации или любого способа, который подходит для вашего приложения.

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

Поиск номеров телефонов

Прежде чем их можно будет приобрести, необходимо выполнить поиск по номерам телефонов. Поиск — это длительная операция, которая может быть запущена функцией StartSearchAvailablePhoneNumbers , возвращающей SearchAvailablePhoneNumbersOperation объект . SearchAvailablePhoneNumbersOperationможно использовать для обновления состояния операции и проверка для полноты.

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

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

Покупка номеров телефонов

Номера телефонов можно получить, купив поиск.

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

Перечисление приобретенных номеров телефонов

Вы можете перечислить все номера телефонов, приобретенные для вашего ресурса.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

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

Освобождение номеров телефонов

Если номер телефона больше не нужен, его можно освободить.

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

SipRoutingClient

Получение магистралей и маршрутов SIP

Получение списка настроенных в настоящее время магистралей или маршрутов.

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

Замена магистралей и маршрутов SIP

Замените список настроенных в настоящее время магистралей или маршрутов.

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

Управление одной магистралью

Магистрали SIP можно управлять отдельно с помощью SipRoutingClient для извлечения, установки или удаления одной магистрали.

Получение одной магистрали

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

Настройка одной магистрали

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

Удаление одной магистрали

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

Устранение неполадок

Дальнейшие действия

Дополнительные сведения об управлении номерами телефонов

Дополнительные сведения о прямой маршрутизации

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см. на странице cla.microsoft.com.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.