클라이언트에 통화 대화 내용 기록 상태 표시
참고 항목
통화 기록 상태는 Teams 모임에서만 사용할 수 있습니다. 현재 Azure Communication Services에서 Azure Communication Services 호출에 대한 호출 전사 상태는 지원되지 않습니다.
통화 대화 내용 기록을 사용하는 경우 통화가 전사되고 있음을 사용자에게 알릴 수 있습니다. 방법은 다음과 같습니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 배포된 Communication Services 리소스. Communication Services 리소스 만들기
- 호출 클라이언트를 사용하도록 설정하는 사용자 액세스 토큰입니다. 자세한 내용은 액세스 토큰 만들기 및 관리를 참조하세요.
- 선택 사항: 빠른 시작을 완료하여 애플리케이션에 음성 통화를 추가합니다.
SDK 설치
프로젝트 수준 build.gradle 파일을 찾아 아래 및 아래의 리포지 allprojects
buildscript
토리 목록에 추가 mavenCentral()
합니다.
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
그런 다음, 모듈 수준 build.gradle 파일에서 섹션에 다음 줄을 dependencies
추가합니다.
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
필요한 개체 초기화
인스턴스를 CallAgent
만들려면 인스턴스에서 메서드를 createCallAgent
호출해야 합니다 CallClient
. 이 호출은 인스턴스 개체를 CallAgent
비동기적으로 반환합니다.
이 메서드는 createCallAgent
액세스 토큰을 캡슐화하는 인수로 사용합니다CommunicationUserCredential
.
액세스 DeviceManager
하려면 먼저 인스턴스를 callAgent
만들어야 합니다. 그런 다음 메서드를 사용하여 .를 CallClient.getDeviceManager
가져올 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();
호출자의 표시 이름을 설정하려면 다음과 같은 대체 방법을 사용합니다.
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();
Warning
Azure Communication Services 호출 Android SDK의 버전 1.1.0 및 베타 릴리스 버전 1.1.0-beta.1까지는 isTranscriptionActive
및 addOnIsTranscriptionActiveChangedListener
가 Call
개체의 일부입니다. 새 베타 릴리스의 경우 이러한 API는 아래 설명된 것처럼 확장된 기능 Call
으로 이동되었습니다.
통화 대화 내용 기록은 핵심 Call
개체의 확장 기능입니다. 먼저 대화 내용 기록 기능 개체를 가져와야 합니다.
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
그런 다음 호출이 전사되고 있는지 검사 .isTranscriptionActive
callTranscriptionFeature
boolean
를 반환합니다.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
또한 대화 내용 기록의 변경 사항을 구독할 수 있습니다.
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
시스템 설정
Xcode 프로젝트 만들기
Xcode에서 새 iOS 프로젝트를 만들고 단일 보기 앱 템플릿을 선택합니다. 이 빠른 시작에서는 SwiftUI 프레임워크를 사용하므로 언어를 Swift로 설정하고 인터페이스를 SwiftUI로 설정해야 합니다.
이 빠른 시작 중에는 테스트를 만들지 않을 것입니다. 테스트 포함 검사 상자를 자유롭게 지웁니다.
CocoaPods를 사용하여 패키지 및 종속성 설치
다음 예제와 같이 애플리케이션에 대한 Podfile을 만듭니다.
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
pod install
를 실행합니다.Xcode를 사용하여 엽니다
.xcworkspace
.
마이크에 대한 액세스 요청
디바이스의 마이크에 액세스하려면 을 사용하여 NSMicrophoneUsageDescription
앱의 정보 속성 목록을 업데이트해야 합니다. 연결된 값을 시스템에서 사용자의 액세스를 요청하는 데 사용하는 대화 상자에 포함될 문자열로 설정합니다.
프로젝트 트리의 Info.plist 항목을 마우스 오른쪽 단추로 클릭한 다음 소스 코드로>열기를 선택합니다. 최상위 <dict>
섹션에 다음 줄을 추가한 다음, 파일을 저장합니다.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
앱 프레임워크 설정
프로젝트의 ContentView.swift 파일을 엽니다. import
파일 맨 위에 선언을 추가하여 라이브러리를 AzureCommunicationCalling
가져옵니다. 추가로 AVFoundation
을 가져옵니다. 코드에서 오디오 권한 요청에 필요합니다.
import AzureCommunicationCalling
import AVFoundation
CallAgent 초기화
CallAgent
에서 CallClient
인스턴스를 만들려면 초기화된 후 비동기적으로 callClient.createCallAgent
개체를 반환하는 CallAgent
메서드를 사용해야 합니다.
호출 클라이언트를 만들려면 개체를 전달합니다.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)
}
만든 개체를 CommunicationTokenCredential
CallClient
전달하고 표시 이름을 설정합니다.
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")
}
})
Warning
Azure Communication Services 통화 iOS SDK의 버전 1.1.0 및 베타 릴리스 버전 1.1.0-beta.1까지는 isTranscriptionActive
가 Call
개체의 일부이고 didChangeTranscriptionState
는 CallDelegate
대리자의 일부입니다. 새 베타 릴리스의 경우 이러한 API는 아래 설명된 것처럼 확장된 기능 Call
으로 이동되었습니다.
통화 대화 내용 기록은 핵심 Call
개체의 확장 기능입니다. 먼저 대화 내용 기록 기능 개체를 가져와야 합니다.
let callTranscriptionFeature = call.feature(Features.transcription)
그런 다음 호출이 전사 isTranscriptionActive
callTranscriptionFeature
되었는지 검사 . Bool
를 반환합니다.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
이벤트를 didChangeTranscriptionState
사용하여 클래스에 대리자를 구현하여 TranscriptionCallFeatureDelegate
전사 변경 내용을 구독할 수도 있습니다.
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
시스템 설정
Visual Studio 프로젝트 만들기
UWP 앱의 경우 Visual Studio 2022에서 새 빈 앱(유니버설 Windows) 프로젝트를 만듭니다. 프로젝트 이름을 입력한 후에는 10.0.17763.0 이후의 Windows SDK를 자유롭게 선택할 수 있습니다.
WinUI 3 앱의 경우 빈 앱 패키지(데스크톱의 WinUI 3) 템플릿을 사용하여 새 프로젝트를 만들어 단일 페이지 WinUI 3 앱을 설정합니다. Windows 앱 SDK 버전 1.3 이상이 필요합니다.
NuGet 패키지 관리자 사용하여 패키지 및 종속성 설치
Calling SDK API와 라이브러리는 NuGet 패키지를 통해 공개적으로 사용할 수 있습니다.
다음 단계에서는 통화 SDK NuGet 패키지를 찾고, 다운로드하고, 설치하는 방법을 예시합니다.
- 도구 NuGet 패키지 관리자Manage NuGet Packages for Solution을> 선택하여 NuGet 패키지 관리자> 엽니다.
- 찾아보기를 선택한 다음 검색 상자에 입력
Azure.Communication.Calling.WindowsClient
합니다. - 시험판 포함 검사 상자가 선택되어 있는지 확인합니다.
Azure.Communication.Calling.WindowsClient
패키지를 선택한 다음 1.4.0-beta.1 이상 버전을 선택합니다Azure.Communication.Calling.WindowsClient
.- 오른쪽 탭에서 Communication Services 프로젝트에 해당하는 검사box를 선택합니다.
- 설치 단추를 선택합니다.
통화 대화 내용 기록은 핵심 Call
개체의 확장 기능입니다. 먼저 대화 내용 기록 기능 개체를 가져와야 합니다.
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
그런 다음 호출이 전사되고 있는지 검사 .IsTranscriptionActive
transcriptionFeature
boolean
를 반환합니다.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
또한 대화 내용 기록의 변경 사항을 구독할 수 있습니다.
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;