빠른 시작: 회의실 리소스 만들기 및 관리
이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room
은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms
에 대한 자세한 내용과 사용 사례를 다룹니다.
개체 모델
다음 표에는 room
개체의 주요 속성이 나열되어 있습니다.
속성 | 설명 |
---|---|
roomId |
고유 room 식별자. |
validFrom |
room 을 사용할 수 있는 가장 빠른 시간입니다. |
validUntil |
room 을 사용할 수 있는 가장 늦은 시간입니다. |
pstnDialOutEnabled |
회의실에서 PSTN 번호로 전화 걸기를 사용하거나 사용하지 않도록 설정합니다. |
participants |
room 의 참가자 목록입니다. CommunicationUserIdentifier 로 지정됩니다. |
roleType |
회의실 참가자의 역할입니다. Presenter , Attendee 또는 Consumer 일 수 있습니다. |
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 및 연결 문자열 Communication Services 리소스 만들기
- Azure CLI를 설치합니다.
- 설정에서 키를 클릭하여 Azure Portal에서 연결 문자열을 가져올 수 있습니다.
설정
확장 추가
az extension
명령을 사용하여 Azure CLI에 대한 Azure Communication Services 확장을 추가합니다.
az extension add --name communication
Azure CLI에 로그인
Azure CLI에 로그인해야 합니다. 로그인한 후 터미널에서 az login
명령을 실행하고 자격 증명을 제공할 수 있습니다.
환경 변수에 연결 문자열 저장
--connection_string
을 사용하여 연결 문자열을 전달하지 않고도 Azure CLI 키 작업을 사용하도록 AZURE_COMMUNICATION_CONNECTION_STRING
환경 변수를 구성할 수 있습니다. 환경 변수를 구성하려면 콘솔 창을 열고 아래 탭에서 운영 체제를 선택합니다. <connectionString>
을 실제 연결 문자열로 바꿉니다.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"
환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.
작업
회의실 만들기
rooms create
명령을 사용하여 회의실을 만듭니다.
az communication rooms create --presenter-participants "<participantId>" --consumer-participants "<participantId>" --attendee-participant "<participantId>" --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --connection-string "<connection-string>"
- 필요에 따라
<participantId>
를 사용하여 참가자 유형을 발표자-참가자, 소비자-참가자 또는 참석자-참가자로 지정합니다. 값을 지정하지 않으면 기본값은 빈 상태가 됩니다. <connection-string>
을 Azure Communication Services 연결 문자열로 대체합니다.- 필요에 따라
<valid-from>
을 사용하여 회의실이 참석을 위해 열리는 타임스탬프를 ISO8601 형식(예: 2022-07-14T10:21)으로 지정합니다. - 필요에 따라
<valid-until>
을 사용하여 회의실에 더 이상 참석할 수 없는 타임스탬프를 ISO8601 형식(예: 2022-07-14T10:21)으로 지정합니다. - 필요에 따라 사용합니다. 이 플래그(“True” 또는 “False”)를 회의실에 대해 PSTN 전화 걸기를 사용하거나 사용하지 않도록 설정하여
<pstn-dial-out-enabled>
를 사용합니다. 기본적으로 이 플래그는 회의실을 만들 때 “False”로 설정됩니다.
위에서 설명한 대로 환경 변수에 연결 문자열을 저장한 경우 명령에 전달할 필요가 없습니다.
az communication rooms create
회의실에 PSTN 전화 걸기 기능 사용
--pstn-dial-out-enabled
매개 변수를 “True”로 정의하여 rooms create
에 대해 PSTN 전화 걸기를 사용하도록 설정할 수 있습니다. 이 기능은 --pstn-dial-out-enabled
매개 변수를 지정하여 rooms update
중에 수정할 수도 있습니다.
az communication rooms create --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --connection-string "<connection-string>"
az communication rooms update --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- 회의실에 대한 PSTN 전화 걸기를 사용하거나 사용하지 않도록 설정하려면
<pstn-dial-out-enabled>
플래그("True" 또는 "False")를 설정합니다.
회의실 가져오기
rooms get
명령은 기존 회의실의 특성을 반환합니다.
az communication rooms get --room "<roomId>"
<roomId>
를 회의실 ID로 바꿉니다.
회의실의 시간 범위 업데이트
회의실의 타임스탬프를 업데이트할 수 있습니다. room update
명령을 호출하기 전에 유효한 기간이 있는 새 회의실을 획득했는지 확인합니다.
az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
<valid-from>
을 ISO8601 형식의 타임스탬프로 바꿉니다(예: 2022-07-14T10:21).--valid-until
과 함께 사용해야 합니다.<valid-until>
을 ISO8601 형식의 타임스탬프(예: 2022-07-14T10:21)로 바꿔 회의실에 더 이상 참석할 수 없는 시간을 지정합니다.--valid-from
과 함께 사용해야 합니다.<pstn-dial-out-enabled>
를 바꾸어 이 플래그(“True” 또는 “False”)를 회의실에 대해 PSTN 전화 걸기를 사용하거나 사용하지 않도록 설정합니다.--pstn-dial-out-enabled
과 함께 사용해야 합니다.<roomId>
를 회의실 ID로 바꿉니다.
모든 활성 회의실 나열
rooms list
명령은 Azure Communication Services 리소스에 속한 모든 활성 회의실을 반환합니다.
az communication rooms list
새 참가자 추가 또는 기존 참가자 업데이트
회의실을 만들 때 새 참가자를 추가하거나 기존 참가자를 업데이트하여 회의실을 업데이트할 수 있습니다. room participant add-or-update
명령을 호출하기 전에 새 사용자를 획득했는지 확인합니다.
identity user create
명령을 사용하여 participantId
로 식별되는 새 참가자를 만듭니다.
az communication identity user create
사용자를 회의실에 참가자로 추가
az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
<participantId>
를 참가자 ID로 바꿉니다.<participantId>
가 회의실에 없는 경우 참가자가 참석자 역할로 회의실에 추가됩니다. 그렇지 않으면 참가자의 역할이 참석자 역할로 업데이트됩니다.<roomId>
를 회의실 ID로 바꿉니다.
회의실에 참가자 목록 가져오기
az communication rooms participant get --room "<roomId>"
<roomId>
를 회의실 ID로 바꿉니다.
회의실에서 참가자 제거
rooms participant -remove
를 사용하여 회의실에서 회의실 참가자를 제거할 수 있습니다.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
<roomId>
를 회의실 ID로 바꿉니다.<participant1>
,<participant2>
,<participant3>
를 이전에identity user create
명령을 실행하여 얻은 사용자 ID로 바꿉니다.
회의실 삭제
회의실을 만드는 것과 마찬가지로 회의실을 삭제할 수도 있습니다.
room delete
명령을 사용하여 기존 회의실을 삭제합니다.
az communication rooms delete --room "<roomId>"
<roomId>
를 회의실 ID로 바꿉니다.
이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room
은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms
에 대한 자세한 내용과 사용 사례를 다룹니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 및 연결 문자열 Communication Services 리소스 만들기
- 운영 체제에 대한 최신 버전의 .NET Core 클라이언트 라이브러리
샘플 코드
GitHub에서 이 빠른 시작에 대한 샘플 코드를 검토하고 다운로드할 수 있습니다.
설정
새 C# 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 dotnet new
명령을 사용하여 RoomsQuickstart
라는 새 콘솔 앱을 만듭니다. 이 명령은 Program.cs라는 원본 파일 하나만 들어 있는 간단한 "Hello World" C# 프로젝트를 만듭니다.
dotnet new console -o RoomsQuickstart
디렉터리를 새로 만든 앱 폴더로 변경하고 dotnet build
명령을 사용하여 애플리케이션을 컴파일합니다.
cd RoomsQuickstart
dotnet build
패키지 설치
[NuGet][https://www.nuget.org/]을 사용하여 .NET용 Azure Communication Rooms 클라이언트 라이브러리 설치
dotnet add package Azure.Communication.Rooms
.NET 버전 1.1.0 이상용 Azure Communication Rooms 클라이언트 라이브러리를 사용해야 합니다.
앱 프레임워크 설정
Program.cs
파일에서 다음 코드를 추가하여 필요한 네임스페이스를 가져오고 기본 프로그램 구조체를 만듭니다.
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Rooms;
namespace RoomsQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Rooms Quickstart");
// Quickstart code goes here
}
}
}
회의실 클라이언트 초기화
새 rooms
를 만드는 데 사용되는 새 RoomsClient
개체를 만들고 해당 속성 및 수명 주기를 관리합니다. Communications Service
의 연결 문자열은 요청을 인증하는 데 사용됩니다. 연결 문자열에 대한 자세한 내용은 이 페이지를 참조하세요.
// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);
회의실 만들기
회의실 참가자 설정
회의실에 참가할 수 있는 사용자를 설정하려면 해당 사용자의 ID 목록이 있어야 합니다. 여기에서 사용자를 만들고 액세스 토큰을 발급하기 위한 지침을 따를 수 있습니다. 또는 요청 시 사용자를 만들려면 CommunicationIdentityClient
를 사용하여 사용자를 만들 수 있습니다. ACS 룸은 현재 CommunicationUserIdentifier 형식의 회의실 참가자만 지원합니다. 다른 유형의 CommunicationIdentity를 사용하면 런타임 오류가 발생합니다.
CommunicationIdentityClient
를 사용하려면 다음 패키지를 설치합니다.
dotnet add package Azure.Communication.Identity
또한 Program.cs
파일 맨 위에 있는 패키지의 네임스페이스를 가져옵니다.
using Azure.Communication.Identity;
이제 사용자를 초기화하고 만드는 데 CommunicationIdentityClient
를 사용할 수 있습니다.
// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();
그런 다음, 해당 사용자를 참조하여 회의실 참가자 목록을 만듭니다.
List<RoomParticipant> participants = new List<RoomParticipant>()
{
new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};
회의실 초기화
위의 코드 조각에 정의된 room
를 사용하여 새로운 participants
을 만듭니다.
// Create a room
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
CancellationToken cancellationToken = new CancellationTokenSource().Token;
CommunicationRoom createdRoom = await roomsClient.CreateRoomAsync(validFrom, validUntil, participants, cancellationToken);
// CreateRoom or CreateRoomAsync methods can take CreateRoomOptions type as an input parameter.
bool pstnDialOutEnabled = false;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
{
ValidFrom = validFrom,
ValidUntil = validUntil,
PstnDialOutEnabled = pstnDialOutEnabled,
Participants = participants
};
createdRoom = await roomsClient.CreateRoomAsync(createRoomOptions, cancellationToken);
string roomId = createdRoom.Id;
Console.WriteLine("\nCreated room with id: " + roomId);
rooms
는 서버 쪽 엔터티이므로 선택한 스토리지 미디어에서 roomId
를 추적하고 유지하는 것이 좋습니다. roomId
를 참조하여 room
개체의 속성을 보거나 업데이트할 수 있습니다.
회의실에 PSTN 전화 걸기 기능 사용
각 room
은 기본적으로 PSTN 전화 걸기를 사용하지 않도록 설정됩니다. pstnDialOutEnabled
매개 변수를 true로 정의하여 만들 때 room
에 대해 PSTN 전화 걸기를 사용하지 않도록 할 수 있습니다. 이 기능은 room
에 대해 pstnDialOutEnabled
매개 변수에 대한 업데이트 요청을 실행하여 수정할 수도 있습니다.
// Create a room
CancellationToken cancellationToken = new CancellationTokenSource().Token;
// CreateRoom or CreateRoomAsync methods to create a room with PSTN dial out capability
bool pstnDialOutEnabled = true;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
{
PstnDialOutEnabled = pstnDialOutEnabled,
};
CommunicationRoom createdRoom = await roomsClient.CreateRoomAsync(createRoomOptions, cancellationToken);
Console.WriteLine("\nCreated a room with PSTN dial out enabled: " + createdRoom.PstnDialOutEnabled);
// UpdateRoom or UpdateRoomAsync methods can take UpdateRoomOptions to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
{
PstnDialOutEnabled = pstnDialOutEnabled,
};
CommunicationRoom updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updateRoomOptions, cancellationToken);
Console.WriteLine("\nUpdated a room with PSTN dial out enabled: " + updatedRoom.PstnDialOutEnabled);
기존 회의실의 속성 가져오기
roomId
를 참조하여 기존 room
의 세부 정보를 검색합니다.
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
회의실의 수명 업데이트
ValidFrom
및 ValidUntil
매개 변수에 대한 업데이트 요청을 실행하여 room
의 수명을 수정할 수 있습니다. 회의실은 최대 6개월 동안 유효할 수 있습니다.
// Update room lifetime
DateTimeOffset updatedValidFrom = DateTimeOffset.UtcNow;
DateTimeOffset updatedValidUntil = DateTimeOffset.UtcNow.AddDays(10);
CommunicationRoom updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updatedValidFrom, updatedValidUntil, cancellationToken);
// UpdateRoom or UpdateRoomAsync methods can take UpdateRoomOptions type as an input parameter.
bool pstnDialOutEnabled = true;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
{
ValidFrom = validFrom,
ValidUntil = validUntil,
PstnDialOutEnabled = pstnDialOutEnabled,
};
updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updateRoomOptions, cancellationToken);
Console.WriteLine("\nUpdated room with validFrom: " + updatedRoom.ValidFrom + ", validUntil: " + updatedRoom.ValidUntil + " and pstnDialOutEnabled: " + updatedRoom.PstnDialOutEnabled);
모든 활성 회의실 나열
모든 활성 회의실을 검색하려면 클라이언트에 노출된 GetRoomsAsync
메서드를 사용합니다.
// List all active rooms
AsyncPageable<CommunicationRoom> allRooms = roomsClient.GetRoomsAsync();
await foreach (CommunicationRoom currentRoom in allRooms)
{
Console.WriteLine("\nFirst room id in all active rooms: " + currentRoom.Id);
break;
}
새 참가자 추가 또는 기존 참가자 업데이트
room
에 새 참가자를 추가하려면 클라이언트에 노출된 AddParticipantsAsync
메서드를 사용합니다.
List<RoomParticipant> addOrUpdateParticipants = new List<RoomParticipant>();
// Update participant2 from Attendee to Consumer
RoomParticipant participant2 = new RoomParticipant(user2) { Role = ParticipantRole.Consumer };
// Add participant3
CommunicationUserIdentifier user3 = identityClient.CreateUser();
RoomParticipant participant3 = new RoomParticipant(user3) { Role = ParticipantRole.Attendee };
addOrUpdateParticipants.Add(participant2);
addOrUpdateParticipants.Add(participant3);
Response addOrUpdateParticipantsResponse = await roomsClient.AddOrUpdateParticipantsAsync(roomId, addOrUpdateParticipants);
Console.WriteLine("\nAdded or updated participants to room");
room
에 추가된 참가자는 통화에 참가할 자격이 있습니다. 업데이트된 참가자는 통화에서 새 role
을 볼 수 있습니다.
참가자 목록 가져오기
roomId
를 참조하여 기존 room
의 참가자 목록을 검색합니다.
// Get list of participants in room
AsyncPageable<RoomParticipant> existingParticipants = roomsClient.GetParticipantsAsync(roomId);
Console.WriteLine("\nRetrieved participants from room: ");
await foreach (RoomParticipant participant in existingParticipants)
{
Console.WriteLine($"{participant.CommunicationIdentifier.ToString()}, {participant.Role.ToString()}");
}
참가자 제거
room
에서 참가자를 제거하고 액세스를 취소하려면 RemoveParticipantsAsync
메서드를 사용합니다.
// Remove user from room
List<CommunicationIdentifier> removeParticipants = new List<CommunicationIdentifier>();
removeParticipants.Add(user2);
Response removeParticipantsResponse = await roomsClient.RemoveParticipantsAsync(roomId, removeParticipants);
Console.WriteLine("\nRemoved participants from room");
회의실 삭제
기존 room
을 해체하려는 경우 명시적 삭제 요청을 실행할 수 있습니다. 모든 rooms
및 연결된 리소스는 유효 기간과 유예 기간이 끝날 때 자동으로 삭제됩니다.
// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);
코드 실행
코드를 실행하려면 Program.cs
파일이 있는 디렉터리에 있는지 확인합니다.
dotnet run
예상 출력은 완료된 각 작업을 설명합니다.
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-21T22:16:46.784Z and pstnDialOutEnabled: true
First room id in all active rooms: 99445276259151407
Added or updated participants to room
Retrieved participants from room:
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901, Presenter
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-f00d-aa4b-0cf9-9c3a0d00543e, Consumer
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-f00d-aaf2-0cf9-9c3a0d00543f, Attendee
Removed participants from room
Deleted room with id: 99445276259151407
참조 설명서
.NET SDK 참조 또는 REST API 참조에서 Azure Communication Services 회의실의 전체 기능 집합에 대해 알아봅니다.
이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room
은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms
에 대한 자세한 내용과 사용 사례를 다룹니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 및 연결 문자열 Communication Services 리소스 만들기
- JDK(Java Development Kit), 버전 8 이상.
- Apache Maven
샘플 코드
GitHub에서 이 빠른 시작에 대한 샘플 코드를 검토하고 다운로드할 수 있습니다.
설정
새 Java 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 mvn
명령을 사용하여 rooms-quickstart
라는 새 콘솔 앱을 만듭니다. 이 명령은 App.java라는 단일 원본 파일을 사용하여 간단한 "Hello World" Java 프로젝트를 만듭니다.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
패키지 포함
Java 버전 1.1.0 이상용 Azure Communication Rooms 클라이언트 라이브러리를 사용해야 합니다.
BOM 파일 포함
azure-sdk-bom
을 프로젝트에 포함하여 라이브러리의 GA(일반 공급) 버전에 종속됩니다. 다음 코드 조각에서 {bom_version_to_target} 자리 표시자를 버전 번호로 바꿉니다.
BOM에 대해 자세히 알아보려면 Azure SDK BOM 추가 정보를 참조하세요.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
그런 다음, 버전 태그 없이 종속성 섹션에 직접 종속성을 포함합니다.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
</dependency>
</dependencies>
직접 종속성 포함
BOM에 없는 특정 버전의 라이브러리에 대한 종속성을 사용하려면 다음과 같이 프로젝트에 직접 종속성을 추가합니다.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
앱 프레임워크 설정
/src/main/java/com/communication/quickstart 디렉터리로 이동하여 App.java
파일을 엽니다. 다음 코드를 추가합니다.
package com.communication.rooms.quickstart;
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.core.credential.*;
import com.azure.communication.rooms.*;
import java.io.IOException;
import java.time.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Rooms Quickstart");
// Quickstart code goes here
}
}
회의실 클라이언트 초기화
새 rooms
를 만드는 데 사용되는 새 RoomsClient
개체를 만들고 해당 속성 및 수명 주기를 관리합니다. Communications Service
의 연결 문자열은 요청을 인증하는 데 사용됩니다. 연결 문자열에 대한 자세한 내용은 이 페이지를 참조하세요.
// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();
회의실 만들기
회의실 참가자 설정
회의실에 참가할 수 있는 사용자를 설정하려면 해당 사용자의 ID 목록이 있어야 합니다. 여기에서 사용자를 만들고 액세스 토큰을 발급하기 위한 지침을 따를 수 있습니다. 또는 요청 시 사용자를 만들려면 CommunicationIdentityClient
를 사용하여 사용자를 만들 수 있습니다. ACS 룸은 현재 CommunicationUserIdentifier 형식의 회의실 참가자만 지원합니다. 다른 유형의 CommunicationIdentity를 사용하면 런타임 오류가 발생합니다.
CommunicationIdentityClient
를 사용하려면 다음 패키지를 추가합니다.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
</dependency>
App.java
파일 맨 위에 있는 패키지를 가져옵니다.
import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;
이제 사용자를 초기화하고 만드는 데 CommunicationIdentityClient
를 사용할 수 있습니다.
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();
그런 다음, 해당 사용자를 참조하여 회의실 참가자 목록을 만듭니다.
//The default participant role is ParticipantRole.Attendee
RoomParticipant participant_1 = new RoomParticipant(user1);
RoomParticipant participant_2 = new RoomParticipant(user2);
RoomParticipant participant_3 = new RoomParticipant(user3);
List<RoomParticipant> roomParticipants = new ArrayList<RoomParticipant>();
roomParticipants.add(participant_1);
roomParticipants.add(participant_2.setRole(ParticipantRole.CONSUMER));
회의실 초기화
위의 코드 조각에 정의된 room
를 사용하여 새로운 roomParticipants
을 만듭니다.
OffsetDateTime validFrom = OffsetDateTime.now();
OffsetDateTime validUntil = validFrom.plusDays(30);
boolean pstnDialOutEnabled = false;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
.setValidFrom(validFrom)
.setValidUntil(validUntil)
.setPstnDialOutEnabled(pstnDialOutEnabled)
.setParticipants(roomParticipants);
CommunicationRoom roomCreated = roomsClient.createRoom(createRoomOptions);
System.out.println("\nCreated a room with id: " + roomCreated.getRoomId());
rooms
는 서버 쪽 엔터티이므로 선택한 스토리지 미디어에서 roomId
를 추적하고 유지하는 것이 좋습니다. roomId
를 참조하여 room
개체의 속성을 보거나 업데이트할 수 있습니다.
회의실에 PSTN 전화 걸기 기능 사용
각 room
은 기본적으로 PSTN 전화 걸기를 사용하지 않도록 설정됩니다. pstnDialOutEnabled
매개 변수를 true로 정의하여 만들 때 room
에 대해 PSTN 전화 걸기를 사용하지 않도록 할 수 있습니다. 이 기능은 room
에 대해 pstnDialOutEnabled
매개 변수에 대한 업데이트 요청을 실행하여 수정할 수도 있습니다.
boolean pstnDialOutEnabled = true;
// Create a room with PSTN dial out capability
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
.setPstnDialOutEnabled(pstnDialOutEnabled)
CommunicationRoom roomCreated = roomsClient.createRoom(createRoomOptions);
System.out.println("\nCreated a room with PSTN dial out enabled: " + roomCreated.getPstnDialOutEnabled());
// Update a room to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
.setPstnDialOutEnabled(pstnDialOutEnabled);
CommunicationRoom roomUpdated = roomsClient.updateRoom(roomId, updateRoomOptions);
System.out.println("\nUpdated a room with PSTN dial out enabled: " + roomUpdated.getPstnDialOutEnabled());
기존 회의실의 속성 가져오기
roomId
를 참조하여 기존 room
의 세부 정보를 검색합니다.
// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);
System.out.println("Retrieved room with id: " + roomResult.getRoomId());
회의실의 수명 업데이트
ValidFrom
및 ValidUntil
매개 변수에 대한 업데이트 요청을 실행하여 room
의 수명을 수정할 수 있습니다. 회의실은 최대 6개월 동안 유효할 수 있습니다.
OffsetDateTime validFrom = OffsetDateTime.now().plusDays(1);
OffsetDateTime validUntil = validFrom.plusDays(1);
boolean pstnDialOutEnabled = true;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
.setValidFrom(validFrom)
.setValidUntil(validUntil)
.setPstnDialOutEnabled(pstnDialOutEnabled);
CommunicationRoom roomResult = roomsClient.updateRoom(roomId, updateRoomOptions);
System.out.println("Updated room with validFrom: " + roomResult.getValidFrom() + ", validUntil: " + roomResult.getValidUntil() + " and pstnDialOutEnabled: " + roomResult.getPstnDialOutEnabled());
참가자 추가 또는 업데이트
room
에 대해 참가자를 추가하거나 업데이트하려면 클라이언트에 노출된 addOrUpdateParticipants
메서드를 사용합니다.
List<RoomParticipant> participantsToAddAOrUpdate = new ArrayList<>();
// Adding new participant
participantsToAddAOrUpdate.add(participant_3.setRole(ParticipantRole.CONSUMER));
// Updating current participant
participantsToAddAOrUpdate.add(participant_2.setRole(ParticipantRole.PRESENTER));
AddOrUpdateParticipantsResult addOrUpdateParticipantsResult = roomsClient.addOrUpdateParticipants(roomId, participantsToAddAOrUpdate);
System.out.println("Participant(s) added/updated");
room
에 추가된 참가자는 통화에 참가할 자격이 있습니다.
참가자 목록 가져오기
roomId
를 참조하여 기존 room
의 참가자 목록을 검색합니다.
// Get list of participants
try {
PagedIterable<RoomParticipant> participants = roomsClient.listParticipants(roomId);
System.out.println("Participants:/n");
for (RoomParticipant participant : participants) {
System.out.println(participant.getCommunicationIdentifier().getRawId() + " (" + participant.getRole() + ")");
}
} catch (Exception ex) {
System.out.println(ex);
}
참가자 제거
room
에서 참가자를 제거하고 액세스를 취소하려면 removeParticipants
메서드를 사용합니다.
// Remove a participant from the room
List<CommunicationIdentifier> participantsToRemove = new ArrayList<>();
participantsToRemove.add(participant_3.getCommunicationIdentifier());
RemoveParticipantsResult removeParticipantsResult = roomsClient.removeParticipants(roomId,participantsToRemove);
System.out.println("Participant(s) removed");
모든 활성 회의실 나열
Azure Communication Services 리소스에서 모든 활성 rooms
를 검색합니다.
try {
Iterable<PagedResponse<CommunicationRoom>> roomPages = roomsClient.listRooms().iterableByPage();
System.out.println("Listing all the rooms IDs in the first two pages of the list of rooms:");
int count = 0;
for (PagedResponse<CommunicationRoom> page : roomPages) {
for (CommunicationRoom room : page.getElements()) {
System.out.println("\n" + room.getRoomId());
}
count++;
if (count >= 2) {
break;
}
}
} catch (Exception ex) {
System.out.println(ex);
}
회의실 삭제
기존 room
을 해체하려는 경우 명시적 삭제 요청을 실행할 수 있습니다. 모든 rooms
및 연결된 리소스는 유효 기간과 유예 기간이 끝날 때 자동으로 삭제됩니다.
// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);
코드 실행
코드를 실행하려면 pom.xml
파일이 포함된 디렉터리로 이동하여 프로그램을 컴파일합니다.
mvn compile
그런 다음, 패키지를 빌드합니다.
mvn package
앱을 실행합니다.
mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"
예상 출력은 완료된 각 작업을 설명합니다.
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-11T22:16:46.784Z and pstnDialOutEnabled: true
Participant(s) added/updated
Participants:
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901 (Attendee)
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e902 (Consumer)
Participant(s) removed
Listing all the rooms IDs in the first two pages of the list of rooms:
99445276259151407
99445276259151408
99445276259151409
Deleted the room with ID: 99445276259151407
참조 설명서
Java SDK 참조 또는 REST API 참조에서 Azure Communication Services 회의실의 전체 기능 집합에 대해 알아봅니다.
이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room
은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms
에 대한 자세한 내용과 사용 사례를 다룹니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 및 연결 문자열 Communication Services 리소스 만들기
- 운영 체제용 Python 3.7 이상
샘플 코드
GitHub에서 이 빠른 시작에 대한 샘플 코드를 검토하고 다운로드할 수 있습니다.
설정
새 Python 애플리케이션 만들기
터미널 또는 콘솔 창에서 애플리케이션에 대한 새 폴더를 만들고 해당 폴더로 이동합니다.
mkdir acs-rooms-quickstart
cd acs-rooms-quickstart
패키지 설치
Python 버전 1.1.0 이상용 Azure Communication 회의실 클라이언트 라이브러리를 사용해야 합니다.
콘솔 프롬프트에서 rooms.py 파일이 포함된 디렉터리로 이동한 후, 다음 명령을 실행합니다.
pip install azure-communication-rooms
앱 프레임워크 설정
rooms-quickstart.py
라는 새 파일을 만들고 기본 프로그램 구조를 추가합니다.
import os
from datetime import datetime, timedelta
from azure.core.exceptions import HttpResponseError
from azure.communication.rooms import (
RoomsClient,
RoomParticipant,
ParticipantRole
)
class RoomsQuickstart(object):
print("Azure Communication Services - Rooms Quickstart")
#room method implementations goes here
if __name__ == '__main__':
rooms = RoomsQuickstart()
회의실 클라이언트 초기화
새 rooms
를 만드는 데 사용되는 새 RoomsClient
개체를 만들고 해당 속성 및 수명 주기를 관리합니다. Communications Service
의 연결 문자열은 요청을 인증하는 데 사용됩니다. 연결 문자열에 대한 자세한 내용은 이 페이지를 참조하세요.
#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)
회의실 만들기
회의실 참가자 설정
회의실에 참가할 수 있는 사용자를 설정하려면 해당 사용자의 ID 목록이 있어야 합니다. 여기에서 사용자를 만들고 액세스 토큰을 발급하기 위한 지침을 따를 수 있습니다. 또는 요청 시 사용자를 만들려면 CommunicationIdentityClient
를 사용하여 사용자를 만들 수 있습니다. ACS 룸은 현재 CommunicationUserIdentifier 형식의 회의실 참가자만 지원합니다. 다른 유형의 CommunicationIdentity를 사용하면 런타임 오류가 발생합니다.
CommunicationIdentityClient
를 사용하려면 다음 패키지를 설치합니다.
pip install azure-communication-identity
또한 rooms-quickstart.py
파일 맨 위에 있는 패키지의 네임스페이스를 가져옵니다.
from azure.communication.identity import (
CommunicationIdentityClient
)
이제 사용자를 초기화하고 만드는 데 CommunicationIdentityClient
를 사용할 수 있습니다.
# Create identities for users who will join the room
identity_client = CommunicationIdentityClient.from_connection_string(connection_string)
user1 = identity_client.create_user()
user2 = identity_client.create_user()
user3 = identity_client.create_user()
그런 다음, 해당 사용자를 참조하여 회의실 참가자 목록을 만듭니다.
participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]
회의실 초기화
위의 코드 조각에 정의된 room
를 사용하여 새로운 participants
을 만듭니다.
# Create a room
valid_from = datetime.now()
valid_until = valid_from + timedelta(weeks=4)
pstn_dial_out_enabled = False
try:
create_room = rooms_client.create_room(
valid_from=valid_from,
valid_until=valid_until,
pstn_dial_out_enabled=pstn_dial_out_enabled,
participants=participants
)
print("\nCreated a room with id: " + create_room.id)
except HttpResponseError as ex:
print(ex)
rooms
는 서버 쪽 엔터티이므로 선택한 스토리지 미디어에서 room.id
를 추적하고 유지하는 것이 좋습니다. id
를 참조하여 room
개체의 속성을 보거나 업데이트할 수 있습니다.
회의실에 PSTN 전화 걸기 기능 사용
각 room
은 기본적으로 PSTN 전화 걸기를 사용하지 않도록 설정됩니다. pstn_dial_out_enabled
매개 변수를 true로 정의하여 만들 때 room
에 대해 PSTN 전화 걸기를 사용하지 않도록 할 수 있습니다. 이 기능은 room
에 대해 pstn_dial_out_enabled
매개 변수에 대한 업데이트 요청을 실행하여 수정할 수도 있습니다.
# Create a room with PSTN dial out capability
pstn_dial_out_enabled = True
create_room = rooms_client.create_room(pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nCreated room with pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
# Update a room to enable or disable PSTN dial out capability
pstn_dial_out_enabled= False
updated_room = rooms_client.update_room(room_id=room_id, pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nUpdated room with pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
기존 회의실의 속성 가져오기
id
를 참조하여 기존 room
의 세부 정보를 검색합니다.
# Retrieves the room with corresponding ID
room_id = create_room.id
try:
get_room = rooms_client.get_room(room_id=room_id)
print("\nRetrieved room with id: ", get_room.id)
except HttpResponseError as ex:
print(ex)
회의실의 수명 업데이트
valid_from
및 valid_until
매개 변수에 대한 업데이트 요청을 실행하여 room
의 수명을 수정할 수 있습니다. 회의실은 최대 6개월 동안 유효할 수 있습니다.
# Update the lifetime of a room
valid_from = datetime.now()
valid_until = valid_from + timedelta(weeks=7)
pstn_dial_out_enabled=True
try:
updated_room = rooms_client.update_room(room_id=room_id, valid_from=valid_from, valid_until=valid_until, pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nUpdated room with validFrom: " + updated_room.valid_from + ", validUntil: " + updated_room.valid_until + " and pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
except HttpResponseError as ex:
print(ex)
모든 활성 회의실 나열
리소스에서 만든 모든 활성 회의실을 검색하려면 클라이언트에 노출된 list_rooms
메서드를 사용합니다.
# List all active rooms
try:
rooms = rooms_client.list_rooms()
count = 0
for room in rooms:
if count == 1:
break
print("\nPrinting the first room in list"
"\nRoom Id: " + room.id +
"\nCreated date time: " + str(room.created_at) +
"\nValid From: " + str(room.valid_from) +
"\nValid Until: " + str(room.valid_until) +
"\nPSTN Dial-Out Enabled: " + str(room.pstn_dial_out_enabled))
count += 1
except HttpResponseError as ex:
print(ex)
참가자 추가 또는 업데이트
add_or_update_participants
에서 새 참가자를 추가하거나 기존 참가자를 업데이트하려면 클라이언트에 노출된 room
메서드를 사용합니다.
# Add or update participants in a room
try:
# Update existing user2 from consumer to attendee
participants = []
participants.append(RoomParticipant(communication_identifier=user2, role=ParticipantRole.ATTENDEE))
# Add new participant user3
participants.append(RoomParticipant(communication_identifier=user3, role=ParticipantRole.CONSUMER))
rooms_client.add_or_update_participants(room_id=room_id, participants=participants)
print("\nAdd or update participants in room")
except HttpResponseError as ex:
print('Error in adding or updating participants to room.', ex)
room
에 추가된 참가자는 통화에 참가할 자격이 있습니다.
회의실에 참가자 나열
room_id
를 참조하여 기존 room
의 참가자 목록을 검색합니다.
# Get list of participants in room
try:
participants = rooms_client.list_participants(room_id)
print('\nParticipants in Room Id :', room_id)
for p in participants:
print(p.communication_identifier.properties['id'], p.role)
except HttpResponseError as ex:
print(ex)
참가자 제거
room
에서 참가자를 제거하고 액세스를 취소하려면 remove_participants
메서드를 사용합니다.
# Remove Participants
try:
participants = [user2]
rooms_client.remove_participants(room_id=room_id, participants=participants)
print("\nRemoved participants from room")
except HttpResponseError as ex:
print(ex)
회의실 삭제
기존 room
을 해체하려는 경우 명시적 삭제 요청을 실행할 수 있습니다. 모든 rooms
및 연결된 리소스는 유효 기간과 유예 기간이 끝날 때 자동으로 삭제됩니다.
# Delete Room
rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)
코드 실행
코드를 실행하려면 rooms-quickstart.py
파일이 있는 디렉터리에 있는지 확인합니다.
python rooms-quickstart.py
예상 출력은 완료된 각 작업을 설명합니다.
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-03T00:00:00+00:00, validUntil: 2023-06-23T00:00:00+00:00 and pstn_dial_out_enabled: True
Printing the first room in list
Room Id: 99445276259151407
Created date time: 2023-05-03T00:00:00+00:00
Valid From: 2023-05-03T00:00:00+00:00
Valid Until: 2023-06-23T00:00:00+00:00
PSTN Dial-Out Enabled: True
Add or update participants in room
Participants in Room Id : 99445276259151407
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-6042-a166-563a0d0051c1 Presenter
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-6136-a166-563a0d0051c2 Consumer
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-61fd-a166-563a0d0051c3 Attendee
Removed participants from room
Deleted room with id: 99445276259151407
참조 설명서
Python SDK 참조 또는 REST API 참조에서 Azure Communication Services 회의실의 전체 기능 집합에 대해 알아봅니다.
이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room
은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms
에 대한 자세한 내용과 사용 사례를 다룹니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 및 연결 문자열 Communication Services 리소스 만들기
- 최신 버전의 Node.js 활성 LTS 및 유지 관리 LTS 버전입니다.
샘플 코드
GitHub에서 이 빠른 시작에 대한 샘플 코드를 검토하고 다운로드할 수 있습니다.
설정
새 웹 애플리케이션 만들기
터미널 또는 콘솔 창에서 애플리케이션에 대한 새 폴더를 만들고 해당 폴더로 이동합니다.
mkdir acs-rooms-quickstart && cd acs-rooms-quickstart
npm init
를 실행하여 기본 설정으로 package.json 파일을 만듭니다.
npm init -y
이 빠른 시작의 코드가 추가될 새로운 파일 index.js
을 만듭니다.
패키지 설치
JavaScript 버전 1.1.0 이상용 Azure Communication 회의실 클라이언트 라이브러리를 사용해야 합니다.
npm install
명령을 사용하여 아래 JavaScript용 Communication Services SDK를 설치합니다.
npm install @azure/communication-rooms --save
앱 프레임워크 설정
index.js
파일에서 다음 코드를 추가합니다. main
함수에 빠른 시작에 대한 코드를 추가합니다.
const { RoomsClient } = require('@azure/communication-rooms');
const main = async () => {
console.log("Azure Communication Services - Rooms Quickstart")
// Quickstart code goes here
};
main().catch((error) => {
console.log("Encountered an error");
console.log(error);
})
회의실 클라이언트 초기화
새 rooms
를 만드는 데 사용되는 새 RoomsClient
개체를 만들고 해당 속성 및 수명 주기를 관리합니다. Communications Service
의 연결 문자열은 요청을 인증하는 데 사용됩니다. 연결 문자열에 대한 자세한 내용은 이 페이지를 참조하세요.
main
함수 내에서 index.js
에 다음 코드를 추가합니다.
const connectionString =
process.env["COMMUNICATION_CONNECTION_STRING"] ||
"endpoint=https://<resource-name>.communication.azure.com/;<access-key>";
// create RoomsClient
const roomsClient = new RoomsClient(connectionString);
회의실 만들기
회의실 참가자 설정
회의실에 참가할 수 있는 사용자를 설정하려면 해당 사용자의 ID 목록이 있어야 합니다. 여기에서 사용자를 만들고 액세스 토큰을 발급하기 위한 지침을 따를 수 있습니다. 또는 요청 시 사용자를 만들려면 CommunicationIdentityClient
를 사용하여 사용자를 만들 수 있습니다. ACS 룸은 현재 CommunicationUserIdentifier 형식의 회의실 참가자만 지원합니다. 다른 유형의 CommunicationIdentity를 사용하면 런타임 오류가 발생합니다.
CommunicationIdentityClient를 사용하려면 다음 npm 패키지를 설치합니다.
npm install @azure/communication-identity --save
또한 index.js
파일 맨 위에 다음 필수 패키지를 추가합니다.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
이제 사용자를 초기화하고 만드는 데 CommunicationIdentityClient
를 사용할 수 있습니다.
// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);
그런 다음, 해당 사용자를 참조하여 회의실 참가자 목록을 만듭니다.
const participants = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
회의실 초기화
위의 코드 조각에 정의된 room
를 사용하여 새로운 participants
을 만듭니다.
// Create a room
var validFrom = new Date(Date.now());
var validUntil = new Date(validFrom.getTime() + 60 * 60 * 1000);
var pstnDialOutEnabled = false;
const createRoomOptions = {
validFrom,
validUntil,
pstnDialOutEnabled,
participants
};
const createRoom = await roomsClient.createRoom(createRoomOptions);
const roomId = createRoom.id;
console.log("\nCreated a room with id: ", roomId);
rooms
는 서버 쪽 엔터티이므로 선택한 스토리지 미디어에서 roomId
를 추적하고 유지하는 것이 좋습니다. roomId
를 참조하여 room
개체의 속성을 보거나 업데이트할 수 있습니다.
회의실에 PSTN 전화 걸기 기능 사용
각 room
은 기본적으로 PSTN 전화 걸기를 사용하지 않도록 설정됩니다. pstnDialOutEnabled
매개 변수를 true로 정의하여 만들 때 room
에 대해 PSTN 전화 걸기를 사용하지 않도록 할 수 있습니다. 이 기능은 room
에 대해 pstnDialOutEnabled
매개 변수에 대한 업데이트 요청을 실행하여 수정할 수도 있습니다.
// Create a room with PSTN dial out capability
var pstnDialOutEnabled = true;
const createRoomOptions = {
pstnDialOutEnabled,
};
const createRoom = await roomsClient.createRoom(createRoomOptions);
console.log("\nCreated a room with PSTN dial out enabled: ", createRoom.pstnDialOutEnabled);
// Update a room to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
const updateRoomOptions = {
pstnDialOutEnabled,
};
const updateRoom = await roomsClient.updateRoom(roomId, updateRoomOptions);
console.log("\nUpdated a room with PSTN dial out enabled: ", updateRoom.pstnDialOutEnabled);
기존 회의실의 속성 가져오기
roomId
를 참조하여 기존 room
의 세부 정보를 검색합니다.
// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);
회의실의 수명 업데이트
validFrom
및 validUntil
매개 변수에 대한 업데이트 요청을 실행하여 room
의 수명을 수정할 수 있습니다. 회의실은 최대 6개월 동안 유효할 수 있습니다.
// Update room lifetime
validFrom.setTime(validUntil.getTime());
validUntil.setTime(validFrom.getTime() + 5 * 60 * 1000);
pstnDialOutEnabled = true;
// request payload to update a room
const updateRoomOptions = {
validFrom,
validUntil,
pstnDialOutEnabled,
};
const updateRoom = await roomsClient.updateRoom(roomId, updateRoomOptions);
console.log("\nUpdated room with validFrom: ", updateRoom.validFrom, ", validUntil: ", updateRoom.validUntil, " and pstnDialOutEnabled: ", updateRoom.pstnDialOutEnabled);
회의실 목록 가져오기
listRooms
메서드를 사용하여 회의실 목록을 검색합니다.
const roomsList = await roomsClient.listRooms();
console.log("\nRetrieved list of rooms; printing first room:");
for await (const currentRoom of roomsList) {
// access room data here
console.log(currentRoom);
break;
}
참가자 추가 또는 업데이트
room
에 새 참가자를 추가하려면 클라이언트에 노출된 addOrUpdateParticipants
메서드를 사용합니다. 이 메서드는 참가자가 이미 회의실에 있는 참가자도 업데이트합니다.
// Add and update participants
// request payload to add and update participants
const addOUpdateParticipantsList = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
// add user2 to the room and update user1 to Presenter role
await roomsClient.addOrUpdateParticipants(roomId, addOUpdateParticipantsList);
console.log("\nAdded and updated participants in the room");
room
에 추가된 참가자는 통화에 참가할 자격이 있습니다.
참가자 목록 가져오기
roomId
를 참조하여 기존 room
의 참가자 목록을 검색합니다.
const participantsList = await roomsClient.listParticipants(roomId);
console.log("\nRetrieved participants for room:");
for await (const participant of participantsList) {
// access participant data here
console.log(participant);
}
참가자 제거
room
에서 참가자를 제거하고 액세스를 취소하려면 removeParticipants
메서드를 사용합니다.
// Remove both users from the room
const removeParticipantsList = [user1.user, user2.user]
// remove both users from the room with the request payload
await roomsClient.removeParticipants(roomId, removeParticipantsList);
console.log("\nRemoved participants from room");
회의실 삭제
기존 room
을 해체하려는 경우 명시적 삭제 요청을 실행할 수 있습니다. 모든 rooms
및 연결된 리소스는 유효 기간과 유예 기간이 끝날 때 자동으로 삭제됩니다.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
코드 실행
코드를 실행하려면 index.js
파일이 있는 디렉터리에 있는지 확인합니다.
node index.js
예상 출력은 완료된 각 작업을 설명합니다.
Azure Communication Services - Rooms QuickStart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-11T22:16:46.784Z and pstnDialOutEnabled: true
Retrieved list of rooms; printing first room:
{
id: "99445276259151407",
createdAt: "2023-05-11T22:11:50.784Z",
validFrom: "2023-05-11T22:11:46.784Z",
validUntil: "2023-05-11T22:16:46.784Z"
}
Added and updated participants in the room
Retrieved participants for room:
{
id: {
kind: 'communicationUser',
communicationUserId: '8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901'
},
role: 'Presenter'
}
{
id: {
kind: 'communicationUser',
communicationUserId: '8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7ccc-35f3-343a0d00e902'
},
role: 'Consumer'
}
Removed participants from room
Deleted room with id: 99445276259151407
참조 설명서
SDK 참조 또는 REST API 참조에서 Azure Communication Services 회의실의 전체 기능 집합에 대해 알아봅니다.
다음 단계
회의실을 만들고 구성한 후 회의실 통화에 참여하는 방법을 알아볼 수 있습니다.
이 섹션에서는 다음을 수행하는 방법을 학습했습니다.
- 새 회의실 만들기
- 회의실의 속성 가져오기
- 회의실의 속성 업데이트
- 회의실 삭제
다음을 수행할 수도 있습니다.
- 회의실 개념에 대해 알아보기
- 음성 및 화상 통화 개념에 대해 알아보기
- Azure Communication Services 샘플 검토