Hızlı Başlangıç: Oda kaynağı oluşturma ve yönetme

Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room , bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için roomsdiğer ayrıntıları ve kullanım örneklerini kapsar.

Nesne modeli

Aşağıdaki tabloda nesnelerin ana özellikleri room listelenir:

Veri Akışı Adı Açıklama
roomId Benzersiz room tanımlayıcı.
validFrom en erken bir room kez kullanılabilir.
validUntil Bir'in kullanılabilmesi için en son zaman room .
pstnDialOutEnabled Bir odadaki PSTN numarasını aramayı etkinleştirin veya devre dışı bırakın.
participants katılımcılarının roomlistesi. olarak CommunicationUserIdentifierbelirtilir.
roleType Oda katılımcısının rolü. , Attendeeveya ConsumerolabilirPresenter.

Önkoşullar

Ayarlama

Uzantıyı ekleme

komutunu kullanarak Azure CLI için Azure İletişim Hizmetleri uzantısını az extension ekleyin.

az extension add --name communication

Azure CLI'da oturum açma

Azure CLI'da oturum açmanız gerekir. Terminalden komutunu çalıştırarak az login ve kimlik bilgilerinizi sağlayarak oturum açabilirsiniz.

bağlantı dizesi bir ortam değişkeninde depolama

ortam değişkeniniAZURE_COMMUNICATION_CONNECTION_STRING, bağlantı dizesi geçirmek için kullanmak zorunda kalmadan Azure CLI anahtarları işlemlerini kullanacak --connection_string şekilde yapılandırabilirsiniz. Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin. değerini gerçek bağlantı dizesi ile değiştirin<connectionString>.

setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

Operations

Oda oluşturma

rooms create Oda oluşturmak için komutunu kullanın.

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>"
  • Katılımcı türünü sunucu-katılımcı, tüketici-katılımcı veya katılımcı-katılımcı olarak belirtmek için isteğe bağlı olarak kullanın <participantId> . Bir değer belirtmezseniz, varsayılan değer boş olur.
  • değerini Azure İletişim Hizmetleri bağlantı dizesi ile değiştirin<connection-string>.
  • <valid-from> Odanın katılma için açık olduğu zaman damgasını belirtmek için isteğe bağlı olarak kullanın, ISO8601 biçimde, örneğin: 2022-07-14T10:21.
  • İsteğe bağlı olarak, odanın artık birleştirilemeyecek zaman damgasını belirtmek için ISO8601 biçimde kullanın <valid-until> . Örneğin: 2022-07-14T10:21.
  • Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bu bayrağı ("True" veya "False") ayarlayarak isteğe bağlı olarak kullanın <pstn-dial-out-enabled> . Varsayılan olarak, oda oluşturulurken bu bayrak "False" olarak ayarlanır.

bağlantı dizesi yukarıda belirtildiği gibi ortam değişkenlerinde depoladıysanız, bunları komuta geçirmeniz gerekmez.

az communication rooms create 

Bir oda için PSTN dışarı arama özelliğini etkinleştirme

PSTN arama sırasında parametresi "True" olarak tanımlanarak --pstn-dial-out-enabled etkinleştirilebilirrooms create. Bu özellik parametresi belirtilerek --pstn-dial-out-enabled sırasında rooms update da değiştirilebilir.

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>"
  • Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bayrağı ("True" veya "False") ayarlayın <pstn-dial-out-enabled> .

Odaları alın

komutu rooms get , mevcut bir odanın özniteliklerini döndürür.

az communication rooms get --room "<roomId>" 
  • yerine oda kimliğinizi girin <roomId> .

Odanın zaman çerçevesini güncelleştirme

Bir odanın zaman damgasını güncelleştirebilirsiniz. Komutu çağırmadan room update önce geçerli bir zaman çerçevesine sahip yeni bir oda edindiğinizden emin olun.

az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
  • yerine <valid-from> ISO8601 biçimdeki zaman damgasını (örn. 2022-07-14T10:21) yazın. ile --valid-untilbirlikte kullanılmalıdır.
  • yerine <valid-until> ISO8601 biçimdeki zaman damgasını (örn. 2022-07-14T10:21) yazın. ile --valid-frombirlikte kullanılmalıdır.
  • Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bu bayrağı ayarlayın ("True" veya "False") değerini değiştirin <pstn-dial-out-enabled> . ile --pstn-dial-out-enabledbirlikte kullanılmalıdır.
  • yerine oda kimliğinizi girin <roomId> .

