Краткое руководство. Получение номеров телефонов и управление ими
Внимание
Возможности SMS и ТСОП зависят от используемого номера телефона и страны или региона, которые вы работаете в соответствии с адресом выставления счетов Azure. Дополнительные сведения см. в документации по условиям подписки.
Внимание
Для заказов с большим объемом или в том случае, если нужный номер телефона недоступен, посетите эту страницу для получения дополнительной помощи.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Активный ресурс Служб коммуникации.
Получение номера телефона
Чтобы начать подготовку номеров, перейдите к ресурсу Служб коммуникации на портале Azure.
Поиск доступных номеров телефонов
Перейдите в колонку Номера телефонов через меню ресурса.
Нажмите кнопку Получить, чтобы запустить мастер. Мастер в колонке Номера телефонов задаст вам ряд вопросов, которые помогут вам выбрать подходящий номер телефона для вашего сценария.
Сначала необходимо выбрать страну или регион, где вы хотите подготовить номер телефона. Затем нужно выбрать вариант использования, который лучше подходит для ваших потребностей.
Выбор возможностей номера телефона
Настройка номера телефона разделяется на два этапа:
- выбор типа номера;
- выбор возможностей номера.
Можно выбрать из двух типов телефонных номеров: Местный и Бесплатный. После выбора типа номера можно выбрать возможности.
В нашем примере мы выбрали Бесплатный тип номера с возможностями Совершение звонков и Отправка и получение SMS.
Здесь нажмите кнопку "Далее: номера" в нижней части страницы, чтобы настроить номера телефонов , которые вы хотите подготовить.
Настройка номеров телефонов
На странице Номера можно настроить номера телефонов, которые вы хотите подготовить.
Примечание.
В этом кратком руководстве показана последовательность настройки номеров с типом бесплатный. Если вы выбрали номер с типом Местный, процесс может немного отличаться, но результат будет таким же.
В списке доступных кодов областей выберите Код города и введите количество подготавливаемых номеров, а затем щелкните Поиск, чтобы найти номера, соответствующие вашим требованиям. Отобразятся номера телефонов, соответствующие вашим потребностям, а также сведения о ежемесячной плате.
Примечание.
Доступность номеров зависит от выбранных типа номера, расположения и возможностей. Эти номера резервируются на небольшой период времени, пока не истечет срок действия транзакции. После этого вам нужно будет снова выбрать номера.
Чтобы просмотреть сводку покупки и разместить заказ, нажмите кнопку "Далее: сводка " в нижней части страницы.
Покупка номеров телефонов
На странице сводки отобразятся следующие сведения: тип номера, возможности, номера телефонов и общая ежемесячная плата за подготовку этих номеров телефонов.
Примечание.
Это ежемесячная абонентская плата за аренду выбранного номера телефона. В этом представлении не отображаются суммы для оплаты по мере использования, то есть расходы на осуществление или прием вызовов. Полностью цены перечислены здесь. Эти расходы зависят от типа номера и регионов, в которые осуществляются вызовы. Например, стоимость минуты вызова с регионального номера в Сиэтле на региональный номер в Нью-Йорке может отличаться от цены за вызов с того же номера на номер в Соединенном Королевстве.
Наконец, щелкните Разместить заказ в нижней части страницы, чтобы подтвердить свой выбор.
Поиск номеров телефонов на портале Azure
Перейдите к ресурсу Служб коммуникации Azure на портале Azure.
Выберите в меню колонку "Номера телефонов", чтобы управлять номерами телефонов.
Примечание.
Может пройти несколько минут, пока выбранные для подготовки номера телефонов отобразятся на этой странице.
Обновление возможностей номера телефона
На странице Номера телефонов можно выбрать номер телефона для его настройки.
Выберите функции из списка доступных, а затем нажмите кнопку Сохранить, чтобы применить выбранные элементы.
Освобождение номера телефона
На странице номера можно освободить номера телефонов.
Выберите номер телефона, который требуется освободить, и нажмите кнопку Release (Освободить).
Внимание
Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии.
Предварительные версии API и пакеты SDK предоставляются без соглашения об уровне обслуживания. Рекомендуется не использовать их для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности.
Дополнительные сведения см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Службы коммуникации Azure вводит новый интерфейс пользователя для приобретения номеров телефонов. Этот опыт в настоящее время выполняется, и вы можете познакомиться с этим опытом при покупке номера телефона в портал Azure. Если у вас есть отзывы об этом опыте, не стесняйтесь дать его с помощью кнопки "Дать отзыв" на портал Azure расширения.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Активный ресурс Служб коммуникации.
приобрести номер телефона;
Перейдите к ресурсу Службы коммуникации в портал Azure.
В обзоре ресурса Служб коммуникации выберите параметр "Номера телефонов" в меню слева.
Нажмите кнопку "Получить " в левом верхнем углу страницы, чтобы приобрести номер телефона. При выборе этого мастера покупок запускается мастер покупок:
Выберите страну или регион , где вы хотите подготовить номер телефона. Доступность в стране или регионе основана на расположении выставления счетов для вашей подписки Azure. Дополнительные сведения о том, какие номера доступны для каждой страны или региона, см . здесь. Затем вы выберете тип номера. Можно выбрать из двух типов телефонных номеров: Местный и Бесплатный.
Выберите "Поиск", чтобы подтянуть номера, соответствующие выбранным критериям. У вас есть различные фильтры для поиска числа, подходящего для ваших потребностей, включая:
- Вариант использования. Это касается того, используется ли этот номер для вызова из приложения (A2P) или из агента человека (P2P).
- Звонки. Это для определения возможностей звонков, которые вы хотите использовать для вашего номера телефона: выполнение звонков и (или) получение звонков.
- SMS: это для определения возможностей SMS, которые вы хотите использовать для вашего номера телефона: отправка и(или) получение SMS-сообщений.
- Custom: Вы также можете добавить настраиваемые фильтры, чтобы получить определенный префикс или набор цифр в номере телефона.
После того как вы найдете номер телефона или номера для выбора, нажмите кнопку "Добавить в корзину", чтобы сохранить номера в корзине телефонии. Эти номера хранятся в течение 16 минут до автоматического очистки корзины.
Примечание.
Это ежемесячная абонентская плата за аренду выбранного номера телефона. В этом представлении не отображаются суммы для оплаты по мере использования, то есть расходы на осуществление или прием вызовов. Полностью цены перечислены здесь. Эти расходы зависят от типа номера и регионов, в которые осуществляются вызовы. Например, стоимость минуты вызова с регионального номера в Сиэтле на региональный номер в Нью-Йорке может отличаться от цены за вызов с того же номера на номер в Соединенном Королевстве.
Нажмите кнопку "Рядом ", чтобы просмотреть покупку. Чтобы завершить покупку, нажмите кнопку "Купить сейчас".
Вы можете найти приобретенные номера на странице номеров телефонов . Для подготовки номеров может потребоваться несколько минут.
Обновление возможностей номера телефона
На странице Номера телефонов можно выбрать номер телефона для его настройки.
Выберите функции из доступных параметров и нажмите кнопку "Сохранить ", чтобы применить выбранный вариант.
Освобождение номера телефона
На странице номера можно освободить номера телефонов.
Выберите номер телефона, который вы хотите освободить, а затем нажмите кнопку "Выпуск ".
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
Установите Azure CLI.
Приобретенный номер телефона.
Установка
Добавление расширения
Добавьте расширение Службы коммуникации 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.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Последняя версия клиентской библиотеки NET Core для вашей операционной системы.
- Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
Проверка предварительных условий
- В окне терминала или команды выполните команду
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);
Клиенты номеров телефонов также могут проходить проверку подлинности с помощью проверки подлинности 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.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- комплект SDK для Java (JDK) версии 8 или более поздней версии.
- Apache Maven.
- Развернутый ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
Настройка
Создание нового приложения 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>
Настройка платформы приложения
Из каталога проекта:
- Перейдите в каталог /src/main/java/com/communication/quickstart.
- Откройте файл App.java в редакторе.
- Замените оператор
System.out.println("Hello world!");
. - Добавьте директивы
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.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Python версии 3.7 и выше.
- Развернутый ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
Установка
Создание приложения 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_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
мы можем приступить к работе над различными функциями, которые она может выполнять.
Поиск доступных номеров телефонов
Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.
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.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Node.js, активная версия LTS и версия Maintenance LTS (рекомендуются версии 8.11.1 и 10.14.1).
- Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
Проверка предварительных условий
- В терминале или командном окне воспользуйтесь
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 до конца период выставления счетов. Она также не может быть перепродачена до конца период выставления счетов.
При удалении ресурса Служб коммуникации номера телефонов, связанные с этим ресурсом, автоматически освобождаются одновременно.
Следующие шаги
Из этого руководства вы узнали, как выполнить следующие действия:
- приобрести номер телефона;
- управлять номером телефона;
- освободить номер телефона.
- Отправка бесплатного приложения проверки подлинности (см. при необходимости)