Sdílet prostřednictvím


Rychlý start: Vytvoření a správa prostředku místnosti

Tento rychlý start vám pomůže začít pracovat s místnostmi Azure Communication Services. A room je komunikační prostor spravovaný serverem pro známou, pevnou sadu účastníků, kteří mohou spolupracovat na předem určené době trvání. Koncepční dokumentace místností se zabývá více podrobnostmi a případy použití pro rooms.

Objektový model

Následující tabulka uvádí hlavní vlastnosti room objektů:

Název Popis
roomId Jedinečný room identifikátor.
validFrom Nejdříve je možné použít.room
validUntil Čas posledního room použití.
pstnDialOutEnabled Povolte nebo zakažte vytáčení na číslo veřejné telefonní sítě v místnosti.
participants Seznam účastníků .room Zadáno jako .CommunicationUserIdentifier
roleType Role účastníka místnosti. Může být buď Presenter, Attendeenebo Consumer.

Požadavky

  • Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
  • Aktivní prostředek služby Communication Services a připojovací řetězec. Vytvořte prostředek komunikační služby.
  • Nainstalujte Azure CLI.
  • Připojovací řetězec můžete získat z webu Azure Portal kliknutím na klíče v nastavení.

Nastavení

Přidání rozšíření

Pomocí příkazu přidejte rozšíření Azure Communication Services pro Azure CLI az extension .

az extension add --name communication

Přihlášení k Azure CLI

Musíte se přihlásit k Azure CLI. Můžete se přihlásit spuštěním az login příkazu z terminálu a zadáním přihlašovacích údajů.

Uložení připojovací řetězec do proměnné prostředí

Proměnnou AZURE_COMMUNICATION_CONNECTION_STRING prostředí můžete nakonfigurovat tak, aby používala operace klíčů Azure CLI, aniž byste museli předávat --connection_string připojovací řetězec. Pokud chcete nakonfigurovat proměnnou prostředí, otevřete okno konzoly a na následujících kartách vyberte operační systém. Nahraďte <connectionString> skutečnými připojovací řetězec.

setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"

Po přidání proměnné prostředí možná budete muset restartovat všechny spuštěné programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Operace

Vytvoření místnosti

rooms create Pomocí příkazu vytvořte místnost.

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>"
  • Volitelně můžete <participantId> určit typ účastníka jako prezentujícího, účastníky příjemce nebo účastníky. Pokud nezadáte hodnotu, výchozí hodnota je prázdná.
  • Nahraďte <connection-string> připojovací řetězec služby Azure Communication Services.
  • Volitelně můžete <valid-from> zadat časové razítko, kdy je místnost otevřená pro připojení, ve formátu ISO8601, např. 2022-07-14T10:21.
  • Volitelně můžete <valid-until> zadat časové razítko, kdy se místnost už nedá připojit, v ISO8601 formátu, např. 2022-07-14T10:21.
  • Volitelně můžete <pstn-dial-out-enabled> nastavit tento příznak (Pravda nebo Nepravda) a povolit nebo zakázat vytáčení veřejné telefonní sítě pro místnost. Ve výchozím nastavení je tento příznak při vytváření místnosti nastavený na False.

Pokud jste připojovací řetězec uložili do proměnných prostředí, jak je uvedeno výše, nebudete je muset předat do příkazu.

az communication rooms create 

Povolení funkce vytáčení do veřejné telefonní sítě pro místnost

Vytáčení veřejné telefonní sítě je možné povolit rooms create definováním parametru --pstn-dial-out-enabled jako True. Tuto funkci lze také upravit rooms update zadáním 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>"
  • Pokud chcete povolit nebo zakázat vytáčení veřejné telefonní sítě pro místnost, nastavte <pstn-dial-out-enabled> příznak (Pravda nebo Nepravda).

Získejte pokoje

Příkaz rooms get vrátí atributy existující místnosti.

