Udostępnij za pośrednictwem


Szybki start: tworzenie zasobu pokoju i zarządzanie nim

Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms.

Model obiektów

W poniższej tabeli wymieniono główne właściwości room obiektów:

Nazwa/nazwisko opis
roomId Unikatowy room identyfikator.
validFrom Najwcześniejszy czas, którego room można użyć.
validUntil Ostatni raz room można użyć.
pstnDialOutEnabled Włącz lub wyłącz wybieranie numeru PSTN w pokoju.
participants Lista uczestników do elementu room. Określony jako CommunicationUserIdentifier.
roleType Rola uczestnika pokoju. Może to być wartość Presenter, Attendeelub Consumer.

Wymagania wstępne

Konfigurowanie

Dodawanie rozszerzenia

Dodaj rozszerzenie Azure Communication Services dla interfejsu wiersza polecenia platformy az extension Azure przy użyciu polecenia .

az extension add --name communication

Logowanie do interfejsu wiersza polecenia platformy Azure

Musisz zalogować się do interfejsu wiersza polecenia platformy Azure. Możesz się zalogować, uruchamiając az login polecenie z poziomu terminalu i podając poświadczenia.

Przechowywanie parametry połączenia w zmiennej środowiskowej

Zmienną AZURE_COMMUNICATION_CONNECTION_STRING środowiskową można skonfigurować tak, aby korzystała z operacji kluczy interfejsu wiersza polecenia platformy Azure bez konieczności przekazywania --connection_string w parametry połączenia. Aby skonfigurować zmienną środowiskową, otwórz okno konsoli i wybierz system operacyjny z poniższych kart. Zastąp <connectionString> element rzeczywistym parametry połączenia.

setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"

Po dodaniu zmiennej środowiskowej może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które muszą odczytać zmienną środowiskową, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Operacje

Tworzenie pokoju

Użyj polecenia , rooms create aby utworzyć pomieszczenie.

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>"
  • Opcjonalnie określ <participantId> typ uczestnika jako uczestników prezenterów, uczestników-konsumentów lub uczestników. Jeśli nie określisz wartości, wartość domyślna będzie pusta.
  • Zastąp <connection-string> element parametry połączenia usług Azure Communication Services.
  • Opcjonalnie określ <valid-from> znacznik czasu otwarcia pomieszczenia do łączenia w formacie ISO8601, np. 2022-07-14T10:21.
  • Opcjonalnie określ <valid-until> znacznik czasu, gdy nie można już dołączyć pomieszczenia w formacie ISO8601, np. 2022-07-14T10:21.
  • Użyj <pstn-dial-out-enabled> opcji opcjonalnie, ustawiając tę flagę ("Prawda" lub "Fałsz"), aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju. Domyślnie ta flaga jest ustawiona na "Fałsz" podczas tworzenia pokoju.

Jeśli parametry połączenia zostały zapisane w zmiennych środowiskowych zgodnie z powyższym opisem, nie trzeba ich przekazywać do polecenia .

az communication rooms create 

Włączanie możliwości wybierania numeru PSTN dla pokoju

Podczas wybierania numeru PSTN można włączyć rooms create , definiując --pstn-dial-out-enabled parametr jako "True". Tę funkcję można również zmodyfikować podczas rooms update określania parametru --pstn-dial-out-enabled .

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>"
  • Aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju, ustaw <pstn-dial-out-enabled> flagę ("Prawda" lub "Fałsz").

Pobierz pokoje

Polecenie rooms get zwraca atrybuty istniejącego pokoju.

az communication rooms get --room "<roomId>" 
  • Zastąp <roomId> element identyfikatorem pokoju.

Aktualizowanie przedziału czasu pokoju

Znacznik czasu pokoju można zaktualizować. Przed wywołaniem room update polecenia upewnij się, że masz nowe pomieszczenie z prawidłowym przedziałem czasu.

