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


Присоединение к собранию команд

Службы коммуникации Azure пакеты SDK могут позволить вашим пользователям присоединяться к регулярным собраниям Microsoft Teams. Вот как!

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

Установка пакета SDK

``` Используйте команду npm install для установки SDK Azure Communication Services Common and Calling для JavaScript: ```

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Инициализация обязательных объектов

Экземпляр CallClient требуется для большинства операций вызова. При создании нового CallClient экземпляра его можно настроить с помощью пользовательских параметров, таких как Logger экземпляр.

С помощью экземпляра CallClient можно создать экземпляр CallAgent, вызвав createCallAgent. Этот метод асинхронно возвращает объект экземпляра CallAgent.

Метод createCallAgent использует CommunicationTokenCredential в качестве аргумента. Он принимает маркер доступа пользователя.

Можно применить метод getDeviceManager для экземпляра CallClient, чтобы получить доступ к deviceManager.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Управление подключением пакета SDK к инфраструктуре Майкрософт

Экземпляр Call Agent помогает управлять вызовами (присоединяться к вызовам или начинать их). Для работы пакета SDK для вызова необходимо подключиться к инфраструктуре Майкрософт для получения уведомлений о входящих звонках и координации других сведений о вызове. У вас Call Agent есть два возможных состояния:

ПодключеноCall Agent значение Connected connectionStatue означает, что клиентский пакет SDK подключен и способен получать уведомления из инфраструктуры Майкрософт.

Отключено — значение Call Agent connectionStatus Disconnected указывает на проблему, которая препятствует правильному подключению SDK. Call Agent необходимо повторно создать.

  • invalidToken: если токен истек или недопустим, Call Agent экземпляр отключается с этой ошибкой.
  • Если у клиента возникает проблема с подключением к инфраструктуре Майкрософт, после многих повторных попыток проявляется ошибка #D2.

Вы можете проверить, подключен ли локальный сервер Call Agent к инфраструктуре Майкрософт, проверив текущее значение connectionState свойства. Во время активного вызова можно прослушивать connectionStateChanged событие, чтобы определить, меняется ли состояние Call Agent с подключенного на отключенное.

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

Методы присоединения к собранию

Чтобы присоединиться к конференции Teams, выполните метод join и передайте ему ссылку на собрание или координаты собрания.

Подключение к конференции по ссылке:

const locator = { meetingLink: '<MEETING_LINK>'}
const call = callAgent.join(locator);

Присоединение с помощью координат собраний (в настоящее время это доступно в ограниченной предварительной версии):

const locator = {
    threadId: <thread id>,
    organizerId: <organizer id>,
    tenantId: <tenant id>,
    messageId: <message id>
}
const call = callAgent.join(locator);

Настройка системы

Выполните следующие действия, чтобы настроить систему.

Создание проекта Visual Studio

Для приложения Платформы универсальных Windows создайте проект Blank App (Universal Windows) в Visual Studio 2022. После ввода имени проекта вы можете выбрать любой пакет SDK для Windows позже 10.0.17763.0.

Для приложения WinUI 3 создайте новый проект с использованием шаблона "Пустое приложение, упакованное (WinUI 3 для настольных приложений)", чтобы настроить одностраничное приложение WinUI 3. Требуется пакет SDK для приложений Windows версии 1.3 или более поздней.

Установите пакет и зависимости с помощью диспетчера пакетов NuGet

API и библиотеки SDK для звонков общедоступны через пакет NuGet.

Чтобы найти, скачать и установить пакет NuGet для SDK вызовов:

  1. Откройте nuGet диспетчер пакетов, выбрав > Manage NuGet Packages for Solution.
  2. Выберите "Обзор" и введите Azure.Communication.Calling.WindowsClient в поле поиска.
  3. Убедитесь, что установлен флажок "Включить предварительную версию ".
  4. Выберите пакет Azure.Communication.Calling.WindowsClient, а затем выберите Azure.Communication.Calling.WindowsClient1.4.0-beta.1 или более позднюю версию.
  5. Установите флажок, соответствующий проекту Службы коммуникации Azure на правой панели.
  6. Выберите Установить.

Методы присоединения к собранию

Чтобы присоединиться к собранию Teams, используйте метод CallAgent.join и передайте контекст приложения, JoinMeetingLocator и JoinCallOptions.

Идентификатор собрания и пароль

TeamsMeetingIdLocator находит собрание с помощью идентификатора собрания и пароля. Их можно найти в разделе сведений о присоединении к собранию Teams. Идентификатор собрания в Teams будет состоять из 12 цифр, сгруппированных по три (например, 000 000 000 000). Секретный код будет состоять из 6 символов алфавита (т. е. aBcDeF). Код доступа чувствителен к регистру.

String meetingId, passcode; 
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);

TeamsMeetingLinkLocator использует ссылку на собрание Teams для его поиска. Это можно найти в разделе сведений о присоединении к собранию Teams.

String meetingLink; 
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);

Координаты собрания

Он TeamsMeetingCoordinatesLocator находит собрания с помощью идентификатора организатора, идентификатора клиента, идентификатора потока и идентификатора сообщения. Эти сведения можно найти с помощью Microsoft Graph.

Guid organizerId, tenantId;
String threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);

Присоединение к собранию с помощью указателей

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

JoinCallOptions options = new JoinCallOptions();
call = agent.join(
        getApplicationContext(),
        locator,
        options);

Настройка системы

Выполните следующие действия, чтобы настроить систему.

Создание проекта Visual Studio

Для приложения Платформы универсальных Windows создайте проект Blank App (Universal Windows) в Visual Studio 2022. После ввода имени проекта вы можете выбрать любой пакет SDK для Windows позже 10.0.17763.0.

Для приложения WinUI 3 создайте новый проект с использованием шаблона "Пустое приложение, упакованное (WinUI 3 для настольных приложений)", чтобы настроить одностраничное приложение WinUI 3. Требуется пакет SDK для приложений Windows версии 1.3 или более поздней.

Установите пакет и зависимости с помощью диспетчера пакетов NuGet

API и библиотеки SDK для звонков общедоступны через пакет NuGet.

Чтобы найти, скачать и установить пакет NuGet для SDK вызовов:

  1. Откройте nuGet диспетчер пакетов, выбрав > Manage NuGet Packages for Solution.
  2. Выберите "Обзор" и введите Azure.Communication.Calling.WindowsClient в поле поиска.
  3. Убедитесь, что установлен флажок "Включить предварительную версию ".
  4. Выберите пакет Azure.Communication.Calling.WindowsClient, а затем выберите Azure.Communication.Calling.WindowsClient1.4.0-beta.1 или более позднюю версию.
  5. Установите флажок, соответствующий проекту Службы коммуникации Azure на правой панели.
  6. Выберите Установить.

Методы присоединения к собранию

Чтобы присоединиться к собрание Teams, используйте метод CallAgent.join и передайте JoinMeetingLocator и JoinCallOptions.

Идентификатор собрания и пароль

TeamsMeetingIdLocator находит собрание с помощью идентификатора собрания и пароля. Их можно найти в разделе сведений о присоединении к собранию Teams. Идентификатор собрания в Teams будет состоять из 12 цифр, сгруппированных по три (например, 000 000 000 000). Секретный код будет состоять из 6 символов алфавита (т. е. aBcDeF). Код доступа чувствителен к регистру.

String meetingId, passcode
let locator = TeamsMeetingIdLocator(meetingId: meetingId, passcode: passcode)

TeamsMeetingLinkLocator использует ссылку на собрание Teams для его поиска. Это можно найти в разделе сведений о присоединении к собранию Teams.

String meetingLink
let locator = TeamsMeetingLinkLocator(meetingLink: meetingLink)

Присоединение к собранию с помощью указателей

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

func joinTeamsMeeting() {
    // Ask permissions
    AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
        if granted {
            let joinCallOptions = JoinCallOptions()
            
            // Insert meeting locator code for specific join methods here

            // for CallAgent callAgent
            self.callAgent?.join(with: teamsMeetingLinkLocator, joinCallOptions: joinCallOptions) 
        }
    }
}

Настройка системы

Выполните следующие действия, чтобы настроить систему.

Создание проекта Visual Studio

Для приложения Платформы универсальных Windows создайте проект Blank App (Universal Windows) в Visual Studio 2022. После ввода имени проекта вы можете выбрать любой пакет SDK для Windows позже 10.0.17763.0.

Для приложения WinUI 3 создайте новый проект с использованием шаблона "Пустое приложение, упакованное (WinUI 3 для настольных приложений)", чтобы настроить одностраничное приложение WinUI 3. Требуется пакет SDK для приложений Windows версии 1.3 или более поздней.

Установите пакет и зависимости с помощью диспетчера пакетов NuGet

API и библиотеки SDK для звонков общедоступны через пакет NuGet.

Чтобы найти, скачать и установить пакет NuGet для SDK вызовов:

  1. Откройте nuGet диспетчер пакетов, выбрав > Manage NuGet Packages for Solution.
  2. Выберите "Обзор" и введите Azure.Communication.Calling.WindowsClient в поле поиска.
  3. Убедитесь, что установлен флажок "Включить предварительную версию ".
  4. Выберите пакет Azure.Communication.Calling.WindowsClient, а затем выберите Azure.Communication.Calling.WindowsClient1.4.0-beta.1 или более позднюю версию.
  5. Установите флажок, соответствующий проекту Службы коммуникации Azure на правой панели.
  6. Выберите Установить.

Методы присоединения к собранию

Чтобы присоединиться к собрание Teams, используйте метод CallAgent.JoinAsync и передайте JoinMeetingLocator и JoinCallOptions.

Идентификатор собрания и пароль

TeamsMeetingIdLocator находит собрание с помощью идентификатора собрания и пароля. Их можно найти в разделе сведений о присоединении к собранию Teams. Идентификатор собрания в Teams будет состоять из 12 цифр, сгруппированных по три (например, 000 000 000 000). Секретный код будет состоять из 6 символов алфавита (т. е. aBcDeF). Код доступа чувствителен к регистру.

string meetingId, passcode; 
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);

TeamsMeetingLinkLocator использует ссылку на собрание Teams для его поиска. Это можно найти в разделе сведений о присоединении к собранию Teams.

string meetingLink; 
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);

Координаты собрания

Он TeamsMeetingCoordinatesLocator находит собрания с помощью идентификатора организатора, идентификатора клиента, идентификатора потока и идентификатора сообщения. Эти сведения можно найти с помощью Microsoft Graph.

Guid organizerId, tenantId;
string threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);

Присоединение к собранию с помощью указателей

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

var joinCallOptions = new JoinCallOptions() {
        OutgoingAudioOptions = new OutgoingAudioOptions() { IsMuted = true },
        OutgoingVideoOptions = new OutgoingVideoOptions() { Streams = new OutgoingVideoStream[] { cameraStream } }
    };
var call = await callAgent.JoinAsync(locator, joinCallOptions);

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