다음을 통해 공유


Teams 회의 참가

Azure Communication Services SDK를 사용하면 사용자가 정기적인 Microsoft Teams 모임에 참가할 수 있습니다. 방법은 다음과 같습니다.

필수 조건

SDK 설치

npm install 명령을 사용하여 다음과 같은 JavaScript용 Azure Communication Services Common 및 통화 SDK를 설치합니다.

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

필수 개체 초기화

대부분의 호출 작업에는 CallClient 인스턴스가 필요합니다. 새 CallClient 인스턴스를 만들 때 Logger 인스턴스와 같은 사용자 지정 옵션을 사용하여 이 새 인스턴스를 구성할 수 있습니다.

CallClient 인스턴스를 사용하면 createCallAgent를 호출하여 CallAgent 인스턴스를 만들 수 있습니다. 이 메서드는 CallAgent 인스턴스 개체를 비동기적으로 반환됩니다.

createCallAgent 메서드는 CommunicationTokenCredential을 인수로 사용합니다. 사용자 액세스 토큰이 허용됩니다.

CallClient 인스턴스에서 getDeviceManager 메서드를 사용하여 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()

Microsoft 인프라에 대한 SDK 연결을 가장 잘 관리하는 방법

Call Agent 인스턴스는 통화를 관리하는 데 도움이 됩니다(통화 참여 또는 시작). 작동하려면 통화 SDK가 Microsoft 인프라에 연결하여 수신 전화에 대한 알림을 가져오고 기타 호출 세부 정보를 조정해야 합니다. 사용자의 Call Agent에는 두 가지 상태가 있을 수 있습니다.

연결됨 - Call Agent connectionStatue 값이 Connected이면 클라이언트 SDK가 연결되어 있고 Microsoft 인프라로부터 알림을 받을 수 있음을 의미합니다.

연결 끊김 - DisconnectedCall Agent connectionStatue 값은 SDK가 제대로 연결되지 못하게 하는 문제가 있음을 나타냅니다. Call Agent를 다시 만들어야 합니다.

  • invalidToken: 토큰이 만료되었거나 유효하지 않은 경우 Call Agent 인스턴스가 이 오류와 함께 연결 끊기됩니다.
  • connectionIssue: Microsoft 인프라에 연결하는 클라이언트에 문제가 있는 경우 여러 번 다시 시도한 후 Call Agent에서 connectionIssue 오류를 노출합니다.

connectionState 속성의 현재 값을 검사하여 로컬 Call Agent가 Microsoft 인프라에 연결되어 있는지 확인할 수 있습니다. 활성 통화 중에 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 플랫폼 앱의 경우 Visual Studio 2022에서 새 빈 앱(유니버설 Windows) 프로젝트를 만듭니다. 프로젝트 이름을 입력한 다음 10.0.17763.0보다 버전이 높은 Windows SDK를 아무거나 선택합니다.

WinUI 3 앱의 경우, 빈 앱, 패키지됨(데스크톱의 WinUI 3) 템플릿으로 새 프로젝트를 만들어 한 페이지 짜리 WinUI 3 앱을 설정합니다. Windows 앱 SDK 버전 1.3 이상이 필요합니다.

NuGet 패키지 관리자를 사용하여 패키지와 종속성 설치

Calling SDK API와 라이브러리는 NuGet 패키지를 통해 공개적으로 사용할 수 있습니다.

호출 SDK NuGet 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.

  1. 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
  2. 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
  3. 시험판 포함 확인란이 선택되어 있는지 확인합니다.
  4. Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
  5. 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
  6. 설치를 선택합니다.

모임 참가 방법

Teams 모임에 참가하려면 메서드를 CallAgent.join 사용하고 애플리케이션 컨텍스트 JoinMeetingLocator를 전달합니다 JoinCallOptions.

모임 ID 및 암호

TeamsMeetingIdLocator는 모임 ID와 암호를 사용하여 모임을 찾습니다. 이는 Teams 모임 참가 정보에서 찾을 수 있습니다. Teams 모임 ID의 길이는 12자이며 세 자리(예 000 000 000 000: 숫자)로 그룹화된 숫자로 구성됩니다. 암호는 6개의 알파벳 문자(예: aBcDeF)로 구성됩니다. 암호는 대/소문자를 구분합니다.

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

Teams TeamsMeetingLinkLocator 모임에 대한 링크를 사용하여 모임을 찾습니다. Teams 모임의 참가 정보에서 찾을 수 있습니다.

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

모임 좌표

이끌이 TeamsMeetingCoordinatesLocator ID, 테넌트 ID, 스레드 ID 및 메시지 ID를 사용하여 모임을 찾습니다. 이 정보는 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 플랫폼 앱의 경우 Visual Studio 2022에서 새 빈 앱(유니버설 Windows) 프로젝트를 만듭니다. 프로젝트 이름을 입력한 다음 10.0.17763.0보다 버전이 높은 Windows SDK를 아무거나 선택합니다.

WinUI 3 앱의 경우, 빈 앱, 패키지됨(데스크톱의 WinUI 3) 템플릿으로 새 프로젝트를 만들어 한 페이지 짜리 WinUI 3 앱을 설정합니다. Windows 앱 SDK 버전 1.3 이상이 필요합니다.

NuGet 패키지 관리자를 사용하여 패키지와 종속성 설치

Calling SDK API와 라이브러리는 NuGet 패키지를 통해 공개적으로 사용할 수 있습니다.

호출 SDK NuGet 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.

  1. 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
  2. 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
  3. 시험판 포함 확인란이 선택되어 있는지 확인합니다.
  4. Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
  5. 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
  6. 설치를 선택합니다.

모임 참가 방법

Teams 모임에 참가하려면 메서드를 CallAgent.join 사용하고 a와 를 JoinMeetingLocator 전달합니다 JoinCallOptions.

모임 ID 및 암호

TeamsMeetingIdLocator는 모임 ID와 암호를 사용하여 모임을 찾습니다. 이는 Teams 모임 참가 정보에서 찾을 수 있습니다. Teams 모임 ID의 길이는 12자이며 세 자리(예 000 000 000 000: 숫자)로 그룹화된 숫자로 구성됩니다. 암호는 6개의 알파벳 문자(예: aBcDeF)로 구성됩니다. 암호는 대/소문자를 구분합니다.

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

Teams TeamsMeetingLinkLocator 모임에 대한 링크를 사용하여 모임을 찾습니다. 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 플랫폼 앱의 경우 Visual Studio 2022에서 새 빈 앱(유니버설 Windows) 프로젝트를 만듭니다. 프로젝트 이름을 입력한 다음 10.0.17763.0보다 버전이 높은 Windows SDK를 아무거나 선택합니다.

WinUI 3 앱의 경우, 빈 앱, 패키지됨(데스크톱의 WinUI 3) 템플릿으로 새 프로젝트를 만들어 한 페이지 짜리 WinUI 3 앱을 설정합니다. Windows 앱 SDK 버전 1.3 이상이 필요합니다.

NuGet 패키지 관리자를 사용하여 패키지와 종속성 설치

Calling SDK API와 라이브러리는 NuGet 패키지를 통해 공개적으로 사용할 수 있습니다.

호출 SDK NuGet 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.

  1. 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
  2. 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
  3. 시험판 포함 확인란이 선택되어 있는지 확인합니다.
  4. Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
  5. 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
  6. 설치를 선택합니다.

모임 참가 방법

Teams 모임에 참가하려면 메서드를 CallAgent.JoinAsync 사용하고 a와 를 JoinMeetingLocator 전달합니다 JoinCallOptions.

모임 ID 및 암호

TeamsMeetingIdLocator는 모임 ID와 암호를 사용하여 모임을 찾습니다. 이는 Teams 모임 참가 정보에서 찾을 수 있습니다. Teams 모임 ID의 길이는 12자이며 세 자리(예 000 000 000 000: 숫자)로 그룹화된 숫자로 구성됩니다. 암호는 6개의 알파벳 문자(예: aBcDeF)로 구성됩니다. 암호는 대/소문자를 구분합니다.

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

Teams TeamsMeetingLinkLocator 모임에 대한 링크를 사용하여 모임을 찾습니다. Teams 모임의 참가 정보에서 찾을 수 있습니다.

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

모임 좌표

이끌이 TeamsMeetingCoordinatesLocator ID, 테넌트 ID, 스레드 ID 및 메시지 ID를 사용하여 모임을 찾습니다. 이 정보는 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);

다음 단계