Tüm etkin odaları listeleme

komut, rooms list Azure İletişim Hizmetleri kaynağınıza ait tüm etkin odaları döndürür.

az communication rooms list

Yeni katılımcı ekleme veya mevcut katılımcıları güncelleştirme

Oda oluşturduğunuzda, yeni katılımcı ekleyerek veya mevcut katılımcıyı güncelleştirerek odayı güncelleştirebilirsiniz. Komutu çağırmadan room participant add-or-update önce yeni bir kullanıcı edindiğinizden emin olun.

komutuyla identity user create participantIdtanımlanan yeni bir katılımcı oluşturmak için komutunu kullanın.

az communication identity user create

Odaya katılımcı olarak bir kullanıcı ekleyin.

az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
  • değerini katılımcı kimliğiniz ile değiştirin <participantId> . <participantId> odada yoksa, katılımcı odaya katılımcı rolü olarak eklenir. Aksi takdirde, katılımcının rolü bir katılımcı rolüne güncelleştirilir.
  • yerine oda kimliğinizi girin <roomId> .

Odadaki katılımcıların listesini alma

az communication rooms participant get --room "<roomId>"
  • yerine oda kimliğinizi girin <roomId> .

Katılımcıyı odadan kaldırma

kullanarak rooms participant -removebir oda katılımcısını odadan kaldırabilirsiniz.

az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
  • yerine oda kimliğinizi girin <roomId> .
  • komutunu <participant3> <participant2>, daha önce elde edilen kullanıcı kimliklerinizle komutunu çalıştırarak identity user createdeğiştirin<participant1>.

Odayı silme

Oda oluşturmaya benzer şekilde, bir odayı da silebilirsiniz.

Mevcut odayı silmek için komutunu kullanın room delete .

az communication rooms delete --room "<roomId>"
  • yerine oda kimliğinizi girin <roomId> .

Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room , bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için roomsdiğer ayrıntıları ve kullanım örneklerini kapsar.

Önkoşullar

Örnek kod

GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.

Ayarlama

Yeni bir C# uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı RoomsQuickstartyeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new. Bu komut, tek bir kaynak dosyayla basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs.

dotnet new console -o RoomsQuickstart

Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve komutunu kullanarak dotnet build uygulamanızı derleyin.

cd RoomsQuickstart
dotnet build

paketini yükleyin

[NuGet][https://www.nuget.org/] ile .NET için Azure İletişim Odaları istemci kitaplığını yükleyin:

dotnet add package Azure.Communication.Rooms

.NET sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.

Uygulama çerçevesini ayarlama

Program.cs Dosyasına aşağıdaki kodu ekleyerek gerekli ad alanlarını içeri aktarın ve temel program yapısını oluşturun.


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

Oda istemcisi başlatma

Yeni RoomsClient oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.


// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);

Oda oluşturma

Oda katılımcılarını ayarlama

Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClientoluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.

kullanmak CommunicationIdentityClientiçin aşağıdaki paketi yükleyin:

dotnet add package Azure.Communication.Identity

Ayrıca, dosyanızın Program.cs üst kısmındaki paketin ad alanını içeri aktarın:

using Azure.Communication.Identity;

Şimdi, CommunicationIdentityClient başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:

// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();

Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:

List<RoomParticipant> participants = new List<RoomParticipant>()
{
    new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
    new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};

Odayı başlatma

Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants yeni room bir oluşturun:

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

Sunucu tarafı varlıklar olduğundan rooms , tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId getirmek isteyebilirsiniz. Bir room nesnenin roomId özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.

Bir oda için PSTN dışarı arama özelliğini etkinleştirme

Her room birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled etkinleştirilebilirroom. Bu özellik, parametresi için bir room güncelleştirme isteği pstnDialOutEnabled düzenlenerek için de değiştirilebilir.

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

Mevcut bir odanın özelliklerini alma

adresine başvurarak roomIdmevcut room bir öğenin ayrıntılarını alın:


// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);

Bir odanın ömrünü güncelleştirme

ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room öğesinin ValidFrom ValidUntil ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.


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

Tüm etkin odaları listeleme

Tüm etkin odaları almak için istemcide GetRoomsAsync kullanıma sunulan yöntemini kullanın.


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

Yeni katılımcı ekleme veya mevcut katılımcıları güncelleştirme

öğesine yeni katılımcılar eklemek için roomistemcide AddParticipantsAsync kullanıma sunulan yöntemini kullanın.


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

Bir çağrıya eklenen katılımcılar aramalara room katılmaya uygun hale gelir. Güncelleştirilen katılımcılar aramada yenilerini role görür.

Katılımcı listesini alma

var olan room bir katılımcının katılımcı listesini almak için adresine başvurun 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()}");
}

