다음을 통해 공유


빠른 시작: 회의실 리소스 만들기 및 관리

이 빠른 시작은 Azure Communication Services 회의실을 시작하는 데 도움이 됩니다. room은 미리 결정된 기간 동안 공동 작업할 알려진 고정된 참가자 집합을 위한 서버 관리형 통신 공간입니다. 회의실 개념 설명서에서는 rooms에 대한 자세한 내용과 사용 사례를 다룹니다.

개체 모델

다음 표에는 room 개체의 주요 속성이 나열되어 있습니다.

속성 설명
roomId 고유 room 식별자.
validFrom room을 사용할 수 있는 가장 빠른 시간입니다.
validUntil room을 사용할 수 있는 가장 늦은 시간입니다.
pstnDialOutEnabled 회의실에서 PSTN 번호로 전화 걸기를 사용하거나 사용하지 않도록 설정합니다.
participants room의 참가자 목록입니다. CommunicationUserIdentifier로 지정됩니다.
roleType 회의실 참가자의 역할입니다. Presenter, Attendee 또는 Consumer일 수 있습니다.

필수 조건

설정

확장 추가

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에 대한 자세한 내용과 사용 사례를 다룹니다.

필수 조건

샘플 코드

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);

회의실의 수명 업데이트

ValidFromValidUntil 매개 변수에 대한 업데이트 요청을 실행하여 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에 대한 자세한 내용과 사용 사례를 다룹니다.

필수 조건

샘플 코드

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());

회의실의 수명 업데이트

ValidFromValidUntil 매개 변수에 대한 업데이트 요청을 실행하여 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에 대한 자세한 내용과 사용 사례를 다룹니다.

필수 조건

샘플 코드

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_fromvalid_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에 대한 자세한 내용과 사용 사례를 다룹니다.

필수 조건

샘플 코드

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);

회의실의 수명 업데이트

validFromvalidUntil 매개 변수에 대한 업데이트 요청을 실행하여 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 회의실의 전체 기능 집합에 대해 알아봅니다.

다음 단계

회의실을 만들고 구성한 후 회의실 통화에 참여하는 방법을 알아볼 수 있습니다.

이 섹션에서는 다음을 수행하는 방법을 학습했습니다.

  • 새 회의실 만들기
  • 회의실의 속성 가져오기
  • 회의실의 속성 업데이트
  • 회의실 삭제

다음을 수행할 수도 있습니다.