Inicio rápido: Creación y administración de un recurso de sala
Este inicio rápido le ayudará a empezar a trabajar con salas de Azure Communication Services. Un objeto room
es un espacio de comunicación administrado por el servidor donde un conjunto conocido y fijo de participantes pueden colaborar durante un período determinado previamente. La documentación conceptual de los centros de reunión incluye más detalles y casos de uso para rooms
.
Modelo de objetos
En la siguiente tabla se enumeran las propiedades principales de los objetos room
:
Nombre | Descripción |
---|---|
roomId |
Identificador único de room . |
validFrom |
Hora más temprana a la que se puede usar un objeto room . |
validUntil |
Hora más reciente a la que se puede usar un objeto room . |
pstnDialOutEnabled |
Habilite o deshabilite el marcado a un número RTC en una sala. |
participants |
Lista de participantes de una room . Especificado como un CommunicationUserIdentifier . |
roleType |
Rol de un participante de la sala. Puede ser Presenter , Attendee o Consumer . |
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Communication Services y una cadena de conexión. Cree un recurso de Communication Services.
- Instale la CLI de Azure.
- Puede obtener la cadena de conexión desde Azure Portal mediante un clic en las claves en la configuración.
Instalación
Adición de la extensión
Agregue la extensión Azure Communication Services para la CLI de Azure mediante el comando az extension
.
az extension add --name communication
Inicio de sesión en la CLI de Azure
Deberá iniciar sesión en la CLI de Azure. Puede iniciar sesión ejecutando el comando az login
desde el terminal y proporcionando sus credenciales.
Almacenamiento de la cadena de conexión en una variable de entorno
Puede configurar la variable de entorno AZURE_COMMUNICATION_CONNECTION_STRING
para usar las operaciones de claves de la CLI de Azure sin tener que usar --connection_string
para pasar la cadena de conexión. Para configurar una variable de entorno, abra una ventana de consola y seleccione el sistema operativo en las pestañas siguientes. Reemplace <connectionString>
por la cadena de conexión real.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"
Después de agregar la variable de entorno, es posible que tenga que reiniciar los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de la consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Operations
Creación de una sala
Utilice el comando rooms create
para crear una sala.
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>"
- Opcionalmente, use
<participantId>
para especificar el tipo de participante como participante moderador, participante consumidor o participante asistente. Si no se especifica un valor, el valor predeterminado es vacío. - Reemplace
<connection-string>
por la cadena de conexión de Azure Communication Services. - Opcionalmente, use
<valid-from>
para especificar la marca de tiempo a la que se ha abierto la sala para unirse, en formato ISO8601; por ejemplo: 2022-07-14T10:21. - Opcionalmente, use
<valid-until>
para especificar la marca de tiempo a la que ya no es posible unirse a la sala, en formato ISO8601; por ejemplo: 2022-07-14T10:21. - Use
<pstn-dial-out-enabled>
opcionalmente mediante el establecimiento de esta marca ("True" o "False") para habilitar o deshabilitar el marcado RTC para una sala. De forma predeterminada, esta marca se establece en "False" al crear una sala.
Si ha almacenado la cadena de conexión en variables de entorno como se indicó anteriormente, no tendrá que pasarla al comando.
az communication rooms create
Habilitación de la funcionalidad de marcado RTC para una sala
El marcado RTC se puede habilitar durante rooms create
mediante la definición del parámetro --pstn-dial-out-enabled
como "True". Esta funcionalidad también se puede modificar durante rooms update
especificando el parámetro --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>"
- Para habilitar o deshabilitar el marcado RTC para una sala, establezca la marca
<pstn-dial-out-enabled>
("True" o "False").
Obtención de las salas
El comando rooms get
devuelve los atributos de una sala existente.
az communication rooms get --room "<roomId>"
- Reemplace
<roomId>
por el identificador de la sala.
Actualización del período de tiempo de una sala
Puede actualizar la marca de tiempo de una sala. Antes de llamar al comando room update
, asegúrese de que ha adquirido una nueva sala con un período de tiempo válido.
az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- Reemplace
<valid-from>
por la marca de tiempo en formato ISO8601, por ejemplo: 2022-07-14T10:21, para especificar cuándo está abierta la sala para unirse. Se debe usar junto con--valid-until
. - Reemplace
<valid-until>
por la marca de tiempo en formato ISO8601, por ejemplo: 2022-07-14T10:21, para especificar cuándo ya no es posible unirse a la sala. Se debe usar junto con--valid-from
. - Reemplace
<pstn-dial-out-enabled>
y establezca esta marca ("True" o "False") para habilitar o deshabilitar el marcado RTC para una sala. Se debe usar junto con--pstn-dial-out-enabled
. - Reemplace
<roomId>
por el identificador de la sala.
Enumerar todas las salas activas
El comando rooms list
devuelve todas las salas activas que pertenecen al recurso de Azure Communication Services.
az communication rooms list
Agregar nuevos participantes o actualizar los participantes existentes
Al crear una sala, puede actualizar la sala agregando un nuevo participante o actualizando un participante existente en ella. Antes de llamar al comando room participant add-or-update
, asegúrese de que ha adquirido un nuevo usuario.
Use el comando identity user create
para crear un nuevo participante, identificado por participantId
.
az communication identity user create
Agregue un usuario como participante a la sala.
az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
- Reemplace
<participantId>
por el identificador del participante. Si<participantId>
no existe en la sala, el participante se agregará a la sala como rol de asistente. De lo contrario, el rol del participante se actualiza a un rol de asistente. - Reemplace
<roomId>
por el identificador de la sala.
Obtener una lista de participantes en una sala
az communication rooms participant get --room "<roomId>"
- Reemplace
<roomId>
por el identificador de la sala.
Eliminación de un participante de una sala
Puede quitar un participante de una sala mediante rooms participant -remove
.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
- Reemplace
<roomId>
por el identificador de la sala. - Reemplace
<participant1>
,<participant2>
,<participant3>
por los identificadores de usuario obtenido anteriormente mediante la ejecución del comandoidentity user create
.
Eliminar una sala.
De forma similar a la creación de una sala, también puede eliminar una sala.
Use el comando room delete
para eliminar la sala existente.
az communication rooms delete --room "<roomId>"
- Reemplace
<roomId>
por el identificador de la sala.
Este inicio rápido le ayudará a empezar a trabajar con salas de Azure Communication Services. Un objeto room
es un espacio de comunicación administrado por el servidor donde un conjunto conocido y fijo de participantes pueden colaborar durante un período determinado previamente. La documentación conceptual de los centros de reunión incluye más detalles y casos de uso para rooms
.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Communication Services y una cadena de conexión. Cree un recurso de Communication Services.
- La versión más reciente de la biblioteca cliente de .NET Core para su sistema operativo.
Código de ejemplo
Puede revisar y descargar el código de ejemplo de este inicio rápido en GitHub.
Instalación
Creación de una aplicación de C#
En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new
para crear una nueva aplicación de consola con el nombre RoomsQuickstart
. Este comando crea un sencillo proyecto "Hola mundo" de C# con un solo archivo de origen: Program.cs.
dotnet new console -o RoomsQuickstart
Cambie el directorio a la carpeta de la aplicación recién creada y use el comando dotnet build
para compilar la aplicación.
cd RoomsQuickstart
dotnet build
Instalar el paquete
Instale la biblioteca cliente de sala de comunicación de Azure para .NET con [NuGet][https://www.nuget.org/]:
dotnet add package Azure.Communication.Rooms
Deberá usar la biblioteca cliente de Azure Communication Rooms para .NET versión 1.1.0 o superior.
Instalación del marco de la aplicación
En el archivoProgram.cs
, agregue el código siguiente para importar los espacios de nombres necesarios y crear la estructura básica del programa.
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
}
}
}
Inicialización de un cliente de sala
Cree un objeto RoomsClient
, que se usará para crear objetos rooms
y administrar sus propiedades y su ciclo de vida. La cadena de conexión de su Communications Service
se usará para autenticar la solicitud. Para obtener más información sobre las cadenas de conexión, consulte esta página.
// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);
Creación de una sala
Configurar participantes de la sala
Para configurar quién puede unirse a una sala, necesitarás tener la lista de las identidades de esos usuarios. Puede seguir aquí las instrucciones para crear usuarios y emitir tokens de acceso. Como alternativa, si desea crear los usuarios a petición, puede crearlos mediante CommunicationIdentityClient
. Las salas de ACS admiten actualmente un participante de sala de tipo CommunicationUserIdentifier, el uso de otros tipos de CommunicationIdentity producirá un error en tiempo de ejecución.
Para usar CommunicationIdentityClient
, instale el siguiente paquete:
dotnet add package Azure.Communication.Identity
Además, importe el espacio de nombres del paquete en la parte superior del archivo Program.cs
:
using Azure.Communication.Identity;
Ahora, CommunicationIdentityClient
se puede inicializar y usar para crear usuarios:
// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();
A continuación, cree la lista de participantes de la sala haciendo referencia a esos usuarios:
List<RoomParticipant> participants = new List<RoomParticipant>()
{
new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};
Inicializar la sala
Cree un nuevo room
con el participants
definido en el fragmento de código anterior:
// 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);
Dado que los objetos rooms
son entidades del lado del servidor, puede que desee realizar un seguimiento de roomId
y conservarlo en el medio de almacenamiento de su elección. Puede hacer referencia a roomId
para ver o actualizar las propiedades de un objeto room
.
Habilitación de la funcionalidad de marcado RTC para una sala
Cada room
tiene deshabilitado el marcado RTC de manera predeterminada. El marcado RTC se puede habilitar para una room
al crearse definiendo el parámetro pstnDialOutEnabled
como True. Esta funcionalidad también se puede modificar para un room
mediante la emisión de una solicitud de actualización para el parámetro 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);
Obtención de las propiedades de una sala existente
Para recuperar los detalles de un objeto room
existente, haga referencia a roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
Actualización de la duración de una sala
La duración de un objeto room
se puede modificar emitiendo una solicitud de actualización para los parámetros ValidFrom
y ValidUntil
. Una sala puede ser válida durante un máximo de seis meses.
// 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);
Enumerar todas las salas activas
Para recuperar todas las salas activas, use el GetRoomsAsync
método expuesto en el cliente.
// 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;
}
Agregar nuevos participantes o actualizar los participantes existentes
Para agregar nuevos participantes a una room
, use el método AddParticipantsAsync
expuesto en el cliente.
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");
Los participantes que se han agregado a un objeto room
pueden unirse a llamadas. Los participantes que se han actualizado verán su nuevo role
en la llamada.
Obtener lista de participantes
Obtenga la lista de participantes de una room
existente al hacer referencia a la 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()}");
}
Eliminación de participantes
Para eliminar un participante de una room
y revocar su acceso, use el método 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");
Eliminar sala
Si desea disolver un objeto room
existente, puede emitir una solicitud de eliminación explícita. Todos los objetos rooms
y los recursos asociados se eliminan automáticamente al final de su vigencia más un período de gracia.
// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);
Ejecución del código
Para ejecutar el código, asegúrese de que se encuentra en el directorio donde está el archivo Program.cs
.
dotnet run
La salida prevista describe cada acción completada:
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
Documentación de referencia
Obtenga información sobre el conjunto completo de funcionalidades del centro de Azure Communication Services desde la referencia del SDK de .NET o la referencia de la API de REST.
Este inicio rápido le ayudará a empezar a trabajar con salas de Azure Communication Services. Un objeto room
es un espacio de comunicación administrado por el servidor donde un conjunto conocido y fijo de participantes pueden colaborar durante un período determinado previamente. La documentación conceptual de los centros de reunión incluye más detalles y casos de uso para rooms
.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Communication Services y una cadena de conexión. Creación de un recurso de Communication Services.
- Kit de desarrollo de Java (JDK), versión 8 o posterior.
- Apache Maven
Código de ejemplo
Puede revisar y descargar el código de ejemplo de este inicio rápido en GitHub.
Instalación
Creación de una aplicación Java
En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando mvn
para crear una nueva aplicación de consola con el nombre rooms-quickstart
. Este comando crea un sencillo proyecto de Java "Hola mundo", con un solo archivo de código fuente: App.java.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Inclusión del paquete
Debe usar la biblioteca cliente de Azure Communication Rooms para Java versión 1.1.0 o superior.
Inclusión del archivo BOM
Incluya azure-sdk-bom
en el proyecto para que tenga dependencia de la versión de disponibilidad general (GA) de la biblioteca. En el fragmento de código siguiente, reemplace el marcador de posición {bom_version_to_target} por el número de versión.
Para más información sobre el BOM, consulte el archivo Léame de BOM del SDK de Azure.
<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>
y, luego, incluya la dependencia directa en la sección de dependencias sin la etiqueta de versión.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
</dependency>
</dependencies>
Inclusión de dependencias directas
Si quiere tomar dependencia de una versión determinada de la biblioteca que no está presente en el BOM, agregue la dependencia directa al proyecto como se muestra a continuación.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Instalación del marco de la aplicación
Vaya al directorio /src/main/java/com/communication/quickstart y abra el archivo App.java
. Agregue el siguiente código:
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
}
}
Inicialización de un cliente de sala
Cree un objeto RoomsClient
, que se usará para crear objetos rooms
y administrar sus propiedades y su ciclo de vida. La cadena de conexión de su Communications Service
se usará para autenticar la solicitud. Para obtener más información sobre las cadenas de conexión, consulte esta página.
// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();
Creación de una sala
Configurar participantes de la sala
Para configurar quién puede unirse a una sala, necesita tener la lista de las identidades de esos usuarios. Puede seguir aquí las instrucciones para crear usuarios y emitir tokens de acceso. Como alternativa, si desea crear los usuarios a petición, puede crearlos mediante CommunicationIdentityClient
. Las salas de ACS admiten actualmente un participante de sala de tipo CommunicationUserIdentifier, el uso de otros tipos de CommunicationIdentity producirá un error en tiempo de ejecución.
Para usar CommunicationIdentityClient
, agregue el siguiente paquete:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
</dependency>
Importe el paquete en la parte superior del archivo App.java
:
import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;
Ahora, CommunicationIdentityClient
se puede inicializar y usar para crear usuarios:
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();
A continuación, cree la lista de participantes de la sala haciendo referencia a esos usuarios:
//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));
Inicializar la sala
Cree un nuevo room
con el roomParticipants
definido en el fragmento de código anterior:
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());
Dado que los objetos rooms
son entidades del lado del servidor, puede que desee realizar un seguimiento de roomId
y conservarlo en el medio de almacenamiento de su elección. Puede hacer referencia a roomId
para ver o actualizar las propiedades de un objeto room
.
Habilitación de la funcionalidad de marcado RTC para una sala
Cada room
tiene deshabilitado el marcado RTC de manera predeterminada. El marcado RTC se puede habilitar para una room
al crearse definiendo el parámetro pstnDialOutEnabled
como True. Esta funcionalidad también se puede modificar para un room
mediante la emisión de una solicitud de actualización para el parámetro 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());
Obtención de las propiedades de una sala existente
Para recuperar los detalles de un objeto room
existente, haga referencia a roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);
System.out.println("Retrieved room with id: " + roomResult.getRoomId());
Actualización de la duración de una sala
La duración de un objeto room
se puede modificar emitiendo una solicitud de actualización para los parámetros ValidFrom
y ValidUntil
. Una sala puede ser válida durante un máximo de seis meses.
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());
Agregar o actualizar participantes
Para agregar nuevos participantes a room
, use el método addOrUpdateParticipants
expuesto en el cliente.
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");
Los participantes que se han agregado a un objeto room
pueden unirse a llamadas.
Obtener lista de participantes
Obtenga la lista de participantes de una room
existente al hacer referencia a la 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);
}
Eliminación de participantes
Para eliminar un participante de una room
y revocar su acceso, use el método 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");
Enumerar todas las salas activas
Recupere todos los activos rooms
en el recurso de 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);
}
Eliminar sala
Si desea disolver un objeto room
existente, puede emitir una solicitud de eliminación explícita. Todos los objetos rooms
y los recursos asociados se eliminan automáticamente al final de su vigencia más un período de gracia.
// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);
Ejecución del código
Para ejecutar el código, vaya al directorio que contiene el archivo pom.xml
y compile el programa.
mvn compile
A continuación, compile el paquete:
mvn package
Ejecute la aplicación.
mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"
La salida prevista describe cada acción completada:
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
Documentación de referencia
Obtenga información sobre el conjunto completo de funcionalidades del centro de Azure Communication Services desde la referencia del SDK de Java o la referencia de la API de REST.
Este inicio rápido le ayudará a empezar a trabajar con salas de Azure Communication Services. Un objeto room
es un espacio de comunicación administrado por el servidor donde un conjunto conocido y fijo de participantes pueden colaborar durante un período determinado previamente. La documentación conceptual de los centros de reunión incluye más detalles y casos de uso para rooms
.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Communication Services y una cadena de conexión. Creación de un recurso de Communication Services.
- Python 3.7+ para su sistema operativo.
Código de ejemplo
Puede revisar y descargar el código de ejemplo de este inicio rápido en GitHub.
Instalación
Creación de una nueva aplicación de Python
En una ventana de terminal o consola, cree una nueva carpeta para la aplicación y vaya a ella.
mkdir acs-rooms-quickstart
cd acs-rooms-quickstart
Instalar el paquete
Debe usar la biblioteca cliente de Azure Communication Rooms para Python versión 1.1.0 o superior.
Desde un símbolo de la consola, vaya al directorio que contiene el archivo rooms.py y después ejecute el siguiente comando:
pip install azure-communication-rooms
Instalación del marco de la aplicación
Cree un archivo llamado rooms-quickstart.py
y agregue la estructura básica del programa.
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()
Inicialización de un cliente de sala
Cree un objeto RoomsClient
, que se usará para crear objetos rooms
y administrar sus propiedades y su ciclo de vida. La cadena de conexión de su Communications Service
se usará para autenticar la solicitud. Para obtener más información sobre las cadenas de conexión, consulte esta página.
#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)
Creación de una sala
Configurar participantes de la sala
Para configurar quién puede unirse a una sala, necesitarás tener la lista de las identidades de esos usuarios. Puede seguir aquí las instrucciones para crear usuarios y emitir tokens de acceso. Como alternativa, si desea crear los usuarios a petición, puede crearlos mediante CommunicationIdentityClient
. Las salas de ACS admiten actualmente un participante de sala de tipo CommunicationUserIdentifier, el uso de otros tipos de CommunicationIdentity producirá un error en tiempo de ejecución.
Para usar CommunicationIdentityClient
, instale el siguiente paquete:
pip install azure-communication-identity
Además, importe el espacio de nombres del paquete en la parte superior del archivo rooms-quickstart.py
:
from azure.communication.identity import (
CommunicationIdentityClient
)
Ahora, CommunicationIdentityClient
se puede inicializar y usar para crear usuarios:
# 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()
A continuación, cree la lista de participantes de la sala haciendo referencia a esos usuarios:
participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]
Inicializar la sala
Cree un nuevo room
con el participants
definido en el fragmento de código anterior:
# 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)
Dado que los objetos rooms
son entidades del lado del servidor, puede que desee realizar un seguimiento de room.id
y conservarlo en el medio de almacenamiento de su elección. Puede hacer referencia a id
para ver o actualizar las propiedades de un objeto room
.
Habilitación de la funcionalidad de marcado RTC para una sala
Cada room
tiene deshabilitado el marcado RTC de manera predeterminada. El marcado RTC se puede habilitar para una room
al crearse definiendo el parámetro pstn_dial_out_enabled
como True. Esta funcionalidad también se puede modificar para un room
mediante la emisión de una solicitud de actualización para el parámetro 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)
Obtención de las propiedades de una sala existente
Para recuperar los detalles de un objeto room
existente, haga referencia a 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)
Actualización de la duración de una sala
La duración de un objeto room
se puede modificar emitiendo una solicitud de actualización para los parámetros valid_from
y valid_until
. Una sala puede ser válida durante un máximo de seis meses.
# 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)
Enumerar todas las salas activas
Para recuperar todas las salas activas creadas en el recurso, use el método list_rooms
expuesto en el cliente.
# 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)
Agregar o actualizar participantes
Para agregar nuevos participantes o actualizar los participantes existentes en un room
, use el método add_or_update_participants
expuesto en el cliente.
# 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)
Los participantes que se han agregado a un objeto room
pueden unirse a llamadas.
Enumerar participantes en una sala
Obtenga la lista de participantes de una room
existente al hacer referencia a la 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)
Eliminación de participantes
Para eliminar un participante de una room
y revocar su acceso, use el método 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)
Eliminar sala
Si desea disolver un objeto room
existente, puede emitir una solicitud de eliminación explícita. Todos los objetos rooms
y los recursos asociados se eliminan automáticamente al final de su vigencia más un período de gracia.
# Delete Room
rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)
Ejecución del código
Para ejecutar el código, asegúrese de que se encuentra en el directorio donde está el archivo rooms-quickstart.py
.
python rooms-quickstart.py
La salida prevista describe cada acción completada:
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
Documentación de referencia
Obtenga información sobre el conjunto completo de funcionalidades del centro de Azure Communication Services desde la referencia del SDK de Python o la referencia de la API de REST.
Este inicio rápido le ayudará a empezar a trabajar con salas de Azure Communication Services. Un objeto room
es un espacio de comunicación administrado por el servidor donde un conjunto conocido y fijo de participantes pueden colaborar durante un período determinado previamente. La documentación conceptual de los centros de reunión incluye más detalles y casos de uso para rooms
.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Communication Services y una cadena de conexión. Creación de un recurso de Communication Services.
- Las versiones más recientes de Node.js: las versiones Active LTS y Maintenance LTS.
Código de ejemplo
Puede revisar y descargar el código de ejemplo de este inicio rápido en GitHub.
Instalación
Creación de una nueva aplicación web
En una ventana de terminal o consola, cree una nueva carpeta para la aplicación y vaya a ella.
mkdir acs-rooms-quickstart && cd acs-rooms-quickstart
Ejecute npm init
para crear un archivo package.json con la configuración predeterminada.
npm init -y
Cree un archivo index.js
en el que se agregará el código de este inicio rápido.
Instalación de los paquetes
Debe usar la biblioteca cliente de Azure Communication Rooms para JavaScript versión 1.1.0 o superior.
Use el comando npm install
para instalar los siguientes SDK de Communication Services para JavaScript.
npm install @azure/communication-rooms --save
Instalación del marco de la aplicación
En el archivo index.js
, agregue el código siguiente. Agregaremos el código para el inicio rápido en la función 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);
})
Inicialización de un cliente de sala
Cree un objeto RoomsClient
, que se usará para crear objetos rooms
y administrar sus propiedades y su ciclo de vida. La cadena de conexión de su Communications Service
se usará para autenticar la solicitud. Para obtener más información sobre las cadenas de conexión, consulte esta página.
Agregue el código siguiente en index.js
dentro la función main
.
const connectionString =
process.env["COMMUNICATION_CONNECTION_STRING"] ||
"endpoint=https://<resource-name>.communication.azure.com/;<access-key>";
// create RoomsClient
const roomsClient = new RoomsClient(connectionString);
Creación de una sala
Configurar participantes de la sala
Para configurar quién puede unirse a una sala, necesita tener la lista de las identidades de esos usuarios. Puede seguir aquí las instrucciones para crear usuarios y emitir tokens de acceso. Como alternativa, si desea crear los usuarios a petición, puede crearlos mediante CommunicationIdentityClient
. Las salas de ACS admiten actualmente un participante de sala de tipo CommunicationUserIdentifier, el uso de otros tipos de CommunicationIdentity producirá un error en tiempo de ejecución.
Para usar CommunicationIdentityClient, instale el siguiente paquete de npm:
npm install @azure/communication-identity --save
Además, agregue el siguiente paquete necesario en la parte superior del archivo index.js
:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Ahora, CommunicationIdentityClient
se puede inicializar y usar para crear usuarios:
// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);
A continuación, cree la lista de participantes de la sala haciendo referencia a esos usuarios:
const participants = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
Inicializar la sala
Cree un nuevo room
con el participants
definido en el fragmento de código anterior:
// 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);
Dado que los objetos rooms
son entidades del lado del servidor, puede que desee realizar un seguimiento de roomId
y conservarlo en el medio de almacenamiento de su elección. Puede hacer referencia a roomId
para ver o actualizar las propiedades de un objeto room
.
Habilitación de la funcionalidad de marcado RTC para una sala
Cada room
tiene deshabilitado el marcado RTC de manera predeterminada. El marcado RTC se puede habilitar para una room
al crearse definiendo el parámetro pstnDialOutEnabled
como True. Esta funcionalidad también se puede modificar para un room
mediante la emisión de una solicitud de actualización para el parámetro 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);
Obtención de las propiedades de una sala existente
Para recuperar los detalles de un objeto room
existente, haga referencia a roomId
:
// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);
Actualización de la duración de una sala
La duración de un objeto room
se puede modificar emitiendo una solicitud de actualización para los parámetros validFrom
y validUntil
. Una sala puede ser válida durante un máximo de seis meses.
// 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);
Obtener lista de salas
Recupere la lista de salas mediante el método listRooms
:
const roomsList = await roomsClient.listRooms();
console.log("\nRetrieved list of rooms; printing first room:");
for await (const currentRoom of roomsList) {
// access room data here
console.log(currentRoom);
break;
}
Agregar o actualizar participantes
Para agregar nuevos participantes a una room
, use el método addOrUpdateParticipants
expuesto en el cliente. Este método también actualizará a un participante si ya existen en la sala.
// 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");
Los participantes que se han agregado a un objeto room
pueden unirse a llamadas.
Obtener lista de participantes
Obtenga la lista de participantes de una room
existente al hacer referencia a la 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);
}
Eliminación de participantes
Para eliminar un participante de una room
y revocar su acceso, use el método 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");
Eliminar sala
Si desea disolver un objeto room
existente, puede emitir una solicitud de eliminación explícita. Todos los objetos rooms
y los recursos asociados se eliminan automáticamente al final de su vigencia más un período de gracia.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
Ejecución del código
Para ejecutar el código, asegúrese de que se encuentra en el directorio donde está el archivo index.js
.
node index.js
La salida prevista describe cada acción completada:
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
Documentación de referencia
Obtenga información sobre el conjunto completo de funcionalidades del centro de Azure Communication Services desde la referencia del SDK de JavaScript o la referencia de la API de REST.
Pasos siguientes
Puede aprender a unirse a una llamada a salas después de crear y configurar la sala.
En esta sección ha aprendido a hacer lo siguiente:
- Crear una sala.
- Obtener las propiedades de una sala.
- Actualizar las propiedades de una sala.
- Eliminar una sala.
Puede que también le interese:
- Más información sobre el concepto de salas
- Más información sobre los conceptos de llamadas de voz y vídeo
- Ejemplos de Azure Communication Services