Katılımcıları kaldırma

Bir katılımcıyı uygulamasından room kaldırmak ve erişimini iptal etmek için yöntemini kullanın 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");

Odayı sil

Mevcut roombir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.


// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);

Kodu çalıştırma

Kodu çalıştırmak için dosyanızın Program.cs bulunduğu dizinde olduğunuzdan emin olun.


dotnet run

Beklenen çıkış, tamamlanan her eylemi açıklar:


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

Başvuru belgeleri

.NET SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.

Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room , bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için roomsdiğer ayrıntıları ve kullanım örneklerini kapsar.

Önkoşullar

Örnek kod

GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.

Ayarlama

Yeni java uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı rooms-quickstartyeni bir konsol uygulaması oluşturmak için komutunu kullanınmvn. Bu komut, tek bir kaynak dosyayla basit bir "Merhaba Dünya" Java projesi oluşturur: App.java.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Paketi dahil et

Java sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.

BOM dosyasını dahil et

Kitaplığın azure-sdk-bom Genel Kullanılabilirlik (GA) sürümüne bağımlılık almak için projenize öğesini ekleyin. Aşağıdaki kod parçacığında {bom_version_to_target} yer tutucusunun yerine sürüm numarasını yazın. Ürün reçetesi hakkında daha fazla bilgi edinmek için bkz . Azure SDK ÜRÜN REÇETESI benioku.

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

ve ardından doğrudan bağımlılığı sürüm etiketi olmadan bağımlılıklar bölümüne ekleyin.

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-rooms</artifactId>
  </dependency>
</dependencies>

Doğrudan bağımlılığı dahil et

Kitaplığın ürün reçetesinde bulunmayan belirli bir sürümüne bağımlılığı almak istiyorsanız, doğrudan bağımlılığı projenize aşağıdaki gibi ekleyin.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-communication-rooms</artifactId>
  <version>1.0.0-beta.1</version>
</dependency>

Uygulama çerçevesini ayarlama

/src/main/java/com/communication/quickstart dizinine App.java gidin ve dosyayı açın. Şu kodu ekleyin:


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

Oda istemcisi başlatma

Yeni RoomsClient oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.


// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();

Oda oluşturma

Oda katılımcılarını ayarlama

Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClientoluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.

kullanmak CommunicationIdentityClientiçin aşağıdaki paketi ekleyin:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
</dependency>

Paketi dosyanızın App.java en üstünde içeri aktarın:

import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;

Şimdi, CommunicationIdentityClient başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .connectionString(connectionString)
    .buildClient();

CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();

Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:

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

Odayı başlatma

Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak roomParticipants yeni room bir oluşturun:

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

Sunucu tarafı varlıklar olduğundan rooms , tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId getirmek isteyebilirsiniz. Bir room nesnenin roomId özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.

Bir oda için PSTN dışarı arama özelliğini etkinleştirme

Her room birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled etkinleştirilebilirroom. Bu özellik, parametresi için bir room güncelleştirme isteği pstnDialOutEnabled düzenlenerek için de değiştirilebilir.

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

Mevcut bir odanın özelliklerini alma

adresine başvurarak roomIdmevcut room bir öğenin ayrıntılarını alın:


// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);

System.out.println("Retrieved room with id: " + roomResult.getRoomId());

Bir odanın ömrünü güncelleştirme

ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room öğesinin ValidFrom ValidUntil ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.


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

Katılımcı ekleme veya güncelleştirme

bir öğesine katılımcı eklemek veya güncelleştirmek için roomistemcide addOrUpdateParticipants kullanıma sunulan yöntemini kullanın.


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

Bir çağrıya eklenen katılımcılar aramalara room katılmaya uygun hale gelir.

Katılımcı listesini alma

var olan room bir katılımcının katılımcı listesini almak için adresine başvurun 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);
}

Katılımcıları kaldırma

Bir katılımcıyı uygulamasından room kaldırmak ve erişimini iptal etmek için yöntemini kullanın 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");

Tüm etkin odaları listeleme

Azure İletişim Hizmetleri kaynağınızın altındaki tüm etkinleri rooms alın.

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

Odayı sil

Mevcut roombir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.


// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);

Kodu çalıştırma

Kodu çalıştırmak için dosyayı içeren pom.xml dizine gidin ve programı derleyin.


mvn compile

Ardından paketi derleyin:


mvn package

Uygulamayı yürütür.

mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"

Beklenen çıkış, tamamlanan her eylemi açıklar:


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

Başvuru belgeleri

Java SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.

Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room , bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için roomsdiğer ayrıntıları ve kullanım örneklerini kapsar.

Önkoşullar

Örnek kod

GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.

Ayarlama

Yeni Python uygulaması oluşturma

Terminal veya konsol penceresinde uygulamanız için yeni bir klasör oluşturun ve bu klasöre gidin.

mkdir acs-rooms-quickstart
cd acs-rooms-quickstart

paketini yükleyin

Python sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.

Konsol isteminden rooms.py dosyasını içeren dizine gidin ve aşağıdaki komutu yürütebilirsiniz:

pip install azure-communication-rooms

Uygulama çerçevesini ayarlama

adlı rooms-quickstart.py yeni bir dosya oluşturun ve temel program yapısını ekleyin.

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()

Oda istemcisi başlatma

Yeni RoomsClient oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.

#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)

Oda oluşturma

Oda katılımcılarını ayarlama

Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClientoluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.

kullanmak CommunicationIdentityClientiçin aşağıdaki paketi yükleyin:

pip install azure-communication-identity

Ayrıca, dosyanızın rooms-quickstart.py üst kısmındaki paketin ad alanını içeri aktarın:

from azure.communication.identity import (
    CommunicationIdentityClient
)

Şimdi, CommunicationIdentityClient başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:

# 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()

Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:

participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]

Odayı başlatma

Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants yeni room bir oluşturun:

# 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)

Sunucu tarafı varlıklar olduğundan rooms , tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale room.id getirmek isteyebilirsiniz. Bir room nesnenin id özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.

Bir oda için PSTN dışarı arama özelliğini etkinleştirme

Her room birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstn_dial_out_enabled etkinleştirilebilirroom. Bu özellik, parametresi için bir room güncelleştirme isteği pstn_dial_out_enabled düzenlenerek için de değiştirilebilir.

# 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)

Mevcut bir odanın özelliklerini alma

adresine başvurarak idmevcut room bir öğenin ayrıntılarını alın:

# 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)

Bir odanın ömrünü güncelleştirme

ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room öğesinin valid_from valid_until ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.

# 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)

Tüm etkin odaları listeleme

Kaynağınız altında oluşturulan tüm etkin odaları almak için istemcide list_rooms gösterilen yöntemini kullanın.

# 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)

Katılımcı ekleme veya güncelleştirme

içinde yeni katılımcılar eklemek veya mevcut katılımcıları roomgüncelleştirmek için istemcide add_or_update_participants gösterilen yöntemini kullanın.

# 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)

Bir çağrıya eklenen katılımcılar aramalara room katılmaya uygun hale gelir.

Odadaki katılımcıları listeleme

var olan room bir katılımcının katılımcı listesini almak için adresine başvurun 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)

Katılımcıları kaldırma

Bir katılımcıyı uygulamasından room kaldırmak ve erişimini iptal etmek için yöntemini kullanın 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)

Odayı sil

Mevcut roombir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.

# Delete Room

rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)

Kodu çalıştırma

Kodu çalıştırmak için dosyanızın rooms-quickstart.py bulunduğu dizinde olduğunuzdan emin olun.


python rooms-quickstart.py

Beklenen çıkış, tamamlanan her eylemi açıklar:


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

Başvuru belgeleri

Python SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.

Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room , bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için roomsdiğer ayrıntıları ve kullanım örneklerini kapsar.

Önkoşullar

Örnek kod

GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.

Ayarlama

Yeni web uygulaması oluşturma

Terminal veya konsol penceresinde uygulamanız için yeni bir klasör oluşturun ve bu klasöre gidin.

mkdir acs-rooms-quickstart && cd acs-rooms-quickstart

Varsayılan ayarlarla bir package.json dosyası oluşturmak için komutunu çalıştırın npm init .

npm init -y

Bu hızlı başlangıcın kodunun eklendiği yeni bir dosya index.js oluşturun.

Paketleri yükleme

JavaScript sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.

npm install JavaScript için aşağıdaki İletişim Hizmetleri SDK'larını yüklemek için komutunu kullanın.

npm install @azure/communication-rooms --save

Uygulama çerçevesini ayarlama

index.js dosyasına aşağıdaki kodu ekleyin. İşlevde hızlı başlangıcın main kodunu ekleyeceğiz.

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

Oda istemcisi başlatma

Yeni RoomsClient oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.

İşlevin içine index.js main aşağıdaki kodu ekleyin.

const connectionString =
    process.env["COMMUNICATION_CONNECTION_STRING"] ||
    "endpoint=https://<resource-name>.communication.azure.com/;<access-key>";

// create RoomsClient
const roomsClient = new RoomsClient(connectionString);

Oda oluşturma

Oda katılımcılarını ayarlama

Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClientoluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.

CommunicationIdentityClient'ı kullanmak için aşağıdaki npm paketini yükleyin:

npm install @azure/communication-identity --save

Ayrıca, dosyanızın index.js en üstüne aşağıdaki gerekli paketi ekleyin:

const { CommunicationIdentityClient } = require('@azure/communication-identity');

Şimdi, CommunicationIdentityClient başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:

// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);

Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:

const participants = [
  {
      id: user1.user,
      role: "Presenter",
  },
  {
    id: user2.user,
    role: "Consumer",
  }
]

Odayı başlatma

Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants yeni room bir oluşturun:

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

Sunucu tarafı varlıklar olduğundan rooms , tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId getirmek isteyebilirsiniz. Bir room nesnenin roomId özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.

Bir oda için PSTN dışarı arama özelliğini etkinleştirme

Her room birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled etkinleştirilebilirroom. Bu özellik, parametresi için bir room güncelleştirme isteği pstnDialOutEnabled düzenlenerek için de değiştirilebilir.

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

Mevcut bir odanın özelliklerini alma

adresine başvurarak roomIdmevcut room bir öğenin ayrıntılarını alın:

// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);

Bir odanın ömrünü güncelleştirme

ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room öğesinin validFrom validUntil ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.

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

Oda listesini alma

Yöntemini kullanarak listRooms oda listenizi alın:

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

Katılımcı ekleme veya güncelleştirme

öğesine yeni katılımcılar eklemek için roomistemcide addOrUpdateParticipants kullanıma sunulan yöntemini kullanın. Bu yöntem, odada zaten varsa katılımcıyı da güncelleştirir.

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

Bir çağrıya eklenen katılımcılar aramalara room katılmaya uygun hale gelir.

Katılımcı listesini alma

var olan room bir katılımcının katılımcı listesini almak için adresine başvurun 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);
}

Katılımcıları kaldırma

Bir katılımcıyı uygulamasından room kaldırmak ve erişimini iptal etmek için yöntemini kullanın 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");

Odayı sil

Mevcut roombir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.

// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)

Kodu çalıştırma

Kodu çalıştırmak için dosyanızın index.js bulunduğu dizinde olduğunuzdan emin olun.

node index.js

Beklenen çıkış, tamamlanan her eylemi açıklar:

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

Başvuru belgeleri

JavaScript SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.

Sonraki adımlar

Odayı oluşturduktan ve yapılandırdıktan sonra odalar çağrısına katılmayı öğrenebilirsiniz.

Bu bölümde şunların nasıl yapılacağını öğrendiniz:

  • Yeni oda oluşturma
  • Bir odanın özelliklerini alma
  • Odanın özelliklerini güncelleştirme
  • Odayı silme

Ayrıca şunları da isteyebilirsiniz: