Hívásátírási állapot megjelenítése az ügyfélen
Ahhoz, hogy átírhassa őket, be kell gyűjtenie a hívás összes résztvevőjének hozzájárulását. A Microsoft Teams lehetővé teszi a felhasználók számára az átírás indítását az értekezleteken vagy hívásokon. Az átírás indításakor eseményt kap, ellenőrizheti az átírás állapotát, ha az átírás a híváshoz vagy értekezlethez való csatlakozás előtt kezdődött.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Üzembe helyezett Communication Services-erőforrás. Hozzon létre egy Communication Services-erőforrást.
- Felhasználói hozzáférési jogkivonat a hívó ügyfél engedélyezéséhez. További információ: Hozzáférési jogkivonatok létrehozása és kezelése.
- Nem kötelező: Végezze el a rövid útmutatót a hanghívás alkalmazáshoz való hozzáadásához
Támogatás
Az alábbi táblázatok határozzák meg a hívásátírás támogatását az Azure Communication Servicesben.
Identitások és hívástípusok
Az alábbi táblázatok az adott hívástípus és identitás átírásának támogatását mutatják be.
Identitások | Teams-értekezlet | Szoba | 1:1 hívás | Csoportos hívás | 1:1 Teams interop hívás | Csoportos Teams interop hívás |
---|---|---|---|---|---|---|
Communication Services-felhasználó | ✔️ | ✔️ | ✔️ | |||
Microsoft 365-felhasználó | ✔️ | ✔️ | ✔️ |
Üzemeltetés
Az alábbi táblázatok az egyes API-k támogatását mutatják be az SDK egyéni identitástípusokhoz való meghívásához.
Üzemeltetés | Communication Services-felhasználó | Microsoft 365-felhasználó |
---|---|---|
Az átírást megkezdő esemény lekérése | ✔️ | ✔️ |
Átírási állapot lekérése | ✔️ | ✔️ |
Átírás indítása vagy leállítása |
SDK-k
Az alábbi táblázatok az egyes Azure Communication Services SDK-k átírásának támogatását mutatják be.
Platformok | Webes | Webes felhasználói felület | iOS | iOS felhasználói felület | Android | Android felhasználói felület | Windows |
---|---|---|---|---|---|---|---|
Támogatott | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Telepítse a SDK-t
npm install
A parancs használatával telepítse az Azure Communication Services Common and Calling SDK for JavaScriptet:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Szükséges objektumok inicializálása
A CallClient
legtöbb hívási művelethez szükség van egy példányra. Új CallClient
példány létrehozásakor konfigurálhatja egyéni beállításokkal, például egy példánysal Logger
.
CallClient
A példánnyal létrehozhat egy példányt CallAgent
a createCallAgent
. Ez a metódus aszinkron módon egy CallAgent
példányobjektumot ad vissza.
A createCallAgent
metódus argumentumként használható CommunicationTokenCredential
. Elfogad egy felhasználói hozzáférési jogkivonatot.
A példányon található getDeviceManager
metódust használhatja a CallClient
hozzáféréshez deviceManager
.
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()
A Microsoft-infrastruktúra SDK-kapcsolatának legjobb kezelése
A Call Agent
példány segít a hívások kezelésében (a hívásokhoz való csatlakozáshoz vagy a hívások indításához). A hívó SDK működéséhez csatlakoznia kell a Microsoft infrastruktúrájához, hogy értesítést kapjon a bejövő hívásokról, és koordinálja az egyéb hívásadatokat. Két Call Agent
lehetséges állapota van:
Csatlakoztatott – A Call Agent
connectionStatue érték azt Connected
jelenti, hogy az ügyfél SDK csatlakoztatva van, és képes értesítéseket fogadni a Microsoft-infrastruktúrából.
Leválasztva – Az Call Agent
állapotok connectionStatue értéke Disconnected
olyan probléma, amely miatt az SDK nem tud megfelelően csatlakozni. Call Agent
újra létre kell hozni.
invalidToken
: Ha egy jogkivonat lejárt, vagy érvénytelenCall Agent
, a példány ezzel a hibával megszakad.connectionIssue
: Ha probléma merül fel azzal kapcsolatban, hogy az ügyfél csatlakozik a Microsoft-infrastruktúrához, miután sok újrapróbálkozásCall Agent
felfedi aconnectionIssue
hibát.
A tulajdonság aktuális értékének connectionState
vizsgálatával ellenőrizheti, hogy a helyi Call Agent
csatlakozik-e a Microsoft-infrastruktúrához. Egy aktív hívás során meghallgathatja az connectionStateChanged
eseményt, és megállapíthatja, hogy a kapcsolat megszakadt állapotban van-e.Call Agent
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);
Figyelmeztetés
A Microsoft Teams változásai miatt a JavaScript az 1.21-s és alacsonyabb verziójú SDK-k meghívásával leállítja a Teams átírását, és letiltja a Teams-felhasználókat az átírás elindításában. Ha a Teams átírását szeretné használni a hívásokban és értekezletekben, frissítenie kell a hívó SDK-t legalább 1.22-es verzióra.
Hívásátírás
Transcription
az osztály Call
kiterjesztett funkciója. Először be kell szereznie az átírási funkció API-objektumát
const callTranscriptionFeature = call.feature(Features.Transcription);
A tulajdonságban isTranscriptionActive
ellenőrizheti az átírás állapotát. Ha az érték be true
van állítva, akkor az átírás aktív.
const isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
Feliratkozhat az átírás állapota megváltozásakor aktivált eseményre:
const isTranscriptionActiveChangedHandler = () => {
console.log(callTranscriptionFeature.isTranscriptionActive);
};
callTranscriptionFeature.on('isTranscriptionActiveChanged', isTranscriptionActiveChangedHandler);
Az eseményről a következő kóddal iratkozhat le:
callTranscriptionFeature.off('isTranscriptionActiveChanged', isTranscriptionActiveChangedHandler);
Telepítse a SDK-t
Keresse meg a projektszintű build.gradle fájlt, és adja hozzá mavenCentral()
a következő alatt és allprojects
alatt található buildscript
adattárak listájához:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Ezután a modulszintű build.gradle fájlban adja hozzá a következő sorokat a dependencies
szakaszhoz:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
A szükséges objektumok inicializálása
Példány létrehozásához CallAgent
meg kell hívnia a createCallAgent
metódust egy CallClient
példányon. Ez a hívás aszinkron módon egy CallAgent
példányobjektumot ad vissza.
A createCallAgent
metódus argumentumként veszi fel CommunicationUserCredential
a metódust, amely egy hozzáférési jogkivonatot foglal magában.
A hozzáféréshez DeviceManager
először létre kell hoznia egy példányt callAgent
. Ezután használhatja a metódust a CallClient.getDeviceManager
lekéréshez DeviceManager
.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
A hívó megjelenítendő nevének beállításához használja az alábbi alternatív módszert:
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
Figyelmeztetés
Az Android SDK-t hívó Azure Communication Services 1.1.0-beta.1-es és 1.1.0-s bétaverziójáig az isTranscriptionActive
addOnIsTranscriptionActiveChangedListener
Call
objektum része. Az új bétaverziók esetében ezeket az API-kat az alábbiakhoz hasonlóan kiterjesztett funkcióként Call
helyeztük át.
A hívásátírás az alapvető Call
objektum kiterjesztett funkciója. Először be kell szereznie az átírási funkció objektumát:
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
Ezután annak ellenőrzéséhez, hogy a hívás át van-e írva, vizsgálja meg a isTranscriptionActive
következő tulajdonságát callTranscriptionFeature
: . A visszaadott érték boolean
.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
Az átiratok módosításaira is feliratkozhat:
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
A rendszer beállítása
Az Xcode-projekt létrehozása
Az Xcode-ban hozzon létre egy új iOS-projektet, és válassza ki az egynézetes alkalmazássablont . Ez a rövid útmutató a SwiftUI-keretrendszert használja, ezért a Nyelvet Swiftre kell állítania, az interfészt pedig SwiftUI-ra.
Ebben a rövid útmutatóban nem fog teszteket létrehozni. Nyugodtan törölje a Belefoglalási tesztek jelölőnégyzet jelölését.
A csomag és a függőségek telepítése a CocoaPods használatával
Hozzon létre egy Podfile-t az alkalmazáshoz, például:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Futtassa az
pod install
parancsot.Megnyitás
.xcworkspace
Xcode használatával.
Hozzáférés kérése a mikrofonhoz
Az eszköz mikrofonjának eléréséhez frissítenie kell az alkalmazás információs tulajdonságlistáját a használatával NSMicrophoneUsageDescription
. A társított értéket egy sztringre állítja, amely szerepelni fog abban a párbeszédpanelben, amellyel a rendszer hozzáférést kér a felhasználótól.
Kattintson a jobb gombbal a projektfa Info.plist bejegyzésére, majd válassza a Megnyitás forráskódként>lehetőséget. Adja hozzá a következő sorokat a legfelső szintű <dict>
szakaszhoz, majd mentse a fájlt.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Az alkalmazás-keretrendszer beállítása
Nyissa meg a projekt ContentView.swift fájlját. Adjon hozzá egy deklarációt import
a fájl tetejére a AzureCommunicationCalling
tár importálásához. Ezenkívül importálja az importálást AVFoundation
is. Szüksége lesz rá a kódban található hangengedély-kérelmekhez.
import AzureCommunicationCalling
import AVFoundation
A CallAgent inicializálása
Egy példány létrehozásához CallAgent
CallClient
olyan metódust callClient.createCallAgent
kell használnia, amely aszinkron módon ad vissza egy CallAgent
objektumot az inicializálás után.
Hívásügyfél létrehozásához adjon át egy objektumot CommunicationTokenCredential
:
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
Adja át a CommunicationTokenCredential
létrehozott objektumot CallClient
, és állítsa be a megjelenítendő nevet:
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
Figyelmeztetés
Az Azure Communication Services Calling iOS SDK 1.1.0-s és bétaverziójának 1.1.0-beta.1-es verziójáig az isTranscriptionActive
objektum része Call
, és didChangeTranscriptionState
a delegálás része CallDelegate
. Az új bétaverziók esetében ezeket az API-kat az alábbiakhoz hasonlóan kiterjesztett funkcióként Call
helyeztük át.
A hívásátírás az alapvető Call
objektum kiterjesztett funkciója. Először be kell szereznie az átírási funkció objektumát:
let callTranscriptionFeature = call.feature(Features.transcription)
Ezután annak ellenőrzéséhez, hogy a hívás át van-e írva, vizsgálja meg a isTranscriptionActive
következő tulajdonságát callTranscriptionFeature
: . A visszaadott érték Bool
.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
Az átírási módosításokra úgy is előfizethet, ha megvalósítja TranscriptionCallFeatureDelegate
az osztály delegáltját az eseményhez didChangeTranscriptionState
:
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
A rendszer beállítása
A Visual Studio-projekt létrehozása
UWP-alkalmazások esetén a Visual Studio 2022-ben hozzon létre egy új Üres alkalmazás (Univerzális Windows) projektet. Miután megadta a projekt nevét, nyugodtan válasszon bármelyik Windows SDK-t a 10.0.17763.0-s verziónál később.
WinUI 3-alkalmazások esetén hozzon létre egy új projektet az Üres alkalmazás, csomagolt (WinUI 3 in Desktop) sablonnal egy egyoldalas WinUI 3-alkalmazás beállításához. Windows-alkalmazás SDK 1.3-es vagy újabb verzió szükséges.
Telepítse a csomagot és a függőségeket a NuGet Csomagkezelő
A hívó SDK API-k és kódtárak nyilvánosan elérhetők NuGet-csomagon keresztül.
Az alábbi lépések szemléltetik a hívó SDK NuGet-csomag megkeresését, letöltését és telepítését:
- Nyissa meg a NuGet-Csomagkezelő az Tools>NuGet Csomagkezelő> Manage NuGet Packages for Solution lehetőséget választva.
- Válassza a Tallózás lehetőséget, majd írja be
Azure.Communication.Calling.WindowsClient
a keresőmezőbe. - Győződjön meg arról, hogy be van jelölve az Előzetes belefoglalás jelölőnégyzet.
- Jelölje ki a
Azure.Communication.Calling.WindowsClient
csomagot, majd válassza azAzure.Communication.Calling.WindowsClient
1.4.0-beta.1 vagy egy újabb verziót. - Jelölje be a jobb oldali lapon a Communication Services projektnek megfelelő jelölőnégyzetet.
- Válassza a Telepítés gombot.
A hívásátírás az alapvető Call
objektum kiterjesztett funkciója. Először be kell szereznie az átírási funkció objektumát:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Ezután annak ellenőrzéséhez, hogy a hívás át van-e írva, vizsgálja meg a IsTranscriptionActive
következő tulajdonságát transcriptionFeature
: . A visszaadott érték boolean
.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
Az átiratok módosításaira is feliratkozhat:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;