Краткое руководство. Получение номеров телефонов и управление ими

Внимание

Возможности SMS и ТСОП зависят от используемого номера телефона и страны или региона, которые вы работаете в соответствии с адресом выставления счетов Azure. Дополнительные сведения см. в документации по условиям подписки.

Внимание

Для заказов с большим объемом или в том случае, если нужный номер телефона недоступен, посетите эту страницу для получения дополнительной помощи.

Необходимые компоненты

Получение номера телефона

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

Снимок экрана: главная страница ресурса Служб коммуникации.

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

Перейдите в колонку Номера телефонов через меню ресурса.

Снимок экрана: страница с номерами телефонов ресурса Служб коммуникации.

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

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

Снимок экрана: представление

Выбор возможностей номера телефона

Настройка номера телефона разделяется на два этапа:

  1. выбор типа номера;
  2. выбор возможностей номера.

Можно выбрать из двух типов телефонных номеров: Местный и Бесплатный. После выбора типа номера можно выбрать возможности.

В нашем примере мы выбрали Бесплатный тип номера с возможностями Совершение звонков и Отправка и получение SMS.

Снимок экрана: выбор возможностей.

Здесь нажмите кнопку "Далее: номера" в нижней части страницы, чтобы настроить номера телефонов , которые вы хотите подготовить.

Настройка номеров телефонов

На странице Номера можно настроить номера телефонов, которые вы хотите подготовить.

Снимок экрана: страница выбора номеров.

Примечание.

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

В списке доступных кодов областей выберите Код города и введите количество подготавливаемых номеров, а затем щелкните Поиск, чтобы найти номера, соответствующие вашим требованиям. Отобразятся номера телефонов, соответствующие вашим потребностям, а также сведения о ежемесячной плате.

Снимок экрана: страница выбора номеров, где отображаются зарезервированные номера.

Примечание.

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

Чтобы просмотреть сводку покупки и разместить заказ, нажмите кнопку "Далее: сводка " в нижней части страницы.

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

На странице сводки отобразятся следующие сведения: тип номера, возможности, номера телефонов и общая ежемесячная плата за подготовку этих номеров телефонов.

Примечание.

Это ежемесячная абонентская плата за аренду выбранного номера телефона. В этом представлении не отображаются суммы для оплаты по мере использования, то есть расходы на осуществление или прием вызовов. Полностью цены перечислены здесь. Эти расходы зависят от типа номера и регионов, в которые осуществляются вызовы. Например, стоимость минуты вызова с регионального номера в Сиэтле на региональный номер в Нью-Йорке может отличаться от цены за вызов с того же номера на номер в Соединенном Королевстве.

Наконец, щелкните Разместить заказ в нижней части страницы, чтобы подтвердить свой выбор.

Снимок экрана: страница сводки, где представлены тип номера, возможности, номера телефонов и общая ежемесячная плата.

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

Перейдите к ресурсу Служб коммуникации Azure на портале Azure.

Снимок экрана: главная страница ресурса Служб коммуникации.

Выберите в меню колонку "Номера телефонов", чтобы управлять номерами телефонов.

Снимок экрана: страница номеров телефонов ресурса Служб коммуникации.

Примечание.

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

Обновление возможностей номера телефона

На странице Номера телефонов можно выбрать номер телефона для его настройки.

Снимок экрана: страница обновления возможностей.

Выберите функции из списка доступных, а затем нажмите кнопку Сохранить, чтобы применить выбранные элементы.

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

На странице номера можно освободить номера телефонов.

Снимок экрана со страницей номера выпуска для телефонов.

Выберите номер телефона, который требуется освободить, и нажмите кнопку Release (Освободить).

Внимание

Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии.

Предварительные версии API и пакеты SDK предоставляются без соглашения об уровне обслуживания. Рекомендуется не использовать их для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности.

Дополнительные сведения см . в дополнительных условиях использования для предварительных версий Microsoft Azure.

Службы коммуникации Azure вводит новый интерфейс пользователя для приобретения номеров телефонов. Этот опыт в настоящее время выполняется, и вы можете познакомиться с этим опытом при покупке номера телефона в портал Azure. Если у вас есть отзывы об этом опыте, не стесняйтесь дать его с помощью кнопки "Дать отзыв" на портал Azure расширения.

Необходимые компоненты

