Aracılığıyla paylaş


İletişim Hizmetleri çağrı SDK'sı ile Teams kullanıcıları için çağrıları yönetme

Azure İletişim Hizmetleri SDKS ile çağrıları yönetmeyi öğrenin. Arama yapmayı, katılımcılarını ve özelliklerini yönetmeyi öğreneceğiz.

Önkoşullar

SDK’yı yükleyin

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

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Gerekli nesneleri başlatma

Çağrı yığınını başlatmak için bir CallClient örnek oluşturun. Çağrı SDK'sının günlüğe kaydedilmesini AzureLogger örneği ve setLogLevel yöntemiyle yapılandırabilirsiniz. yöntemiyle getDeviceManagerişletim sistemi için öğesine erişebilirsinizdeviceManager.

Ardından yöntemini createTeamsCallAgent kullanarak Bir Teams kullanıcısı için gelen ve giden çağrıları yönetecek bir örneği zaman uyumsuz olarak TeamsCallAgent oluşturun. yöntemi, Teams kullanıcısı için erişim belirtecini temsil eden bir bağımsız değişken olarak alırCommunicationTokenCredential.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to wherever desired. To console, file, buffer, REST API, etc...
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const teamsCallAgent = await callClient.createTeamsCallAgent(tokenCredential);
const deviceManager = await callClient.getDeviceManager();

Arama yerleştirme

üzerinde teamsCallAgentAPI ile startCall zaman uyumlu bire bir veya grup çağrısı başlatın. Çağrının hedefini tanımlamak için veya parametresi olarak sağlayabilirsiniz MicrosoftTeamsUserIdentifier PhoneNumberIdentifier . yöntemi, çağrı olaylarına abone olmanıza olanak tanıyan örneği döndürür TeamsCall .

Not

ile teamsCallAgent bir grup araması başlatmak için yöntemi çağırırken startCall sohbet threadId gerekir. Oluşturulan TeamsCall örnekte bu iş parçacığını yakalayan özellik threadId var. İletişim Hizmetleri Arama SDK'sı, katılımcıları sohbette tutmaz ve arama listesi eşitlenmez. Microsft, geliştiricilerin en iyi kullanıcı deneyimi için listeyi eşitlenmiş durumda tutmalarını önerir. Sohbet yazışmasını yönetmeyi öğrenin.

Teams kullanıcısına bire bir Seslendirme IP'sini (VoIP) başlatın:

const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const oneToOneCall = teamsCallAgent.startCall(userCallee);

E.164 telefon numarasına bire bir telefon araması başlatın:

const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = teamsCallAgent.startCall(phoneCallee );

Voice-over IP (VoIP) ve telefon numarası ile Teams kullanıcısına grup araması başlatın:

const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' }
const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>'};
const groupCall = teamsCallAgent.startCall([userCallee, phoneCallee], { threadId: '<THREAD_ID>' });

Aramaya katılma

Teams toplantısına katılma

Teams toplantılarına örnekteki yöntemiyle join teamsCallAgent katılabilirsiniz. Teams kullanıcıları, bir TeamsMeetingLinkLocator, TeamsMeetingCoordinatesLocatorveya TeamsMeetingIdLocatorsağlayarak Teams toplantısına katılabilir.

Toplantı URL'si ile Teams toplantısına katılın:

const meetingCall = teamsCallAgent.join({ meetingLink: '<MEETING_LINK>' });

İş parçacığı kimliği, düzenleyici kimliği, kiracı kimliği ve ileti kimliği birleşimiyle Teams toplantısına katılın:

const meetingCall = teamsCallAgent.join({ threadId: '<THREAD_ID>', organizerId: '<ORGANIZER_ID>', tenantId: '<TENANT_ID>', messageId: '<MESSAGE_ID>' });

Toplantı kodu ve geçiş koduyla Teams toplantısına katılın:

const meetingCall = teamsCallAgent.join({ meetingId: '<MEETING_CODE>', passcode: '<PASSCODE>'});

Toplantı kimliği ve geçiş koduyla Teams toplantısına katılın:

