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


Клиентская библиотека номеров телефонов связи Azure для JavaScript версии 1.0.0

Библиотека номеров телефонов предоставляет возможности для администрирования номеров телефонов.

Приобретенные номера телефонов могут быть оснащены множеством возможностей в зависимости от страны, типа номера и типа назначения. Примеры возможностей: входящее и исходящее использование SMS, входящее и исходящее использование ТСОП. Номера телефонов также можно назначить боту через URL-адрес веб-перехватчика.

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

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

Установка

npm install @azure/communication-phone-numbers

Поддержка браузеров

Пакет JavaScript

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

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

Пакет номеров телефонов PhoneNumbersClient предоставляет , который предоставляет методы для управления номерами телефонов.

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

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

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

Поиск и получение чисел

Телефонные номера можно искать с помощью API создания поиска, указав тип номера телефона (географический или бесплатный), тип назначения (человек или приложение), возможности звонков и SMS, код региона и количество номеров телефонов. Предоставленное количество номеров телефонов будет зарезервировано на 15 минут. Этот поиск номеров телефонов можно отменить или приобрести. Если поиск отменен, номера телефонов станут доступны другим пользователям. Если поиск приобретен, номера телефонов будут получены для ресурса Azure.

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

Номера телефонов могут иметь сочетание возможностей. Их можно настроить для поддержки входящих и (или) исходящих вызовов, или ни для того, чтобы не использовать номер телефона для звонков. То же самое относится и к возможностям sms.

Важно учитывать тип назначения номера телефона. Некоторые возможности ограничены определенным типом назначения.

Примеры

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

Чтобы создать клиентский объект для доступа к API Служб коммуникации, вам потребуется connection string или endpoint ресурса Служб коммуникации и credential. Клиент номеров телефонов может использовать учетные данные Azure Active Directory или учетные данные ключа API для проверки подлинности.

Ключ и (или) строку подключения можно получить из ресурса Служб коммуникации на портале Azure. Вы также можете найти конечную точку для ресурса Служб коммуникации на портале Azure.

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

Использование строки подключения

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

Использование ключа доступа с AzureKeyCredential

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

import { AzureKeyCredential } from "@azure/core-auth";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const credential = new AzureKeyCredential("<key-from-resource>");
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Использование учетных данных Azure Active Directory

Проверка подлинности строки подключения используется в большинстве примеров, но вы также можете пройти проверку подлинности в Azure Active Directory с помощью библиотеки удостоверений Azure. Чтобы использовать поставщик DefaultAzureCredential, показанный ниже, или другие поставщики учетных данных, предоставляемые вместе с пакетом AZURE SDK, установите @azure/identity пакет :

npm install @azure/identity

Пакет @azure/identity предоставляет различные типы учетных данных, которые приложение может использовать для этого. Файл сведений для @azure/identity содержит дополнительные сведения и примеры для начала работы.

import { DefaultAzureCredential } from "@azure/identity";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

let credential = new DefaultAzureCredential();
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Использование

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

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

beginSearchAvailablePhoneNumbers Используйте метод для поиска номеров телефонов и резервирования их. Возвращаемые номера телефонов зарезервированы на 15 минут и могут быть приобретены в течение этого периода, предоставив searchId методу beginPurchasePhoneNumbers .

beginSearchAvailablePhoneNumbers является длительной операцией и возвращает опрашиватель.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

  // The search is underway. Wait to receive searchId.
  const searchResults = searchPoller.pollUntilDone();
  console.log(`Found phone number: ${searchResults.phoneNumbers[0]}`);
  console.log(`searchId: ${searchResults.searchId}`);
}

main();

Используйте метод , beginPurchasePhoneNumbers чтобы приобрести номера телефонов из поиска. Приобретенные номера телефонов будут назначены ресурсу Служб коммуникации, используемому при инициации клиента. Значение , searchId возвращаемое из beginSearchAvailablePhoneNumbers , является обязательным.

beginPurchasePhoneNumbers является длительной операцией и возвращает опрашиватель.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

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

  const purchasePoller = await client.beginPurchasePhoneNumbers(searchId);

  // Purchase is underway.
  await purchasePoller.pollUntilDone();
  console.log(`Successfully purchased ${phoneNumbers[0]}`);
}

main();

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

Используйте метод , beginReleasePhoneNumber чтобы освободить ранее приобретенный номер телефона. Выпущенные номера телефонов больше не будут связаны с ресурсом Служб коммуникации и не будут доступны для использования с другими операциями (например, SMS) ресурса. Освобождаемый номер телефона является обязательным.

beginReleasePhoneNumber является длительной операцией и возвращает опрашиватель.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToRelease = "<phone-number-to-release>";

  const releasePoller = await client.beginReleasePhoneNumber(phoneNumberToRelease);

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

main();

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

Используйте метод для beginUpdatePhoneNumberCapabilities обновления возможностей приобретенного номера телефона. Номера телефонов можно настроить для поддержки входящих и (или) исходящих вызовов и SMS, или ни для того, ни другого.

beginUpdatePhoneNumberCapabilities является длительной операцией и возвращает опрашиватель.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToUpdate = "<phone-number-to-update>";

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

  const updatePoller = await client.beginUpdatePhoneNumberCapabilities(
    phoneNumberToUpdate,
    updateRequest
  );

  // Update is underway.
  const { capabilities } = await updatePoller.pollUntilDone();
  console.log(`These are the update capabilities: ${capabilities}`);
}

main();

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

Используйте метод для getPurchasedPhoneNumber получения сведений о приобретенном номере телефона. Эти сведения включают тип, возможности, стоимость и дату покупки номера телефона.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumberToGet = "<phone-number-to-get>";

  const phoneNumber = await client.getPurchasedPhoneNumber(phoneNumberToGet);

  console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
  console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
}

main();

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

Используйте метод для listPurchasedPhoneNumbers просмотра всех приобретенных номеров телефонов.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumbers = await client.listPurchasedPhoneNumbers();

  for await (const phoneNumber of phoneNumbers) {
    console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
    console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
  }
}

main();

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

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

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры