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


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

Начните работу со службами связи Azure, используя пакет SDK для вызовов, чтобы добавить вызовы ТСОП в ваше приложение.

Это важно

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

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

Пример кода

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

Замечание

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

Предпосылки

Настройка

Создание нового приложения 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.

Настройте структуру приложения

В этой статье используется Parcel для сборки компонентов приложения. Выполните следующую команду, чтобы установить ее и перечислить ее в качестве зависимости разработки в 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/. Должно появиться следующее веб-приложение:

Снимок экрана: готовое приложение JavaScript.

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

Это важно

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

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

Пример кода

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

Предпосылки

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

  • Чтобы просмотреть номера телефонов, связанные с ресурсом Служб коммуникации, войдите на портал Azure, найдите ресурс Служб коммуникации и откройте вкладку "Номера телефонов " в области навигации слева.

Настройка

Добавьте функции телефонной сети общего пользования (ТСОП) в ваше приложение

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

Замечание

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

Очистите ресурсы

Если вы хотите очистить и удалить подписку на Communication Services, вы можете удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней. Узнайте больше об очистке ресурсов.

Дальнейшие шаги

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