Краткое руководство. Исходящий звонок на телефонный номер

Начало работы со Службами коммуникации Azure с помощью пакета SDK для вызовов Служб коммуникации для добавления в приложение функции вызовов PSTN.

Внимание

Службы коммуникации Azure поддерживает экстренные вызовы для экстренных номеров только в США, Пуэрто-Рико, Канаде, Дании и Соединенном Королевстве.

Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, для вызова номера экстренного реагирования 112 в Дании, а также для вызова номеров экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.

Пример кода

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Примечание.

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

Необходимые компоненты

Установка

Создание нового приложения 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>
      &nbsp;
      <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/. Должно появиться следующее веб-приложение:

Screenshot of the completed JavaScript Application.

Вы можете осуществить вызов на реальный номер телефона, указав номер телефона в дополнительном текстовом поле и нажав кнопку Start Phone Call (Начать вызов).

Внимание

Службы коммуникации Azure поддерживает экстренные вызовы для экстренных номеров только в США, Пуэрто-Рико, Канаде, Дании и Соединенном Королевстве.

Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, для вызова номера экстренного реагирования 112 в Дании, а также для вызова номеров экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.

Пример кода

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

Проверка предварительных условий

  • Чтобы просмотреть номера телефонов, связанные с ресурсом Служб коммуникации, войдите на портал 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.

Screenshot showing the completed application.

Внимание

Службы коммуникации Azure поддерживает экстренные вызовы для экстренных номеров только в США, Пуэрто-Рико, Канаде, Дании и Соединенном Королевстве.

Службы коммуникации Azure голосовых звонков (ТСОП) можно использовать для вызова номера экстренного реагирования 911 в США, Пуэрто-Рико и Канады, для вызова номера экстренного реагирования 112 в Дании, а также для вызова номеров экстренных служб 999 и 112 в Соединенном Королевстве. Службы коммуникации Azure в настоящее время не поддерживает абонентскую связь с этими номерами экстренного реагирования за пределами этих стран или регионов или абонентской службы в других странах или регионах.

Необходимые компоненты

Проверка предварительных условий

  • Чтобы просмотреть номера телефонов, связанные с ресурсом Служб коммуникации, войдите на портал 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).

Final look and feel of the quick start app

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

Предупреждение

Обратите внимание, что номера телефонов должны быть указаны в формате международного стандарта E.164, например, +12223334444.

Примечание.

При первом вызове в системе отобразится запрос на получение доступа к микрофону. В приложении в рабочей среде используйте проверку состояния разрешения API AVAudioSession и корректно обновите поведение приложения, если разрешение не предоставлено.

Очистка ресурсов

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

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

Дополнительные сведения см. в следующих статьях: