Поделиться через


Быстрый старт: получение и управление номерами телефонов

Внимание

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

Внимание

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

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

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

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

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

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

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

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

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

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

Примечание.

  • Массовые заказы на телефонные номера или номера в некоторых странах и регионах, таких как Нидерланды, требуют специального заказа. Если требуется особое размещение заказа, вам будет предложено выполнить указанный ниже процесс особого размещения заказа.
  • Нажмите кнопку "Запросить специальный заказ" в разделе "Номера телефонов".
  • Откройте новый случай.
  • Выберите "Служба коммуникации Azure" в качестве профиля клиента.
  • Выберите страну или регион, где нужны номера телефонов.
  • Выберите "Новое приобретение TN" в качестве типа дела.
  • Укажите необходимые сведения и отправьте запрос.
  1. Выберите «Поиск», чтобы найти номера, соответствующие вашим выбранным критериям. У вас есть различные фильтры для поиска числа, подходящего для ваших потребностей, включая:

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

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

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

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

    Примечание.

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

  3. Выберите Далее, чтобы просмотреть покупку. Чтобы завершить покупку, нажмите кнопку "Купить сейчас".

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

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

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

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

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

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

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

Разблокировка номера телефона

На странице Numbers можно снять привязку номеров телефонов.

Снимок экрана, показывающий страницу с выпущенными номерами телефонов.

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

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

Настройка

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

Добавьте расширение Службы коммуникации 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

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

Находясь в каталоге приложения, установите клиентскую библиотеку Автоматизации Коммуникаций Azure 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);

Клиенты номеров телефонов также могут проходить проверку подлинности с помощью проверки подлинности 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 содержит исходный код проекта, src/test/java directory содержит источник теста, а файл pom.xml является объектной моделью проекта (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
    }
}

Аутентификация клиента телефонных номеров

PhoneNumberClientBuilder настроен для использования аутентификации 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 — использование объекта DefaultAzureCredential, который можно установить с помощью команды .

pip install azure-identity

Для создания объекта DefaultAzureCredential требуется, чтобы AZURE_CLIENT_ID, AZURE_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 мы можем приступить к работе над различными функциями, которые она может выполнять.

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

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

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, чтобы установить библиотеку клиента Служб коммуникации Azure для телефонных номеров для 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.");

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

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

node phone-numbers-quickstart.js

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

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

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

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

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

В этом быстром руководстве вы узнали, как:

  • приобрести номер телефона;
  • Управляйте вашим номером телефона.
  • освободить номер телефона.
  • Отправьте заявку на бесплатную проверку (изучите, если это требуется)