Biblioteca cliente de Azure Communication Rooms para .NET: versión 1.0.0
Este paquete contiene un SDK de C# para el servicio Salas de Azure Communication Services. Azure Communication Services (ACS) Rooms es un conjunto de API, que usan las aplicaciones de servidor de Contoso para crear un espacio de conversación administrado por el servidor con un conjunto fijo de duración y participantes, predefinindo reglas de nivel de servidor tanto a quién como cuándo pueden comunicarse (como la creación de reuniones programadas).
Con la versión de disponibilidad general de salas de ACS, Contoso podrá hacer lo siguiente:
- Create a meeting space with known time coordinates (validFrom/validUntil)
- Join voice/video calls within that meeting space using the ACS web calling SDK or native mobile calling SDKs
- Add participants to a room
- Assign pre-defined roles to room participants
Escenarios principales en los que se pueden usar las salas:
- Virtual Visits (e.g., telemedicine, remote financial advisor, virtual classroom, etc...)
- Virtual Events (e.g., live event, company all-hands, live concert, etc...)
Código | fuente | Documentación del productoMuestras
Introducción
Instalar el paquete
Instale la biblioteca cliente de Azure Communication Rooms para .NET con NuGet:
dotnet add package Azure.Communication.Rooms
Requisitos previos
Necesita una suscripción de Azure y un recurso de Communication Service para usar este paquete.
Para crear un servicio de comunicación, puede usar Azure Portal, la Azure PowerShell o la biblioteca cliente de administración de .NET.
Conceptos clave
RoomsClient
proporciona la funcionalidad de crear sala, actualizar sala, obtener sala, salas de lista, eliminar sala, agregar participantes, actualizar participantes, quitar participantes y enumerar participantes.
Uso de las instrucciones
using Azure.Communication.Rooms
Autenticar el cliente
Los clientes de salas se pueden autenticar mediante la cadena de conexión adquirida desde un recurso de comunicación de Azure en Azure Portal.
var connectionString = Environment.GetEnvironmentVariable("connection_string") // Find your Communication Services resource in the Azure portal
RoomsClient client = new RoomsClient(connectionString);
Ejemplos
Creación de una sala
Para crear una sala, llame a la CreateRoom
función o CreateRoomAsync
desde RoomsClient
.
Los validFrom
argumentos , validUntil
y participants
son opcionales. Si validFrom
no se proporcionan y validUntil
, el valor predeterminado para validFrom
es la fecha y hora actual y el valor predeterminado para validUntil
es validFrom + 180 days
.
Al definir RoomParticipant
, si no se especifica el rol, será Attendee
de forma predeterminada.
El valor devuelto es Response<CommunicationRoom>
que contiene los detalles de la sala creados, así como el estado y los códigos de error asociados en caso de error.
// Create communication users using the CommunicationIdentityClient
Response<CommunicationUserIdentifier> communicationUser1 = await communicationIdentityClient.CreateUserAsync();
Response<CommunicationUserIdentifier> communicationUser2 = await communicationIdentityClient.CreateUserAsync();
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
RoomParticipant participant1 = new RoomParticipant(communicationUser1.Value); // If role is not provided, then it is set as Attendee by default
RoomParticipant participant2 = new RoomParticipant(communicationUser2.Value) { Role = ParticipantRole.Presenter};
List<RoomParticipant> invitedParticipants = new List<RoomParticipant>
{
participant1,
participant2
};
Response<CommunicationRoom> createRoomResponse = await roomsClient.CreateRoomAsync(validFrom, validUntil, invitedParticipants);
CommunicationRoom createCommunicationRoom = createRoomResponse.Value;
Actualizar una sala
Las validFrom
propiedades y validUntil
de una sala creada se pueden actualizar llamando a la UpdateRoom
función o UpdateRoomAsync
desde RoomsClient
.
validUntil = validFrom.AddDays(30);
Response<CommunicationRoom> updateRoomResponse = await roomsClient.UpdateRoomAsync(createdRoomId, validFrom, validUntil);
CommunicationRoom updateCommunicationRoom = updateRoomResponse.Value;
Obtener una sala creada
Se puede recuperar una sala creada llamando a la GetRoom
función o GetRoomAsync
desde RoomsClient
y pasando el objeto asociado roomId
.
Response<CommunicationRoom> getRoomResponse = await roomsClient.GetRoomAsync(createdRoomId);
CommunicationRoom getCommunicationRoom = getRoomResponse.Value;
Obtener todas las habitaciones
Todas las salas válidas creadas en un recurso de ACS se pueden recuperar llamando a la GetRooms
función o GetRoomsAsync
desde RoomsClient
.
AsyncPageable<CommunicationRoom> allRooms = roomsClient.GetRoomsAsync();
await foreach (CommunicationRoom room in allRooms)
{
Console.WriteLine($"Room with id {room.Id} is valid from {room.ValidFrom} to {room.ValidUntil}.");
}
Eliminar sala
Para eliminar una sala, llame a la DeleteRoom
función o DeleteRoomAsync
desde RoomsClient.
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(createdRoomId);
Agregar o actualizar participantes en una sala
Para agregar nuevos participantes o actualizar los participantes existentes, llame a la AddOrUpdateParticipants
función o AddOrUpdateParticipantsAsync
desde RoomsClient.
Response<CommunicationUserIdentifier> communicationUser3 = await communicationIdentityClient.CreateUserAsync();
RoomParticipant newParticipant = new RoomParticipant(communicationUser3.Value) { Role = ParticipantRole.Consumer };
// Previous snippet for create room added participant2 as Presenter
participant2 = new RoomParticipant(communicationUser2) { Role = ParticipantRole.Attendee };
List<RoomParticipant> participantsToAddOrUpdate = new List<RoomParticipant>
{
participant2, // participant2 updated from Presenter to Attendee
newParticipant, // newParticipant added to the room
};
Response addOrUpdateParticipantResponse = await roomsClient.AddOrUpdateParticipantsAsync(createdRoomId, participantsToAddOrUpdate);
Quitar participantes en una sala
Para quitar participantes de una sala, llame a la RemoveParticipants
función o RemoveParticipantsAsync
desde RoomsClient.
List<CommunicationIdentifier> participantsToRemove = new List<CommunicationIdentifier>
{
communicationUser1,
communicationUser2
};
Response removeParticipantResponse = await roomsClient.RemoveParticipantsAsync(createdRoomId, participantsToRemove);
Obtener participantes en una sala
Para obtener todos los participantes de una sala, llame a la GetParticipants
función o GetParticipantsAsync
desde RoomsClient.
El valor devuelto es Pageable<RoomParticipant>
o AsyncPageable<RoomParticipant>
que contiene la lista paginada de participantes.
AsyncPageable<RoomParticipant> allParticipants = roomsClient.GetParticipantsAsync(createdRoomId);
await foreach (RoomParticipant participant in allParticipants)
{
Console.WriteLine($" Participant with id {participant.CommunicationIdentifier.RawId} is a {participant.Role}");
}
Solución de problemas
Respuestas de servicio
Se RequestFailedException
produce como una respuesta de servicio para las solicitudes incorrectas. La excepción contiene información sobre qué código de respuesta se devolvió del servicio.
try
{
CommunicationIdentityClient communicationIdentityClient = CreateInstrumentedCommunicationIdentityClient();
Response<CommunicationUserIdentifier> communicationUser1 = await communicationIdentityClient.CreateUserAsync();
Response<CommunicationUserIdentifier> communicationUser2 = await communicationIdentityClient.CreateUserAsync();
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
List<RoomParticipant> createRoomParticipants = new List<RoomParticipant>();
RoomParticipant participant1 = new RoomParticipant(communicationUser1.Value) { Role = ParticipantRole.Presenter };
RoomParticipant participant2 = new RoomParticipant(communicationUser2.Value) { Role = ParticipantRole.Attendee };
Response<CommunicationRoom> createRoomResponse = await roomsClient.CreateRoomAsync(validFrom, validUntil, createRoomParticipants);
CommunicationRoom createRoomResult = createRoomResponse.Value;
}
catch (RequestFailedException ex)
{
Console.WriteLine(ex.Message);
}
Pasos siguientes
Contribuciones
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.
Actualizar los vínculos de código de ejemplo una vez publicado el SDK
Azure SDK for .NET