Aracılığıyla paylaş


Microsoft Teams Sesli Toplantı Konferansı

Bu makalede, Microsoft Teams Toplantısı Sesli Konferans ayrıntılarını almak için Azure İletişim Hizmetleri Arama SDK'sını nasıl kullanacağınız açıklanmaktadır. Bu işlev, zaten bir Microsoft Teams Toplantısına bağlı olan kullanıcıların toplantıyla ilişkili konferans kimliğini ve arayarak bağlanılan telefon numarasını alabilmesini sağlar. Teams Toplantısı Sesli Konferans özelliği, tüm ücretli ve ücretsiz numaraların listesini döndürür. Koleksiyon, kullanıcılara hangi Teams toplantısının arama ayrıntılarını kullanacaklarını seçme imkanı veren eşlik eden ülke/bölge adları ve şehir adları içerir.

Önkoşullar

Destek

Bu bölümde Azure İletişim Hizmetleri'da Sesli Konferans desteği açıklanmaktadır.

Kimlikler ve çağrı türleri

Aşağıdaki tabloda arama ve kimlik türleri desteği gösterilmektedir.

Kimlikler Teams toplantısı Oda 1:1 arama Grup çağrısı 1:1 Teams birlikte çalışma araması Grup Teams birlikte çalışma araması
İletişim Hizmetleri kullanıcısı ✔️
Microsoft 365 kullanıcısı ✔️

İşlemler

Aşağıdaki tabloda, tek tek kimlik türleri için SDK'nın çağrılmasında tek tek API'ler için destek gösterilmektedir.

İşlemler İletişim Hizmetleri kullanıcısı Microsoft 365 kullanıcısı
Sesli konferans ayrıntılarını alma ✔️ ✔️

SDK

Aşağıdaki tabloda tek tek Azure İletişim Hizmetleri SDK'larda Sesli Konferans özelliğine yönelik destek gösterilmektedir.

Platformlar İnternet Web kullanıcı arabirimi Ios iOS kullanıcı arabirimi Android Android kullanıcı arabirimi Windows
Desteklenir ✔️

SDK’yı yükleyin

npm install komutunu kullanarak JavaScript için Azure İletişim Hizmetleri Calling ve Common SDK'sını yükleyin:

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

Gerekli nesneleri başlatma

CallClient Çoğu çağrı işlemi için bir örnek gereklidir. Yeni bir CallClient örneği oluşturduğunuzda, bunu Logger örneği gibi özel seçeneklerle yapılandırabilirsiniz.

CallClient örneğiyle, CallAgent çağrısını yaparak bir createCallAgent örneği oluşturabilirsiniz. Bu yöntem zaman uyumsuz olarak bir CallAgent örnek nesnesi döndürür.

createCallAgent yöntemi, CommunicationTokenCredential'yi bağımsız değişken olarak kullanır. Kullanıcı erişim belirtecini kabul eder.

getDeviceManager örneğindeki CallClient yöntemini kullanarak deviceManager öğesine erişebilirsiniz.

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 console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Microsoft altyapısına SDK bağlantısını yönetme

Örnek, Call Agent çağrıları yönetmenize yardımcı olur (aramalara katılmak veya çağrıları başlatmak için). Arama SDK'nızın çalışması için gelen aramaların bildirimlerini almak ve diğer arama ayrıntılarını koordine etmek için Microsoft altyapısına bağlanması gerekir. Call Agent'nin iki olası durumu vardır.

Bağlı - Call Agent connectionStatue değeri Connected , istemci SDK'sının bağlı olduğu ve Microsoft altyapısından bildirim alabilen olduğu anlamına gelir.

Bağlantı Kesildi - Call AgentDisconnected bağlantıDurumu değeri, SDK'nın düzgün bağlanmasını engelleyen bir sorun olduğunu belirtir. Call Agent yeniden oluşturulmalıdır.

  • invalidToken: Belirtecin süresi dolduysa veya geçersizse Call Agent örnek bu hatayla bağlantı kesilir.
  • connectionIssue: İstemcinin Microsoft altyapısına bağlanmasıyla ilgili bir sorun varsa, birçok yeniden denemeden sonra Call AgentconnectionIssue hatasını ortaya çıkarır.

Call Agent özelliğinin geçerli değerini inceleyerek yerel connectionState Microsoft altyapısına bağlı olup olmadığını denetleyebilirsiniz. Etkin bir çağrı sırasında connectionStateChanged olayını dinleyerek Call Agent durumundan Bağlantısız duruma değişiklik olup olmadığını belirleyebilirsiniz.

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

Microsoft Teams Toplantı Sesli Konferans, çekirdek Call API'nin genişletilmiş bir özelliğidir. İlk olarak Arama SDK'sından arama özelliklerini içeri aktarmanız gerekir:

import { Features} from "@azure/communication-calling";

Ardından çağrı örneğinden özellik API'si nesnesini alabilirsiniz:

const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);

Toplantının sesli konferans ayrıntılarını alma

Toplantının sesli konferans ayrıntılarını almak için aşağıdaki API'yi kullanın

try {
     const details: SDK.TeamsMeetingAudioConferencingDetails = audioConferencingFeature.getTeamsMeetingAudioConferencingDetails();
     console.log(`Microsoft Teams Meeting Conference Id: ${details.phoneConferenceId}`);
     details.phoneNumbers.forEach(dialInPhoneNumber => {
        if (dialInPhoneNumber.tollPhoneNumber) { 
            console.log(`Dial-In Toll PhoneNumber: ${dialInPhoneNumber.tollPhoneNumber.phoneNumber}`);
        }
        else if (dialInPhoneNumber.tollFreePhoneNumber) { 
            console.log(`Dial-In TollFree PhoneNumber: ${dialInPhoneNumber.tollFreePhoneNumber.phoneNumber}`);
        } 
        else if (dialInPhoneNumber.countryName) {
            console.log(`Dial-In Country Name: ${dialInPhoneNumber.countryName}`);
        }
        else if (dialInPhoneNumber.cityName) {
            console.log(`Dial-In City Name: ${dialInPhoneNumber.cityName}`);
        }
    })
} catch (e) {
    console.error(e);
}

Sorun giderme

Kod Alt kod Sonuç Kategorisi Nedeni Çözüm
400 45950 BeklenenHata Sesli konferans özelliği yalnızca Teams toplantılarında kullanılabilir Yapılandırılmış Sesli konferans ile Teams toplantısına katılma
405 45951 BeklenenHata ACS hizmeti sesli konferans devre dışı bırakıldı Yardım istemek için Azure Destek bileti oluşturma
Kategori 403 45952 BeklenenHata Toplantıya katılmadan önce sesli konferans ayrıntılarına erişilemez. Sesli konferans ayrıntılarını almak için API'yi çağırmadan önce çağrı nesnesinin connected durumunda olduğundan emin olun
Kategori 403 45953 BeklenenHata Sesli konferans ayrıntıları lobide kullanılamaz Sesli konferans ayrıntılarını almak için API'yi çağırmadan önce çağrı nesnesinin connected durumunda olduğundan emin olun

Sonraki adımlar