Guia de Início Rápido: criar e gerenciar um recurso de sala
Este guia de início rápido ajuda você a começar a usar as Salas dos Serviços de Comunicação do Azure. Uma room
é um espaço de comunicações gerenciado pelo servidor para um conjunto fixo e conhecido de participantes para colaborar com uma duração predeterminada. A documentação conceitual das salas aborda mais detalhes e casos de uso de rooms
.
Modelo de objeto
A seguinte tabela lista as principais propriedades dos objetos room
:
Nome | Descrição |
---|---|
roomId |
Identificador exclusivo da room . |
validFrom |
A primeira vez que uma room pode ser usada. |
validUntil |
A última vez que uma room pode ser usada. |
pstnDialOutEnabled |
Habilite ou desabilite a discagem para um número PSTN em uma sala. |
participants |
Lista de participantes de um room . Especificado como um CommunicationUserIdentifier . |
roleType |
A função de um participante da sala. Pode ser Presenter , Attendee ou Consumer . |
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Crie um recurso dos Serviços de Comunicação.
- Instale a CLI do Azure.
- Você pode obter a cadeia de conexão do portal do Azure clicando nas teclas nas configurações.
Configurando
Adicionar a extensão
Adicione a extensão dos Serviços de Comunicação do Azure para a CLI do Azure usando o comando az extension
.
az extension add --name communication
Entrar na CLI do Azure
Será necessário entrar na CLI do Azure. Conecte-se executando o comando az login
no terminal e informando suas credenciais.
Armazenar a sua cadeia de conexão em uma variável de ambiente
Você pode configurar a variável de ambiente AZURE_COMMUNICATION_CONNECTION_STRING
para usar operações de chaves da CLI do Azure sem precisar usar --connection_string
para passar a cadeia de conexão. Para configurar uma variável de ambiente, abra uma janela do console e selecione o sistema operacional nas guias abaixo. Substitua <connectionString>
pela cadeia de conexão real.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"
Depois que você adicionar as variáveis de ambiente, talvez seja necessário reiniciar quaisquer programas em execução que precisem ler a variável de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.
Operações
Criar uma sala
Use o comando rooms create
para criar uma 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>"
- Use
<participantId>
opcionalmente para especificar o tipo de participante como apresentador-participantes, consumidor-participantes ou participante-participantes. Se você não especificar um valor, o padrão será vazio. - Substitua
<connection-string>
pela cadeia de conexão dos Serviços de Comunicação do Azure. - Use
<valid-from>
opcionalmente para especificar o carimbo de data/hora quando a sala estiver aberta para ingresso, no formato ISO8601, por exemplo: 2022-07-14T10:21. - Use
<valid-until>
opcionalmente para especificar o carimbo de data/hora quando a sala não puder mais ser ingressada, no formato ISO8601, por exemplo: 2022-07-14T10:21. - Use
<pstn-dial-out-enabled>
, opcionalmente definindo esse sinalizador (“True” ou “False”) para habilitar ou desabilitar a discagem PSTN para uma sala. Por padrão, esse sinalizador é definido como "False" ao criar uma sala.
Se você tiver armazenado a cadeia de conexão em variáveis de ambiente conforme indicado acima, não será preciso transmiti-las ao comando.
az communication rooms create
Habilitar a capacidade de discagem PSTN para uma sala
A discagem PSTN pode ser habilitada durante rooms create
definindo o parâmetro --pstn-dial-out-enabled
como "True". Essa funcionalidade também pode ser modificada durante rooms update
com a especificação do 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 ou desabilitar a discagem PSTN para uma sala, defina o sinalizador
<pstn-dial-out-enabled>
(“True” ou “False”).
Obter as salas
O comando rooms get
retorna os atributos de uma sala existente.
az communication rooms get --room "<roomId>"
- Substitua
<roomId>
pela ID da sala.
Atualizar o período de uma sala
Você pode atualizar o carimbo de data/hora de uma sala. Antes de chamar o comando room update
, verifique se você adquiriu uma nova sala com um período válido.
az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- Substitua
<valid-from>
pelo carimbo de data/hora no formato ISO8601, por exemplo: 2022-07-14T10:21, para especificar quando a sala está aberta para ingresso. Ele deve ser usado junto com--valid-until
. - Substitua
<valid-until>
pelo carimbo de data/hora no formato ISO8601, por exemplo: 2022-07-14T10:21, para especificar quando a sala não pode mais ser ingressada. Ele deve ser usado junto com--valid-from
. - Substitua
<pstn-dial-out-enabled>
definir esse sinalizador ("True" ou "False") para habilitar ou desabilitar a discagem PSTN para uma sala. Ele deve ser usado junto com--pstn-dial-out-enabled
. - Substitua
<roomId>
pela ID da sala.
Listar todas as salas ativas
O comando rooms list
retorna todas as salas ativas que pertencem ao recurso dos Serviços de Comunicação do Azure.
az communication rooms list
Adicionar novos participantes ou atualizar participantes existentes
Ao criar uma sala, você pode atualizar a sala adicionando um novo participante ou atualizando um participante existente nela. Antes de chamar o comando room participant add-or-update
, verifique se você adquiriu um novo usuário.
Use o comando identity user create
para criar um participante, identificado por participantId
.
az communication identity user create
Adicione um usuário como participante à sala.
az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
- Substitua
<participantId>
pela ID do participante. Se a<participantId>
não existir na sala, o participante será adicionado à sala como uma função de participante. Caso contrário, a função do participante será atualizada para uma função de participante. - Substitua
<roomId>
pela ID da sala.
Obter lista de participantes em uma sala
az communication rooms participant get --room "<roomId>"
- Substitua
<roomId>
pela ID da sala.
Remover um participante de uma sala
Você pode remover um participante de uma sala usando rooms participant -remove
.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
- Substitua
<roomId>
pela ID da sala. - Substitua
<participant1>
,<participant2>
e<participant3>
pelas IDs de usuário obtidas anteriormente por meio da execução do comandoidentity user create
.
Excluir uma sala
Semelhante à criação de uma sala, você também pode excluir uma sala.
Use o comando room delete
para excluir a sala existente.
az communication rooms delete --room "<roomId>"
- Substitua
<roomId>
pela ID da sala.
Este guia de início rápido ajuda você a começar a usar as Salas dos Serviços de Comunicação do Azure. Uma room
é um espaço de comunicações gerenciado pelo servidor para um conjunto fixo e conhecido de participantes para colaborar com uma duração predeterminada. A documentação conceitual das salas aborda mais detalhes e casos de uso de rooms
.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Crie um recurso dos Serviços de Comunicação.
- A versão mais recente da biblioteca de clientes do .NET Core para o seu sistema operacional.
Código de exemplo
Você pode revisar e baixar o código de exemplo para este início rápido no GitHub.
Configurando
Criar um aplicativo em C#
Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new
para criar um novo aplicativo do console com o nome RoomsQuickstart
. Esse comando cria um projeto simples C# "Olá, Mundo" com um arquivo de origem único: Program.cs.
dotnet new console -o RoomsQuickstart
Altere o seu diretório para a pasta de aplicativo recém-criada e use o comando dotnet build
para compilar o seu aplicativo.
cd RoomsQuickstart
dotnet build
Instalar o pacote
Instale a biblioteca de clientes de Salas de Comunicação do Azure para .NET com [NuGet][https://www.nuget.org/]:
dotnet add package Azure.Communication.Rooms
Você precisará usar a biblioteca de clientes das Salas de Comunicação do Azure para .NET versão 1.1.0 ou superior.
Configurar o framework de aplicativos
No arquivo Program.cs
, adicione o código a seguir para importar os namespaces necessários e criar a estrutura básica do 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
}
}
}
Inicializar um cliente da sala
Crie um novo objeto de RoomsClient
que será usado para criar a nova rooms
e gerenciar as propriedades e o ciclo de vida. A cadeia de conexão da Communications Service
será usada para autenticar a solicitação. Para obter mais informações sobre as cadeias de conexão, confira esta página.
// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);
Criar uma sala
Configure os participantes na sala
Para configurar quem pode ingressar em uma sala, você precisará ter a lista das identidades desses usuários. Você pode seguir as instruções aqui para criar usuários e emitir tokens de acesso. Como alternativa, se você quiser criar os usuários sob demanda, poderá criá-los usando o CommunicationIdentityClient
. Atualmente, as Salas ACS dão suporte a um participante de sala do tipo CommunicationUserIdentifier. Usar outros tipos de CommunicationIdentity resultará em um erro de runtime.
Para usar o CommunicationIdentityClient
, instale o seguinte pacote:
dotnet add package Azure.Communication.Identity
Além disso, importe o namespace do pacote em cima do arquivo Program.cs
:
using Azure.Communication.Identity;
Agora, o CommunicationIdentityClient
pode ser inicializado e usado para criar usuários:
// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();
Em seguida, crie a lista de participantes da sala fazendo referência a esses usuários:
List<RoomParticipant> participants = new List<RoomParticipant>()
{
new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};
Inicializar a sala
Crie uma nova room
usando o participants
definido no snippet de código acima:
// 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);
Como as rooms
são entidades do lado do servidor, pode ser conveniente controlar e manter as roomId
no meio de armazenamento de sua escolha. Você pode referenciar a roomId
para exibir ou atualizar as propriedades de um objeto da room
.
Habilitar a capacidade de discagem PSTN para uma sala
Cada room
tem a discagem PSTN desabilitada por padrão. A discagem PSTN pode ser habilitada para um room
na criação, definindo o parâmetro pstnDialOutEnabled
como true. Esse recurso também pode ser modificado para um room
emitindo uma solicitação de atualização para o 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);
Obter propriedades de uma sala existente
Recupere os detalhes de uma room
existente referenciando a roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
Atualizar o tempo de vida de uma sala
O tempo de vida de uma room
pode ser modificado ao emitir uma solicitação de atualização para os parâmetros ValidFrom
e ValidUntil
. Uma sala pode ser válida por, no máximo, 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);
Listar todas as salas ativas
Para recuperar todas as salas ativas, use o método GetRoomsAsync
exposto no 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;
}
Adicionar novos participantes ou atualizar participantes existentes
Para adicionar novos participantes a um room
, use o método AddParticipantsAsync
exposto no 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");
Os participantes adicionados a uma room
se tornam qualificados para ingressar em chamadas. Os participantes que foram atualizados verão seu novo role
na chamada.
Obter lista de participantes
Recupere a lista de participantes para um room
existente fazendo referência ao 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()}");
}
Remover participantes
Para remover um participante de um room
e revogar seu acesso, use o 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");
Excluir sala
Se você quiser dissolver uma room
existente, poderá emitir uma solicitação de exclusão explícita. Todas as rooms
e os recursos associados são excluídos automaticamente ao final da validade, mais um período de carência.
// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);
Executar o código
Para executar o código, verifique se você está no diretório onde está o arquivo Program.cs
.
dotnet run
A saída esperada descreve cada ação concluída:
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
Documentação de referência
Leia sobre o conjunto completo de funcionalidades de salas dos Serviços de Comunicação do Azure na referência do SDK do .NET ou na referência da API REST.
Este guia de início rápido ajuda você a começar a usar as Salas dos Serviços de Comunicação do Azure. Uma room
é um espaço de comunicações gerenciado pelo servidor para um conjunto fixo e conhecido de participantes para colaborar com uma duração predeterminada. A documentação conceitual das salas aborda mais detalhes e casos de uso de rooms
.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Crie um recurso dos Serviços de Comunicação.
- JDK (Java Development Kit) versão 8 ou superior.
- Apache Maven
Código de exemplo
Você pode revisar e baixar o código de exemplo para este início rápido no GitHub.
Configurando
Criar um aplicativo Java
Em uma janela de console (como cmd, PowerShell ou Bash), use o comando mvn
para criar um novo aplicativo do console com o nome rooms-quickstart
. Esse comando cria um projeto simples em Java do tipo "Olá, Mundo" com um arquivo de origem único: App.java.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Incluir o pacote
Você precisará usar a biblioteca de clientes das Salas de Comunicação do Azure para Java versão 1.1.0 ou superior.
Incluir o arquivo da BOM
Inclua o azure-sdk-bom
ao seu projeto para assumir a dependência da versão de GA (disponibilidade geral) da biblioteca. No trecho a seguir, substitua o espaço reservado {bom_version_to_target} pelo número de versão.
Para saber mais sobre o BOM, confira o Leiame do BOM do SDK do 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>
Depois, inclua a dependência direta na seção de dependências sem a marca de versão.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
</dependency>
</dependencies>
Incluir dependência direta
Se você quiser assumir a dependência de uma versão específica da biblioteca que não está presente no BOM, adicione a dependência direta ao seu projeto como descrito a seguir.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Configurar o framework de aplicativos
Vá para o diretório /src/main/java/com/communication/quickstart e abra o arquivo App.java
. Adicione os códigos a seguir:
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
}
}
Inicializar um cliente da sala
Crie um novo objeto de RoomsClient
que será usado para criar a nova rooms
e gerenciar as propriedades e o ciclo de vida. A cadeia de conexão da Communications Service
será usada para autenticar a solicitação. Para obter mais informações sobre as cadeias de conexão, confira 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();
Criar uma sala
Configure os participantes na sala
Para configurar quem pode ingressar em uma sala, você precisa ter a lista das identidades desses usuários. Você pode seguir as instruções aqui para criar usuários e emitir tokens de acesso. Como alternativa, se você quiser criar os usuários sob demanda, poderá criá-los usando o CommunicationIdentityClient
. Atualmente, as Salas ACS dão suporte a um participante de sala do tipo CommunicationUserIdentifier. Usar outros tipos de CommunicationIdentity resultará em um erro de runtime.
Para usar CommunicationIdentityClient
, adicione o seguinte pacote:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
</dependency>
Importe o pacote na parte superior do arquivo App.java
:
import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;
Agora, o CommunicationIdentityClient
pode ser inicializado e usado para criar usuários:
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();
Em seguida, crie a lista de participantes da sala fazendo referência a esses usuários:
//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 a sala
Crie uma nova room
usando o roomParticipants
definido no snippet de código acima:
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());
Como as rooms
são entidades do lado do servidor, pode ser conveniente controlar e manter as roomId
no meio de armazenamento de sua escolha. Você pode referenciar a roomId
para exibir ou atualizar as propriedades de um objeto da room
.
Habilitar a capacidade de discagem PSTN para uma sala
Cada room
tem a discagem PSTN desabilitada por padrão. A discagem PSTN pode ser habilitada para um room
na criação, definindo o parâmetro pstnDialOutEnabled
como true. Esse recurso também pode ser modificado para um room
emitindo uma solicitação de atualização para o 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());
Obter propriedades de uma sala existente
Recupere os detalhes de uma room
existente referenciando a roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);
System.out.println("Retrieved room with id: " + roomResult.getRoomId());
Atualizar o tempo de vida de uma sala
O tempo de vida de uma room
pode ser modificado ao emitir uma solicitação de atualização para os parâmetros ValidFrom
e ValidUntil
. Uma sala pode ser válida por, no máximo, 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());
Adicionar ou atualizar participantes
Para adicionar novos participantes a um room
, use o método addOrUpdateParticipants
exposto no 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");
Os participantes adicionados a uma room
se tornam qualificados para ingressar em chamadas.
Obter lista de participantes
Recupere a lista de participantes para um room
existente fazendo referência ao 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);
}
Remover participantes
Para remover um participante de um room
e revogar seu acesso, use o 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");
Listar todas as salas ativas
Recupere todos os ativos rooms
em seu recurso dos Serviços de Comunicação do Azure.
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);
}
Excluir sala
Se você quiser dissolver uma room
existente, poderá emitir uma solicitação de exclusão explícita. Todas as rooms
e os recursos associados são excluídos automaticamente ao final da validade, mais um período de carência.
// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);
Executar o código
Para executar o código, vá para o diretório que contém o arquivo pom.xml
e compile o programa.
mvn compile
Então, crie o pacote:
mvn package
Execute o aplicativo.
mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"
A saída esperada descreve cada ação concluída:
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
Documentação de referência
Leia sobre o conjunto completo de funcionalidades de salas dos Serviços de Comunicação do Azure na referência do SDK do Java ou na referência da API REST.
Este guia de início rápido ajuda você a começar a usar as Salas dos Serviços de Comunicação do Azure. Uma room
é um espaço de comunicações gerenciado pelo servidor para um conjunto fixo e conhecido de participantes para colaborar com uma duração predeterminada. A documentação conceitual das salas aborda mais detalhes e casos de uso de rooms
.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Crie um recurso dos Serviços de Comunicação.
- Python 3.7+ para o seu sistema operacional.
Código de exemplo
Você pode revisar e baixar o código de exemplo para este início rápido no GitHub.
Configurando
Criar um novo aplicativo Python
Em uma janela do console ou terminal, crie uma pasta para seu aplicativo e navegue até ela.
mkdir acs-rooms-quickstart
cd acs-rooms-quickstart
Instalar o pacote
Você precisará usar a biblioteca de clientes das Salas de Comunicação do Azure para Python versão 1.1.0 ou superior.
Em um prompt do console, navegue até o diretório que contém o arquivo rooms.py e execute o seguinte comando:
pip install azure-communication-rooms
Configurar o framework de aplicativos
Crie um arquivo chamado rooms-quickstart.py
e adicione a estrutura básica do 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()
Inicializar um cliente da sala
Crie um novo objeto de RoomsClient
que será usado para criar a nova rooms
e gerenciar as propriedades e o ciclo de vida. A cadeia de conexão da Communications Service
será usada para autenticar a solicitação. Para obter mais informações sobre as cadeias de conexão, confira esta página.
#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)
Criar uma sala
Configure os participantes na sala
Para configurar quem pode ingressar em uma sala, você precisará ter a lista das identidades desses usuários. Você pode seguir as instruções aqui para criar usuários e emitir tokens de acesso. Como alternativa, se você quiser criar os usuários sob demanda, poderá criá-los usando o CommunicationIdentityClient
. Atualmente, as Salas ACS dão suporte a um participante de sala do tipo CommunicationUserIdentifier. Usar outros tipos de CommunicationIdentity resultará em um erro de runtime.
Para usar o CommunicationIdentityClient
, instale o seguinte pacote:
pip install azure-communication-identity
Além disso, importe o namespace do pacote em cima do arquivo rooms-quickstart.py
:
from azure.communication.identity import (
CommunicationIdentityClient
)
Agora, o CommunicationIdentityClient
pode ser inicializado e usado para criar usuários:
# 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()
Em seguida, crie a lista de participantes da sala fazendo referência a esses usuários:
participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]
Inicializar a sala
Crie uma nova room
usando o participants
definido no snippet de código acima:
# 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)
Como as rooms
são entidades do lado do servidor, pode ser conveniente controlar e manter as room.id
no meio de armazenamento de sua escolha. Você pode referenciar a id
para exibir ou atualizar as propriedades de um objeto da room
.
Habilitar a capacidade de discagem PSTN para uma sala
Cada room
tem a discagem PSTN desabilitada por padrão. A discagem PSTN pode ser habilitada para um room
na criação, definindo o parâmetro pstn_dial_out_enabled
como true. Esse recurso também pode ser modificado para um room
emitindo uma solicitação de atualização para o 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)
Obter propriedades de uma sala existente
Recupere os detalhes de uma room
existente referenciando 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)
Atualizar o tempo de vida de uma sala
O tempo de vida de uma room
pode ser modificado ao emitir uma solicitação de atualização para os parâmetros valid_from
e valid_until
. Uma sala pode ser válida por, no máximo, 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)
Listar todas as salas ativas
Para recuperar todas as salas ativas criadas em seu recurso, use o método list_rooms
exposto no 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)
Adicionar ou atualizar participantes
Para adicionar novos participantes ou atualizar participantes existentes em um room
, use o método add_or_update_participants
exposto no 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)
Os participantes adicionados a uma room
se tornam qualificados para ingressar em chamadas.
Listar os participantes em uma chamada
Recupere a lista de participantes para um room
existente fazendo referência ao 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)
Remover participantes
Para remover um participante de um room
e revogar seu acesso, use o 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)
Excluir sala
Se você quiser dissolver uma room
existente, poderá emitir uma solicitação de exclusão explícita. Todas as rooms
e os recursos associados são excluídos automaticamente ao final da validade, mais um período de carência.
# Delete Room
rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)
Executar o código
Para executar o código, verifique se você está no diretório onde está o arquivo rooms-quickstart.py
.
python rooms-quickstart.py
A saída esperada descreve cada ação concluída:
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
Documentação de referência
Leia sobre o conjunto completo de funcionalidades de salas dos Serviços de Comunicação do Azure na referência do SDK do Python ou na referência da API REST.
Este guia de início rápido ajuda você a começar a usar as Salas dos Serviços de Comunicação do Azure. Uma room
é um espaço de comunicações gerenciado pelo servidor para um conjunto fixo e conhecido de participantes para colaborar com uma duração predeterminada. A documentação conceitual das salas aborda mais detalhes e casos de uso de rooms
.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso e uma cadeia de conexão ativos dos Serviços de Comunicação. Crie um recurso dos Serviços de Comunicação.
- As versões mais recentes dp LTS Ativo e do LTS de Manutenção do Node.js.
Código de exemplo
Você pode revisar e baixar o código de exemplo para este início rápido no GitHub.
Configurando
Criar um aplicativo Web
Em uma janela do console ou terminal, crie uma pasta para seu aplicativo e navegue até ela.
mkdir acs-rooms-quickstart && cd acs-rooms-quickstart
Execute npm init
para criar um arquivo package.json com as configurações padrão.
npm init -y
Crie um novo arquivo index.js
em que o código para este início rápido será adicionado.
Instalar os pacotes
Você precisará usar a biblioteca de clientes das Salas de Comunicação do Azure para JavaScript versão 1.1.0 ou superior.
Use o comando npm install
para instalar os SDKs dos Serviços de Comunicação abaixo para JavaScript.
npm install @azure/communication-rooms --save
Configurar o framework de aplicativos
No arquivo index.js
, adicione o código a seguir. Adicionaremos o código para o início rápido à função 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);
})
Inicializar um cliente da sala
Crie um novo objeto de RoomsClient
que será usado para criar a nova rooms
e gerenciar as propriedades e o ciclo de vida. A cadeia de conexão da Communications Service
será usada para autenticar a solicitação. Para obter mais informações sobre as cadeias de conexão, confira esta página.
Adicione o seguinte código em index.js
dentro da função main
.
const connectionString =
process.env["COMMUNICATION_CONNECTION_STRING"] ||
"endpoint=https://<resource-name>.communication.azure.com/;<access-key>";
// create RoomsClient
const roomsClient = new RoomsClient(connectionString);
Criar uma sala
Configure os participantes na sala
Para configurar quem pode ingressar em uma sala, você precisa ter a lista das identidades desses usuários. Você pode seguir as instruções aqui para criar usuários e emitir tokens de acesso. Como alternativa, se você quiser criar os usuários sob demanda, poderá criá-los usando o CommunicationIdentityClient
. Atualmente, as Salas ACS dão suporte a um participante de sala do tipo CommunicationUserIdentifier. Usar outros tipos de CommunicationIdentity resultará em um erro de runtime.
Para usar CommunicationIdentityClient, instale o seguinte pacote de npm:
npm install @azure/communication-identity --save
Além disso, adicione o seguinte pacote necessário na parte superior de seu arquivo index.js
:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Agora, o CommunicationIdentityClient
pode ser inicializado e usado para criar usuários:
// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);
Em seguida, crie a lista de participantes da sala fazendo referência a esses usuários:
const participants = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
Inicializar a sala
Crie uma nova room
usando o participants
definido no snippet de código acima:
// 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);
Como as rooms
são entidades do lado do servidor, pode ser conveniente controlar e manter as roomId
no meio de armazenamento de sua escolha. Você pode referenciar a roomId
para exibir ou atualizar as propriedades de um objeto da room
.
Habilitar a capacidade de discagem PSTN para uma sala
Cada room
tem a discagem PSTN desabilitada por padrão. A discagem PSTN pode ser habilitada para um room
na criação, definindo o parâmetro pstnDialOutEnabled
como true. Esse recurso também pode ser modificado para um room
emitindo uma solicitação de atualização para o 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);
Obter propriedades de uma sala existente
Recupere os detalhes de uma room
existente referenciando a roomId
:
// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);
Atualizar o tempo de vida de uma sala
O tempo de vida de uma room
pode ser modificado ao emitir uma solicitação de atualização para os parâmetros validFrom
e validUntil
. Uma sala pode ser válida por, no máximo, 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);
Obter lista de salas
Recupere sua lista de salas por meio do 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;
}
Adicionar ou atualizar participantes
Para adicionar novos participantes a um room
, use o método addOrUpdateParticipants
exposto no cliente. Esse método também atualizará um participante se ele já existir na 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");
Os participantes adicionados a uma room
se tornam qualificados para ingressar em chamadas.
Obter lista de participantes
Recupere a lista de participantes para um room
existente fazendo referência ao 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);
}
Remover participantes
Para remover um participante de um room
e revogar seu acesso, use o 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");
Excluir sala
Se você quiser dissolver uma room
existente, poderá emitir uma solicitação de exclusão explícita. Todas as rooms
e os recursos associados são excluídos automaticamente ao final da validade, mais um período de carência.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
Executar o código
Para executar o código, verifique se você está no diretório onde está o arquivo index.js
.
node index.js
A saída esperada descreve cada ação concluída:
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
Documentação de referência
Leia sobre o conjunto completo de funcionalidades de salas dos Serviços de Comunicação do Azure na referência do SDK do JavaScript ou na referência da API REST.
Próximas etapas
Saiba como ingressar na chamada de uma sala depois de criar e configurar a sala.
Nesta seção, você aprendeu a:
- Criar uma nova sala
- Obter as propriedades de uma sala
- Atualizar as propriedades de uma sala
- Excluir uma sala
Você também pode querer:
- Saiba mais sobre o conceito de salas
- Saiba mais sobre os conceitos de chamada de voz e vídeo
- Examine os exemplos de Serviços de Comunicação do Azure