приобрести номер телефона;

  1. Перейдите к ресурсу Службы коммуникации в портал Azure.

    Снимок экрана: главная страница ресурса Служб коммуникации.

  2. В обзоре ресурсов Служб коммуникации выберите параметр "Телефон числа" в меню слева.

    Снимок экрана: страница номеров телефонов ресурса служб коммуникации.

  3. Нажмите кнопку "Получить " в левом верхнем углу страницы, чтобы приобрести номер телефона. При выборе этого мастера покупок запускается мастер покупок:

    Снимок экрана: мастер поиска по корзине номеров телефонов.

  4. Выберите страну или регион , где вы хотите подготовить номер телефона. Доступность страны основана на расположении выставления счетов для вашей подписки Azure. Дополнительные сведения о том, какие номера доступны для каждой страны, см . здесь. Затем вы выберете тип номера. Можно выбрать из двух типов телефонных номеров: Местный и Бесплатный.

  5. Выберите "Поиск", чтобы подтянуть номера, соответствующие выбранным критериям. У вас есть различные фильтры для поиска числа, подходящего для ваших потребностей, включая:

    • Вариант использования. Это касается того, используется ли этот номер для вызова из приложения (A2P) или из агента человека (P2P).
    • Звонки. Это для определения возможностей звонков, которые вы хотите использовать для вашего номера телефона: выполнение звонков и (или) получение звонков.
    • SMS: это для определения возможностей SMS, которые вы хотите использовать для вашего номера телефона: отправка и(или) получение SMS-сообщений.
    • Custom: Вы также можете добавить настраиваемые фильтры, чтобы получить определенный префикс или набор цифр в номере телефона.

    Снимок экрана: страница покупки номера телефона с доступными номерами телефонов.

  6. После того как вы найдете номер телефона или номера для выбора, нажмите кнопку "Добавить в корзину", чтобы сохранить номера в корзине телефонии. Эти номера хранятся в течение 16 минут до автоматического очистки корзины.

    Снимок экрана: корзина с номером телефона с двумя номерами телефонов в корзине.

    Примечание.

    Это ежемесячная абонентская плата за аренду выбранного номера телефона. В этом представлении не отображаются суммы для оплаты по мере использования, то есть расходы на осуществление или прием вызовов. Полностью цены перечислены здесь. Эти расходы зависят от типа номера и регионов, в которые осуществляются вызовы. Например, стоимость минуты вызова с регионального номера в Сиэтле на региональный номер в Нью-Йорке может отличаться от цены за вызов с того же номера на номер в Соединенном Королевстве.

  7. Нажмите кнопку "Рядом ", чтобы просмотреть покупку. Чтобы завершить покупку, нажмите кнопку "Купить сейчас".

    Снимок экрана: 2 номера телефонов для просмотра и покупки.

  8. Вы можете найти приобретенные номера на странице Телефон чисел. Для подготовки номеров может потребоваться несколько минут.

    Снимок экрана: страница номеров телефонов с недавно приобретенными номерами телефонов с красной границой.

Обновление возможностей номера телефона

На странице Номера телефонов можно выбрать номер телефона для его настройки.

Снимок экрана: страница обновления возможностей.

Выберите функции из доступных параметров и нажмите кнопку "Сохранить ", чтобы применить выбранный вариант.

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

На странице номера можно освободить номера телефонов.

Снимок экрана со страницей номера выпуска для телефонов.

Выберите номер телефона, который вы хотите освободить, а затем нажмите кнопку "Выпуск ".

Необходимые компоненты

Установка

Добавление расширения

Добавьте расширение Службы коммуникации Azure для Azure CLI с помощью az extension команды.

az extension add --name communication

Вход в Azure CLI

Вам потребуется войти в Azure CLI. Вы можете выполнить команду из az login терминала и предоставить учетные данные.

Операции

Вывод списка приобретенных номеров телефонов

Выполните следующую команду, чтобы получить все приобретенные номера телефонов.

az communication phonenumber list --connection-string "<yourConnectionString>"

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.

Получение сведений о приобретенном номере телефона

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

az communication phonenumber show --phonenumber <purchasedPhoneNumber> --connection-string "<yourConnectionString>"

Выполните следующие замены в коде:

  • Замените <purchasedPhoneNumber> номер телефона, связанный с ресурсом Служб коммуникации.
  • Замените <yourConnectionString> строка подключения.

Примечание.

Параметр Azure CLI предоставляет функциональные возможности только для перечисления и отображения номеров телефонов. Она не поддерживает другие операции, такие как поиск, приобретение, редактирование или освобождение номеров телефонов.

(Необязательно) Использование операций телефонных номеров Azure CLI без передачи строка подключения

Вы можете настроить AZURE_COMMUNICATION_CONNECTION_STRING переменную среды для использования операций телефонных номеров Azure CLI без необходимости --connection_string передавать строка подключения. Чтобы настроить переменную среды, откройте окно консоли и выберите операционную систему на следующих вкладках. Замените <yourConnectionString> фактической строкой подключения.

Откройте окно консоли и введите следующую команду:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

После добавления переменной среды может потребоваться перезапустить все запущенные приложения, которым может понадобиться считать переменную среды, в том числе окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Примечание.

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

Проверка предварительных условий

  • В окне терминала или команды выполните команду dotnet, чтобы проверить, установлена ли клиентская библиотека .NET.

Установка

Создание нового приложения C#

В окне консоли (cmd, PowerShell или Bash) выполните команду dotnet new, чтобы создать консольное приложение с именем PhoneNumbersQuickstart. Эта команда создает простой проект "Hello World" на языке C# с одним файлом исходного кода Program.cs.

dotnet new console -o PhoneNumbersQuickstart

Измените каталог на только что созданную папку приложения и выполните команду dotnet build, чтобы скомпилировать приложение.

cd PhoneNumbersQuickstart
dotnet build

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

Оставаясь в каталоге приложения, установите клиентскую библиотеку Служб коммуникации PhoneNumbers для .NET с помощью команды dotnet add package.

dotnet add package Azure.Communication.PhoneNumbers --version 1.0.0

Добавьте директиву using в начало файла Program.cs, чтобы включить пространства имен.

using System;
using System.Linq;
using System.Threading.Tasks;
using Azure.Communication.PhoneNumbers;

Обновите сигнатуру функции Main, чтобы она стала асинхронной.

static async Task Main(string[] args)
{
  ...
}

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

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

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

Телефон клиенты number также имеют возможность пройти проверку подлинности с помощью проверки подлинности Microsoft Entra. В этом случае переменные среды AZURE_CLIENT_SECRET, AZURE_CLIENT_ID и AZURE_TENANT_ID должны быть настроены для проверки подлинности.

// Get an endpoint to our Azure Communication Services resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);

Управление номерами телефонов

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

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

var capabilities = new PhoneNumberCapabilities(calling:PhoneNumberCapabilityType.None, sms:PhoneNumberCapabilityType.Outbound);
var searchOptions = new PhoneNumberSearchOptions { AreaCode = "833", Quantity = 1 };

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

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

Результатом поиска номеров телефона является PhoneNumberSearchResult. Он содержит SearchId, который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

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

Получение номеров телефона

После покупки номера его можно получить из клиента.

var getPhoneNumberResponse = await client.GetPurchasedPhoneNumberAsync("+14255550123");
Console.WriteLine($"Phone number: {getPhoneNumberResponse.Value.PhoneNumber}, country code: {getPhoneNumberResponse.Value.CountryCode}");

Вы также можете получить все приобретенные номера телефонов.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();
await foreach (var purchasedPhoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {purchasedPhoneNumber.PhoneNumber}, country code: {purchasedPhoneNumber.CountryCode}");
}

Обновление возможностей номера телефона

Возможности приобретенного номера можно обновить.

var updateCapabilitiesOperation = await client.StartUpdateCapabilitiesAsync("+14255550123", calling: PhoneNumberCapabilityType.Outbound, sms: PhoneNumberCapabilityType.InboundOutbound);
await updateCapabilitiesOperation.WaitForCompletionAsync();

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

Приобретенный номер телефона можно освободить.

var releaseOperation = await client.StartReleasePhoneNumberAsync("+14255550123");
await releaseOperation.WaitForCompletionResponseAsync();

Выполнение кода

Запустите приложение из каталога приложения с помощью команды dotnet run.

dotnet run

Пример кода

Пример приложения можно скачать в репозитории GitHub.

Примечание.

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

Настройка

Создание нового приложения Java

Откройте терминал или командное окно. Перейдите в каталог, в котором нужно создать приложение Java. Выполните приведенную ниже команду, чтобы создать проект Java из шаблона maven-archetype-quickstart.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Вы заметите, что задача generate создала каталог с тем же именем, что и у artifactId. В этом каталоге каталог src/main/java содержит исходный код проекта, pom.xml содержит источник теста, а файл src/test/java directory является объектной моделью проекта (POM).

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

Откройте файл pom.xml в текстовом редакторе. Добавьте приведенные ниже элементы зависимости в группу зависимостей.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-common</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-phonenumbers</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.2.3</version>
</dependency>

Настройка платформы приложения

Из каталога проекта:

  1. Перейдите в каталог /src/main/java/com/communication/quickstart.
  2. Откройте файл App.java в редакторе.
  3. Замените оператор System.out.println("Hello world!");.
  4. Добавьте директивы import.

Используйте следующий код:

import com.azure.communication.phonenumbers.*;
import com.azure.communication.phonenumbers.models.*;
import com.azure.core.http.rest.*;
import com.azure.core.util.Context;
import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.*;
import java.io.*;

public class App
{
    public static void main( String[] args ) throws IOException
    {
        System.out.println("Azure Communication Services - Phone Numbers Quickstart");
        // Quickstart code goes here
    }
}

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

Параметр Телефон NumberClientBuilder включен для использования проверки подлинности Microsoft Entra

// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

Кроме того, для проверки подлинности также можно использовать конечную точку и ключ доступа из ресурса коммуникации.

// You can find your connection string from your resource in the Azure portal
String connectionString = "endpoint=https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<ACCESS_KEY>";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Управление номерами телефонов

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

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

 PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities()
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);
PhoneNumberSearchOptions searchOptions = new PhoneNumberSearchOptions().setAreaCode("833").setQuantity(1);

SyncPoller<PhoneNumberOperation, PhoneNumberSearchResult> poller = phoneNumberClient
    .beginSearchAvailablePhoneNumbers("US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, searchOptions, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
String searchId = "";

if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PhoneNumberSearchResult searchResult = poller.getFinalResult();
    searchId = searchResult.getSearchId();
    System.out.println("Searched phone numbers: " + searchResult.getPhoneNumbers());
    System.out.println("Search expires by: " + searchResult.getSearchExpiresBy());
    System.out.println("Phone number costs:" + searchResult.getCost().getAmount());
}

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

Результатом поиска номеров телефонов является PhoneNumberSearchResult. Он содержит searchId, который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

PollResponse<PhoneNumberOperation> purchaseResponse = phoneNumberClient.beginPurchasePhoneNumbers(searchId, Context.NONE).waitForCompletion();
System.out.println("Purchase phone numbers operation is: " + purchaseResponse.getStatus());

Получение номеров телефона

После покупки номера его можно получить из клиента.

PurchasedPhoneNumber phoneNumber = phoneNumberClient.getPurchasedPhoneNumber("+14255550123");
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

Вы также можете получить все приобретенные номера телефонов.

PagedIterable<PurchasedPhoneNumber> phoneNumbers = phoneNumberClient.listPurchasedPhoneNumbers(Context.NONE);
PurchasedPhoneNumber phoneNumber = phoneNumbers.iterator().next();
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

Обновление возможностей номера телефона

Возможности приобретенного номера можно обновить.

PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities();
capabilities
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);

SyncPoller<PhoneNumberOperation, PurchasedPhoneNumber> poller = phoneNumberClient.beginUpdatePhoneNumberCapabilities("+18001234567", capabilities, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PurchasedPhoneNumber phoneNumber = poller.getFinalResult();
    System.out.println("Phone Number Calling capabilities: " + phoneNumber.getCapabilities().getCalling()); //Phone Number Calling capabilities: inbound
    System.out.println("Phone Number SMS capabilities: " + phoneNumber.getCapabilities().getSms()); //Phone Number SMS capabilities: inbound+outbound
}

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

Приобретенный номер телефона можно освободить.

PollResponse<PhoneNumberOperation> releaseResponse =
    phoneNumberClient.beginReleasePhoneNumber("+14255550123", Context.NONE).waitForCompletion();
System.out.println("Release phone number operation is: " + releaseResponse.getStatus());

Выполнение кода

Перейдите в каталог, содержащий файл pom.xml, и скомпилируйте проект с помощью следующей команды mvn.

mvn compile

Затем выполните сборку пакета.

mvn package

Выполните следующую команду mvn для запуска приложения.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

В выходных данных приложения описывают каждое выполненное действие.

Azure Communication Services - Phone Numbers Quickstart

Searched phone numbers: [+18001234567]

Purchase phone numbers operation is: SUCCESSFULLY_COMPLETED

