Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel vous montre comment utiliser l’enquête de fin d’appel Azure Communication Services.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource active des Services de communication. Créez une ressource Communication Services. Les résultats de l’enquête sont liés à des ressources Communication Services uniques.
- Un espace de travail Log Analytics actif, aussi appelé Journaux Azure Monitor. Consultez Journaux d’enquête de fin d’appel.
- Pour mener une enquête avec des questions personnalisées à l’aide de texte de formulaire libre, vous avez besoin d’une ressource App Insight.
Important
L'enquête de fin d'appel est disponible à partir de la version 1.13.1 du Kit de développement logiciel (SDK) d'appel. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.
- Les versions actives LTS (Prise en charge à long terme) de Node.js sont recommandées.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête sur les appels doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.
Les snips de code suivants montrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut. Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée. Vous pouvez consulter l’exemple d’application pour l’exemple d’utilisation de l’API.
Appel de débit uniquement : pas d’échelle personnalisée
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
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'));
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 },
audioRating: { score: 4 },
videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))
Gérer les erreurs que le Kit de développement logiciel (SDK) peut envoyer
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête
L’API retourne les messages d’erreur suivants si la validation des données échoue ou si l’enquête ne peut pas être envoyée.
Au moins une note de sondage est requise.
Dans la mise à l’échelle par défaut, X doit être de 1 à 5. - où X est l’un des éléments suivants :
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName} : {rating.score} doit être compris entre {rating.scale ?. lowerBound} et {rating.scale ?. upperBound}.
{propertyName} : {rating.scale ?. lowScoreThreshold} doit être compris entre {rating.scale ?. lowerBound} et {rating.scale ?. upperBound}.
{propertyName} lowerBound : {rating.scale ?. lowerBound} et upperBound : {rating.scale ?. upperBound} doit être compris entre 0 et 100.
Réessayez [ACS n’a pas pu envoyer d’enquête, en raison d’une erreur réseau ou autre].
Nous retournerons tous les codes d’erreur avec un message.
- Code d’erreur 400 (demande incorrecte) pour tous les messages d’erreur à l’exception d’un.
{ message: validationErrorMessage, code: 400 }
- Un code d’erreur 408 (délai d’expiration) lorsque l’événement est abandonné :
{ message: "Please try again.", code: 408 }
Toutes les valeurs possibles
Configuration de l’API d’enquête par défaut
| Catégories d’évaluation des API | Valeur de coupure* | Plage d’entrée | Commentaires |
|---|---|---|---|
| Appel global | 2 | 1 - 5 | Enquête sur l’expérience de qualité globale d’un participant appelant sur une échelle de 1 à 5. Une réponse de 1 indique une expérience d’appel imparfaite et 5 indique un appel parfait. La valeur de coupure de 2 signifie qu’une réponse cliente de 1 ou 2 indique une expérience d’appel inférieure à parfaite. |
| Audio | 2 | 1 - 5 | Une réponse de 1 indique une expérience audio incorrecte et 5 indique qu’aucun problème audio n’a été rencontré. |
| Video | 2 | 1 - 5 | Une réponse de 1 indique une expérience vidéo incorrecte et 5 indique qu’aucun problème vidéo n’a été rencontré. |
| Screenshare | 2 | 1 - 5 | Une réponse de 1 indique une expérience de partage d’écran incorrecte et 5 indique qu’aucun problème de partage d’écran n’a été rencontré. |
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Autres balises d’enquête
| Catégories d’évaluation | Balises facultatives |
|---|---|
| Appel global |
CallCannotJoin
CallCannotInvite
HadToRejoin
CallEndedUnexpectedly
OtherIssues
|
| Audio |
NoLocalAudio
NoRemoteAudio
Echo
AudioNoise
LowVolume
AudioStoppedUnexpectedly
DistortedSpeech
AudioInterruption
OtherIssues
|
| Video |
NoVideoReceived
NoVideoSent
LowQuality
Freezes
StoppedUnexpectedly
DarkVideoReceived
AudioVideoOutOfSync
OtherIssues
|
| Screenshare |
NoContentLocal
NoContentRemote
CannotPresent
LowQuality
Freezes
StoppedUnexpectedly
LargeDelay
OtherIssues
|
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est de 1 à 5 pour l’appel global, l’audio, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à 100 maximum.
Exemples de personnalisation
| Catégories d’évaluation des API | Valeur de coupure* | Plage d’entrée |
|---|---|---|
| Appel global | 0 - 100 | 0 - 100 |
| Audio | 0 - 100 | 0 - 100 |
| Video | 0 - 100 | 0 - 100 |
| Screenshare | 0 - 100 | 0 - 100 |
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel. Vous trouverez ci-dessous les étapes pour intégrer vos propres questions clients dans un sondage, ainsi que pour interroger les résultats de l'API End of Call Survey et de vos propres questions de sondage.
Incorporer Azure AppInsights dans votre application Cliquez ici pour en savoir plus sur l’initialisation d’App Insight à l’aide de JavaScript brut. Vous pouvez également utiliser NPM pour obtenir les dépendances App Insights. Cliquez ici pour en savoir plus sur l’initialisation d’App Insight à l’aide de NPM.
Créez une interface utilisateur dans votre application qui répond aux questions personnalisées à l’utilisateur et rassemblez son entrée, supposons que votre application a collecté des réponses sous forme de chaîne dans la
improvementSuggestionvariableEnvoyez les résultats de l’enquête à ACS et envoyez une réponse utilisateur à l’aide d’App Insights :
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();
Les réponses utilisateur envoyées à l’aide d’AppInsights sont disponibles sous votre espace de travail App Insights. Vous pouvez utiliser des classeurs pour interroger plusieurs ressources, mettre en corrélation les évaluations des appels et les données d’enquête personnalisées. Étapes de mise en corrélation des évaluations des appels et des données d’enquête personnalisées :
- Créez des classeurs (votre ressource ACS -> Surveillance -> Classeurs -> Nouveau) et interrogez les données d’enquête d’appel à partir de votre ressource ACS.
- Ajouter une nouvelle requête (+Ajouter -> Ajouter une requête)
- Assurez-vous que
Data sourceestLogsetResource typeestCommunication - Vous pouvez renommer la requête (Paramètres avancés -> Nom de l’étape [exemple : call-survey])
- Sachez qu’il peut nécessiter un maximum de 2 heures avant que les données d’enquête ne soient visibles dans le portail Azure. Interroger les données d’évaluation des appels :
ACSCallSurvey | where TimeGenerated > now(-24h) - Ajouter une autre requête pour obtenir des données à partir d’App Insights (+Ajouter -> Ajouter une requête)
- Assurez-vous que
Data sourceestLogsetResource typeestApplication Insights - Interroger les événements personnalisés -
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion - Vous pouvez renommer la requête (Paramètres avancés -> Nom de l’étape [exemple : custom-call-survey])
- Enfin, fusionnez ces deux requêtes par surveyId. Créer une requête (+Ajouter -> Ajouter une requête).
- Assurez-vous que
Data sourceest Fusionner et sélectionnezMerge typesi nécessaire
titre : Azure Communication Services enquête de fin d’appel titleSuffix : description du document du tutoriel Azure Communication Services : Apprenez à utiliser l’enquête de fin d’appel pour recueillir les commentaires des utilisateurs. auteur : 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 : calling
Important
Enquête de fin d'appel est disponible à partir de la version 2.10.0 du SDK Android Calling. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête sur les appels doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.
Les snips de code suivants montrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.
Démarrer une enquête
Vous créez un CallSurvey objet en démarrant une enquête. Cela enregistre une intention d’enquête. Si cet objet CallSurvey particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
// failure to start survey
}
Utilisation générale
Lors de l'évaluation des appels, vous devez respecter les valeurs définies dans le champ de l'échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound signifie l’expérience parfaite. Les deux valeurs sont inclusives.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Pour plus d’informations sur l’utilisation suggérée d’une enquête, consultez Concepts de l’enquête
Appel de débit uniquement : pas d’échelle personnalisée
SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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);
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
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);
Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (SDK) peut envoyer
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
L’évaluation globale de l’enquête est requise.
CallSurveyRatingScaleles limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.Les scores doivent respecter les limites définies par le
CallSurveyRatingScale. Toutes les valeurs de l’objetCallSurveyRatingScalesont inclusives. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être envoyée en raison d’une erreur réseau/service.
Balises d’enquête disponibles
Appel global
| Tag | Descriptif |
|---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème. |
CallEndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
| Tag | Descriptif |
|---|---|
NoLocalAudio |
Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel |
NoRemoteAudio |
Audio manquant d’un participant spécifique |
Echo |
Écho perçu dans l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Audio trop bas |
AudioStoppedUnexpectedly |
Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix attendue |
AudioInterruption |
Les clients rencontrent des interruptions audio, des coupures vocales, etc. |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes de vidéo
| Tag | Descriptif |
|---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir |
LowQuality |
Vidéo de faible qualité |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique) |
AudioVideoOutOfSync |
La vidéo et l’audio ne semblent pas être synchronisées |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
| Tag | Descriptif |
|---|---|
NoContentLocal |
Le client ne reçoit pas de partage d’écran d’un participant qui partage |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire |
Freezes |
Le partage d’écran se bloque pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est de 1 à 5 pour l’appel global, l’audio, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à 100 maximum.
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel.
Le résultat de l’opération SubmitSurvey fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés.
CallSurveyResult la classe a le SurveyId champ qui désigne un identificateur unique pour l’enquête et CallId indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs ainsi que vos données personnalisées permettent d’associer des données de manière unique.
Important
La fonctionnalité "Enquête de fin d'appel" est disponible à partir de la version 2.10.0 du SDK d'appel iOS. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête sur les appels doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.
Les snips de code suivants montrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.
Démarrer une enquête
Vous créez un CallSurvey objet en démarrant une enquête. Cela enregistre une intention d’enquête. Si cet objet CallSurvey particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
var surveyCallFeature = self.call.feature(Features.survey)
do {
try self.callSurvey = await surveyFeature.startSurvey()
} catch {
print("Failure to start survey")
}
Utilisation générale
Lors de l'évaluation des appels, vous devez respecter les valeurs définies dans le champ de l'échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound signifie l’expérience parfaite. Les deux valeurs sont inclusives.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Pour plus d’informations sur l’utilisation suggérée d’une enquête, consultez Concepts de l’enquête
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Appel de débit uniquement : pas d’échelle personnalisée
let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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 ];
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
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 ];
Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (SDK) peut envoyer
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
L’évaluation globale de l’enquête est requise.
CallSurveyRatingScaleles limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.Les scores doivent respecter les limites définies par le
CallSurveyRatingScale. Toutes les valeurs de l’objetCallSurveyRatingScalesont inclusives. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être envoyée en raison d’une erreur réseau/service.
Balises d’enquête disponibles
Appel global
| Tag | Descriptif |
|---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème. |
CallEndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
| Tag | Descriptif |
|---|---|
NoLocalAudio |
Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel |
NoRemoteAudio |
Audio manquant d’un participant spécifique |
Echo |
Écho perçu dans l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Audio trop bas |
AudioStoppedUnexpectedly |
Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix attendue |
AudioInterruption |
Les clients rencontrent des interruptions audio, des coupures vocales, etc. |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes de vidéo
| Tag | Descriptif |
|---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir |
LowQuality |
Vidéo de faible qualité |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique) |
AudioVideoOutOfSync |
La vidéo et l’audio ne semblent pas être synchronisées |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
| Tag | Descriptif |
|---|---|
NoContentLocal |
Le client ne reçoit pas de partage d’écran d’un participant qui partage |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire |
Freezes |
Le partage d’écran se bloque pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est de 1 à 5 pour l’appel global, l’audio, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à 100 maximum.
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel.
Toutefois, la charge utile de résultat de l’opération SubmitSurvey fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés.
CallSurveyResult la classe a le SurveyId champ qui désigne un identificateur unique pour l’enquête et CallId indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs avec vos données personnalisées permet aux données d’être associées de manière unique.
Important
L'enquête de fin d'appel est disponible à partir de la version 1.8.0 du Windows Calling SDK. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête sur les appels doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.
Les snips de code suivants montrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.
Démarrer une enquête
Vous créez un CallSurvey objet en démarrant une enquête. Cela enregistre une intention d’enquête. Si cet objet CallSurvey particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
Utilisation générale
Lors de l'évaluation des appels, vous devez respecter les valeurs définies dans le champ de l'échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound signifie l’expérience parfaite. Les deux valeurs sont inclusives.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Pour plus d’informations sur l’utilisation suggérée d’une enquête, consultez Concepts de l’enquête
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Appel de débit uniquement : pas d’échelle personnalisée
survey.OverallScore = new CallSurveyScore() { Score = 5 };
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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;
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
survey.OverallScore = new CallSurveyScore() {
Score = 5
};
survey.AudioScore = new CallSurveyScore() {
Score = 4
};
survey.VideoScore = new CallSurveyScore() {
Score = 3
};
survey.videoIssues = VideoIssues.Freezes;
Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (SDK) peut envoyer
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
L’évaluation globale de l’enquête est requise.
CallSurveyRatingScaleles limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.Les scores doivent respecter les limites définies par le
CallSurveyRatingScale. Toutes les valeurs de l’objetCallSurveyRatingScalesont inclusives. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être envoyée en raison d’une erreur réseau/service.
Balises d’enquête disponibles
Appel global
| Tag | Descriptif |
|---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème. |
EndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
| Tag | Descriptif |
|---|---|
NoLocalAudio |
Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel |
NoRemoteAudio |
Audio manquant d’un participant spécifique |
Echo |
Écho perçu dans l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Audio trop bas |
AudioStoppedUnexpectedly |
Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix attendue |
AudioInterruption |
Les clients rencontrent des interruptions audio, des coupures vocales, etc. |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes vidéo
| Tag | Descriptif |
|---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir |
LowQuality |
Vidéo de faible qualité |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique) |
AudioVideoOutOfSync |
La vidéo et l’audio ne semblent pas être synchronisées |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
| Tag | Descriptif |
|---|---|
NoContentLocal |
Le client ne reçoit pas de partage d’écran d’un participant qui partage |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire |
Freezes |
Le partage d’écran se bloque pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison claire (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est de 1 à 5 pour l’appel global, l’audio, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à 100 maximum.
Note
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel.
Toutefois, la charge utile de résultat de l’opération SubmitSurvey fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés.
CallSurveyResult la classe a le SurveyId champ qui désigne un identificateur unique pour l’enquête et CallId indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs ainsi que vos données personnalisées permettent d’associer des données de manière unique.
Collecter des données d’enquête
Important
Vous devez activer un paramètre de diagnostic dans Azure Monitor pour envoyer les données de journal de vos enquêtes à un espace de travail Log Analytics, Event Hubs ou un compte de stockage Azure pour recevoir et analyser vos données d’enquête. Si vous n’envoyez pas de données d’enquête à l’une de ces options, vos données d’enquête ne seront pas stockées et seront perdues. Pour activer ces journaux pour vos services de communication, consultez : Journaux de fin d'enquête des appels
Afficher les données d’enquête avec un espace de travail Log Analytics
Vous devez activer un espace de travail Log Analytics pour stocker les données de journal de vos enquêtes et accéder aux résultats de l’enquête. Pour activer ces journaux pour votre Service de Communication, consultez : Fin des journaux d’enquête d’appel.
- Vous pouvez également intégrer votre espace de travail Log Analytics à Power BI, consultez : Intégrer Log Analytics à Power BI.
Meilleures pratiques
Voici nos flux d’enquête recommandés et les invites de questions suggérées pour examen. Votre développement peut adopter notre recommandation ou opter pour des questions et flux personnalisés pour votre interface visuelle.
Question 1 : Comment les utilisateurs ont-ils perçu leur expérience globale de qualité des appels ? Nous vous recommandons de commencer l’enquête en vous demandant uniquement la qualité globale des participants. Si vous séparez les premières et deuxième questions, il permet de collecter uniquement les réponses aux problèmes audio, vidéo et partage d’écran si un participant à l’enquête indique qu’il a rencontré des problèmes de qualité des appels.
- Invite suggérée : « Comment était la qualité de l’appel ? »
- Valeurs de la question d’API : appel global
Question 2 : L’utilisateur a-t-il perçu des problèmes audio, vidéo ou partage d’écran dans l’appel ? Si un participant de l’enquête a répondu à la question 1 avec un score à ou en dessous de la valeur de coupure pour l’appel global, présentez la deuxième question.
- Invite suggérée : « Qu’est-ce qui aurait pu être mieux ? »
- Valeurs des questions d’API : audio, vidéo et partage d’écran
Recommandations en matière d’enquête
- Évitez le burn-out de l’enquête, n’interrogez pas tous les participants aux appels.
- L’ordre de vos questions est important. Nous vous recommandons de rendre aléatoire la séquence de balises facultatives de la question 2 dans le cas où les répondants concentrent la plupart de leurs commentaires sur la première invite qu’ils voient visuellement.
- Envisagez d’utiliser des enquêtes pour des ressources Azure Communication Services distinctes dans des expériences contrôlées afin d’identifier les impacts des mises en production.
Étapes suivantes
Analyser vos données d’enquête, consultez : Journaux d’enquête de fin d’appel
En savoir plus sur la fin de l’enquête sur les appels, consultez : Vue d’ensemble de la fin de l’enquête sur les appels
Découvrez comment utiliser l’espace de travail Log Analytics, consultez : Didacticiel Log Analytics
Créez vos propres requêtes dans Log Analytics, consultez : Requêtes de prise en main