az communication rooms get --room "<roomId>" 
  • Nahraďte <roomId> ID místnosti.

Aktualizace časového rámce místnosti

Časové razítko místnosti můžete aktualizovat. Před voláním room update příkazu se ujistěte, že jste získali novou místnost s platným časovým rámcem.

az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
  • Nahraďte <valid-from> časovým razítkem ve formátu ISO8601, např. 2022-07-14T10:21, abyste určili, kdy je místnost otevřena pro připojení. Měly by být použity společně s --valid-until.
  • Nahraďte <valid-until> časovým razítkem ve formátu ISO8601, např. 2022-07-14T10:21, abyste určili, kdy se místnost už nedá připojit. Měly by být použity společně s --valid-from.
  • Pokud chcete povolit nebo zakázat vytáčení veřejné telefonní sítě pro místnost, nastavte <pstn-dial-out-enabled> tento příznak (Pravda nebo Nepravda). Měly by být použity společně s --pstn-dial-out-enabled.
  • Nahraďte <roomId> ID místnosti.

Zobrazit seznam všech aktivních místností

Příkaz rooms list vrátí všechny aktivní místnosti patřící k vašemu prostředku Azure Communication Services.

az communication rooms list

Přidání nových účastníků nebo aktualizace existujících účastníků

Když vytvoříte místnost, můžete ji aktualizovat přidáním nového účastníka nebo aktualizací existujícího účastníka. Před voláním room participant add-or-update příkazu se ujistěte, že jste získali nového uživatele.

identity user create Pomocí příkazu vytvořte nového účastníka identifikovaného uživatelem participantId.

az communication identity user create

Přidejte uživatele jako účastníka do místnosti.

az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
  • Nahraďte <participantId> ID účastníka. Pokud v <participantId> místnosti neexistuje, přidá se účastník do místnosti jako role účastníka. Jinak se role účastníka aktualizuje na roli účastníka.
  • Nahraďte <roomId> ID místnosti.

Získání seznamu účastníků v místnosti

az communication rooms participant get --room "<roomId>"
  • Nahraďte <roomId> ID místnosti.

Odebrání účastníka z místnosti

Účastníka místnosti můžete z místnosti odebrat pomocí funkce rooms participant -remove.

az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
  • Nahraďte <roomId> ID místnosti.
  • Nahraďte <participant1>identifikátory <participant3> uživatele, <participant2>které jste získali dříve spuštěním identity user createpříkazu.

Odstranění místnosti

Podobně jako při vytváření místnosti můžete místnost odstranit.

Pomocí room delete příkazu odstraňte existující místnost.

az communication rooms delete --room "<roomId>"
  • Nahraďte <roomId> ID místnosti.

Tento rychlý start vám pomůže začít pracovat s místnostmi Azure Communication Services. A room je komunikační prostor spravovaný serverem pro známou, pevnou sadu účastníků, kteří mohou spolupracovat na předem určené době trvání. Koncepční dokumentace místností se zabývá více podrobnostmi a případy použití pro rooms.

Požadavky

Ukázkový kód

Ukázkový kód pro tento rychlý start si můžete prohlédnout a stáhnout na GitHubu.

Nastavení

Vytvoření nové aplikace jazyka C#

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem RoomsQuickstart. Tento příkaz vytvoří jednoduchý projekt "Hello World" C# s jedním zdrojovým souborem: Program.cs.

dotnet new console -o RoomsQuickstart

Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build příkazu zkompilujte aplikaci.

cd RoomsQuickstart
dotnet build

Nainstalujte balíček .

Nainstalujte klientskou knihovnu Azure Communication Rooms pro .NET s [NuGet][https://www.nuget.org/]:

dotnet add package Azure.Communication.Rooms

Budete muset použít klientskou knihovnu Azure Communication Rooms pro .NET verze 1.1.0 nebo vyšší.

Nastavení architektury aplikace

Program.cs Do souboru přidejte následující kód pro import požadovaných oborů názvů a vytvořte základní strukturu 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
        }
    }
}