Phone Number Country Code: US

Phone Number Calling capabilities: inbound

Phone Number SMS capabilities: inbound

Release phone number operation is: SUCCESSFULLY_COMPLETED

Примечание.

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

Установка

Создание приложения Python

Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

Используйте текстовый редактор для создания файла с именем phone_numbers_sample.py в корневом каталоге проекта и добавьте следующий код. Мы добавим оставшийся код краткого руководства в следующих разделах.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

try:
   print('Azure Communication Services - Phone Numbers Quickstart')
   # Quickstart code goes here
except Exception as ex:
   print('Exception:')
   print(ex)

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

Оставаясь в каталоге приложения, установите пакет клиентской библиотеки Python для администрирования Служб коммуникации Azure с помощью команды pip install.

pip install azure-communication-phonenumbers

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

Эта PhoneNumbersClient функция включена для использования проверки подлинности Microsoft Entra. DefaultAzureCredential Использование объекта — самый простой способ приступить к работе с идентификатором Microsoft Entra и установить его с помощью pip install команды.

pip install azure-identity

DefaultAzureCredential Для создания объекта требуется иметь AZURE_CLIENT_IDAZURE_CLIENT_SECRETи AZURE_TENANT_ID уже задать переменные среды с соответствующими значениями из зарегистрированного приложения Microsoft Entra.

Чтобы быстро узнать, как получить эти переменные среды, следуйте инструкциям в кратком руководстве по настройке субъектов-служб через интерфейс командной строки.

После установки библиотеки azure-identity можно продолжить проверку подлинности клиента.

import os
from azure.communication.phonenumbers import PhoneNumbersClient
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
except Exception as ex:
    print('Exception:')
    print(ex)

Кроме того, для проверки подлинности также можно использовать конечную точку и ключ доступа из ресурса коммуникации.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

# You can find your connection string from your resource in the Azure portal
connection_string = 'https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<YOUR_ACCESS_KEY>'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    phone_numbers_client = PhoneNumbersClient.from_connection_string(connection_string)
except Exception as ex:
    print('Exception:')
    print(ex)

Функции

После проверки подлинности PhoneNumbersClient мы можем приступить к работе над различными функциями, которые она может выполнять.

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

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

import os
from azure.communication.phonenumbers import PhoneNumbersClient, PhoneNumberCapabilityType, PhoneNumberAssignmentType, PhoneNumberType, PhoneNumberCapabilities
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        polling = True
    )
    search_result = search_poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

except Exception as ex:
    print('Exception:')
    print(ex)

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

Результатом поиска номеров телефона является PhoneNumberSearchResult. Он содержит searchId, который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

import os
from azure.communication.phonenumbers import (
    PhoneNumbersClient,
    PhoneNumberCapabilityType,
    PhoneNumberAssignmentType,
    PhoneNumberType,
    PhoneNumberCapabilities
)
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        area_code="833",
        polling = True
    )
    search_result = poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

    purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(search_result.search_id, polling = True)
    purchase_poller.result()
    print("The status of the purchase operation was: " + purchase_poller.status())
except Exception as ex:
    print('Exception:')
    print(ex)

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

После покупки номера его можно получить из клиента.

purchased_phone_number_information = phone_numbers_client.get_purchased_phone_number("+18001234567")
print('Phone number: ' + purchased_phone_number_information.phone_number)
print('Country code: ' + purchased_phone_number_information.country_code)

Вы также можете получить все приобретенные номера телефонов.

purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
print('Purchased phone numbers:')
for purchased_phone_number in purchased_phone_numbers:
    print(purchased_phone_number.phone_number)

Обновление возможностей номера телефона

Вы можете обновить возможности ранее приобретенного номера телефона.

update_poller = phone_numbers_client.begin_update_phone_number_capabilities(
    "+18001234567",
    PhoneNumberCapabilityType.OUTBOUND,
    PhoneNumberCapabilityType.OUTBOUND,
    polling = True
)
update_poller.result()
print('Status of the operation: ' + update_poller.status())

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

Приобретенный номер телефона можно освободить.

release_poller = phone_numbers_client.begin_release_phone_number("+18001234567")
release_poller.result()
print('Status of the operation: ' + release_poller.status())

Выполнение кода

В командной строке консоли перейдите в каталог, содержащий файл phone_numbers_sample.py, а затем выполните следующую команду Python для запуска приложения.

python phone_numbers_sample.py

Примечание.

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

Проверка предварительных условий

  • В терминале или командном окне воспользуйтесь node --version, чтобы проверить, установлен ли пакет Node.js.

Установка

Создание нового приложения Node.js

Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

Воспользуйтесь командой npm init -y, чтобы создать файл package.json с параметрами по умолчанию.

npm init -y

Создайте файл с именем phone-numbers-quickstart.js в корне только что созданного каталога. Добавьте в него следующий фрагмент кода:

async function main() {
    // quickstart code will here
}

main();

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

Используйте команду npm install, чтобы установить клиентскую библиотеку Служб коммуникации для номеров телефона для JavaScript.

npm install @azure/communication-phone-numbers --save

Параметр --save добавляет библиотеку как зависимость в файле пакета package.json.

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

Импортируйте PhoneNumbersClient из клиентской библиотеки и создайте его экземпляр с помощью строки подключения. Приведенный ниже код извлекает строку подключения для ресурса из переменной среды с именем COMMUNICATION_SERVICES_CONNECTION_STRING. См. сведения о том, как управлять строкой подключения ресурса.

Добавьте следующий код в начало файла phone-numbers-quickstart.js:

const { PhoneNumbersClient } = require('@azure/communication-phone-numbers');

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the phone numbers client
const phoneNumbersClient = new PhoneNumbersClient(connectionString);

Управление номерами телефонов

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

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

Добавьте в функцию main следующий фрагмент кода:

/**
 * Search for Available Phone Number
 */

// Create search request
const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    areaCode: "833",
    quantity: 1
  };

const searchPoller = await phoneNumbersClient.beginSearchAvailablePhoneNumbers(searchRequest);

// The search is underway. Wait to receive searchId.
const { searchId, phoneNumbers } = await searchPoller.pollUntilDone();
const phoneNumber = phoneNumbers[0];

console.log(`Found phone number: ${phoneNumber}`);
console.log(`searchId: ${searchId}`);

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

Результатом поиска номеров телефона является PhoneNumberSearchResult. Он содержит searchId, который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

Добавьте в функцию main следующий фрагмент кода:

/**
 * Purchase Phone Number
 */

const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId);

// Purchase is underway.
await purchasePoller.pollUntilDone();
console.log(`Successfully purchased ${phoneNumber}`);

Обновление возможностей номера телефона

После покупки номера телефона добавьте следующий код, чтобы обновить его возможности:

/**
 * Update Phone Number Capabilities
 */

// Create update request.
// This will update phone number to send and receive sms, but only send calls.
const updateRequest = {
  sms: "inbound+outbound",
  calling: "outbound"
};

const updatePoller = await phoneNumbersClient.beginUpdatePhoneNumberCapabilities(
  phoneNumber,
  updateRequest
);

// Update is underway.
await updatePoller.pollUntilDone();
console.log("Phone number updated successfully.");

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

После покупки номера его можно получить из клиента. Добавьте следующий код в функцию main, чтобы получить только что приобретенный номер телефона:

/**
 * Get Purchased Phone Number
 */

const { capabilities } = await phoneNumbersClient.getPurchasedPhoneNumber(phoneNumber);
console.log("These capabilities:", capabilities, "should be the same as these:", updateRequest, ".");

Вы также можете получить все приобретенные номера телефонов.

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers();

for await (const purchasedPhoneNumber of purchasedPhoneNumbers) {
  console.log(`Phone number: ${purchasedPhoneNumber.phoneNumber}, country code: ${purchasedPhoneNumber.countryCode}.`);
}

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

Теперь приобретенный номер телефона можно освободить. Добавьте приведенный ниже фрагмент кода в функцию main:

/**
 * Release Purchased Phone Number
 */

const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber);

// Release is underway.
await releasePoller.pollUntilDone();
console.log("Successfully release phone number.");

Выполнение кода

Для выполнения кода, добавленного в файла phone-numbers-quickstart.js, используйте команду node.

node phone-numbers-quickstart.js

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

Распространенные вопросы и проблемы:

  • При освобождении номера телефона номер телефона отображается в ресурсе ACS на портал Azure до конца период выставления счетов. Она также не может быть перепродачена до конца период выставления счетов.

  • При удалении ресурса Служб коммуникации номера телефонов, связанные с этим ресурсом, автоматически освобождаются одновременно.

Следующие шаги

Из этого руководства вы узнали, как выполнить следующие действия: