Клиентская библиотека номеров телефонов связи Azure для JavaScript версии 1.0.0
Библиотека номеров телефонов предоставляет возможности для администрирования номеров телефонов.
Приобретенные номера телефонов могут быть оснащены множеством возможностей в зависимости от страны, типа номера и типа назначения. Примеры возможностей: входящее и исходящее использование SMS, входящее и исходящее использование ТСОП. Номера телефонов также можно назначить боту через URL-адрес веб-перехватчика.
Начало работы
Предварительные требования
- Подписка Azure.
- Существующий ресурс Служб коммуникации. Если вам нужно создать ресурс, можно использовать портал Azure, Azure PowerShell или Azure CLI.
Установка
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();
Устранение неполадок
Дальнейшие действия
Подробные примеры использования этой библиотеки см. в каталоге примеров .
Участие
Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.
Связанные проекты