Inicializace klienta místnosti

Vytvořte nový RoomsClient objekt, který se použije k vytvoření nových rooms a správě jejich vlastností a životního cyklu. K ověření požadavku se použije připojovací řetězec vašeho Communications Service požadavku. Další informace o připojovací řetězec najdete na této stránce.


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

Vytvoření místnosti

Nastavení účastníků místnosti

Abyste mohli nastavit, kdo se může připojit k místnosti, budete muset mít seznam identit těchto uživatelů. Tady můžete postupovat podle pokynů pro vytváření uživatelů a vydávání přístupových tokenů. Případně pokud chcete vytvořit uživatele na vyžádání, můžete je vytvořit pomocí nástroje CommunicationIdentityClient. ACS Rooms aktuálně podporuje účastníka místnosti typu CommunicationUserIdentifier pouze pomocí jiných typů CommunicationIdentity způsobí chybu za běhu.

Chcete-li použít CommunicationIdentityClient, nainstalujte následující balíček:

dotnet add package Azure.Communication.Identity

Naimportujte také obor názvů balíčku v horní části Program.cs souboru:

using Azure.Communication.Identity;

CommunicationIdentityClient Nyní je možné inicializovat a použít k vytvoření uživatelů:

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

Potom vytvořte seznam účastníků místnosti tak, že na tyto uživatele odkazujete:

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

Inicializace místnosti

Vytvořte novou room pomocí definovaného participants fragmentu kódu výše:

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

Vzhledem k tomu, že rooms se jedná o entity na straně serveru, můžete chtít sledovat a uchovávat roomId požadované médium úložiště. Můžete odkazovat roomId na zobrazení nebo aktualizaci vlastností objektu room .

Povolení funkce vytáčení do veřejné telefonní sítě pro místnost

Ve výchozím nastavení je pro každý z nich room zakázané vytáčení do veřejné telefonní sítě. Vytáčení veřejné telefonní sítě je možné povolit při room vytváření definováním parametru pstnDialOutEnabled jako true. Tato funkce může být také upravena room tak, že vydá žádost o aktualizaci 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);

Získání vlastností existující místnosti

Načtěte podrobnosti existujícího room odkazem na roomId:


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

Aktualizace doby života místnosti

Životnost room aktualizace může být upravena vydáním žádosti o aktualizaci pro parametry ValidFrom a ValidUntil parametry. Místnost může být platná maximálně šest měsíců.


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

Zobrazit seznam všech aktivních místností

Pokud chcete načíst všechny aktivní místnosti, použijte metodu vystavenou GetRoomsAsync na klientovi.


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

Přidání nových účastníků nebo aktualizace existujících účastníků

K přidání nových účastníků do klienta roompoužijte metodu vystavenou AddParticipantsAsync na klientovi.


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

Účastníci, kteří byli přidáni do programu room , mají nárok na připojení k hovorům. Účastníci, kteří byli aktualizováni, uvidí v hovoru nové role .

Získání seznamu účastníků

Načtěte seznam účastníků existujícího room odkazem na 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()}");
}

Odebrání účastníků

Pokud chcete odebrat účastníka z room přístupu a odvolat přístup, použijte metodu 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");

Odstranit místnost

Pokud chcete zrušit existující roomžádost o odstranění, můžete vydat explicitní žádost o odstranění. Všechny rooms a jejich přidružené prostředky se automaticky odstraní na konci platnosti plus období odkladu.


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

Spuštění kódu

Pokud chcete kód spustit, ujistěte se, že jste v adresáři, kde je váš Program.cs soubor.


dotnet run

Očekávaný výstup popisuje každou dokončenou akci:


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

Referenční dokumentace

Přečtěte si o úplné sadě funkcí místností Azure Communication Services z referenčních informací k sadě .NET SDK nebo referenčních informací k rozhraní REST API.

Tento rychlý start vám pomůže začít pracovat s místnostmi Azure Communication Services. A room je komunikační prostor spravovaný serverem pro známou, pevnou sadu účastníků, kteří mohou spolupracovat na předem určené době trvání. Koncepční dokumentace místností se zabývá více podrobnostmi a případy použití pro rooms.

Požadavky

Ukázkový kód

Ukázkový kód pro tento rychlý start si můžete prohlédnout a stáhnout na GitHubu.

Nastavení

Vytvoření nové aplikace v Javě

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí mvn příkazu vytvořte novou konzolovou aplikaci s názvem rooms-quickstart. Tento příkaz vytvoří jednoduchý projekt "Hello World" Java s jedním zdrojovým souborem: App.java.

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

Zahrnout balíček

Musíte použít klientskou knihovnu Azure Communication Rooms pro Javu verze 1.1.0 nebo vyšší.

Zahrnutí souboru kusovníku

azure-sdk-bom Zahrňte do projektu závislost na verzi obecné dostupnosti (GA) knihovny. V následujícím fragmentu kódu nahraďte zástupný symbol {bom_version_to_target} číslem verze. Další informace o kusovníku najdete v souboru readme kusovníku sady Azure SDK.

<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 vložte přímou závislost do oddílu závislostí bez značky verze.

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

Zahrnout přímou závislost

Pokud chcete závislost na konkrétní verzi knihovny, která není v kusovníku, přidejte do projektu přímou závislost následujícím způsobem.

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

Nastavení architektury aplikací

Přejděte do adresáře /src/main/java/com/communication/quickstart a otevřete App.java soubor. Přidejte následující kód:


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

Inicializace klienta místnosti

Vytvořte nový RoomsClient objekt, který se použije k vytvoření nových rooms a správě jejich vlastností a životního cyklu. K ověření požadavku se použije připojovací řetězec vašeho Communications Service požadavku. Další informace o připojovací řetězec najdete na této stránce.


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

Vytvoření místnosti

Nastavení účastníků místnosti

Pokud chcete nastavit, kdo se může připojit k místnosti, musíte mít seznam identit těchto uživatelů. Tady můžete postupovat podle pokynů pro vytváření uživatelů a vydávání přístupových tokenů. Případně pokud chcete vytvořit uživatele na vyžádání, můžete je vytvořit pomocí nástroje CommunicationIdentityClient. ACS Rooms aktuálně podporuje účastníka místnosti typu CommunicationUserIdentifier pouze pomocí jiných typů CommunicationIdentity způsobí chybu za běhu.

Chcete-li použít CommunicationIdentityClient, přidejte následující balíček:

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

Naimportujte balíček na začátek App.java souboru:

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

CommunicationIdentityClient Nyní je možné inicializovat a použít k vytvoření uživatelů:

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

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

Potom vytvořte seznam účastníků místnosti tak, že na tyto uživatele odkazujete:

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

Inicializace místnosti

Vytvořte novou room pomocí definovaného roomParticipants fragmentu kódu výše:

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

Vzhledem k tomu, že rooms se jedná o entity na straně serveru, můžete chtít sledovat a uchovávat roomId požadované médium úložiště. Můžete odkazovat roomId na zobrazení nebo aktualizaci vlastností objektu room .

Povolení funkce vytáčení do veřejné telefonní sítě pro místnost

Ve výchozím nastavení je pro každý z nich room zakázané vytáčení do veřejné telefonní sítě. Vytáčení veřejné telefonní sítě je možné povolit při room vytváření definováním parametru pstnDialOutEnabled jako true. Tato funkce může být také upravena room tak, že vydá žádost o aktualizaci 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());

Získání vlastností existující místnosti

Načtěte podrobnosti existujícího room odkazem na roomId:


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

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

Aktualizace doby života místnosti

Životnost room aktualizace může být upravena vydáním žádosti o aktualizaci pro parametry ValidFrom a ValidUntil parametry. Místnost může být platná maximálně šest měsíců.


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

Přidání nebo aktualizace účastníků

Chcete-li přidat nebo aktualizovat účastníky do objektu room, použijte metodu vystavenou addOrUpdateParticipants na klientovi.


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

Účastníci, kteří byli přidáni do programu room , mají nárok na připojení k hovorům.

Získání seznamu účastníků

Načtěte seznam účastníků existujícího room odkazem na 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);
}

Odebrání účastníků

Pokud chcete odebrat účastníka z room přístupu a odvolat přístup, použijte metodu 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");

Zobrazit seznam všech aktivních místností

Načtěte všechny aktivní rooms v rámci vašeho prostředku 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);
}

Odstranit místnost

Pokud chcete zrušit existující roomžádost o odstranění, můžete vydat explicitní žádost o odstranění. Všechny rooms a jejich přidružené prostředky se automaticky odstraní na konci platnosti plus období odkladu.


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

Spuštění kódu

Pokud chcete kód spustit, přejděte do adresáře, který obsahuje pom.xml soubor, a zkompilujte program.


mvn compile

Pak sestavte balíček:


mvn package

Spusťte aplikaci.

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

Očekávaný výstup popisuje každou dokončenou akci:


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

Referenční dokumentace

Přečtěte si o úplné sadě funkcí místností Azure Communication Services z referenčních informací k sadě Java SDK nebo referenčních informací k rozhraní REST API.

Tento rychlý start vám pomůže začít pracovat s místnostmi Azure Communication Services. A room je komunikační prostor spravovaný serverem pro známou, pevnou sadu účastníků, kteří mohou spolupracovat na předem určené době trvání. Koncepční dokumentace místností se zabývá více podrobnostmi a případy použití pro rooms.

Požadavky

Ukázkový kód

Ukázkový kód pro tento rychlý start si můžete prohlédnout a stáhnout na GitHubu.

Nastavení

Vytvoření nové aplikace v Pythonu

V okně terminálu nebo konzoly vytvořte pro aplikaci novou složku a přejděte na ni.

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

Nainstalujte balíček .

Musíte použít klientskou knihovnu Azure Communication Rooms pro Python verze 1.1.0 nebo vyšší.

Z příkazového řádku konzoly přejděte do adresáře obsahujícího soubor rooms.py a spusťte následující příkaz:

pip install azure-communication-rooms

Nastavení architektury aplikace

Vytvořte volaný rooms-quickstart.py nový soubor a přidejte základní strukturu 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()

Inicializace klienta místnosti

Vytvořte nový RoomsClient objekt, který se použije k vytvoření nových rooms a správě jejich vlastností a životního cyklu. K ověření požadavku se použije připojovací řetězec vašeho Communications Service požadavku. Další informace o připojovací řetězec najdete na této stránce.

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

Vytvoření místnosti

Nastavení účastníků místnosti

Abyste mohli nastavit, kdo se může připojit k místnosti, budete muset mít seznam identit těchto uživatelů. Tady můžete postupovat podle pokynů pro vytváření uživatelů a vydávání přístupových tokenů. Případně pokud chcete vytvořit uživatele na vyžádání, můžete je vytvořit pomocí nástroje CommunicationIdentityClient. ACS Rooms aktuálně podporuje účastníka místnosti typu CommunicationUserIdentifier pouze pomocí jiných typů CommunicationIdentity způsobí chybu za běhu.

Chcete-li použít CommunicationIdentityClient, nainstalujte následující balíček:

pip install azure-communication-identity

Naimportujte také obor názvů balíčku v horní části rooms-quickstart.py souboru:

from azure.communication.identity import (
    CommunicationIdentityClient
)

CommunicationIdentityClient Nyní je možné inicializovat a použít k vytvoření uživatelů:

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

Potom vytvořte seznam účastníků místnosti tak, že na tyto uživatele odkazujete:

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

Inicializace místnosti

Vytvořte novou room pomocí definovaného participants fragmentu kódu výše:

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

Vzhledem k tomu, že rooms se jedná o entity na straně serveru, můžete chtít sledovat a uchovávat room.id požadované médium úložiště. Můžete odkazovat id na zobrazení nebo aktualizaci vlastností objektu room .

Povolení funkce vytáčení do veřejné telefonní sítě pro místnost

Ve výchozím nastavení je pro každý z nich room zakázané vytáčení do veřejné telefonní sítě. Vytáčení veřejné telefonní sítě je možné povolit při room vytváření definováním parametru pstn_dial_out_enabled jako true. Tato funkce může být také upravena room tak, že vydá žádost o aktualizaci 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)

Získání vlastností existující místnosti

Načtěte podrobnosti existujícího room odkazem na 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)

Aktualizace doby života místnosti

Životnost room aktualizace může být upravena vydáním žádosti o aktualizaci pro parametry valid_from a valid_until parametry. Místnost může být platná maximálně šest měsíců.

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

Zobrazit seznam všech aktivních místností

Pokud chcete načíst všechny aktivní místnosti vytvořené v rámci vašeho prostředku, použijte metodu vystavenou list_rooms na klientovi.

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

Přidání nebo aktualizace účastníků

Pokud chcete přidat nové účastníky nebo aktualizovat existující účastníky v aplikaci room, použijte metodu vystavenou add_or_update_participants na klientovi.

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

Účastníci, kteří byli přidáni do programu room , mají nárok na připojení k hovorům.

Zobrazení seznamu účastníků v místnosti

Načtěte seznam účastníků existujícího room odkazem na 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)

Odebrání účastníků

Pokud chcete odebrat účastníka z room přístupu a odvolat přístup, použijte metodu 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)

Odstranit místnost

Pokud chcete zrušit existující roomžádost o odstranění, můžete vydat explicitní žádost o odstranění. Všechny rooms a jejich přidružené prostředky se automaticky odstraní na konci platnosti plus období odkladu.

# Delete Room

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

Spuštění kódu

Pokud chcete kód spustit, ujistěte se, že jste v adresáři, kde je váš rooms-quickstart.py soubor.


python rooms-quickstart.py

Očekávaný výstup popisuje každou dokončenou akci:


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

Referenční dokumentace

Přečtěte si o úplné sadě funkcí místností Azure Communication Services z referenčních informací k sadě Python SDK nebo referenčních informací k rozhraní REST API.

Tento rychlý start vám pomůže začít pracovat s místnostmi Azure Communication Services. A room je komunikační prostor spravovaný serverem pro známou, pevnou sadu účastníků, kteří mohou spolupracovat na předem určené době trvání. Koncepční dokumentace místností se zabývá více podrobnostmi a případy použití pro rooms.

Požadavky

Ukázkový kód

Ukázkový kód pro tento rychlý start si můžete prohlédnout a stáhnout na GitHubu.

Nastavení

Vytvoření nové webové aplikace

V okně terminálu nebo konzoly vytvořte pro aplikaci novou složku a přejděte na ni.

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

Spuštěním příkazu npm init vytvořte soubor package.json s výchozím nastavením.

npm init -y

Vytvořte nový soubor index.js , do kterého se přidá kód pro tento rychlý start.

Instalace balíčků

Musíte použít klientskou knihovnu Azure Communication Rooms pro JavaScript verze 1.1.0 nebo vyšší.

npm install Pomocí příkazu nainstalujte následující sady SDK komunikačních služeb pro JavaScript.

npm install @azure/communication-rooms --save

Nastavení architektury aplikace

index.js Do souboru přidejte následující kód. Do funkce přidáme kód pro rychlý start 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);
})

Inicializace klienta místnosti

Vytvořte nový RoomsClient objekt, který se použije k vytvoření nových rooms a správě jejich vlastností a životního cyklu. K ověření požadavku se použije připojovací řetězec vašeho Communications Service požadavku. Další informace o připojovací řetězec najdete na této stránce.

Do funkce přidejte následující kód index.js main .

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

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

Vytvoření místnosti

Nastavení účastníků místnosti

Pokud chcete nastavit, kdo se může připojit k místnosti, musíte mít seznam identit těchto uživatelů. Tady můžete postupovat podle pokynů pro vytváření uživatelů a vydávání přístupových tokenů. Případně pokud chcete vytvořit uživatele na vyžádání, můžete je vytvořit pomocí nástroje CommunicationIdentityClient. ACS Rooms aktuálně podporuje účastníka místnosti typu CommunicationUserIdentifier pouze pomocí jiných typů CommunicationIdentity způsobí chybu za běhu.

Pokud chcete použít CommunicationIdentityClient, nainstalujte následující balíček npm:

npm install @azure/communication-identity --save

Do horní části index.js souboru přidejte také následující požadovaný balíček:

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

CommunicationIdentityClient Nyní je možné inicializovat a použít k vytvoření uživatelů:

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

Potom vytvořte seznam účastníků místnosti tak, že na tyto uživatele odkazujete:

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

Inicializace místnosti

Vytvořte novou room pomocí definovaného participants fragmentu kódu výše:

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

Vzhledem k tomu, že rooms se jedná o entity na straně serveru, můžete chtít sledovat a uchovávat roomId požadované médium úložiště. Můžete odkazovat roomId na zobrazení nebo aktualizaci vlastností objektu room .

Povolení funkce vytáčení do veřejné telefonní sítě pro místnost

Ve výchozím nastavení je pro každý z nich room zakázané vytáčení do veřejné telefonní sítě. Vytáčení veřejné telefonní sítě je možné povolit při room vytváření definováním parametru pstnDialOutEnabled jako true. Tato funkce může být také upravena room tak, že vydá žádost o aktualizaci 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);

Získání vlastností existující místnosti

Načtěte podrobnosti existujícího room odkazem na roomId:

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

Aktualizace doby života místnosti

Životnost room aktualizace může být upravena vydáním žádosti o aktualizaci pro parametry validFrom a validUntil parametry. Místnost může být platná maximálně šest měsíců.

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

Získání seznamu místností

Pomocí metody načtěte listRooms seznam místností:

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

Přidání nebo aktualizace účastníků

K přidání nových účastníků do klienta roompoužijte metodu vystavenou addOrUpdateParticipants na klientovi. Tato metoda také aktualizuje účastníka, pokud již v místnosti existuje.

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

Účastníci, kteří byli přidáni do programu room , mají nárok na připojení k hovorům.

Získání seznamu účastníků

Načtěte seznam účastníků existujícího room odkazem na 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);
}

Odebrání účastníků

Pokud chcete odebrat účastníka z room přístupu a odvolat přístup, použijte metodu 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");

Odstranit místnost

Pokud chcete zrušit existující roomžádost o odstranění, můžete vydat explicitní žádost o odstranění. Všechny rooms a jejich přidružené prostředky se automaticky odstraní na konci platnosti plus období odkladu.

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

Spuštění kódu

Pokud chcete kód spustit, ujistěte se, že jste v adresáři, kde je váš index.js soubor.

node index.js

Očekávaný výstup popisuje každou dokončenou akci:

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

Referenční dokumentace

Přečtěte si o úplné sadě funkcí místností Azure Communication Services z referenčních informací k sadě JavaScript SDK nebo referenčních informací k rozhraní REST API.

Další kroky

Po vytvoření a konfiguraci místnosti se dozvíte, jak se připojit k volání místností.

V této části jste se naučili:

  • Vytvoření nové místnosti
  • Získání vlastností místnosti
  • Aktualizace vlastností místnosti
  • Odstranění místnosti

Můžete také chtít: