통화 종료 설문 조사를 사용하여 사용자 피드백 수집
이 자습서에서는 Azure Communication Services 통화 종료 설문 조사를 사용하는 방법을 보여 줍니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 활성 Communication Services 리소스 Communication Services 리소스 만들기 설문 조사 결과는 단일 Communication Services 리소스와 연결되어 있습니다.
- Azure Monitor 로그라고도 하는 활성 Log Analytics 작업 영역입니다. 통화 종료 설문 조사 로그를 참조하세요.
- 자유 형식 텍스트를 사용하여 사용자 지정 질문으로 설문 조사를 수행하려면 App Insight 리소스가 필요합니다.
Important
통화 종료 설문 조사는 Calling SDK 버전 1.13.1부터 사용할 수 있습니다. 지침을 시도할 때 해당 버전 이상을 사용합니다.
- Node.js 활성 LTS(장기 지원) 버전이 권장됩니다.
API 사용 샘플
통화 종료 설문 조사 기능은 통화가 끝난 후에 사용해야 합니다. 사용자는 모든 종류의 VoIP 통화, 1:1, 그룹, 모임, 발신 및 수신을 평가할 수 있습니다. 사용자의 통화가 끝나면 애플리케이션에서 최종 사용자에게 평가 점수를 선택할 수 있는 UI가 표시될 수 있으며, 필요한 경우 미리 정의된 목록에서 통화 중에 발생한 문제를 선택할 수 있습니다.
다음 코드 조각은 일대일 호출의 예를 보여 줍니다. 통화가 끝난 후 애플리케이션에서 설문 조사 UI가 표시될 수 있으며, 사용자가 등급을 선택하면 애플리케이션은 기능 API를 호출하여 사용자가 선택한 설문 조사를 제출해야 합니다.
기본 평가 등급을 사용하는 것이 좋습니다. 그러나 사용자 지정 평가 등급을 사용하여 설문 조사를 제출할 수 있습니다. 샘플 API 사용법은 샘플 애플리케이션을 확인합니다.
통화만 평가 - 사용자 지정 등급 없음
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));
전체 평가는 모든 설문 조사에 필수 범주입니다.
통화만 평가 - 사용자 지정 등급 및 문제 포함
call.feature(Features.CallSurvey).submitSurvey({
overallRating: {
score: 1, // my score
scale: { // my custom scale
lowerBound: 0,
upperBound: 1,
lowScoreThreshold: 0
},
issues: ['HadToRejoin'] // my issues, check the table below for all available issues
}
}).then(() => console.log('survey submitted successfully'));
전체, 오디오, 동영상 평가(샘플 문제 포함)
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 },
audioRating: { score: 4 },
videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))
SDK에서 발생할 수 있는 오류 처리
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
다양한 형식의 오류 찾기
설문 조사 제출 중 오류 발생
데이터 유효성 검사에 실패하거나 설문 조사를 제출할 수 없는 경우 API는 다음과 같은 오류 메시지를 반환합니다.
설문 조사 평가 등급이 하나 이상 필요합니다.
기본 등급에서 X는 1에서 5 사이여야 합니다. - X는 다음 중 하나입니다.
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName}: {rated.score}는 {rated.scale?.lowerBound}와 {rated.scale?.upperBound} 사이에 있어야 합니다.
{propertyName}: {rated.scale?.lowScoreThreshold}는 {rated.scale?.lowerBound}와 {rated.scale?.upperBound} 사이에 있어야 합니다.
{propertyName} lowerBound: {rated.scale?.lowerBound} 및 upperBound: {rated.scale?.upperBound}는 0에서 100 사이에 있어야 합니다.
다시 시도하세요. [네트워크 또는 기타 오류로 인해 ACS에서 설문 조사를 제출하지 못했습니다.]
모든 오류 코드는 메시지와 함께 반환됩니다.
- 하나를 제외한 모든 오류 메시지에 대한 오류 코드 400(잘못된 요청)
{ message: validationErrorMessage, code: 400 }
- 이벤트가 삭제된 경우 1개의 408(시간 제한):
{ message: "Please try again.", code: 408 }
가능한 모든 값
기본 설문 조사 API 구성
API 등급 범주 | 구분 값* | 입력 범위 | 설명 |
---|---|---|---|
전체 통화 | 2 | 1 ~ 5 | 1~5의 점수로 통화 참가자가 느끼는 전반적인 품질 환경을 조사합니다. 1점은 통화 환경이 불완전하다는 것을 나타내고 5점은 통화가 완벽했음을 의미합니다. 구분 값 2는 1점이나 2점을 준 고객에게 있어 통화 환경이 완벽하지 않다는 것을 의미합니다. |
오디오 | 2 | 1 ~ 5 | 1점을 준 응답은 오디오 환경이 불완전함을 나타내고 5점은 오디오 문제가 없었음을 나타냅니다. |
동영상 | 2 | 1 ~ 5 | 1점을 준 응답은 비디오 환경이 불완전함을 나타내고 5점은 비디오 문제가 없었음을 나타냅니다. |
화면 공유 | 2 | 1 ~ 5 | 1점을 준 응답은 화면 공유 환경이 불완전함을 나타내고 5점은 화면 공유 문제가 없었음을 나타냅니다. |
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
설문 조사 추가 태그
등급 범주 | 선택적 태그 |
---|---|
전체 통화 | CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues |
오디오 | NoLocalAudio NoRemoteAudio Echo AudioNoise LowVolume AudioStoppedUnexpectedly DistortedSpeech AudioInterruption OtherIssues |
동영상 | NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues |
화면 공유 | NoContentLocal NoContentRemote CannotPresent LowQuality Freezes StoppedUnexpectedly LargeDelay OtherIssues |
사용자 지정 옵션
API 값 4개를 각각 수집하거나 또는 가장 중요하다고 생각하는 값만 수집하도록 선택할 수 있습니다. 예를 들어 오디오, 비디오, 화면 공유 환경에 대해 질문하는 대신 고객에게 전반적인 통화 환경에 대해서만 물어보도록 선택할 수 있습니다. 필요에 맞게 입력 범위를 사용자 지정할 수도 있습니다. 기본 입력 범위는 전체 통화, 오디오, 비디오 및 화면 공유의 경우 1~5입니다. 단, API 각각의 값은 최소 0에서 최대 100까지 사용자 지정할 수 있습니다.
사용자 지정 예
API 등급 범주 | 구분 값* | 입력 범위 |
---|---|---|
전체 통화 | 0 - 100 | 0 - 100 |
오디오 | 0 - 100 | 0 - 100 |
동영상 | 0 - 100 | 0 - 100 |
화면 공유 | 0 - 100 | 0 - 100 |
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
사용자 지정 질문
통화 종료 설문 조사 API를 사용하는 것 외에도 고유의 설문 조사 질문을 만들고 이를 통화 종료 설문 조사 결과와 통합할 수 있습니다. 아래에는 사용자의 고객 질문을 설문 조사에 통합하고 통화 종료 설문 조사 API 및 사용자의 설문 조사 질문 결과를 쿼리하는 단계가 나와 있습니다.
Azure AppInsights를 애플리케이션에 포함합니다. 여기를 클릭하여 일반 JavaScript를 사용한 App Insight 초기화에 대해 자세히 알아봅니다. 또는 NPM을 사용하여 App Insights 종속성을 가져올 수 있습니다. NPM을 사용한 App Insight 초기화에 대해 자세히 알아보려면 여기를 클릭합니다.
사용자에게 사용자 지정 질문을 제공하고 입력을 수집하는 UI를 애플리케이션에 빌드합니다. 애플리케이션이 응답을
improvementSuggestion
변수에 문자열로 수집했다고 가정해 보겠습니다.App Insights를 사용하여 설문 조사 결과를 ACS에 제출하고 사용자 응답을 보냅니다.
currentCall.feature(SDK.Features.CallSurvey).submitSurvey(survey).then(res => { // `improvementSuggestion` contains custom, user response if (improvementSuggestion !== '') { appInsights.trackEvent({ name: "CallSurvey", properties: { // Survey ID to correlate the survey id: res.id, // Other custom properties as key value pair improvementSuggestion: improvementSuggestion } }); } }); appInsights.flush();
App Insights를 사용하여 전송된 사용자 응답은 App Insights 작업 영역에서 사용할 수 있습니다. 통합 문서를 사용하면 여러 리소스 간에 쿼리하고 통화 평가와 사용자 지정 설문 조사 데이터를 연관시킬 수 있습니다. 통화 등급과 사용자 지정 설문 조사 데이터를 연관시키는 단계:
- 새로운 통합 문서(ACS 리소스 - > 모니터링 - > 통합 문서 - > 새로 만들기)를 만들고 ACS 리소스에서 통화 설문 조사 데이터를 쿼리합니다.
- 새 쿼리 추가(+추가 -> 쿼리 추가)
Data source
가Logs
이고Resource type
이Communication
인지 확인합니다.- 쿼리 이름을 바꿀 수 있습니다(고급 설정 -> 단계 이름 [예: 통화-설문 조사])
- 설문 조사 데이터가 Azure Portal에 표시되기까지 최대 2시간이 필요할 수 있습니다. 통화 평가 등급 데이터를 조회해보세요-
ACSCallSurvey | where TimeGenerated > now(-24h)
- App Insights에서 데이터를 가져오기 위한 다른 쿼리 추가(+추가 -> 쿼리 추가)
Data source
가Logs
이고Resource type
이Application Insights
인지 확인합니다.- 사용자 지정 이벤트 쿼리 -
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion
- 쿼리 이름을 바꿀 수 있습니다(고급 설정 -> 단계 이름 [예: custom-call-survey])
- 마지막으로 SurveyId를 기준으로 이 두 쿼리를 병합합니다. 새 쿼리를 만듭니다(+추가 -> 쿼리 추가).
Data source
가 병합되었는지 확인하고 필요에 따라Merge type
을 선택합니다.
제목: Azure Communication Services 통화 종료 설문 조사 제목접미사: Azure Communication Services 자습서 문서 설명: 통화 종료 설문 조사를 사용하여 사용자 피드백을 수집하는 방법을 알아봅니다. 작성자: viniciusl-msft ms.author: viniciusl 관리자: gaobob 서비스: azure-communication-services ms.date: 7/30/2024 ms.topic: 자습서 ms.service: azure-communication-services ms.subservice: 호출
Important
통화 종료 설문 조사는 Android 통화 SDK 버전 2.10.0부터 사용할 수 있습니다. 지침을 시도할 때 해당 버전 이상을 사용합니다.
API 사용 샘플
통화 종료 설문 조사 기능은 통화가 끝난 후에 사용해야 합니다. 사용자는 모든 종류의 VoIP 통화, 1:1, 그룹, 모임, 발신 및 수신을 평가할 수 있습니다. 사용자의 통화가 끝나면 애플리케이션에서 최종 사용자에게 평가 점수를 선택할 수 있는 UI가 표시될 수 있으며, 필요한 경우 미리 정의된 목록에서 통화 중에 발생한 문제를 선택할 수 있습니다.
다음 코드 조각은 일대일 호출의 예를 보여 줍니다. 통화가 끝난 후 애플리케이션에서 설문 조사 UI가 표시될 수 있으며, 사용자가 등급을 선택하면 애플리케이션은 기능 API를 호출하여 사용자가 선택한 설문 조사를 제출해야 합니다.
5 평가 등급(1~5점)의 기본 평가 등급을 사용하시기 바랍니다. 그러나 사용자 지정 평가 등급을 사용하여 설문 조사를 제출할 수 있습니다.
설문 조사 시작
설문 조사를 시작하면 CallSurvey
개체를 만듭니다. 이는 설문 조사의 의도를 기록합니다. 이 특정 CallSurvey
개체가 나중에 제출되지 않은 경우, 최종 고객이 설문 조사를 건너뛰거나 무시했다는 의미입니다.
SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
// failure to start survey
}
일반적인 사용법
통화를 평가할 때는 크기 조정 필드에 정의된 값을 존중해야 합니다. 하한값은 최악의 환경을 나타내는 반면, 상한값은 완벽한 환경을 의미합니다. 두 값 모두 포함됩니다.
전체 평가는 모든 설문 조사에 필수 범주입니다.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
제안된 설문 조사 사용에 대한 자세한 내용은 설문 조사 개념을 참조하세요.
통화만 평가 - 사용자 지정 등급 없음
SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);
통화만 평가 - 사용자 지정 등급 및 문제 포함
// configuring scale
CallSurveyRatingScale ratingScale = new CallSurveyRatingScale();
ratingScale.setLowerBound(0);
ratingScale.setLowerBound(1);
ratingScale.setLowScoreThreshold(0);
SurveyScore overall = new SurveyScore();
overall.setScale(ratingScale);
// setting score according to scale
overall.setScore(1);
callSurvey.setOverallScore(overall);
// reporting one or more issues
callSurvey.setCallIssues(CallIssues.HAD_TO_REJOIN);
전체, 오디오, 동영상 평가(샘플 문제 포함)
SurveyScore overall = new SurveyScore();
overall.setScore(3);
SurveyScore audio = new SurveyScore();
audio.setScore(4);
SurveyScore video = new SurveyScore();
video.setScore(3);
callSurvey.setOverallScore(overall);
callSurvey.setAudioScore(audio);
callSurvey.setVideoScore(video);
callSurvey.setVideoIssues(VideoIssues.FREEZES);
설문 조사를 제출하고 SDK가 보낼 수 있는 오류를 처리합니다.
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
다양한 형식의 오류 찾기
설문 조사 제출 중 오류 발생:
submitSurvey API는 다음과 같은 시나리오에서 오류를 반환할 수 있습니다.
전반적인 설문 조사 평가가 필요합니다.
CallSurveyRatingScale
경계는 0~100 내에 있어야 합니다. LowerBound는 UpperBound보다 작아야 합니다. LowScoreThreshold는 범위 내에 있어야 합니다.모든 점수는
CallSurveyRatingScale
에 정의된 경계를 준수해야 합니다.CallSurveyRatingScale
개체의 모든 값이 포함됩니다. 기본 척도를 사용하면 점수 값은 1~5 사이여야 합니다.네트워크/서비스 오류로 인해 설문 조사를 제출할 수 없습니다.
사용 가능한 설문 태그
전체 통화
태그 | 설명 |
---|---|
CannotJoin |
고객이 통화에 참가하지 못했습니다. |
CannotInvite |
고객이 통화 중에 새로운 참가자를 추가할 수 없었습니다. |
HadToRejoin |
고객이 문제를 해결하기 위해 통화를 종료하고 다시 참가했습니다. |
CallEndedUnexpectedly |
고객의 전화는 명확한 이유 없이 종료되었습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
오디오 문제
태그 | 설명 |
---|---|
NoLocalAudio |
통화 중 고객 컴퓨터에서 오디오가 나오지 않아 통화에 참여한 사람의 목소리를 들을 수 없습니다. |
NoRemoteAudio |
특정 참가자의 오디오가 누락됩니다. |
Echo |
통화 중에 에코가 감지되었습니다. |
AudioNoise |
의도치 않은 노이즈가 포함된 오디오가 수신되었습니다. |
LowVolume |
오디오가 너무 낮습니다. |
AudioStoppedUnexpectedly |
명확한 이유 없이 오디오가 멈췄습니다(예: 아무도 음소거하지 않음) |
DistortedSpeech |
참가자의 음성이 왜곡되어 예상한 음성과 다릅니다. |
AudioInterruption |
고객에게 오디오 중단, 음성 끊김 등이 발생합니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
동영상 문제
태그 | 설명 |
---|---|
NoVideoReceived |
고객이 참가자로부터 동영상을 받지 못합니다. |
NoVideoSent |
고객이 동영상을 시작했지만 통화에 참여한 사람은 아무도 동영상을 볼 수 없습니다. |
LowQuality |
동영상 품질이 낮습니다. |
Freezes |
동영상이 멈춥니다. |
StoppedUnexpectedly |
화면 공유가 명확한 이유 없이 중단됩니다(예: 카메라가 켜져 있고 영상 통화가 켜져 있음) |
DarkVideoReceived |
동영상이 전송되고 있지만 참가자는 어두운 상자(또는 다른 단일 색)만 봅니다. |
AudioVideoOutOfSync |
동영상과 오디오가 동기화되지 않은 것 같습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
화면 공유 문제
태그 | 설명 |
---|---|
NoContentLocal |
고객이 공유 중인 참가자로부터 화면 공유를 받지 못합니다. |
NoContentRemote |
고객이 화면을 공유하고 있지만 다른 한 명 이상의 참가자가 화면을 볼 수 없습니다. |
CannotPresent |
화면 공유를 시작할 수 없습니다. |
LowQuality |
화면 공유 동영상의 품질이 낮습니다(예: 읽을 수 없음). |
Freezes |
프레젠테이션 중에 화면 공유가 멈춥니다. |
StoppedUnexpectedly |
명확한 이유 없이 화면 공유가 중단됩니다(예: 고객이 화면 공유를 중단하지 않음). |
LargeDelay |
표시되는 내용과 보이는 내용 사이에 지연이 감지됩니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
사용자 지정 옵션
API 값 4개를 각각 수집하거나 또는 가장 중요하다고 생각하는 값만 수집하도록 선택할 수 있습니다. 예를 들어 오디오, 비디오, 화면 공유 환경에 대해 질문하는 대신 고객에게 전반적인 통화 환경에 대해서만 물어보도록 선택할 수 있습니다. 필요에 맞게 입력 범위를 사용자 지정할 수도 있습니다. 기본 입력 범위는 전체 통화, 오디오, 동영상 및 화면 공유의 경우 1~5입니다. 단, API 각각의 값은 최소 0에서 최대 100까지 사용자 지정할 수 있습니다.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
사용자 지정 질문
통화 종료 설문 조사 API를 사용하는 것 외에도 고유의 설문 조사 질문을 만들고 이를 통화 종료 설문 조사 결과와 통합할 수 있습니다.
SubmitSurvey
작업의 결과 페이로드는 ACS 조사 데이터와 사용자 지정 데이터 및 스토리지를 연관시키는 데 사용할 수 있는 데이터를 제공합니다. CallSurveyResult
클래스에는 설문 조사에 대한 고유 식별자를 나타내는 SurveyId
필드와 설문 조사가 생성된 통화에 대한 식별자를 나타내는 CallId
가 있습니다. 이러한 식별자를 사용자 지정 데이터와 함께 저장하면 데이터를 고유하게 연결할 수 있습니다.
Important
통화 종료 설문 조사는 iOS Calling SDK 버전 2.10.0부터 사용할 수 있습니다. 지침을 시도할 때 해당 버전 이상을 사용합니다.
API 사용 샘플
통화 종료 설문 조사 기능은 통화가 끝난 후에 사용해야 합니다. 사용자는 모든 종류의 VoIP 통화, 1:1, 그룹, 모임, 발신 및 수신을 평가할 수 있습니다. 사용자의 통화가 끝나면 애플리케이션에서 최종 사용자에게 평가 점수를 선택할 수 있는 UI가 표시될 수 있으며, 필요한 경우 미리 정의된 목록에서 통화 중에 발생한 문제를 선택할 수 있습니다.
다음 코드 조각은 일대일 호출의 예를 보여 줍니다. 통화가 끝난 후 애플리케이션에서 설문 조사 UI가 표시될 수 있으며, 사용자가 등급을 선택하면 애플리케이션은 기능 API를 호출하여 사용자가 선택한 설문 조사를 제출해야 합니다.
5 평가 등급(1~5점)의 기본 평가 등급을 사용하시기 바랍니다. 그러나 사용자 지정 평가 등급을 사용하여 설문 조사를 제출할 수 있습니다.
설문 조사 시작
설문 조사를 시작하면 CallSurvey
개체를 만듭니다. 이는 설문 조사의 의도를 기록합니다. 이 특정 CallSurvey
개체가 나중에 제출되지 않은 경우, 최종 고객이 설문 조사를 건너뛰거나 무시했다는 의미입니다.
var surveyCallFeature = self.call.feature(Features.survey)
do {
try self.callSurvey = await surveyFeature.startSurvey()
} catch {
print("Failure to start survey")
}
일반적인 사용법
통화를 평가할 때는 크기 조정 필드에 정의된 값을 존중해야 합니다. 하한값은 최악의 환경을 나타내는 반면, 상한값은 완벽한 환경을 의미합니다. 두 값 모두 포함됩니다.
전체 평가는 모든 설문 조사에 필수 범주입니다.
제안된 설문 조사 사용에 대한 자세한 내용은 설문 조사 개념을 참조하세요.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
통화만 평가 - 사용자 지정 등급 없음
let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore
통화만 평가 - 사용자 지정 등급 및 문제 포함
// configuring scale
var ratingScale = new CallSurveyRatingScale()
ratingScale.lowerBound = 0;
ratingScale.upperBound = 1;
ratingScale.lowScoreThreshold = 0;
SurveyScore overall = new SurveyScore();
overall.scale = ratingScale;
// setting score according to scale
overall.score = 1;
callSurvey.overallScore = overall;
// reporting one or more issues
callSurvey.callIssues = [ CallIssues.hadToRejoin ];
전체, 오디오, 동영상 평가(샘플 문제 포함)
let overall = SurveyScore();
overall.score = 3;
let audio = SurveyScore();
audio.score = 4;
let video = SurveyScore();
video.score = 3;
callSurvey.overallScore = overall;
callSurvey.audioScore = audio;
callSurvey.videoScore = video;
callSurvey.videoIssues = [ VideoIssues.freezes ];
설문 조사를 제출하고 SDK가 보낼 수 있는 오류를 처리합니다.
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
다양한 형식의 오류 찾기
설문 조사 제출 중 오류 발생:
submitSurvey API는 다음과 같은 시나리오에서 오류를 반환할 수 있습니다.
전반적인 설문 조사 평가가 필요합니다.
CallSurveyRatingScale
경계는 0~100 내에 있어야 합니다. LowerBound는 UpperBound보다 작아야 합니다. LowScoreThreshold는 범위 내에 있어야 합니다.모든 점수는
CallSurveyRatingScale
에 정의된 경계를 준수해야 합니다.CallSurveyRatingScale
개체의 모든 값이 포함됩니다. 기본 척도를 사용하면 점수 값은 1~5 사이여야 합니다.네트워크/서비스 오류로 인해 설문 조사를 제출할 수 없습니다.
사용 가능한 설문 태그
전체 통화
태그 | 설명 |
---|---|
CannotJoin |
고객이 통화에 참가하지 못했습니다. |
CannotInvite |
고객이 통화 중에 새로운 참가자를 추가할 수 없었습니다. |
HadToRejoin |
고객이 문제를 해결하기 위해 통화를 종료하고 다시 참가했습니다. |
CallEndedUnexpectedly |
고객의 전화는 명확한 이유 없이 종료되었습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제 |
오디오 문제
태그 | 설명 |
---|---|
NoLocalAudio |
통화 중 고객 컴퓨터에서 오디오가 나오지 않아 통화에 참여한 사람의 목소리를 들을 수 없습니다. |
NoRemoteAudio |
특정 참가자의 오디오가 누락됩니다. |
Echo |
통화 중에 에코가 감지되었습니다. |
AudioNoise |
의도치 않은 노이즈가 포함된 오디오가 수신되었습니다. |
LowVolume |
오디오가 너무 낮습니다. |
AudioStoppedUnexpectedly |
명확한 이유 없이 오디오가 멈췄습니다(예: 아무도 음소거하지 않음) |
DistortedSpeech |
참가자의 음성이 왜곡되어 예상한 음성과 다릅니다. |
AudioInterruption |
고객에게 오디오 중단, 음성 끊김 등이 발생합니다. |
OtherIssues |
이전 설명에 맞지 않는 문제 |
동영상 문제
태그 | 설명 |
---|---|
NoVideoReceived |
고객이 참가자로부터 동영상을 받지 못합니다. |
NoVideoSent |
고객이 동영상을 시작했지만 통화에 참여한 사람은 아무도 동영상을 볼 수 없습니다. |
LowQuality |
동영상 품질이 낮습니다. |
Freezes |
동영상이 멈춥니다. |
StoppedUnexpectedly |
화면 공유가 명확한 이유 없이 중단됩니다(예: 카메라가 켜져 있고 영상 통화가 켜져 있음) |
DarkVideoReceived |
동영상이 전송되고 있지만 참가자는 어두운 상자(또는 다른 단일 색)만 봅니다. |
AudioVideoOutOfSync |
동영상과 오디오가 동기화되지 않은 것 같습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제 |
화면 공유 문제
태그 | 설명 |
---|---|
NoContentLocal |
고객이 공유 중인 참가자로부터 화면 공유를 받지 못합니다. |
NoContentRemote |
고객이 화면을 공유하고 있지만 다른 한 명 이상의 참가자가 화면을 볼 수 없습니다. |
CannotPresent |
화면 공유를 시작할 수 없습니다. |
LowQuality |
화면 공유 동영상의 품질이 낮습니다(예: 읽을 수 없음). |
Freezes |
프레젠테이션 중에 화면 공유가 멈춥니다. |
StoppedUnexpectedly |
화면 공유가 명확한 이유 없이 중단됩니다(예: 고객이 화면 공유를 중단하지 않음). |
LargeDelay |
표시되는 내용과 보이는 내용 사이에 지연이 감지됩니다. |
OtherIssues |
이전 설명에 맞지 않는 문제 |
사용자 지정 옵션
API 값 4개를 각각 수집하거나 또는 가장 중요하다고 생각하는 값만 수집하도록 선택할 수 있습니다. 예를 들어 오디오, 비디오, 화면 공유 환경에 대해 질문하는 대신 고객에게 전반적인 통화 환경에 대해서만 물어보도록 선택할 수 있습니다. 필요에 맞게 입력 범위를 사용자 지정할 수도 있습니다. 기본 입력 범위는 전체 통화, 오디오, 동영상 및 화면 공유의 경우 1~5입니다. 단, API 각각의 값은 최소 0에서 최대 100까지 사용자 지정할 수 있습니다.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
사용자 지정 질문
통화 종료 설문 조사 API를 사용하는 것 외에도 고유의 설문 조사 질문을 만들고 이를 통화 종료 설문 조사 결과와 통합할 수 있습니다.
그러나 SubmitSurvey
작업의 결과 페이로드는 ACS 조사 데이터와 사용자 지정 데이터 및 스토리지를 연관시키는 데 사용할 수 있는 데이터를 제공합니다. CallSurveyResult
클래스에는 설문 조사에 대한 고유 식별자를 나타내는 SurveyId
필드와 설문 조사가 생성된 통화에 대한 식별자를 나타내는 CallId
가 있습니다. 이러한 식별자를 사용자 지정 데이터와 함께 저장하면 데이터를 고유하게 연결할 수 있습니다.
Important
통화 종료 설문 조사는 Windows 통화 SDK 버전 1.8.0부터 사용할 수 있습니다. 지침을 시도할 때 해당 버전 이상을 사용합니다.
API 사용 샘플
통화 종료 설문 조사 기능은 통화가 끝난 후에 사용해야 합니다. 사용자는 모든 종류의 VoIP 통화, 1:1, 그룹, 모임, 발신 및 수신을 평가할 수 있습니다. 사용자의 통화가 끝나면 애플리케이션에서 최종 사용자에게 평가 점수를 선택할 수 있는 UI가 표시될 수 있으며, 필요한 경우 미리 정의된 목록에서 통화 중에 발생한 문제를 선택할 수 있습니다.
다음 코드 조각은 일대일 호출의 예를 보여 줍니다. 통화가 끝난 후 애플리케이션에서 설문 조사 UI가 표시될 수 있으며, 사용자가 등급을 선택하면 애플리케이션은 기능 API를 호출하여 사용자가 선택한 설문 조사를 제출해야 합니다.
5 평가 등급(1~5점)의 기본 평가 등급을 사용하시기 바랍니다. 그러나 사용자 지정 평가 등급을 사용하여 설문 조사를 제출할 수 있습니다.
설문 조사 시작
설문 조사를 시작하면 CallSurvey
개체를 만듭니다. 이는 설문 조사의 의도를 기록합니다. 이 특정 CallSurvey
개체가 나중에 제출되지 않은 경우, 최종 고객이 설문 조사를 건너뛰거나 무시했다는 의미입니다.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
일반적인 사용법
통화를 평가할 때는 크기 조정 필드에 정의된 값을 존중해야 합니다. 하한값은 최악의 환경을 나타내는 반면, 상한값은 완벽한 환경을 의미합니다. 두 값 모두 포함됩니다.
전체 평가는 모든 설문 조사에 필수 범주입니다.
제안된 설문 조사 사용에 대한 자세한 내용은 설문 조사 개념을 참조하세요.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
통화만 평가 - 사용자 지정 등급 없음
survey.OverallScore = new CallSurveyScore() { Score = 5 };
통화만 평가 - 사용자 지정 등급 및 문제 포함
// configuring scale and score
survey.OverallScore = new CallSurveyScore() {
Scale = new CallSurveyRatingScale() {
LowerBound = 0,
UpperBound = 1,
LowScoreThreshold = 1,
},
Score = 1
};
// reporting one or more issues
survey.OverallIssues = CallIssues.HadToRejoin;
전체, 오디오, 동영상 평가(샘플 문제 포함)
survey.OverallScore = new CallSurveyScore() {
Score = 5
};
survey.AudioScore = new CallSurveyScore() {
Score = 4
};
survey.VideoScore = new CallSurveyScore() {
Score = 3
};
survey.videoIssues = VideoIssues.Freezes;
설문 조사를 제출하고 SDK가 보낼 수 있는 오류를 처리합니다.
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
다양한 형식의 오류 찾기
설문 조사 제출 중 오류 발생:
submitSurvey API는 다음과 같은 시나리오에서 오류를 반환할 수 있습니다.
전반적인 설문 조사 평가가 필요합니다.
CallSurveyRatingScale
경계는 0~100 내에 있어야 합니다. LowerBound는 UpperBound보다 작아야 합니다. LowScoreThreshold는 범위 내에 있어야 합니다.모든 점수는
CallSurveyRatingScale
에 정의된 경계를 준수해야 합니다.CallSurveyRatingScale
개체의 모든 값이 포함됩니다. 기본 척도를 사용하면 점수 값은 1~5 사이여야 합니다.네트워크/서비스 오류로 인해 설문 조사를 제출할 수 없습니다.
사용 가능한 설문 태그
전체 통화
태그 | 설명 |
---|---|
CannotJoin |
고객이 통화에 참가하지 못했습니다. |
CannotInvite |
고객이 통화 중에 새로운 참가자를 추가할 수 없었습니다. |
HadToRejoin |
고객이 문제를 해결하기 위해 통화를 종료하고 다시 참가했습니다. |
EndedUnexpectedly |
고객의 전화는 명확한 이유 없이 종료되었습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
오디오 문제
태그 | 설명 |
---|---|
NoLocalAudio |
통화 중 고객 컴퓨터에서 오디오가 나오지 않아 통화에 참여한 사람의 목소리를 들을 수 없습니다. |
NoRemoteAudio |
특정 참가자의 오디오가 누락됩니다. |
Echo |
통화 중에 에코가 감지되었습니다. |
AudioNoise |
의도치 않은 노이즈가 포함된 오디오가 수신되었습니다. |
LowVolume |
오디오가 너무 낮습니다. |
AudioStoppedUnexpectedly |
명확한 이유 없이 오디오가 멈췄습니다(예: 아무도 음소거하지 않음) |
DistortedSpeech |
참가자의 음성이 왜곡되어 예상한 음성과 다릅니다. |
AudioInterruption |
고객에게 오디오 중단, 음성 끊김 등이 발생합니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
동영상 문제
태그 | 설명 |
---|---|
NoVideoReceived |
고객이 참가자로부터 동영상을 받지 못합니다. |
NoVideoSent |
고객이 동영상을 시작했지만 통화에 참여한 사람은 아무도 동영상을 볼 수 없습니다. |
LowQuality |
동영상 품질이 낮습니다. |
Freezes |
동영상이 멈춥니다. |
StoppedUnexpectedly |
화면 공유가 명확한 이유 없이 중단됩니다(예: 카메라가 켜져 있고 영상 통화가 켜져 있음) |
DarkVideoReceived |
동영상이 전송되고 있지만 참가자는 어두운 상자(또는 다른 단일 색)만 봅니다. |
AudioVideoOutOfSync |
동영상과 오디오가 동기화되지 않은 것 같습니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
화면 공유 문제
태그 | 설명 |
---|---|
NoContentLocal |
고객이 공유 중인 참가자로부터 화면 공유를 받지 못합니다. |
NoContentRemote |
고객이 화면을 공유하고 있지만 다른 한 명 이상의 참가자가 화면을 볼 수 없습니다. |
CannotPresent |
화면 공유를 시작할 수 없습니다. |
LowQuality |
화면 공유 동영상의 품질이 낮습니다(예: 읽을 수 없음). |
Freezes |
프레젠테이션 중에 화면 공유가 멈춥니다. |
StoppedUnexpectedly |
명확한 이유 없이 화면 공유가 중단됩니다(예: 고객이 화면 공유를 중단하지 않음). |
LargeDelay |
표시되는 내용과 보이는 내용 사이에 지연이 감지됩니다. |
OtherIssues |
이전 설명에 맞지 않는 문제입니다. |
사용자 지정 옵션
API 값 4개를 각각 수집하거나 또는 가장 중요하다고 생각하는 값만 수집하도록 선택할 수 있습니다. 예를 들어 오디오, 비디오, 화면 공유 환경에 대해 질문하는 대신 고객에게 전반적인 통화 환경에 대해서만 물어보도록 선택할 수 있습니다. 필요에 맞게 입력 범위를 사용자 지정할 수도 있습니다. 기본 입력 범위는 전체 통화, 오디오, 동영상 및 화면 공유의 경우 1~5입니다. 단, API 각각의 값은 최소 0에서 최대 100까지 사용자 지정할 수 있습니다.
참고 항목
API에서 질문에 표시된 구분 값은 Microsoft에서 설문 조사 데이터를 분석할 때 사용하는 임계값입니다. 구분 값 또는 입력 범위를 사용자 지정하면 Microsoft에서는 사용자 지정에 따라 설문 조사 데이터를 분석합니다.
사용자 지정 질문
통화 종료 설문 조사 API를 사용하는 것 외에도 고유의 설문 조사 질문을 만들고 이를 통화 종료 설문 조사 결과와 통합할 수 있습니다.
그러나 SubmitSurvey
작업의 결과 페이로드는 ACS 조사 데이터와 사용자 지정 데이터 및 스토리지를 연관시키는 데 사용할 수 있는 데이터를 제공합니다. CallSurveyResult
클래스에는 설문 조사에 대한 고유 식별자를 나타내는 SurveyId
필드와 설문 조사가 생성된 통화에 대한 식별자를 나타내는 CallId
가 있습니다. 이러한 식별자를 사용자 지정 데이터와 함께 저장하면 데이터를 고유하게 연결할 수 있습니다.
설문 조사 데이터 수집
Important
설문 조사 데이터를 받아 분석하려면 Azure Monitor에서 진단 설정을 사용하도록 설정하여 설문 조사의 로그 데이터를 Log Analytics 작업 영역이나 Event Hubs 또는 Azure Storage 계정으로 보내야 합니다. 이러한 옵션 중 하나에 설문 조사 데이터를 보내지 않으면 설문 조사 데이터가 저장되지 않고 손실됩니다. 통신 서비스에 대해 이러한 로그를 사용하도록 설정하려면 통화 종료 설문 조사 로그를 참조하세요.
Log Analytics 작업 영역을 사용하여 설문 조사 데이터 보기
설문 조사의 로그 데이터를 저장하고 설문 조사 결과에 액세스하려면 Log Analytics 작업 영역을 사용하도록 설정해야 합니다. 통신 서비스에 대해 이러한 로그를 사용하도록 설정하려면 통화 종료 설문 조사 로그를 참조하세요.
- Log Analytics 작업 영역을 Power BI와 통합할 수도 있습니다. Log Analytics와 Power BI 통합을 참조하세요.
모범 사례
다음은 권장되는 설문 조사 흐름과 고려할 만한 제안된 질문 프롬프트입니다. 개발 과정에서는 권장 사항을 사용하거나 시각적 인터페이스에 대한 사용자 지정 질문 프롬프트 및 흐름을 사용할 수 있습니다.
질문 1: 사용자는 전반적인 통화 품질 환경을 어떻게 받아들이고 있나요? 참가자의 전반적인 품질에 대해서만 질문하여 설문 조사를 시작하는 것이 좋습니다. 첫 번째 질문과 두 번째 질문을 분리하면 설문 조사 참가자가 통화 품질 문제가 발생했다고 나타내더라도 오디오, 동영상 및 화면 공유 문제에 대한 응답만 수집할 수 있습니다.
- 제안된 프롬프트: "통화 품질은 어땠나요?"
- API 질문 값: 전체 통화
질문 2: 사용자가 통화 중에 오디오, 동영상 또는 화면 공유 문제를 인식했나요? 설문 조사 참가자가 질문 1에 응답하여 전체 통화에 대한 컷오프 값 이하의 점수를 얻은 경우 두 번째 질문을 제시합니다.
- 제안된 프롬프트: "개선할 수 있는 사항은 무엇인가요?"
- API 질문 값: 오디오, 동영상 및 화면 공유
설문 조사 지침
- 비효율적인 설문 조사를 방지하려면 모든 통화 참가자를 대상으로 설문 조사를 진행하지 마세요.
- 질문의 순서가 중요합니다. 응답자가 시각적으로 보이는 첫 번째 프롬프트에 대부분의 피드백을 집중할 경우 질문 2에서 선택적 태그의 시퀀스를 임의로 지정하는 것이 좋습니다.
- 릴리스 영향을 식별하기 위해 제어된 실험에서 별도의 Azure Communication Services 리소스에 대한 설문 조사를 사용하는 것이 좋습니다.
다음 단계
통화 종료 설문 조사 로그를 참조해 설문 조사 데이터를 분석하세요.
통화 종료 설문 조사에 대해 자세히 알아보려면 통화 종료 설문 조사 개요를 참조하세요.
Log Analytics 작업 영역을 사용하는 방법에 대한 자세한 내용은 Log Analytics 자습서를 참조하세요.
Log Analytics에서 사용자 고유의 쿼리를 만들려면 쿼리 시작을 참조하세요.