Использование опроса завершения звонка для сбора отзывов пользователей
В этом руководстве показано, как использовать Службы коммуникации Azure конце опроса звонков.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Активный ресурс Служб коммуникации. Создайте ресурс Служб коммуникации. Результаты опроса привязаны к отдельным ресурсам Служб коммуникации.
- Активная рабочая область Log Analytics, также известная как журналы Azure Monitor. См . журналы опроса вызовов.
- Чтобы провести опрос с пользовательскими вопросами с помощью текста бесплатной формы, вам потребуется ресурс App Insights.
Внимание
Завершение опроса звонков доступно начиная с версии 1.13.1 пакета SDK для вызовов. При попытке выполнить инструкции обязательно используйте такую версию или более позднюю версию.
Пример использования API
После завершения вызова следует использовать функцию "Завершение опроса звонков". Пользователи могут оценить любой вид звонка VoIP, 1:1, группу, собрание, исходящие и входящие. Когда вызов пользователя завершится, приложение может показать пользовательский интерфейс конечному пользователю, позволяя им выбрать оценку оценки и при необходимости выбрать проблемы, с которыми они столкнулись во время вызова из нашего предопределенного списка.
В следующем фрагменте кода показан пример вызова "один к одному". После завершения вызова приложение может отобразить пользовательский интерфейс опроса и после выбора оценки приложение должно вызвать 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}: {rating.score} должно быть между {rating.scale?. lowerBound} и {rating.scale?. upperBound}.
{propertyName}: {rating.scale?. lowScoreThreshold} должен быть между {rating.scale?. lowerBound} и {rating.scale?. upperBound}.
{propertyName} lowerBound: {rating.scale?. lowerBound} и upperBound: {rating.scale?. upperBound} должен быть от 0 до 100.
Повторите попытку [ACS не удалось отправить опрос из-за ошибки сети или другой ошибки].
Мы возвращаем коды ошибок с сообщением.
- Код ошибки 400 (неправильный запрос) для всех сообщений об ошибках, кроме одного.
{ message: validationErrorMessage, code: 400 }
- Одно значение 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 — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Дополнительные теги опроса
Категории рейтингов | Необязательные теги |
---|---|
Общий вызов | 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 или только тех, которые вы найдете наиболее важными. Например, вы можете попросить только клиентов об их общем опыте звонка вместо того, чтобы попросить их о своем аудио, видео и общий доступ к экрану. Вы также можете настроить диапазоны входных данных в соответствии с вашими потребностями. Диапазон входных данных по умолчанию — от 1 до 5 для общего вызова, аудио, видео и общего доступа к экрану. Однако каждое значение API можно настроить от минимума 0 до максимума 100.
Примеры настройки
Категории оценки API | Значение отсечения* | Диапазон входных данных |
---|---|---|
Общий вызов | 0–100 | 0–100 |
Аудио | 0–100 | 0–100 |
Видео | 0–100 | 0–100 |
Экранная папка | 0–100 | 0–100 |
Примечание.
Указанное значение отрезка вопроса в API — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Настраиваемые вопросы
Помимо использования API завершения опроса, вы можете создать собственные вопросы опроса и включить их в результаты опроса конца звонка. Ниже приведены шаги по внедрению собственных вопросов клиентов в опрос и запроса результатов API завершения опроса и собственных вопросов опроса.
Создайте ресурс App Insights.
Внедрение приложение Azure Insights в приложение Щелкните здесь, чтобы узнать больше о инициализации App Insights с помощью обычного JavaScript. Кроме того, для получения зависимостей App Insights можно использовать NPM. Щелкните здесь, чтобы узнать больше о инициализации App Insights с помощью NPM.
Создание пользовательского интерфейса в приложении, которое обслуживает пользовательские вопросы пользователю и собирает свои входные данные, позволяет предположить, что приложение собрало ответы в виде строки в переменной
improvementSuggestion
.Отправьте результаты опроса в ACS и отправьте ответ пользователя с помощью App Insights:
currentCall.feature(SDK.Features.CallSurvey).submitSurvey(survey).then(res => { // `improvementSuggesstion` 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();
Ответы пользователей, отправленные с помощью AppInsights, доступны в рабочей области App Insights. Книги можно использовать для запроса между несколькими ресурсами, корреляции оценок вызовов и пользовательских данных опроса. Действия по сопоставлению рейтингов вызовов и пользовательских данных опроса:
- Создайте новые книги (ресурс ACS —> мониторинг> — книги —> новые) и запросите данные опроса вызовов из ресурса ACS.
- Добавление нового запроса (+Добавить —> добавить запрос)
- Убедитесь, что
Data source
это иResource type
естьLogs
Communication
- Запрос можно переименовать (дополнительные параметры —> имя шага [пример: call-survey])
- Помните, что это может потребовать не более 2 часов, прежде чем данные опроса становятся видимыми в портал Azure. Запрос данных о рейтинге вызовов:
ACSCallSurvey | where TimeGenerated > now(-24h)
- Добавьте еще один запрос, чтобы получить данные из App Insights (+Добавить —> добавить запрос)
- Убедитесь, что
Data source
это иResource type
естьLogs
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
по мере необходимости
title: Службы коммуникации Azure End of Call Survey titleSuffix: Описание документа Службы коммуникации Azure учебника: узнайте, как использовать завершение опроса звонков для сбора отзывов пользователей. author: viniciusl-msft ms.author: viniciusl manager: gaobob services: azure-communication-services ms.date: 7/30/2024 ms.topic: tutorial ms.service: azure-communication-services ms.subservice: вызывающий вызов
Внимание
Завершение опроса звонков доступно начиная с версии 2.10.0 пакета SDK для вызовов Android. При попытке выполнить инструкции обязательно используйте такую версию или более позднюю версию.
Пример использования API
После завершения вызова следует использовать функцию "Завершение опроса звонков". Пользователи могут оценить любой вид звонка VoIP, 1:1, группу, собрание, исходящие и входящие. Когда вызов пользователя завершится, приложение может показать пользовательский интерфейс конечному пользователю, позволяя им выбрать оценку оценки и при необходимости выбрать проблемы, с которыми они столкнулись во время вызова из нашего предопределенного списка.
В следующем фрагменте кода показан пример вызова "один к одному". После завершения вызова приложение может отобразить пользовательский интерфейс опроса и после выбора оценки приложение должно вызвать API функций, чтобы отправить опрос с помощью выбора пользователя.
Мы рекомендуем использовать шкалу рейтингов по умолчанию, которая является пятью звездами (от 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 — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Дополнительные сведения об использовании предлагаемых опросов см. в разделе "Основные понятия опроса"
Только частотный вызов — не настраиваемая шкала
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());
}
Поиск различных типов ошибок
Сбои при отправке опроса:
API submitSurvey может возвращать ошибку в следующих сценариях:
Требуется общая оценка опроса.
CallSurveyRatingScale
границы должны находиться в пределах 0 и 100. Нижний трафик должен быть меньше верхнего. LowScoreThreshold должен находиться в пределах границ.Любой из показателей должен уважать границы, определенные параметром
CallSurveyRatingScale
. Все значения в объектеCallSurveyRatingScale
включены. С помощью шкалы по умолчанию значение оценки должно быть от 1 до 5.Не удается отправить опрос из-за ошибки сети или службы.
Доступные теги опроса
Общий вызов
Тег | Description |
---|---|
CannotJoin |
Клиент не смог присоединиться к вызову |
CannotInvite |
Клиент не смог добавить нового участника по вызову |
HadToRejoin |
Клиент слева и снова присоединился к вызову в качестве обходного решения проблемы |
CallEndedUnexpectedly |
Звонок клиента закончился без видимой причины |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с аудио
Тег | Description |
---|---|
NoLocalAudio |
Нет звука на компьютере клиента от звонка, неспособности услышать кого-либо в вызове |
NoRemoteAudio |
Отсутствующий звук от определенного участника |
Echo |
Эхо, воспринимаемое в вызове |
AudioNoise |
Звук, полученный с непредвиденным шумом |
LowVolume |
Звук слишком низкий |
AudioStoppedUnexpectedly |
Звук остановлен без четкой причины (например, никто не отключен) |
DistortedSpeech |
Голос участника искажается, отличается от ожидаемого голоса |
AudioInterruption |
Клиент испытывает прерывания звука, сокращение голоса и т. д. |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с видео
Тег | Description |
---|---|
NoVideoReceived |
Клиент не получает видео от участника |
NoVideoSent |
Клиент запускает видео, но никто в вызове не может видеть его |
LowQuality |
Низкое качество видео |
Freezes |
Зависание видео |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, камера включена и видеозвонок включена) |
DarkVideoReceived |
Видео отправляется, но участник видит только темное поле (или другой один цвет) |
AudioVideoOutOfSync |
Видео и звук, кажется, не синхронизированы |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с общим доступом к экрану
Тег | Description |
---|---|
NoContentLocal |
Клиент не получает общий доступ к экрану от участника, который предоставляет общий доступ |
NoContentRemote |
Клиент предоставляет общий доступ к экрану, но другие участники не могут видеть его |
CannotPresent |
Не удается запустить общий ресурс экрана |
LowQuality |
Низкое качество видео с экрана, например не удается прочитать |
Freezes |
Общий доступ к экрану зависает во время презентации |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, общий доступ к экрану не был остановлен клиентом) |
LargeDelay |
Воспринимаемая задержка между отображаемым и видимым |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Параметры настройки
Вы можете выбрать сбор каждого из четырех значений API или только тех, которые вы найдете наиболее важными. Например, вы можете попросить только клиентов об их общем опыте звонка вместо того, чтобы попросить их о своем аудио, видео и общий доступ к экрану. Вы также можете настроить диапазоны входных данных в соответствии с вашими потребностями. Диапазон входных данных по умолчанию составляет от 1 до 5 для общего вызова, аудио, видео и общего доступа к экрану. Однако каждое значение API можно настроить от минимума 0 до максимума 100.
Примечание.
Указанное значение отрезка вопроса в API — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Настраиваемые вопросы
Помимо использования API завершения опроса, вы можете создать собственные вопросы опроса и включить их в результаты опроса конца звонка.
Результат полезных SubmitSurvey
данных операции предоставляет данные, которые можно использовать для сопоставления данных опроса ACS с собственными пользовательскими данными и хранилищем. CallSurveyResult
класс имеет SurveyId
поле, которое обозначает уникальный идентификатор опроса и CallId
обозначает идентификатор вызова, в котором был создан опрос. Сохранение этих идентификаторов вместе с настраиваемыми данными позволяет связывать данные уникальным образом.
Внимание
Завершение опроса звонков доступно начиная с версии 2.10.0 пакета SDK для вызовов iOS. При попытке выполнить инструкции обязательно используйте такую версию или более позднюю версию.
Пример использования API
После завершения вызова следует использовать функцию "Завершение опроса звонков". Пользователи могут оценить любой вид звонка VoIP, 1:1, группу, собрание, исходящие и входящие. Когда вызов пользователя завершится, приложение может показать пользовательский интерфейс конечному пользователю, позволяя им выбрать оценку оценки и при необходимости выбрать проблемы, с которыми они столкнулись во время вызова из нашего предопределенного списка.
В следующем фрагменте кода показан пример вызова "один к одному". После завершения вызова приложение может отобразить пользовательский интерфейс опроса и после выбора оценки приложение должно вызвать API функций, чтобы отправить опрос с помощью выбора пользователя.
Мы рекомендуем использовать шкалу рейтингов по умолчанию, которая является пятью звездами (от 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 — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Только частотный вызов — не настраиваемая шкала
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)
}
Поиск различных типов ошибок
Сбои при отправке опроса:
API submitSurvey может возвращать ошибку в следующих сценариях:
Требуется общая оценка опроса.
CallSurveyRatingScale
границы должны находиться в пределах 0 и 100. Нижний трафик должен быть меньше верхнего. LowScoreThreshold должен находиться в пределах границ.Любой из показателей должен уважать границы, определенные параметром
CallSurveyRatingScale
. Все значения в объектеCallSurveyRatingScale
включены. С помощью шкалы по умолчанию значение оценки должно быть от 1 до 5.Не удается отправить опрос из-за ошибки сети или службы.
Доступные теги опроса
Общий вызов
Тег | Description |
---|---|
CannotJoin |
Клиент не смог присоединиться к вызову |
CannotInvite |
Клиент не смог добавить нового участника по вызову |
HadToRejoin |
Клиент слева и снова присоединился к вызову в качестве обходного решения проблемы |
CallEndedUnexpectedly |
Звонок клиента закончился без видимой причины |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с аудио
Тег | Description |
---|---|
NoLocalAudio |
Нет звука на компьютере клиента от звонка, неспособности услышать кого-либо в вызове |
NoRemoteAudio |
Отсутствующий звук от определенного участника |
Echo |
Эхо, воспринимаемое в вызове |
AudioNoise |
Звук, полученный с непредвиденным шумом |
LowVolume |
Звук слишком низкий |
AudioStoppedUnexpectedly |
Звук остановлен без четкой причины (например, никто не отключен) |
DistortedSpeech |
Голос участника искажается, отличается от ожидаемого голоса |
AudioInterruption |
Клиент испытывает прерывания звука, сокращение голоса и т. д. |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с видео
Тег | Description |
---|---|
NoVideoReceived |
Клиент не получает видео от участника |
NoVideoSent |
Клиент запускает видео, но никто в вызове не может видеть его |
LowQuality |
Низкое качество видео |
Freezes |
Зависание видео |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, камера включена и видеозвонок включена) |
DarkVideoReceived |
Видео отправляется, но участник видит только темное поле (или другой один цвет) |
AudioVideoOutOfSync |
Видео и звук, похоже, не синхронизированы |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с общим доступом к экрану
Тег | Description |
---|---|
NoContentLocal |
Клиент не получает общий доступ к экрану от участника, который предоставляет общий доступ |
NoContentRemote |
Клиент предоставляет общий доступ к экрану, но другие участники не могут видеть его |
CannotPresent |
Не удается запустить общий ресурс экрана |
LowQuality |
Низкое качество видео с экрана, например не удается прочитать |
Freezes |
Общий доступ к экрану зависает во время презентации |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, общий ресурс экрана не был остановлен клиентом) |
LargeDelay |
Воспринимаемая задержка между отображаемым и видимым |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Параметры настройки
Вы можете выбрать сбор каждого из четырех значений API или только тех, которые вы найдете наиболее важными. Например, вы можете попросить только клиентов об их общем опыте звонка вместо того, чтобы попросить их о своем аудио, видео и общий доступ к экрану. Вы также можете настроить диапазоны входных данных в соответствии с вашими потребностями. Диапазон входных данных по умолчанию составляет от 1 до 5 для общего вызова, аудио, видео и общего доступа к экрану. Однако каждое значение API можно настроить от минимума 0 до максимума 100.
Примечание.
Указанное значение отрезка вопроса в API — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Настраиваемые вопросы
Помимо использования API завершения опроса, вы можете создать собственные вопросы опроса и включить их в результаты опроса конца звонка.
Однако полезные данные SubmitSurvey
результатов операции предоставляют данные, которые можно использовать для сопоставления данных опроса ACS с собственными пользовательскими данными и хранилищем. CallSurveyResult
класс имеет SurveyId
поле, которое обозначает уникальный идентификатор опроса и CallId
обозначает идентификатор вызова, в котором был создан опрос. Сохранение этих идентификаторов вместе с настраиваемыми данными позволяет связывать данные уникальным образом.
Внимание
Завершение опроса звонков доступно начиная с версии 1.8.0 пакета SDK для вызовов Windows. При попытке выполнить инструкции обязательно используйте такую версию или более позднюю версию.
Пример использования API
После завершения вызова следует использовать функцию "Завершение опроса звонков". Пользователи могут оценить любой вид звонка VoIP, 1:1, группу, собрание, исходящие и входящие. Когда вызов пользователя завершится, приложение может показать пользовательский интерфейс конечному пользователю, позволяя им выбрать оценку оценки и при необходимости выбрать проблемы, с которыми они столкнулись во время вызова из нашего предопределенного списка.
В следующем фрагменте кода показан пример вызова "один к одному". После завершения вызова приложение может отобразить пользовательский интерфейс опроса и после выбора оценки приложение должно вызвать API функций, чтобы отправить опрос с помощью выбора пользователя.
Мы рекомендуем использовать шкалу рейтингов по умолчанию, которая является пятью звездами (от 1 до 5). Однако можно отправить опрос с пользовательским масштабом оценки.
Запуск опроса
Вы создаете CallSurvey
объект, запуская опрос. Это записывает намерение опроса. В случае, если этот конкретный CallSurvey
объект не отправляется после этого, это означает, что опрос был пропущен или проигнорирован конечным клиентом.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
Общие сведения об использовании
При вызовах оценки необходимо учитывать значения, определенные в поле масштабирования. Значение нижнего трафика указывает на худший опыт, в то время как максимальное значение входящие означает идеальный интерфейс. Оба значения являются включающими.
Общая оценка является обязательной категорией для всех опросов.
Дополнительные сведения об использовании предлагаемых опросов см. в разделе "Основные понятия опроса"
Примечание.
Указанное значение отрезка вопроса в API — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Только частотный вызов — не настраиваемая шкала
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);
}
Поиск различных типов ошибок
Сбои при отправке опроса:
API submitSurvey может возвращать ошибку в следующих сценариях:
Требуется общая оценка опроса.
CallSurveyRatingScale
границы должны находиться в пределах 0 и 100. Нижний трафик должен быть меньше верхнего. LowScoreThreshold должен находиться в пределах границ.Любой из показателей должен уважать границы, определенные параметром
CallSurveyRatingScale
. Все значения в объектеCallSurveyRatingScale
включены. С помощью шкалы по умолчанию значение оценки должно быть от 1 до 5.Не удается отправить опрос из-за ошибки сети или службы.
Доступные теги опроса
Общий вызов
Тег | Description |
---|---|
CannotJoin |
Клиент не смог присоединиться к вызову |
CannotInvite |
Клиент не смог добавить нового участника по вызову |
HadToRejoin |
Клиент слева и снова присоединился к вызову в качестве обходного решения проблемы |
EndedUnexpectedly |
Звонок клиента закончился без видимой причины |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы со звуком
Тег | Description |
---|---|
NoLocalAudio |
Нет звука на компьютере клиента от звонка, неспособности услышать кого-либо в вызове |
NoRemoteAudio |
Отсутствующий звук от определенного участника |
Echo |
Эхо, воспринимаемое в вызове |
AudioNoise |
Звук, полученный с непредвиденным шумом |
LowVolume |
Звук слишком низкий |
AudioStoppedUnexpectedly |
Звук остановлен без четкой причины (например, никто не отключен) |
DistortedSpeech |
Голос участника искажается, отличается от ожидаемого голоса |
AudioInterruption |
Клиент испытывает прерывания звука, сокращение голоса и т. д. |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с видео
Тег | Description |
---|---|
NoVideoReceived |
Клиент не получает видео от участника |
NoVideoSent |
Клиент запускает видео, но никто в вызове не может видеть его |
LowQuality |
Низкое качество видео |
Freezes |
Зависание видео |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, камера включена и видеозвонок включена) |
DarkVideoReceived |
Видео отправляется, но участник видит только темное поле (или другой один цвет) |
AudioVideoOutOfSync |
Видео и звук, похоже, не синхронизированы |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Проблемы с общим доступом к экрану
Тег | Description |
---|---|
NoContentLocal |
Клиент не получает общий доступ к экрану от участника, который предоставляет общий доступ |
NoContentRemote |
Клиент предоставляет общий доступ к экрану, но другие участники не могут видеть его |
CannotPresent |
Не удается запустить общий ресурс экрана |
LowQuality |
Низкое качество видео с экрана, например не удается прочитать |
Freezes |
Общий доступ к экрану зависает во время презентации |
StoppedUnexpectedly |
Экранная папка останавливается без четкой причины (например, общий доступ к экрану не был остановлен клиентом) |
LargeDelay |
Воспринимаемая задержка между отображаемым и видимым |
OtherIssues |
Любая проблема, которая не соответствует предыдущим описаниям |
Параметры настройки
Вы можете выбрать сбор каждого из четырех значений API или только тех, которые вы найдете наиболее важными. Например, вы можете попросить только клиентов об их общем опыте звонка вместо того, чтобы попросить их о своем аудио, видео и общий доступ к экрану. Вы также можете настроить диапазоны входных данных в соответствии с вашими потребностями. Диапазон входных данных по умолчанию составляет от 1 до 5 для общего вызова, аудио, видео и общего доступа к экрану. Однако каждое значение API можно настроить от минимума 0 до максимума 100.
Примечание.
Указанное значение отрезка вопроса в API — это пороговое значение, которое корпорация Майкрософт использует при анализе данных опроса. При настройке значения отсечения или диапазона входных данных корпорация Майкрософт анализирует данные опроса в соответствии с вашей настройкой.
Настраиваемые вопросы
Помимо использования API завершения опроса, вы можете создать собственные вопросы опроса и включить их в результаты опроса конца звонка.
Однако полезные данные SubmitSurvey
результатов операции предоставляют данные, которые можно использовать для сопоставления данных опроса ACS с собственными пользовательскими данными и хранилищем. CallSurveyResult
класс имеет SurveyId
поле, которое обозначает уникальный идентификатор опроса и CallId
обозначает идентификатор вызова, в котором был создан опрос. Сохранение этих идентификаторов вместе с настраиваемыми данными позволяет связывать данные уникальным образом.
Сбор данных опроса
Внимание
Необходимо включить параметр диагностики в Azure Monitor для отправки данных журнала опросов в рабочую область Log Analytics, Центры событий или учетную запись хранения Azure для получения и анализа данных опроса. Если данные опроса не отправляются в один из этих вариантов, данные опроса не будут храниться и будут потеряны. Чтобы включить эти журналы для служб коммуникации, см. раздел "Окончание журналов опроса звонков"
Просмотр данных опроса с помощью рабочей области Log Analytics
Необходимо включить рабочую область Log Analytics для хранения данных журнала опросов и доступа к результатам опроса. Чтобы включить эти журналы для службы коммуникации, см. раздел "Завершение журналов опроса звонков".
- Вы также можете интегрировать рабочую область Log Analytics с Power BI, см. статью "Интеграция Log Analytics с Power BI".
Рекомендации
Ниже приведены рекомендуемые потоки опросов и предложенные вопросы для рассмотрения. Разработка может использовать нашу рекомендацию или использовать настраиваемые запросы и потоки вопросов для визуального интерфейса.
Вопрос 1. Как пользователи воспринимают общий опыт качества звонков? Мы рекомендуем начать опрос, только спрашивая об общем качестве участников. Если вы отделяете первые и второй вопросы, это помогает собирать только ответы на проблемы с аудио, видео и общий доступ к экранам, если участник опроса указывает, что они столкнулись с проблемами качества звонка.
- Предлагаемый запрос: "Как было качество вызова?"
- Значения вопросов API: общий вызов
Вопрос 2. Пользователь воспринимал какие-либо проблемы с аудио, видео или общий доступ к экранам в вызове? Если участник опроса ответил на вопрос 1 с оценкой по или ниже значения отсечения для общего вызова, то приведите второй вопрос.
- Предложен запрос: "Что могло быть лучше?"
- Значения вопросов API: аудио, видео и общий доступ к экрану
Рекомендации по опросу
- Избегайте выгорание опросов, не проводите опрос всех участников звонка.
- Порядок вопросов. Рекомендуется случайно выбрать последовательность необязательных тегов в вопросе 2, если респонденты сосредоточены большую часть отзывов на первом запросе, который они визуально видят.
- Рассмотрите возможность использования опросов для отдельных Службы коммуникации Azure ресурсов в контролируемых экспериментах для выявления последствий выпуска.
Следующие шаги
Анализ данных опроса см. в статье "Окончание журналов опроса вызовов"
Дополнительные сведения о конце опроса звонков см. в статье "Обзор окончания опроса звонков"
Узнайте, как использовать рабочую область Log Analytics, см . руководство по Log Analytics
Создание собственных запросов в Log Analytics см. в статье " Начало работы с запросами"