Geliştiriciler, katılımcıları teams toplantısına birden çok yolla bağlayabilir. Bunun bir yolu, kişilerin bir cihazdan veya uygulamadan davet edildikleri Teams toplantısına katılmasını sağlayan bir toplantı kimliği ve geçiş kodu kullanmaktır. Toplantıya katılmak için her zaman hem toplantı kimliğini hem de geçiş kodunu sağlamanız gerekir. Geçiş kodu büyük/küçük harfe duyarlıdır.

  • Toplantı kimliğinin ve geçiş kodunun biçimi:

    • Toplantı kimliği: 12 basamak.
    • Geçiş kodu: 6 karakter
  • Toplantı kimliğini ve geçiş kodunu ne sıklıkta yenilemeniz gerekir?

    • Toplantı kimliği ve geçiş kodu oluşturulduktan sonra değişmez. Geliştiricilerin ikisini de yenilemesi gerekmez.
    • Teams toplantı düzenleyicisi, toplantı kimliğini ve geçiş kodunu yeniden oluşturamaz.
  • Bir kişinin URL veya toplantı kimliği ve geçiş kodu aracılığıyla katılması durumunda Teams toplantı deneyiminde herhangi bir fark var mı?

    • Hayır, katılımcılar Teams toplantısı URL'sini veya toplantı kimliğini ve geçiş kodunu kullanarak teams toplantısına katılırlarsa aynı deneyime sahip olur.
  • Geliştiriciler geçiş kodlarını nasıl depolamalı ve yönetmelidir?

    • Toplantı kimliği ve geçiş kodu, toplantıya katılma koordinatlarıdır. Geliştiriciler bunları şifrelenmesi gereken gizli diziler olarak ele almalıdır ve depolanırsa erişim denetimli bir ortamda olduklarından emin olun.
    • Koordinatlar açığa çıkarsa, herkes toplantıya katılabilir ve toplantıdaki herkesin deneyimini mahvedebilir.
  • Toplantı kimliği ve geçiş kodu nasıl alınabilir?

    1. Graph API: Kaynak hakkındaki onlineMeeting bilgileri almak ve özelliğindeki joinMeetingIdSettingsnesneyi denetlemek için Graph API'sini kullanın.
    2. Teams: Teams uygulamanızda uygulamaya gidin Calendar ve toplantının ayrıntılarını açın. Çevrimiçi toplantılar, toplantının tanımında toplantı kimliğine ve geçiş koduna sahiptir.
    3. Outlook: Toplantı kimliğini ve geçiş kodunu takvim olaylarında veya e-posta toplantı davetlerinde bulabilirsiniz.
    4. Geliştiriciler, çağrı SDK'sı aracılığıyla toplantı kimliğini ve geçiş kodunu alamaz veya ayrıntılı konsol günlüklerinden alamaz.
  • Toplantı kimliğinin ve geçiş kodunun doğru olduğunu nasıl doğrulayabilirim?

Teams gelen aramasını alma

Teams kullanıcısına incomingCall gelen aramaları kaydetmek için örnekteki etkinliğe teamsCallAgent abone olabilirsiniz. Olay, size veya reject gelen çağrıya accept izin veren örneğe sahip TeamsIncomingCall bir teamsIncomingCall özelliğe sahiptir.

const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
    const incomingCall = args.teamsIncomingCall;
    // Get Teams incoming call ID
    const incomingCallId = incomingCall.id;
    // Get information about this Call. This API is provided as a preview for developers
    // and may change based on feedback that we receive. Do not use this API in a production environment.
    // To use this API please use 'beta' release of Azure Communication Services Calling Web SDK
    const callInfo = incomingCall.info;
    // Get information about caller
    const callerInfo = incomingCall.callerInfo
    // Accept the call
    const teamsCall = await incomingCall.accept();
    // Reject the call
    incomingCall.reject();
    // Subscribe to callEnded event and get the call end reason
    incomingCall.on('callEnded', args => {
        console.log(args.callEndReason);
    });
    // callEndReason is also a property of IncomingCall
    var callEndReason = incomingCall.callEndReason;
};
teamsCallAgent.on('incomingCall', incomingCallHandler);

Video etkinleştirme ve devre dışı bırakma

Örnekteki özelliğinden localVideoStreams TeamsCall yerel video akışı koleksiyonunuzu alabilirsiniz. Etkinleştirilirse, koleksiyon bir ekran paylaşım akışı ve kamera video akışları içerir. özelliğini TeamsCallinceleyerek uzak katılımcıların video akışlarını alabilirsiniz.remoteParticipants burada her katılımcı özelliğinde videoStreamsbir video akışları koleksiyonuna sahiptir.

Sesi kapatma ve açma

Teams kullanıcılarının sesini yerel olarak kapatmak veya açmak için örnekte zaman uyumsuz API'ler TeamsCall kullanabilirsiniz.mute unmute Yerel sessiz, sesin diğer katılımcılara gönderilmesini engeller.

//mute local device
await call.mute();
//unmute local device
await call.unmute();

Diğer katılımcıların sesini kapatma

Diğer tüm katılımcıların sesini kapatmak veya belirli bir katılımcının sesini kapatmak için, aramada ve mute uzak katılımcıda zaman uyumsuz API'leri muteAllRemoteParticipants kullanabilirsiniz:

//mute all participants except yourself
await call.muteAllRemoteParticipants();

//mute a specific participant
await call.remoteParticipants[0].mute();

Not

Bu API, geliştiriciler için önizleme olarak sunulmuştur ve alacağımız geri bildirimler doğrultusunda değiştirilebilir. Bu API’yi üretim ortamında kullanmayın. Bu API'yi kullanmak için lütfen Azure İletişim Hizmetleri Arama Web SDK'sının 'beta' sürümünü kullanın

Uzak katılımcıları yönetme

Diğer çağrı katılımcıları, örneğinde TeamsCall özelliğinin remoteParticipantsaltında bulunur. Bu bir nesne koleksiyonu.RemoteParticipant Aramadaki diğer katılımcıları listeleyebilir, ekleyebilir ve kaldırabilirsiniz.

Not

Katılımcı yöntemi eklemek için sohbet threadIdgerekir. İletişim Hizmetleri Arama SDK'sı, katılımcıları sohbette tutmaz ve arama listesi eşitlenmez. Microsft, geliştiricilerin en iyi kullanıcı deneyimi için listeyi eşitlenmiş durumda tutmalarını önerir. Sohbet yazışmasını yönetmeyi öğrenin.

nesnesinde TeamsCallyöntemini addParticipant çağırarak Teams çağrısına veya Teams toplantısına yeni Teams kullanıcı veya telefon numarası ekleyebilirsiniz. yöntemi, tanımlayıcıları MicrosoftTeamsUserIdentifier veya PhoneNumberIdentifier giriş olarak kabul eder ve örneği zaman uyumlu olarak döndürür ve örnekte RemoteParticipant olayı remoteParticipantsUpdated TeamsCall tetikler.

Bir katılımcıyı Teams çağrısından veya Teams toplantısından kaldırmak için örnekteki yöntemi TeamsCall zaman uyumsuz olarak çağırabilirsinizremoveParticipant. yöntemi, tanımlayıcıları veya PhoneNumberIdentifier giriş olarak kabul ederMicrosoftTeamsUserIdentifier. yöntemi koleksiyondan remoteParticipants kaldırıldığında RemoteParticipant çözümlenir ve örnekteki TeamsCall olay remoteParticipantsUpdated tetiklenir.

Diğer arama katılımcılarını listeleyin:

const participants = call.remoteParticipants; // [remoteParticipant, remoteParticipant....]

Teams aramasına veya Teams toplantısına Teams kullanıcı ve telefon numarası ekleyin:

const teamsUser = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const phoneUser = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
const remoteParticipant = call.addParticipant(teamsUser , { threadId: '<THREAD_ID>' });
const remoteParticipant2 = call.addParticipant(phoneUser , { threadId: '<THREAD_ID>' });

Teams aramasından veya Teams toplantısından Teams kullanıcı ve telefon numarasını kaldırın:

const teamsUser = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const phoneUser = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
await call.removeParticipant(teamsUser);
await call.removeParticipant(phoneUser);

Uzak katılımcılar

Uzak katılımcılar, devam eden Teams çağrısına veya Teams toplantısına bağlı bir uç noktayı temsil eder. sınıfı remoteParticipant aşağıdaki özellik ve koleksiyon kümesine sahiptir:

  • identifier: Şu tanımlayıcılardan birini döndürür: CommunicationUserIdentifier, MicrosoftTeamsUserIdentifier, PhoneNumberIdentifierveya UnknownIdentifier.
const identifier = remoteParticipant.identifier;
  • state: Uzak katılımcının string durumunu temsil eden bir döndürür. Durum aşağıdaki değerlerden birine sahip olabilir:
Durum değeri Ne zaman Açıklama
Idle Başlangıç durumu Bu, katılımcının ilk durumudur
Connecting Sonra Idle Katılımcı aramaya bağlanırken geçiş durumu.
Ringing Sonra Connecting Katılımcı bir incomingCall bildirim aldı veya Teams istemcisi çaldırılıyor
Connected , Connecting, EarlyMediaveya sonrasında RingingInLobby Katılımcı arama davetini kabul etti veya aramaya katıldı. Medya katılımcıya doğru akar.
Hold Sonra Connected Aramadaki katılımcı beklemede.
EarlyMedia Sonra Connecting Bir katılımcı aramaya bağlanmadan önce medya oynatılır
InLobby ' nin Connecting ardından RingingveyaEarlyMedia Katılımcı Teams toplantı lobisindedir.
Disconnected Son durum Katılımcının aramayla bağlantısı kesildi. Uzak katılımcı ağ bağlantısını kaybederse durumu iki dakika sonra olarak Disconnected değişir.

Bire bir veya grup çağrılarındaki uzak katılımcıların durumları: Bire bir veya grup çağrıları için uzak katılımcının çağrı durumlarının diyagramı.

Teams toplantılarındaki uzak katılımcıların durumları: Teams toplantıları için uzak katılımcının arama durumlarının diyagramı.

const state = remoteParticipant.state;
  • callEndReason: Çağrının sona erme nedeni hakkında ek bilgi içeren bir nesne döndürür. Özellik code , nedenle ilişkili bir sayı döndürür ve subCode kodla ve nedenle ilişkili bir sayı döndürür. Hata kodları hakkında daha fazla bilgi için bkz . Arama sonu yanıt kodlarıyla ilgili sorunları giderme.
const callEndReason = remoteParticipant.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode
  • isMuted: Yerel sessiz durumunu temsil eden değeri döndürür Boolean .
const isMuted = remoteParticipant.isMuted;
  • isSpeaking: Gönderilmekte olan sesin durumunu temsil eden değeri döndürür Boolean .
const isSpeaking = remoteParticipant.isSpeaking;
  • videoStreams: Katılımcılar tarafından gönderilen nesnelerin koleksiyonunu RemoteVideoStream döndürür.
const videoStreams = remoteParticipant.videoStreams; // [RemoteVideoStream, ...]
  • displayName: Temsil eden bir string görünen ad döndürür. İletişim Hizmetleri çağrı SDK'sı, Teams kullanıcıları için bu değeri ayarlamaz.
const displayName = remoteParticipant.displayName;

Call

  • id: Benzersiz bir çağrı tanımlayıcısını temsil eden bir dize döndürür.
const callId = call.id;

info: Arama hakkındaki bilgileri döndürür:

Not

Bu API, geliştiriciler için önizleme olarak sunulmuştur ve alacağımız geri bildirimler doğrultusunda değiştirilebilir. Bu API’yi üretim ortamında kullanmayın. Bu API'yi kullanmak için lütfen Azure İletişim Hizmetleri Arama Web SDK'sının 'beta' sürümünü kullanın

info: Çağrı hakkında bilgi içeren nesneyi döndürür. özelliği threadId , Teams istemcisinde gösterilen sohbetin yazışma kimliğini temsil eden bir dizedir.

const callInfo = call.info;
const threadId = call.info.threadId;

remoteParticipants: Teams çağrısındaki veya Teams toplantısındaki diğer katılımcıları temsil eden bir nesne koleksiyonu remoteParticipant döndürür.

const remoteParticipants = call.remoteParticipants;

callerInfo: Gelen çağrılar CallerInfo için nesneyi döndürür. özelliği identifier aşağıdaki nesnelerden CommunicationUserIdentifierbiri olabilir: , MicrosoftTeamsUserIdentifier, PhoneNumberIdentifierveya UnknownIdentifier. özelliği displayName , ayarlanırsa görüntülenecek adı temsil eden bir dizedir.

const callerIdentity = call.callerInfo.identifier;
const callerIdentity = call.callerInfo.displayName;

state: Çağrının durumunu temsil eden bir dize döndürür. özelliği aşağıdaki değerlerden birine sahip olabilir:

Durum değeri Ne zaman Açıklama
None Başlangıç durumu Çağrının ilk durumu.
Connecting Sonra None Teams araması veya Teams toplantısının yerleştirildiği, katıldığı veya kabul edildiği durum.
Ringing Sonra Connecting Uzak katılımcı olayı aldı incomingCall veya Teams istemcisi çaldırılıyor.
EarlyMedia Veya sonrasında RingingConnecting Arama bağlanmadan önce medya oynatılır.
Connected Ringing, , EarlyMedia, InLobbyLocalHoldve sonrasındaRemoteHold Arama bağlandı. Yerel uç noktalar ve uzak katılımcılar arasında medya akışı var.
LocalHold Sonra Connected Arama yerel bir katılımcı tarafından beklemeye alındı. Yerel uç nokta ile uzak katılımcılar arasında hiçbir medya akışı yok.
RemoteHold Sonra Connected Arama uzak bir katılımcı tarafından beklemeye alındı. Yerel uç nokta ile uzak katılımcılar arasında hiçbir medya akışı yok.
InLobby Veya sonrasında RingingConnecting Uzak katılımcı Teams toplantı lobisindedir. Yerel uç nokta ile uzak katılımcılar arasında hiçbir medya akışı yok.
Disconnecting Herhangi bir durumdan sonra Çağrıdan önceki geçiş durumu bir Disconnected duruma gider.
Disconnected Son durum Aramanın son durumu. Ağ bağlantısı kesilirse, durum iki dakika sonra olarak Disconnected değişir.

Bire bir veya grup çağrıları için durumlar: Bire bir veya grup çağrıları için çağrı durumlarını içeren diyagram.

Teams toplantıları için durumlar: Teams toplantıları için çağrı durumlarını içeren diyagram.

const callState = call.state;

callEndReason: Çağrının sona ermiş olduğu hakkında ek bilgi içeren nesneyi CallEndReason döndürür. özelliği code , nedeni ile ilişkilendirilmiş bir sayı döndürür ve subCode kodla ve nedenle ilişkilendirilmiş bir sayı döndürür. Hata kodları hakkında daha fazla bilgi için bkz . Arama sonu yanıt kodlarıyla ilgili sorunları giderme.

const callEndReason = call.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode

direction: Çağrının yönünü temsil eden bir string döndürür. özelliği şu değerlerden birine sahip olabilir: "Gelen' veya Outgoing.

const isIncoming = call.direction == 'Incoming';
const isOutgoing = call.direction == 'Outgoing';

isMuted: Yerel sessiz durumunu temsil eden değeri döndürür Boolean .

const muted = call.isMuted;

isScreenSharingOn: Ekran paylaşımı akışını diğer katılımcılara gönderiyorsanız true değerini döndürür Boolean .

const isScreenSharingOn = call.isScreenSharingOn;

localVideoStreams: Uzak katılımcılara gönderilen video akışlarını temsil eden bir nesne koleksiyonu LocalVideoStream döndürür.

const localVideoStreams = call.localVideoStreams;

Sohbet yazışmalarını yönetme

Önemli

İsteğe bağlı Sohbet Kimliği yalnızca JavaScript için Arama SDK'sının 1.29.1 veya sonraki sürümlerinde kullanılabilir. Önceki bir sürümü kullanıyorsanız, benzersiz bir iş parçacığı kimliğini el ile sağladığınıza emin olun.

Sohbet kimliği sağlamak, grup aramaları yapmak ve mevcut aramalara katılımcı eklemek için isteğe bağlıdır. İlişkili sohbet ve aramanın ayrı bir katılımcı listesi vardır. Aramaya katılımcı eklemeden önce kullanıcıyı sohbete ekleyerek en iyi kullanıcı deneyimini sağlayın ve bilgi engeli gereksinimlerini karşılayın. Kullanıcıyı sohbete eklemeden aramaya kullanıcı eklemek, bir bilgi engeli ayarlanırsa özel durumlara neden olabilir.

Alice'in Bob'a çağrı yaptığı, ardından Alice'in Charlie'yi eklediği ve 3 dakika sonra Alice'in Charlie'yi aramadan kaldırdığı aşağıdaki senaryoyu düşünün.

  1. Alice, Bob ve Charlie arasında bir sohbet yazışması oluşturun. Sohbeti threadId daha sonraya bırakın.
  2. Alice, örneğinde yöntemini kullanarak startCall Bob ve Charlie'yi TeamsCallAgent çağırır.
  3. Üye eklemek için Sohbet Grafı API'sini kullanarak sohbet yazışmasına threadId Dan ekleme
  4. Alice, yöntemini call kullanarak addParticipant Çağrıya Dan ekler ve öğesini belirtirthreadId
  5. Alice, üzerinde call yöntemini kullanarak removeParticipant Dan'i çağrısından kaldırır vethreadId
  6. Üyeyi kaldırmak için Sohbet Grafı API'sini kullanarak Dan'i sohbet yazışmasından threadId kaldırma

Teams kullanıcısı arama kaydını durdurursa, kayıt yazışmayla ilişkilendirilmiş sohbete yerleştirilir. Sağlanan sohbet kimliği, Teams istemcilerindeki Teams kullanıcılarının deneyimini etkiler.

Sohbet kimliğinin yönetimi için öneriler:

  • Başka bir telefon katılımcısı ekleyerek 1:1 telefon aramasının ilerletilmesi:
    • Yöntemi addParticipant isteğe bağlı parametre iş parçacığı kimliği sağlamanıza olanak tanır. Parametre sağlanmazsa yeni bir grup sohbeti oluşturulur ve tüm katılımcılar arama ve sohbet katılımcıları listesine eklenir. Parametre sağlanmışsa, Teams kullanıcıları Teams uygulamasında bu grup sohbeti ile ilişkili devam eden çağrıyı görebilir. Graph API aracılığıyla yeni grup sohbeti oluşturabilirsiniz.
      addParticipant(participant: MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)
      
  • Tek Bir Microsoft 365 kullanıcısı ve birden çok telefon katılımcısı ile grup araması başlatın:
    • Yöntem API'si startCall , birden çok katılımcıyla bir grup çağrısı başlatmanıza ve isteğe bağlı olarak iş parçacığı kimliği sağlamanıza olanak tanır. Parametre sağlanmazsa yeni bir grup sohbeti oluşturulur ve tüm Microsoft 365 katılımcıları arama ve sohbet katılımcıları listesine eklenir. Parametre sağlanmışsa, Teams kullanıcıları Teams uygulamasında bu grup sohbeti ile ilişkili devam eden çağrıyı görebilir. Graph API aracılığıyla yeni grup sohbeti oluşturabilirsiniz.
      startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
      
    • Katılımcı olarak yalnızca Teams kullanıcısıyla mevcut sohbet kimliğini almak veya katılımcılarla yeni bir grup sohbeti oluşturmak için Graph API'sini kullanın: Teams kullanıcı kimliği ve "00000000-0000-0000-000000000000".
  • 2'den fazla Microsoft 365 kullanıcısı ile grup araması başlatın:
    • (İsteğe bağlı yol) ACS Arama SDK'sını kullanan 2'den fazla Microsoft 365 kullanıcısı olan bir grup araması yaparken SDK, iş parçacığını varsayılan olarak otomatik olarak oluşturur.
      startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
      
    • İstenirse, geliştirici grup çağrısını başlatmak veya katılımcı eklemek için benzersiz bir iş parçacığı kimliği sağlayabilir. Bu durumda ACS Çağrı SDK'sı, grup çağrısını oluşturmak için verilen iş parçacığı kimliğini kullanır. Teams kullanıcıları için bir sohbet yazışması oluşturulur ve bu yazışma Teams uygulamasındaki kullanıcılar için grup çağrısıyla ilişkilendirilir. Bu, arama sırasında sohbet etmelerini sağlar. Sohbet yazışması yönetimi Graph API aracılığıyla yapılabilir