Краткое руководство. Исходящий звонок на телефонный номер
Начало работы со Службами коммуникации Azure с помощью пакета SDK для вызовов Служб коммуникации для добавления в приложение функции вызовов PSTN.
Внимание
Службы коммуникации Azure поддерживает экстренные вызовы к номерам экстренного реагирования только в США, Пуэрто-Рико, Канаде, Дании, Соединенном Королевстве и Австралии.
Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, чтобы назвонить номер экстренной помощи 112 в Дании, назвонить 000 в Австралии и назвонить номера экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.
Пример кода
Итоговый код для этого краткого руководства можно найти на сайте GitHub.
Примечание.
Исходящие звонки к номеру телефона можно получить с помощью библиотеки пользовательского интерфейса Службы коммуникации Azure. Библиотека пользовательского интерфейса позволяет разработчикам добавлять клиент вызова, включенный в приложение, с несколькими строками кода.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Номер телефона, приобретенный в ресурсе Служб коммуникации, или Службы коммуникации Azure настроена прямая маршрутизация. Если у вас есть бесплатная подписка, вы можете получить пробный номер телефона.
User Access Token
для включения клиента вызова. Дополнительные сведения о том, как получитьUser Access Token
Установка
Создание нового приложения Node.js
Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.
mkdir calling-quickstart
cd calling-quickstart
Воспользуйтесь командой npm init -y
, чтобы создать файл package.json с параметрами по умолчанию.
npm init -y
Установка пакета
Используйте команду npm install
, чтобы установить пакет SDK Служб коммуникации Azure для реализации вызовов на JavaScript.
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Параметр --save
указывает библиотеку как зависимость в файле пакета package.json.
Настройка платформы приложения
В этом кратком руководстве используется пакет для упаковки ресурсов приложения. Выполните следующую команду, чтобы установить ее и перечислить ее в качестве зависимости разработки в package.json:
npm install parcel --save-dev
Создайте файл index.html в корневом каталоге проекта. Мы будем использовать этот файл для настройки базового макета, с помощью которого пользователь сможет выполнить вызов.
Вот этот код:
<!DOCTYPE html>
<html>
<head>
<title>Communication Client - Calling Sample</title>
</head>
<body>
<h4>Azure Communication Services</h4>
<h1>Calling Quickstart</h1>
<input
id="callee-phone-input"
type="text"
placeholder="Who would you like to call?"
style="margin-bottom:1em; width: 230px;"
/>
<div>
<button id="call-phone-button" type="button">
Start Call
</button>
<button id="hang-up-phone-button" type="button" disabled="true">
Hang Up
</button>
</div>
<script src="./app.js" type="module"></script>
</body>
</html>
Создайте файл в корневом каталоге проекта с именем app.js , чтобы содержать логику приложения для этого краткого руководства. Добавьте следующий код, чтобы импортировать клиент вызова и получить ссылки на элементы модели DOM, чтобы мы могли присоединить нашу бизнес-логику.
import { CallClient, CallAgent } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
let call;
let callAgent;
const calleePhoneInput = document.getElementById("callee-phone-input");
const callPhoneButton = document.getElementById("call-phone-button");
const hangUpPhoneButton = document.getElementById("hang-up-phone-button");
async function init() {
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with VoIP scope>');
callAgent = await callClient.createCallAgent(tokenCredential);
//callPhoneButton.disabled = false;
}
init();
Вызов телефонного номера
Укажите номер телефона, полученный в ресурсе Служб коммуникации, который используется для запуска звонка:
Предупреждение
Номера телефонов должны быть предоставлены в международном формате стандарта E.164. например, +12223334444.
Добавьте обработчик событий, чтобы начать вызов по номеру телефона, указанному при нажатии callPhoneButton
:
callPhoneButton.addEventListener("click", () => {
// start a call to phone
const phoneToCall = calleePhoneInput.value;
call = callAgent.startCall(
[{phoneNumber: phoneToCall}], { alternateCallerId: {phoneNumber: 'YOUR AZURE REGISTERED PHONE NUMBER HERE: +12223334444'}
});
// toggle button states
hangUpPhoneButton.disabled = false;
callPhoneButton.disabled = true;
});
Завершение вызова на телефонный номер
Добавьте прослушиватель событий для завершения текущего вызова при нажатии hangUpPhoneButton
:
hangUpPhoneButton.addEventListener("click", () => {
// end the current call
call.hangUp({
forEveryone: true
});
// toggle button states
hangUpPhoneButton.disabled = true;
callPhoneButton.disabled = false;
});
Свойство forEveryone
позволяет завершить вызов для всех его участников.
Выполнение кода
Используйте команду npx parcel index.html
для сборки и запуска приложения.
Откройте браузер и перейдите по адресу http://localhost:1234/
. Должно появиться следующее веб-приложение:
Вы можете осуществить вызов на реальный номер телефона, указав номер телефона в дополнительном текстовом поле и нажав кнопку Start Phone Call (Начать вызов).
Внимание
Службы коммуникации Azure поддерживает экстренные вызовы к номерам экстренного реагирования только в США, Пуэрто-Рико, Канаде, Дании, Соединенном Королевстве и Австралии.
Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, чтобы назвонить номер экстренной помощи 112 в Дании, назвонить 000 в Австралии и назвонить номера экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.
Пример кода
Итоговый код для этого краткого руководства можно найти на сайте GitHub.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Номер телефона, приобретенный в ресурсе Служб коммуникации, или Службы коммуникации Azure настроенная прямая маршрутизация. Если у вас есть бесплатная подписка, вы можете получить пробный номер телефона.
User Access Token
для включения клиента вызова. Дополнительные сведения о том, как получитьUser Access Token
- Выполните инструкции из краткого руководства Начало работы путем добавления вызова в приложение.
Проверка предварительных условий
- Чтобы просмотреть номера телефонов, связанные с ресурсом Служб коммуникации, войдите на портал Azure, перейдите к ресурсу Служб коммуникации и откройте вкладку с номерами телефонов в области навигации слева.
Установка
Добавление возможностей PSTN в приложение
Добавьте тип PhoneNumber
в приложение, изменив файл MainActivity.java:
import com.azure.android.communication.common.PhoneNumberIdentifier;
Вызов телефонного номера
Укажите номер телефона, полученный из ресурса Служб коммуникации. Этот номер используется в качестве идентификатора вызывающего объекта для запуска вызова:
Предупреждение
Обратите внимание, что номера телефонов должны быть указаны в формате международного стандарта E.164, например, +12223334444.
Измените обработчик событий startCall()
в файле MainActivity.java, чтобы он обрабатывал телефонные вызовы:
private void startCall() {
EditText calleePhoneView = findViewById(R.id.callee_id);
String calleePhone = calleePhoneView.getText().toString();
PhoneNumberIdentifier callerPhone = new PhoneNumberIdentifier("+12223334444");
StartCallOptions options = new StartCallOptions();
options.setAlternateCallerId(callerPhone);
options.setVideoOptions(new VideoOptions(null));
call = agent.startCall(
getApplicationContext(),
new PhoneNumberIdentifier[] {new PhoneNumberIdentifier(calleePhone)},
options);
}
Запуск приложения и вызов эхо-бота
Теперь вы можете запустить приложение с помощью кнопки Run App (Запустить приложение) на панели инструментов или нажав клавиши SHIFT+F10. Чтобы сделать звонок, укажите номер телефона в добавленном текстовом поле и нажмите кнопку CALL .
Предупреждение
Обратите внимание, что номера телефонов должны быть указаны в формате международного стандарта E.164, например, +12223334444.
Внимание
Службы коммуникации Azure поддерживает экстренные вызовы к номерам экстренного реагирования только в США, Пуэрто-Рико, Канаде, Дании, Соединенном Королевстве и Австралии.
Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, чтобы назвонить номер экстренной помощи 112 в Дании, назвонить 000 в Австралии и назвонить номера экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Номер телефона, приобретенный в ресурсе Служб коммуникации, или Службы коммуникации Azure настроена прямая маршрутизация. Если у вас есть бесплатная подписка, вы можете получить пробный номер телефона.
User Access Token
для включения клиента вызова. Дополнительные сведения о том, как получитьUser Access Token
- Выполните инструкции из краткого руководства Начало работы путем добавления вызова в приложение.
Проверка предварительных условий
- Чтобы просмотреть номера телефонов, связанные с ресурсом Служб коммуникации, войдите на портал Azure, перейдите к ресурсу Служб коммуникации и откройте вкладку с номерами телефонов в области навигации слева.
- Вы можете создать и запустить приложение с помощью пакета SDK для вызовов Служб коммуникации Azure для iOS:
Установка
Вызов телефонного номера
Укажите номер телефона, полученный в ресурсе Служб коммуникации, который используется для запуска звонка:
Предупреждение
Обратите внимание, что номера телефонов должны быть указаны в формате международного стандарта E.164, например, +12223334444.
Измените startCall
обработчик событий, выполняемый при нажатии кнопки "Пуск вызова ":
func startCall() {
// Ask permissions
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
let startCallOptions = StartCallOptions()
startCallOptions.alternateCallerId = PhoneNumberIdentifier(phoneNumber: "<YOUR AZURE REGISTERED PHONE NUMBER>")
self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: self.callee)], options: startCallOptions) { (call, error) in
if (error == nil) {
self.call = call
} else {
print("Failed to get call object")
}
}
}
}
}
Выполнение кода
Вы можете создать и запустить приложение в симуляторе iOS, выбрав "Запуск продукта>" или с помощью сочетания клавиш ('-R).
Вы можете позвонить по телефону, указав номер телефона в добавленном текстовом поле и нажав кнопку "Пуск звонка ".
Предупреждение
Обратите внимание, что номера телефонов должны быть указаны в формате международного стандарта E.164, например, +12223334444.
Примечание.
При первом вызове в системе отобразится запрос на получение доступа к микрофону. В приложении в рабочей среде используйте проверку состояния разрешения API AVAudioSession
и корректно обновите поведение приложения, если разрешение не предоставлено.
Очистка ресурсов
Если вы хотите отменить и удалить подписку на Службы коммуникации, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы. См. сведения об очистке ресурсов.
Следующие шаги
Дополнительные сведения см. в следующих статьях:
- Узнайте больше о возможностях пакета SDK для вызовов
- Узнайте больше о принципе работы функции вызовов.
- Узнайте о возможностях поиска чисел