Partager via


Bibliothèque cliente Azure Communication Rooms pour .NET - version 1.0.0

Ce package contient un Kit de développement logiciel (SDK) C# pour le service rooms de Azure Communication Services. Azure Communication Services salles (ACS) est un ensemble d’API, utilisés par les applications serveur Contoso pour créer un espace de conversation géré par le serveur avec un ensemble fixe de durée de vie et de participants, prédéfinissant des règles de niveau serveur à la fois qui et quand peuvent communiquer (comme la création de réunions planifiées).

Avec la mise en disponibilité générale d’ACS Rooms, Contoso sera en mesure de :

- 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

Les scénarios main dans lesquels les salles peuvent être utilisées au mieux :

- Virtual Visits (e.g., telemedicine, remote financial advisor, virtual classroom, etc...)
- Virtual Events (e.g., live event, company all-hands, live concert, etc...)

| Code source | Documentation produitÉchantillons

Prise en main

Installer le package

Installez la bibliothèque cliente Azure Communication Rooms pour .NET avec NuGet :

dotnet add package Azure.Communication.Rooms

Prérequis

Vous avez besoin d’un abonnement Azure et d’une ressource Communication Service pour utiliser ce package.

Pour créer un service de communication, vous pouvez utiliser le portail Azure, le Azure PowerShell ou la bibliothèque cliente de gestion .NET.

Concepts clés

RoomsClient fournit les fonctionnalités permettant de créer une salle, de mettre à jour la salle, d’obtenir de la salle, de répertorier des salles, de supprimer une salle, d’ajouter des participants, de mettre à jour des participants, de supprimer des participants et de lister des participants.

Utilisation d’instructions

using Azure.Communication.Rooms

Authentifier le client

Les clients Rooms peuvent être authentifiés à l’aide de la chaîne de connexion acquise à partir d’une ressource de communication Azure dans le portail Azure.

var connectionString = Environment.GetEnvironmentVariable("connection_string") // Find your Communication Services resource in the Azure portal
RoomsClient client = new RoomsClient(connectionString);

Exemples

Créer une salle

Pour créer une salle, appelez la CreateRoom fonction ou CreateRoomAsync à partir de RoomsClient. Les validFromarguments , validUntilet participants sont tous facultatifs. Si validFrom et validUntil ne sont pas fournis, la valeur par défaut pour validFrom est l’heure de date actuelle et la valeur par défaut pour validUntil est validFrom + 180 days. Lors de la définition RoomParticipantde , si le rôle n’est pas spécifié, il le sera Attendee par défaut. La valeur retournée contient Response<CommunicationRoom> les détails de la salle créée, ainsi que les status et les codes d’erreur associés en cas de défaillance.

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

Mettre à jour une salle

Les validFrom propriétés et validUntil d’une salle créée peuvent être mises à jour en appelant la UpdateRoom fonction ou UpdateRoomAsync à partir de RoomsClient.

validUntil = validFrom.AddDays(30);
Response<CommunicationRoom> updateRoomResponse = await roomsClient.UpdateRoomAsync(createdRoomId, validFrom, validUntil);
CommunicationRoom updateCommunicationRoom = updateRoomResponse.Value;

Obtenir une salle créée

Une salle créée peut être récupérée en appelant la GetRoom fonction ou GetRoomAsync à partir de RoomsClient et en transmettant le associé roomId.

Response<CommunicationRoom> getRoomResponse = await roomsClient.GetRoomAsync(createdRoomId);
CommunicationRoom getCommunicationRoom = getRoomResponse.Value;

Obtenir toutes les salles

Toutes les salles valides créées sous une ressource ACS peuvent être récupérées en appelant la GetRooms fonction ou GetRoomsAsync à partir de 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}.");
}

Supprimer le salon

Pour supprimer une salle, appelez la DeleteRoom fonction ou DeleteRoomAsync à partir de RoomsClient.

Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(createdRoomId);

Ajouter ou mettre à jour des participants dans une salle

Pour ajouter de nouveaux participants ou mettre à jour des participants existants, appelez la AddOrUpdateParticipants fonction ou AddOrUpdateParticipantsAsync à partir de 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);

Supprimer des participants dans une salle

Pour supprimer des participants d’une salle, appelez la RemoveParticipants fonction ou RemoveParticipantsAsync à partir de RoomsClient.

List<CommunicationIdentifier> participantsToRemove = new List<CommunicationIdentifier>
{
   communicationUser1,
   communicationUser2
};
Response removeParticipantResponse = await roomsClient.RemoveParticipantsAsync(createdRoomId, participantsToRemove);

Obtenir des participants dans une salle

Pour obtenir tous les participants d’une salle, appelez la GetParticipants fonction ou GetParticipantsAsync à partir de RoomsClient. La valeur retournée est Pageable<RoomParticipant> ou AsyncPageable<RoomParticipant> qui contient la liste paginé des participants.

AsyncPageable<RoomParticipant> allParticipants = roomsClient.GetParticipantsAsync(createdRoomId);
await foreach (RoomParticipant participant in allParticipants)
{
    Console.WriteLine($" Participant with id {participant.CommunicationIdentifier.RawId} is a {participant.Role}");
}

Dépannage

Réponses du service

Un RequestFailedException est levée en tant que réponse de service pour toutes les demandes ayant échoué. L’exception contient des informations sur le code de réponse retourné par le service.

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

Étapes suivantes

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, consultez cla.microsoft.com.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Mettre à jour l’exemple de liens de code une fois que le sdk est publié