Teams 회의 참가
Azure Communication Services SDK를 사용하면 사용자가 정기적인 Microsoft Teams 모임에 참가할 수 있습니다. 방법은 다음과 같습니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 배포된 Communication Services 리소스. Communication Services 리소스 만들기
- 호출 클라이언트를 사용하도록 설정하는 사용자 액세스 토큰입니다. 자세한 내용은 액세스 토큰 만들기 및 관리를 참조하세요.
- 선택 사항: 빠른 시작을 완료하여 애플리케이션에 음성 통화를 추가합니다.
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 인프라로부터 알림을 받을 수 있음을 의미합니다.
연결 끊김 - Disconnected
의 Call 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 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.
- 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
- 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
- 시험판 포함 확인란이 선택되어 있는지 확인합니다.
- Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
- 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
- 설치를 선택합니다.
모임 참가 방법
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 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.
- 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
- 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
- 시험판 포함 확인란이 선택되어 있는지 확인합니다.
- Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
- 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
- 설치를 선택합니다.
모임 참가 방법
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 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.
- 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
- 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
- 시험판 포함 확인란이 선택되어 있는지 확인합니다.
- Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
- 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
- 설치를 선택합니다.
모임 참가 방법
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);