Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób tworzenia pokoju w ramach zasobu usług Azure Communication Services. Pomieszczenie to przestrzeń komunikacyjna zarządzana przez serwer, przeznaczona dla znanego, stałego zestawu uczestników do współpracy na wstępnie określony czas. Aby uzyskać więcej informacji i przypadków użycia, zobacz API pokoi dla spotkań zorganizowanych.
Model obiektów
W poniższej tabeli wymieniono główne właściwości obiektów pomieszczeń:
| Nazwa/nazwisko | opis |
|---|---|
roomId |
Unikatowy identyfikator pokoju. |
validFrom |
Najwcześniejsza godzina, w której można korzystać z pokoju. |
validUntil |
Najpóźniejszy czas, kiedy można wykorzystać pokój. |
pstnDialOutEnabled |
Włącz lub wyłącz wybieranie numeru publicznej sieci telefonicznej (PSTN) z pokoju. |
participants |
Lista uczestników w pokoju. Określony jako CommunicationUserIdentifier. |
roleType |
Rola uczestnika pokoju. Może to być Presenter, Attendee, Consumerlub Collaborator. |
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Utwórz zasób usług komunikacyjnych.
- Zainstaluj Azure CLI.
- Parametry połączenia można pobrać z witryny Azure Portal, klikając klucze w ustawieniach.
Konfigurowanie
Dodawanie rozszerzenia
Dodaj rozszerzenie Azure Communication Services dla interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az extension.
az extension add --name communication
Zaloguj się do Azure CLI
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.
Przechowaj ciąg 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> rzeczywistym łańcuchem 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-słuchaczy. Jeśli nie określisz wartości, wartość domyślna będzie pusta. - Zastąp
<connection-string>swoim ciągiem połączenia usług Azure Communication Services. - Opcjonalnie użyj
<valid-from>do określenia znaczniku czasu, kiedy pokój jest otwarty do dołączenia, w formacie ISO8601, np. 2022-07-14T10:21. - Opcjonalnie użyj
<valid-until>do określenia znaczniku czasu, kiedy pokój nie może być już dołączony, w formacie ISO8601, np. 2022-07-14T10:21. - Użyj
<pstn-dial-out-enabled>opcjonalnie, ustawiając tę flagę ("prawda" lub "fałsz"), aby włączyć lub wyłączyć funkcję wybierania PSTN dla pokoju. Domyślnie ta flaga jest ustawiona na "Fałsz" podczas tworzenia pokoju.
Jeśli parametry połączenia są przechowywane w zmiennych środowiskowych, nie musisz przekazywać ich do polecenia .
az communication rooms create
Włączanie możliwości wybierania numeru PSTN dla pokoju
Aby włączyć wybieranie numeru PSTN podczas rooms create, zdefiniuj parametr --pstn-dial-out-enabled jako True. Tę funkcję można zmienić podczas q rooms update , określając --pstn-dial-out-enabled parametr .
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ć funkcję wybierania numeru PSTN dla pokoju, ustaw flagę (
<pstn-dial-out-enabled>,TruelubFalse).
Zarezerwuj pokoje
Polecenie rooms get zwraca atrybuty istniejącego pokoju.
az communication rooms get --room "<roomId>"
- Zastąp
<roomId>swoim identyfikatorem pokoju.
Zaktualizuj terminarz pokoju
Można zaktualizować znacznik czasu pokoju. 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>swoim 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 polecenia room participant add-or-update upewnij się, że uzyskałeś 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 uczestnik. W przeciwnym razie rola uczestnika zostanie zaktualizowana do roli osoby uczestniczącej. - Zastąp
<roomId>swoim identyfikatorem pokoju.
Pobierz listę uczestników w pokoju
az communication rooms participant get --room "<roomId>"
- Zastąp
<roomId>swoim identyfikatorem pokoju.
Usuwanie uczestnika z pokoju
Możesz usunąć uczestnika z pokoju za pomocą rooms participant -remove.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
- Zastąp
<roomId>swoim identyfikatorem pokoju. - Zastąp
<participant1>,<participant2>,<participant3>identyfikatorami użytkownika uzyskanymi wcześniej przy użyciu poleceniaidentity user create.
Usuń pokój
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>swoim identyfikatorem pokoju.
Pokój to zarządzana przez serwer przestrzeń komunikacyjna dla znanego, stałego zestawu uczestników, w celu współpracy przez określoną długość czasu. Aby uzyskać więcej informacji, zobacz Interfejs API pokoi na potrzeby spotkań strukturalnych.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Utwórz zasób usług komunikacyjnych.
- Najnowsza wersja biblioteki klienta .NET Core dla systemu operacyjnego.
Przykładowy kod
Przejrzyj i pobierz przykładowy kod z usługi GitHub na stronie Rooms Quickstart — .NET.
Ustawienia
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
Użyj 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 obiekt RoomsClient, aby stworzyć nowe rooms oraz zarządzać ich właściwościami i cyklem życia. Użyj parametrów połączenia usługi Communications Service, aby uwierzytelnić żądanie. Aby uzyskać więcej informacji na temat ciągów 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. Postępuj zgodnie z instrukcjami w artykule Dotyczącym tokenów dostępu, aby utworzyć użytkowników i wystawiać tokeny dostępu. Alternatywnie, aby utworzyć użytkowników na żądanie, można ich utworzyć przy użyciu CommunicationIdentityClient. Pokoje usługi Azure Communication Services obsługują obecnie tylko uczestnika pokoju typu CommunicationUserIdentifier; użycie innych typów CommunicationIdentity powoduje błąd czasu wykonywania.
Aby użyć programu CommunicationIdentityClient, zainstaluj następujący pakiet:
dotnet add package Azure.Communication.Identity
Ponadto zaimportuj przestrzeń nazw pakietu na początku pliku Program.cs.
using Azure.Communication.Identity;
Teraz możesz zainicjować 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
};
Zainicjuj pokój
Utwórz nowe pomieszczenie przy użyciu zdefiniowanego participants w poprzednim fragmencie kodu:
// 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ż pokoje są jednostkami po stronie serwera, należy śledzić i utrwalać roomId w wybranym medium przechowywania. Możesz odwołać się do elementu roomId , aby wyświetlić lub zaktualizować właściwości obiektu pomieszczenia.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy pokój ma domyślnie wyłączone wybieranie numeru PSTN. Możesz włączyć wybieranie numeru PSTN dla pokoju przy jego tworzeniu, definiując pstnDialOutEnabled parametr jako true. Tę możliwość można zmienić dla pokoju, wysyłając żądanie aktualizacji 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);
Uzyskaj właściwości istniejącego pokoju
Aby uzyskać szczegóły dotyczące istniejącego pokoju, odwołaj się do roomId.
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
Aktualizowanie czasu istnienia pokoju
Okres istnienia pomieszczenia można zmienić, 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 metody GetRoomsAsync udostępnionej przez klienta.
// 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 pokoju, użyj metody AddParticipantsAsync udostępnionej po stronie klienta.
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.Collaborator };
addOrUpdateParticipants.Add(participant2);
addOrUpdateParticipants.Add(participant3);
Response addOrUpdateParticipantsResponse = await roomsClient.AddOrUpdateParticipantsAsync(roomId, addOrUpdateParticipants);
Console.WriteLine("\nAdded or updated participants to room");
Po dodaniu uczestników do pokoju mogą oni dołączać do połączeń. Zaktualizowani uczestnicy zobaczą swój nowy role w rozmowie.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącego pokoju, 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 pokoju 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");
Usuń pokój
Jeśli chcesz rozwiązać istniejący pokój, złóż jawne żądanie usunięcia. Wszystkie pokoje i skojarzone z nimi zasoby są automatycznie usuwane po upływie ich ważności oraz okresu karencji.
// 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 jesteś w tym samym katalogu co Program.cs 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, Collaborator
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.
Pokój to zarządzana przez serwer przestrzeń komunikacyjna dla znanego, stałego zestawu uczestników, w celu współpracy przez określoną długość czasu. Aby uzyskać więcej informacji, zobacz Interfejs API pokoi na potrzeby spotkań strukturalnych.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Utwórz zasób usług komunikacyjnych.
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej.
- Apache Maven
Przykładowy kod
Przejrzyj i pobierz przykładowy kod z usługi GitHub w witrynie Azure Communication Services — Rooms — Java.
Ustawienia
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 pakietu Bill of Materials (BOM), zobacz 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>
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 /src/main/java/com/communication/quickstart katalogu 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 obiekt RoomsClient, który jest potrzebny do tworzenia nowych pokoi oraz zarządzania ich właściwościami i cyklem życia. Użyj parametrów połączenia usługi Communications Service, aby uwierzytelnić żądanie. Aby uzyskać więcej informacji na temat parametrów połączenia, zobacz Tworzenie zasobu komunikacyjnego.
// 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. Postępuj zgodnie z instrukcjami w artykule Tokeny dostępu , aby utworzyć użytkowników i wystawiać tokeny dostępu. Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient Pokoje usługi Azure Communication Services obecnie obsługują tylko uczestnika pokoju typu CommunicationUserIdentifier, a używanie innych typów CommunicationIdentity powoduje błąd czasu wykonania.
Aby użyć 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 zainicjuj CommunicationIdentityClient i użyj 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));
Zainicjuj pokój
Utwórz nowe pomieszczenie przy użyciu zdefiniowanego roomParticipants w poprzednim fragmencie kodu:
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());
Pokoje są jednostkami po stronie serwera, więc należy śledzić i zapisywać roomId w wybranym medium przechowywania. Możesz odwołać się do elementu roomId , aby wyświetlić lub zaktualizować właściwości obiektu pomieszczenia.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy pokój ma domyślnie wyłączone wybieranie numeru PSTN. Wyjście PSTN można włączyć dla pokoju podczas tworzenia, ustawiając parametr pstnDialOutEnabled na true. Tę możliwość można zmienić dla pokoju, wysyłając żądanie aktualizacji 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());
Uzyskaj właściwości istniejącego pokoju
Pobierz szczegóły istniejącego pokoju, 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 czasu istnienia pokoju
Okres istnienia pomieszczenia można zmienić, 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 pokoju, użyj addOrUpdateParticipants metody uwidocznionej na kliencie.
List<RoomParticipant> participantsToAddAOrUpdate = new ArrayList<>();
// Updating current participant
participantsToAddAOrUpdate.add(participant_1.setRole(ParticipantRole.PRESENTER));
// Adding new participant
participantsToAddAOrUpdate.add(participant_3.setRole(ParticipantRole.COLLABORATOR));
AddOrUpdateParticipantsResult addOrUpdateParticipantsResult = roomsClient.addOrUpdateParticipants(roomId, participantsToAddAOrUpdate);
System.out.println("Participant(s) added/updated");
Po dodaniu uczestników do pokoju, mogą oni brać udział w rozmowach telefonicznych.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącego pokoju, 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 pokoju 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 pokoje 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);
}
Usuń pokój
Aby rozwiązać istniejący pokój, należy wysłać jawne żądanie usunięcia. Wszystkie pokoje i skojarzone z nimi zasoby są automatycznie usuwane po upływie ich ważności oraz okresu karencji.
// 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 (Presenter)
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e902 (Consumer)
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e903 (Collaborator)
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
Artykuły referencyjne
Zapoznaj się z pełnym zestawem funkcji pomieszczeń dla usług Azure Communication Services z dokumentacji referencyjnej Java SDK lub dokumentacji referencyjnej API REST.
Pokój to zarządzana przez serwer przestrzeń komunikacyjna dla znanego, stałego zestawu uczestników, w celu współpracy przez określoną długość czasu. Aby uzyskać więcej informacji, zobacz Interfejs API pokoi na potrzeby spotkań strukturalnych.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Utwórz zasób usług komunikacyjnych.
- Python 3.7 lub nowszy dla twojego systemu operacyjnego.
Przykładowy kod
Przejrzyj i pobierz przykładowy kod z usługi GitHub na stronie Rooms Quickstart — Python.
Ustawienia
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 obiekt RoomsClient, który jest potrzebny do tworzenia nowych pokoi oraz zarządzania ich właściwościami i cyklem życia. Użyj parametrów połączenia usługi Communications Service, aby uwierzytelnić żądanie. Aby uzyskać więcej informacji na temat parametrów połączenia, zobacz Tworzenie zasobu komunikacji.
#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, potrzebujesz listy tożsamości tych użytkowników. Postępuj zgodnie z instrukcjami w artykule Tokeny dostępu , aby utworzyć użytkowników i wystawiać tokeny dostępu. Alternatywnie, aby utworzyć użytkowników na żądanie, można ich utworzyć przy użyciu CommunicationIdentityClient. Pokoje usług Azure Communication Services obsługują obecnie tylko uczestnika pokoju typu CommunicationUserIdentifier. Użycie innych typów CommunicationIdentity powoduje błąd środowiska uruchomieniowego.
Aby użyć programu CommunicationIdentityClient, zainstaluj następujący pakiet:
pip install azure-communication-identity
Ponadto zaimportuj przestrzeń nazw pakietu na początku pliku rooms-quickstart.py.
from azure.communication.identity import (
CommunicationIdentityClient
)
Teraz zainicjuj CommunicationIdentityClient i użyj 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]
Zainicjuj pokój
Utwórz nowe pomieszczenie przy użyciu zdefiniowanego participants w poprzednim fragmencie kodu:
# 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ż pokoje są jednostkami po stronie serwera, należy śledzić i utrwalać room.id w wybranym medium przechowywania. Możesz odwołać się do elementu id , aby wyświetlić lub zaktualizować właściwości obiektu pomieszczenia.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy pokój ma domyślnie wyłączone wybieranie numeru PSTN. Możesz włączyć wybieranie numeru PSTN dla pokoju przy jego tworzeniu, definiując pstn_dial_out_enabled parametr jako true. Tę możliwość można zmienić dla pokoju, wysyłając żądanie aktualizacji 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)
Uzyskaj 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 czasu istnienia pokoju
Okres istnienia pomieszczenia można zmienić, 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 udostępnianej przez klienta.
# 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 pomieszczeniu, użyj add_or_update_participants metody udostępnionej w 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.COLLABORATOR))
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)
Po dodaniu uczestników do pokoju mogą oni dołączać do połączeń.
Lista uczestników w pokoju
Pobierz listę uczestników dla istniejącego pokoju, 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 pokoju 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)
Usuń pokój
Aby rozwiązać istniejący pokój, należy wysłać jawne żądanie usunięcia. Wszystkie pokoje i powiązane zasoby są automatycznie usuwane na końcu ich ważności wraz z okresem 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 jesteś w tym samym katalogu co rooms-quickstart.py 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 Collaborator
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.
Pokój to zarządzana przez serwer przestrzeń komunikacyjna dla znanego, stałego zestawu uczestników, w celu współpracy przez określoną długość czasu. Aby uzyskać więcej informacji, zobacz Interfejs API pokoi na potrzeby spotkań strukturalnych.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i łańcuch połączenia. Utwórz zasób usług komunikacyjnych.
- Najnowsze wersje programu Node.js Active LTS i Maintenance LTS.
Przykładowy kod
Przejrzyj i pobierz przykładowy kod z usługi GitHub na stronie Rooms Quickstart — JavaScript.
Ustawienia
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 dodasz kod dla tego przykładu.
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ć następujące 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. Dodaj kod tego przykładu w funkcji 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);
})
Inicjowanie klienta pokoju
Utwórz nowy obiekt RoomsClient, który jest potrzebny do tworzenia nowych pokoi oraz zarządzania ich właściwościami i cyklem życia. Użyj parametrów połączenia usługi Communications Service, aby uwierzytelnić żądanie. Aby uzyskać więcej informacji na temat parametrów połączenia, zobacz Tworzenie zasobu komunikacyjnego.
Dodaj następujący kod w index.js, wewnątrz funkcji main.
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. Postępuj zgodnie z instrukcjami w artykule Tokeny dostępu , aby utworzyć użytkowników i wystawiać tokeny dostępu. Alternatywnie, aby utworzyć użytkowników na żądanie, można ich utworzyć przy użyciu CommunicationIdentityClient. Pokoje usług Azure Communication Services obecnie obsługują wyłącznie uczestnika pokoju typu CommunicationUserIdentifier. Użycie innych typów CommunicationIdentity powoduje błąd w czasie wykonywania.
Aby użyć programu CommunicationIdentityClient, zainstaluj następujący pakiet npm:
npm install @azure/communication-identity --save
Dodaj następujący wymagany pakiet w górnej części pliku index.js.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Teraz zainicjuj CommunicationIdentityClient i użyj 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",
}
]
Zainicjuj pokój
Utwórz nowe pomieszczenie przy użyciu zdefiniowanego participants w poprzednim fragmencie kodu:
// 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ż pokoje są jednostkami po stronie serwera, należy śledzić i utrwalać roomId w wybranym medium przechowywania. Możesz odwołać się do roomId, aby wyświetlić lub zaktualizować właściwości obiektu room.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy room z nich ma domyślnie wyłączone wybieranie numeru PSTN. Możesz włączyć wybieranie numeru PSTN dla pokoju przy jego tworzeniu, definiując pstnDialOutEnabled parametr jako true. Można również zmienić tę możliwość dla room wysyłając żądanie 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);
Uzyskaj właściwości istniejącego pokoju
Pobierz szczegóły istniejącego pokoju, 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 czasu istnienia pokoju
Okres istnienia pomieszczenia można zmienić, 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 pokoju, użyj metody addOrUpdateParticipants udostępnionej po stronie klienta. Ta metoda aktualizuje również uczestnika, jeśli już istnieje w pokoju.
// Add and update participants
const user3 = await identityClient.createUserAndToken(["voip"]);
// request payload to add and update participants
const addOUpdateParticipantsList = [
{
id: user1.user,
role: "Presenter",
},
{
id: user3.user,
role: "Collaborator",
}
]
// add user3 to the room and update user1 to Presenter role
await roomsClient.addOrUpdateParticipants(roomId, addOUpdateParticipantsList);
console.log("\nAdded and updated participants in the room");
Po dodaniu uczestników do pokoju, mogą oni brać udział w rozmowach telefonicznych.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącego pokoju, 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 pokoju 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");
Usuń pokój
Jeśli chcesz rozmieścić istniejący pokój, możesz wysłać jawne żądanie usunięcia. Wszystkie pokoje i skojarzone z nimi zasoby są automatycznie usuwane po upływie ich ważności oraz okresu karencji.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
Uruchamianie kodu
Aby uruchomić kod, upewnij się, że jesteś w tym samym katalogu co index.js 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'
}
{
id: {
kind: 'communicationUser',
communicationUserId: '8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7ccc-35f3-343a0d00e903'
},
role: 'Collaborator'
}
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 nauczyć się, jak dołączyć do rozmowy w pokoju za pomocą Rooms Call.
W tym artykule opisano, jak:
- Tworzenie nowego pokoju
- Pobieranie właściwości pokoju
- Aktualizowanie właściwości pokoju
- Usuń pokój