az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
  • Zastąp <valid-from> znacznikiem czasu w formacie ISO8601, np. 2022-07-14T10:21, aby określić, kiedy pokój jest otwarty do dołączenia. Należy używać razem z --valid-until.
  • Zastąp <valid-until> znacznikiem czasu w formacie ISO8601, np. 2022-07-14T10:21, aby określić, kiedy pomieszczenie nie może być już przyłączone. Należy używać razem z --valid-from.
  • Zamień <pstn-dial-out-enabled> tę flagę ("Prawda" lub "Fałsz"), aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju. Należy używać razem z --pstn-dial-out-enabled.
  • Zastąp <roomId> element identyfikatorem pokoju.

Wyświetl listę wszystkich aktywnych pomieszczeń

Polecenie rooms list zwraca wszystkie aktywne pokoje należące do zasobu usług Azure Communication Services.

az communication rooms list

Dodawanie nowych uczestników lub aktualizowanie istniejących uczestników

Podczas tworzenia pokoju możesz zaktualizować pokój, dodając nowego uczestnika lub aktualizując istniejącego uczestnika. Przed wywołaniem room participant add-or-update polecenia upewnij się, że masz nowego użytkownika.

Użyj polecenia , identity user create aby utworzyć nowego uczestnika zidentyfikowanego przez participantId.

az communication identity user create

Dodaj użytkownika jako uczestnika do pokoju.

az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
  • Zastąp <participantId> element identyfikatorem uczestnika. <participantId> Jeśli obiekt nie istnieje w pokoju, uczestnik zostanie dodany do pokoju jako rola uczestnika. W przeciwnym razie rola uczestnika zostanie zaktualizowana do roli uczestnika.
  • Zastąp <roomId> element identyfikatorem pokoju.

Pobieranie listy uczestników w pokoju

az communication rooms participant get --room "<roomId>"
  • Zastąp <roomId> element identyfikatorem pokoju.

Usuwanie uczestnika z pokoju

Uczestnik pokoju można usunąć z pokoju za pomocą polecenia rooms participant -remove.

az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
  • Zastąp <roomId> element identyfikatorem pokoju.
  • Zastąp ciąg <participant1>, <participant2><participant3> identyfikatorami użytkownika uzyskanymi wcześniej przy użyciu uruchomionego identity user createpolecenia.

Usuwanie pokoju

Podobnie jak w przypadku tworzenia pokoju, można również usunąć pokój.

Użyj room delete polecenia , aby usunąć istniejący pokój.

az communication rooms delete --room "<roomId>"
  • Zastąp <roomId> element identyfikatorem pokoju.

Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
  • Najnowsza wersja biblioteki klienta .NET Core dla systemu operacyjnego.

Przykładowy kod

Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.

Konfigurowanie

Tworzenie nowej aplikacji w języku C#

W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj dotnet new polecenia , aby utworzyć nową aplikację konsolową o nazwie RoomsQuickstart. To polecenie tworzy prosty projekt języka C# "Hello World" z jednym plikiem źródłowym: Program.cs.

dotnet new console -o RoomsQuickstart

Zmień katalog na nowo utworzony folder aplikacji i użyj dotnet build polecenia , aby skompilować aplikację.

cd RoomsQuickstart
dotnet build

Instalowanie pakietu

Zainstaluj bibliotekę klienta usługi Azure Communication Rooms dla platformy .NET za pomocą narzędzia [NuGet][https://www.nuget.org/]:

dotnet add package Azure.Communication.Rooms

Należy użyć biblioteki klienta usługi Azure Communication Rooms dla platformy .NET w wersji 1.1.0 lub nowszej.

Konfigurowanie struktury aplikacji

Program.cs W pliku dodaj następujący kod, aby zaimportować wymagane przestrzenie nazw i utworzyć podstawową strukturę programu.


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
        }
    }
}

Inicjowanie klienta pokoju

Utwórz nowy RoomsClient obiekt, który będzie używany do tworzenia nowych rooms właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.


// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);

Tworzenie pokoju

Konfigurowanie uczestników pokoju

Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.

Aby użyć programu CommunicationIdentityClient, zainstaluj następujący pakiet:

dotnet add package Azure.Communication.Identity

Ponadto zaimportuj przestrzeń nazw pakietu w górnej części Program.cs pliku:

using Azure.Communication.Identity;

Teraz można zainicjować element CommunicationIdentityClient i użyć go do utworzenia użytkowników:

// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();

Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:

List<RoomParticipant> participants = new List<RoomParticipant>()
{
    new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
    new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};

Inicjowanie pokoju

Utwórz nowy room element przy użyciu zdefiniowanego participants we fragmencie kodu powyżej:

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

Ponieważ rooms są jednostkami po stronie serwera, warto śledzić i utrwalać roomId wybrany nośnik magazynu. Możesz odwołać roomId się do elementu , aby wyświetlić lub zaktualizować właściwości room obiektu.

Włączanie możliwości wybierania numeru PSTN dla pokoju

Każdy room z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room elementu podczas tworzenia, definiując pstnDialOutEnabled parametr jako true. Tę funkcję można również zmodyfikować przez room wysłanie żądania aktualizacji dla parametru 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);

Pobieranie właściwości istniejącego pokoju

Pobierz szczegóły istniejącego room obiektu, odwołując się do elementu roomId:


// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);

Aktualizowanie okresu istnienia pokoju

Okres istnienia elementu room można zmodyfikować, wydając żądanie aktualizacji parametrów ValidFrom i ValidUntil . Pokój może być ważny przez maksymalnie sześć miesięcy.


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

Wyświetl listę wszystkich aktywnych pomieszczeń

Aby pobrać wszystkie aktywne pokoje, użyj GetRoomsAsync metody uwidocznionej na kliencie.


// 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;
}

Dodawanie nowych uczestników lub aktualizowanie istniejących uczestników

Aby dodać nowych uczestników do roomklasy , użyj AddParticipantsAsync metody uwidocznionej na kliencie.


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

Uczestnicy, którzy zostali dodani do osoby uprawnionej room do dołączenia do połączeń. Uczestnicy, którzy zostali zaktualizowani, zobaczą swój nowy role w wywołaniu.

Pobieranie listy uczestników

Pobierz listę uczestników dla istniejącej, room odwołując się do elementu roomId:


// 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()}");
}

Usuwanie uczestników

Aby usunąć uczestnika z obiektu room i odwołać dostęp, użyj RemoveParticipantsAsync metody .


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

Usuwanie pokoju

Jeśli chcesz rozwiązać istniejący roomproblem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.


// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);

Uruchamianie kodu

Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym Program.cs znajduje się plik.


dotnet run

Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:


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

Dokumentacja referencyjna

Przeczytaj o pełnym zestawie możliwości pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK platformy .NET lub dokumentacji interfejsu API REST.

Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms.

Wymagania wstępne

Przykładowy kod

Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.

Konfigurowanie

Tworzenie nowej aplikacji Java

W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj mvn polecenia , aby utworzyć nową aplikację konsolową o nazwie rooms-quickstart. To polecenie tworzy prosty projekt Java "Hello World" z jednym plikiem źródłowym: App.java.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Uwzględnij pakiet

Musisz użyć biblioteki klienta usługi Azure Communication Rooms dla języka Java w wersji 1.1.0 lub nowszej.

Uwzględnij plik BOM

Dołącz element azure-sdk-bom do projektu, aby mieć zależność od wersji ogólnie dostępnej biblioteki. W poniższym fragmencie kodu zastąp symbol zastępczy {bom_version_to_target} numerem wersji. Aby dowiedzieć się więcej na temat modelu BOM, zobacz plik readme zestawu 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>

a następnie uwzględnij bezpośrednią zależność w sekcji zależności bez tagu wersji.

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-rooms</artifactId>
  </dependency>
</dependencies>

Uwzględnij zależność bezpośrednią

Jeśli chcesz podjąć zależność od określonej wersji biblioteki, która nie znajduje się w modelu BOM, dodaj bezpośrednią zależność do projektu w następujący sposób.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-communication-rooms</artifactId>
  <version>1.0.0-beta.1</version>
</dependency>

Konfigurowanie platformy aplikacji

Przejdź do katalogu /src/main/java/com/communication/quickstart i otwórz App.java plik. Dodaj następujący kod:


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
    }
}

Inicjowanie klienta pokoju

Utwórz nowy RoomsClient obiekt, który będzie używany do tworzenia nowych rooms właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.


// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();

Tworzenie pokoju

Konfigurowanie uczestników pokoju

Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.

Aby użyć polecenia CommunicationIdentityClient, dodaj następujący pakiet:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
</dependency>

Zaimportuj pakiet na wierzchu pliku App.java :

import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;

Teraz można zainicjować element CommunicationIdentityClient i użyć go do utworzenia użytkowników:

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .connectionString(connectionString)
    .buildClient();

CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();

Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:

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

Inicjowanie pokoju

Utwórz nowy room element przy użyciu zdefiniowanego roomParticipants we fragmencie kodu powyżej:

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

Ponieważ rooms są jednostkami po stronie serwera, warto śledzić i utrwalać roomId wybrany nośnik magazynu. Możesz odwołać roomId się do elementu , aby wyświetlić lub zaktualizować właściwości room obiektu.

Włączanie możliwości wybierania numeru PSTN dla pokoju

Każdy room z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room elementu podczas tworzenia, definiując pstnDialOutEnabled parametr jako true. Tę funkcję można również zmodyfikować przez room wysłanie żądania aktualizacji dla parametru 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());

Pobieranie właściwości istniejącego pokoju

Pobierz szczegóły istniejącego room obiektu, odwołując się do elementu roomId:


// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);

System.out.println("Retrieved room with id: " + roomResult.getRoomId());

Aktualizowanie okresu istnienia pokoju

Okres istnienia elementu room można zmodyfikować, wydając żądanie aktualizacji parametrów ValidFrom i ValidUntil . Pokój może być ważny przez maksymalnie sześć miesięcy.


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

Dodawanie lub aktualizowanie uczestników

Aby dodać lub zaktualizować uczestników do roomklasy , użyj addOrUpdateParticipants metody uwidocznionej na kliencie.


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

Uczestnicy, którzy zostali dodani do osoby uprawnionej room do dołączenia do połączeń.

Pobieranie listy uczestników

Pobierz listę uczestników dla istniejącej, room odwołując się do elementu roomId:


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

Usuwanie uczestników

Aby usunąć uczestnika z obiektu room i odwołać dostęp, użyj removeParticipants metody .


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

Wyświetl listę wszystkich aktywnych pomieszczeń

Pobierz wszystkie aktywne rooms w ramach zasobu usług Azure Communication Services.

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

Usuwanie pokoju

Jeśli chcesz rozwiązać istniejący roomproblem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.


// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);

Uruchamianie kodu

Aby uruchomić kod, przejdź do katalogu zawierającego pom.xml plik i skompiluj program.


mvn compile

Następnie skompiluj pakiet:


mvn package

Wykonaj aplikację.

mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"

Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:


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

Dokumentacja referencyjna

Zapoznaj się z pełnym zestawem funkcji pomieszczeń usług Azure Communication Services z dokumentacji zestawu JAVA SDK lub dokumentacji interfejsu API REST.

Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms.

Wymagania wstępne

Przykładowy kod

Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.

Konfigurowanie

Tworzenie nowej aplikacji w języku Python

W oknie terminalu lub konsoli utwórz nowy folder dla aplikacji i przejdź do niego.

mkdir acs-rooms-quickstart
cd acs-rooms-quickstart

Instalowanie pakietu

Należy użyć biblioteki klienta usługi Azure Communication Rooms dla języka Python w wersji 1.1.0 lub nowszej.

W wierszu polecenia konsoli przejdź do katalogu zawierającego plik rooms.py, a następnie wykonaj następujące polecenie:

pip install azure-communication-rooms

Konfigurowanie struktury aplikacji

Utwórz nowy plik o nazwie rooms-quickstart.py i dodaj podstawową strukturę programu.

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

Inicjowanie klienta pokoju

Utwórz nowy RoomsClient obiekt, który będzie używany do tworzenia nowych rooms właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.

#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)

Tworzenie pokoju

Konfigurowanie uczestników pokoju

Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.

Aby użyć programu CommunicationIdentityClient, zainstaluj następujący pakiet:

pip install azure-communication-identity

Ponadto zaimportuj przestrzeń nazw pakietu w górnej części rooms-quickstart.py pliku:

from azure.communication.identity import (
    CommunicationIdentityClient
)

Teraz można zainicjować element CommunicationIdentityClient i użyć go do utworzenia użytkowników:

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

Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:

participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]

Inicjowanie pokoju

Utwórz nowy room element przy użyciu zdefiniowanego participants we fragmencie kodu powyżej:

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

Ponieważ rooms są jednostkami po stronie serwera, warto śledzić i utrwalać room.id wybrany nośnik magazynu. Możesz odwołać id się do elementu , aby wyświetlić lub zaktualizować właściwości room obiektu.

Włączanie możliwości wybierania numeru PSTN dla pokoju

Każdy room z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room elementu podczas tworzenia, definiując pstn_dial_out_enabled parametr jako true. Tę funkcję można również zmodyfikować przez room wysłanie żądania aktualizacji dla parametru 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)

Pobieranie właściwości istniejącego pokoju

Pobierz szczegóły istniejącego room obiektu, odwołując się do elementu id:

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

Aktualizowanie okresu istnienia pokoju

Okres istnienia elementu room można zmodyfikować, wydając żądanie aktualizacji parametrów valid_from i valid_until . Pokój może być ważny przez maksymalnie sześć miesięcy.

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

Wyświetl listę wszystkich aktywnych pomieszczeń

Aby pobrać wszystkie aktywne pokoje utworzone w ramach zasobu, użyj list_rooms metody uwidocznionej na kliencie.

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

Dodawanie lub aktualizowanie uczestników

Aby dodać nowych uczestników lub zaktualizować istniejących uczestników w obiekcie room, użyj add_or_update_participants metody uwidocznionej na kliencie.

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

Uczestnicy, którzy zostali dodani do osoby uprawnionej room do dołączenia do połączeń.

Wyświetlanie listy uczestników w pokoju

Pobierz listę uczestników dla istniejącej, room odwołując się do elementu room_id:

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

Usuwanie uczestników

Aby usunąć uczestnika z obiektu room i odwołać dostęp, użyj remove_participants metody .

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

Usuwanie pokoju

Jeśli chcesz rozwiązać istniejący roomproblem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.

# Delete Room

rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)

Uruchamianie kodu

Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym rooms-quickstart.py znajduje się plik.


python rooms-quickstart.py

Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:


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

Dokumentacja referencyjna

Przeczytaj o pełnym zestawie możliwości pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK języka Python lub dokumentacji interfejsu API REST.

Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms.

Wymagania wstępne

Przykładowy kod

Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.

Konfigurowanie

Tworzenie nowej aplikacji internetowej

W oknie terminalu lub konsoli utwórz nowy folder dla aplikacji i przejdź do niego.

mkdir acs-rooms-quickstart && cd acs-rooms-quickstart

Uruchom polecenie npm init , aby utworzyć plik package.json z ustawieniami domyślnymi.

npm init -y

Utwórz nowy plik index.js , w którym zostanie dodany kod tego przewodnika Szybki start.

Instalowanie pakietów

Musisz użyć biblioteki klienta usługi Azure Communication Rooms dla języka JavaScript w wersji 1.1.0 lub nowszej.

Użyj polecenia , npm install aby zainstalować poniższe zestawy SDK usług Communication Services dla języka JavaScript.

npm install @azure/communication-rooms --save

Konfigurowanie struktury aplikacji

index.js W pliku dodaj następujący kod. Dodamy kod dla przewodnika Szybki start w main funkcji.

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

Inicjowanie klienta pokoju

Utwórz nowy RoomsClient obiekt, który będzie używany do tworzenia nowych rooms właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.

Dodaj następujący kod wewnątrz index.js main funkcji.

const connectionString =
    process.env["COMMUNICATION_CONNECTION_STRING"] ||
    "endpoint=https://<resource-name>.communication.azure.com/;<access-key>";

// create RoomsClient
const roomsClient = new RoomsClient(connectionString);

Tworzenie pokoju

Konfigurowanie uczestników pokoju

Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.

Aby użyć elementu CommunicationIdentityClient, zainstaluj następujący pakiet npm:

npm install @azure/communication-identity --save

Dodaj również następujący wymagany pakiet w górnej części index.js pliku:

const { CommunicationIdentityClient } = require('@azure/communication-identity');

Teraz można zainicjować element CommunicationIdentityClient i użyć go do utworzenia użytkowników:

// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);

Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:

const participants = [
  {
      id: user1.user,
      role: "Presenter",
  },
  {
    id: user2.user,
    role: "Consumer",
  }
]

Inicjowanie pokoju

Utwórz nowy room element przy użyciu zdefiniowanego participants we fragmencie kodu powyżej:

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

Ponieważ rooms są jednostkami po stronie serwera, warto śledzić i utrwalać roomId wybrany nośnik magazynu. Możesz odwołać roomId się do elementu , aby wyświetlić lub zaktualizować właściwości room obiektu.

Włączanie możliwości wybierania numeru PSTN dla pokoju

Każdy room z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room elementu podczas tworzenia, definiując pstnDialOutEnabled parametr jako true. Tę funkcję można również zmodyfikować przez room wysłanie żądania aktualizacji dla parametru 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);

Pobieranie właściwości istniejącego pokoju

Pobierz szczegóły istniejącego room obiektu, odwołując się do elementu roomId:

// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);

Aktualizowanie okresu istnienia pokoju

Okres istnienia elementu room można zmodyfikować, wydając żądanie aktualizacji parametrów validFrom i validUntil . Pokój może być ważny przez maksymalnie sześć miesięcy.

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

Pobieranie listy pomieszczeń

Pobierz listę pomieszczeń przy użyciu listRooms metody :

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

Dodawanie lub aktualizowanie uczestników

Aby dodać nowych uczestników do roomklasy , użyj addOrUpdateParticipants metody uwidocznionej na kliencie. Ta metoda zaktualizuje również uczestnika, jeśli już istnieje w pokoju.

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

Uczestnicy, którzy zostali dodani do osoby uprawnionej room do dołączenia do połączeń.

Pobieranie listy uczestników

Pobierz listę uczestników dla istniejącej, room odwołując się do elementu roomId:

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

Usuwanie uczestników

Aby usunąć uczestnika z obiektu room i odwołać dostęp, użyj removeParticipants metody .

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

Usuwanie pokoju

Jeśli chcesz rozwiązać istniejący roomproblem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.

// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)

Uruchamianie kodu

Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym index.js znajduje się plik.

node index.js

Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:

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

Dokumentacja referencyjna

Zapoznaj się z pełnym zestawem funkcji pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK języka JavaScript lub dokumentacji interfejsu API REST.

Następne kroki

Po utworzeniu i skonfigurowaniu pokoju możesz dowiedzieć się, jak dołączyć do pokoju .

W tej sekcji przedstawiono, jak wykonać następujące działania:

  • Tworzenie nowego pokoju
  • Pobieranie właściwości pokoju
  • Aktualizowanie właściwości pokoju
  • Usuwanie pokoju

Możesz również wykonać następujące czynności: