Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se muestra cómo usar la encuesta de fin de llamada de Azure Communication Services.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso activo de Servicios de Comunicación. Creación de un recurso de Communication Services. Los resultados de la encuesta están vinculados a recursos de Servicios de Comunicación únicos.
- Un área de trabajo de análisis de registros activa, también conocida como registros de Azure Monitor. Consulte los registros de encuestas de fin de llamada.
- Para realizar una encuesta con preguntas personalizadas mediante texto de forma libre, necesita un recurso de App Insight.
Importante
La Encuesta de Fin de Llamada está disponible a partir de la versión 1.13.1 del SDK de llamadas. Asegúrese de usar esa versión o posterior al probar las instrucciones.
- Node.js se recomiendan las versiones activas de soporte a largo plazo (LTS).
Ejemplo de uso de API
La función de Encuesta de Fin de la Llamada se debe utilizar después de que finalice la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, grupo, reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, la aplicación puede mostrar una interfaz de usuario al usuario final, lo que le permite elegir una puntuación de clasificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes snips de código muestran un ejemplo de llamada uno a uno. Después del final de la llamada, la aplicación puede mostrar una interfaz de usuario de encuesta y una vez que el usuario elige una clasificación, la aplicación debe llamar a la API de características para enviar la encuesta con las opciones del usuario.
Le recomendamos que use la escala de clasificación predeterminada. Sin embargo, puede enviar una encuesta con escala de clasificación personalizada. Puede consultar la aplicación de ejemplo para ver cómo se utiliza la API de ejemplo.
Solo llamada de valoración - sin escala personalizada
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));
OverallRating es una categoría necesaria para todas las encuestas.
Calificar solo llamada - con escala personalizada y problemas
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'));
Calificación general, audio y video con un problema de muestra
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 },
audioRating: { score: 4 },
videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))
Manejo de errores que el SDK puede enviar
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
Búsqueda de diferentes tipos de errores
Errores al enviar una encuesta
La API devuelve los siguientes mensajes de error si se produce un error en la validación de datos o no se puede enviar la encuesta.
Se requiere al menos una calificación de encuesta.
En la escala predeterminada, X debe ser de 1 a 5. - donde X es cualquiera de:
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName}: {rating.score} debe estar entre {rating.scale?. lowerBound} y {rating.scale?. upperBound}.
{propertyName}: {rating.scale?.lowScoreThreshold} debería estar entre {rating.scale?.lowerBound} y {rating.scale?.upperBound}.
{propertyName} lowerBound: {rating.scale?.lowerBound} y upperBound: {rating.scale?.upperBound} deben estar comprendidos entre 0 y 100.
Inténtelo de nuevo [ACS no pudo enviar la encuesta debido a la red u otro error].
Devolveremos los códigos de error con un mensaje.
- Código de error 400 (solicitud incorrecta) para todos los mensajes de error excepto uno.
{ message: validationErrorMessage, code: 400 }
- Un 408 (tiempo de espera) cuando se descarta el evento:
{ message: "Please try again.", code: 408 }
Todos los valores posibles
Configuración predeterminada de la API de encuesta
| Categorías de clasificación de API | Valor de corte* | Rango de entrada | Comentarios |
|---|---|---|---|
| Llamada general | 2 | 1 - 5 | Encuesta la experiencia general de calidad de un participante que llama en una escala de 1 a 5. Una respuesta de 1 indica una experiencia de llamada imperfecta y 5 indica una llamada perfecta. El valor de corte de 2 significa que una respuesta del cliente de 1 o 2 indica una experiencia de llamada menos que perfecta. |
| Sonido | 2 | 1 - 5 | Una respuesta de 1 indica una experiencia de audio imperfecta y 5 indica que no se han experimentado problemas de audio. |
| Video | 2 | 1 - 5 | Una respuesta de 1 indica una experiencia de vídeo imperfecta y 5 indica que no se han experimentado problemas de vídeo. |
| Screenshare | 2 | 1 - 5 | Una respuesta de 1 indica una experiencia de uso compartido de pantalla imperfecta y 5 indica que no se han experimentado problemas de uso compartido de pantalla. |
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Más etiquetas de encuesta
| Categorías de clasificación | Etiquetas opcionales |
|---|---|
| Llamada general |
CallCannotJoin
CallCannotInvite
HadToRejoin
CallEndedUnexpectedly
OtherIssues
|
| Sonido |
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
|
Opciones de personalización
Puede elegir recopilar cada uno de los cuatro valores de API o solo los que encuentre más importantes. Por ejemplo, puede elegir solo preguntar a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, vídeo y uso compartido de pantalla. También puede personalizar los intervalos de entrada para satisfacer sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para llamadas generales, audio, vídeo y recurso compartido de pantalla. Sin embargo, cada valor de API se puede personalizar de un mínimo de 0 a un máximo de 100.
Ejemplos de personalización
| Categorías de clasificación de API | Valor de corte* | Rango de entrada |
|---|---|---|
| Llamada general | 0 - 100 | 0 - 100 |
| Sonido | 0 - 100 | 0 - 100 |
| Video | 0 - 100 | 0 - 100 |
| Screenshare | 0 - 100 | 0 - 100 |
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Preguntas personalizadas
Además de usar la API de encuesta de fin de llamada, puede crear sus propias preguntas de encuesta e incorporarlas con los resultados de la encuesta de fin de llamada. A continuación encontrará los pasos para incorporar sus propias preguntas de cliente en una encuesta y consultar los resultados de end of Call Survey API y sus propias preguntas de encuesta.
Inserte Azure AppInsights en la aplicación Haga clic aquí para obtener más información sobre la inicialización de App Insight mediante JavaScript sin formato. Como alternativa, puede usar NPM para obtener las dependencias de App Insights. Haga clic aquí para obtener más información sobre la inicialización de App Insight mediante NPM.
Cree una interfaz de usuario en la aplicación que sirva preguntas personalizadas al usuario y recopile sus datos de entrada, supongamos que la aplicación recopiló respuestas como una cadena en la
improvementSuggestionvariable.Envíe los resultados de la encuesta a ACS y envíe la respuesta del usuario mediante 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();
Las respuestas de usuario enviadas mediante AppInsights están disponibles en el área de trabajo de App Insights. Puede usar Cuadernos de trabajo para consultar entre múltiples recursos, correlacionar las calificaciones de llamadas y los datos de encuestas personalizadas. Pasos para correlacionar las clasificaciones de llamadas y los datos de encuesta personalizados:
- Cree nuevos libros (su recurso de ACS -> Supervisión -> Libros -> Nuevo) y consulte los datos de la encuesta de llamadas desde el recurso de ACS.
- Añadir nueva consulta (+Añadir -> Añadir consulta)
- Asegúrese de que
Data sourceseaLogsyResource typeseaCommunication - Puede cambiar el nombre de la consulta (Configuración avanzada -> Nombre del paso [ejemplo: call-survey])
- Tenga en cuenta que podría requerir un máximo de 2 horas antes de que los datos de la encuesta sean visibles en Azure Portal. Consulta de los datos de clasificación de llamadas:
ACSCallSurvey | where TimeGenerated > now(-24h) - Agrega otra consulta para obtener datos de App Insights (+Agregar -> Agregar consulta)
- Asegúrese de que
Data sourceseaLogsyResource typeseaApplication Insights - Consulta de los eventos personalizados:
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion - Puede cambiar el nombre de la consulta (Configuración avanzada -> Nombre del paso [ejemplo: custom-call-survey])
- Por último, fusiona estas dos consultas por surveyId. Cree nueva consulta (+Agregar -> Añadir consulta).
- Asegúrese de que
Data sourceesté configurado como Combinar y seleccioneMerge typesegún sea necesario.
título: encuesta de fin de llamada de Azure Communication Services titleSuffix: un tutorial de Azure Communication Services descripción: aprenda a usar la encuesta de fin de llamada para recopilar comentarios de los usuarios. autor: viniciusl-msft ms.author: viniciusl manager: liubob services: azure-communication-services ms.date: 7/30/2024 ms.topic: tutorial ms.service: azure-communication-services ms.subservice: calling
Importante
La encuesta al finalizar la llamada está disponible a partir de la versión 2.10.0 del SDK de Llamadas de Android. Asegúrese de usar esa versión o posterior al probar las instrucciones.
Ejemplo de uso de API
La función de Encuesta de Fin de la Llamada se debe utilizar después de que finalice la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, grupo, reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, la aplicación puede mostrar una interfaz de usuario al usuario final, lo que le permite elegir una puntuación de clasificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes snips de código muestran un ejemplo de llamada uno a uno. Después del final de la llamada, la aplicación puede mostrar una interfaz de usuario de encuesta y una vez que el usuario elige una clasificación, la aplicación debe llamar a la API de características para enviar la encuesta con las opciones del usuario.
Le recomendamos que use la escala de clasificación predeterminada, que es la clasificación de cinco estrellas (entre 1 y 5). Sin embargo, puede enviar una encuesta con escala de clasificación personalizada.
Iniciar una encuesta
Para crear un CallSurvey objeto, inicie una encuesta. Esto documenta la intención de llevar a cabo una encuesta. En caso de que este objeto concreto CallSurvey no se envíe después, significa que el cliente final omitió o ignoró la encuesta.
SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
// failure to start survey
}
Uso general
Al calificar las llamadas, debe respetar los valores definidos en el campo de la escala. El valor lowerBound denota la peor experiencia posible, mientras que el valor upperBound significa la experiencia perfecta. Ambos valores son inclusivos.
OverallRating es una categoría necesaria para todas las encuestas.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Para obtener más información sobre el uso sugerido de la encuesta, consulte Conceptos de la encuesta.
Solo llamada de valoración - sin escala personalizada
SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);
Calificar solo llamada - con escala personalizada y problemas
// 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);
Calificación general, audio y video con un problema de muestra
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);
Enviar la encuesta y gestionar los errores que el SDK pueda enviar.
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
Búsqueda de diferentes tipos de errores
Errores al enviar la encuesta:
La API submitSurvey puede devolver un error en los escenarios siguientes:
Se requiere la clasificación general de la encuesta.
CallSurveyRatingScaleLos límites deben estar dentro de 0 y 100. LowerBound debe ser menor que UpperBound. LowScoreThreshold debe estar dentro de los límites.Cualquiera de las puntuaciones debe respetar los límites definidos por .
CallSurveyRatingScaleTodos los valores delCallSurveyRatingScaleobjeto son inclusivos. Con la escala predeterminada, el valor de puntuación debe estar comprendido entre 1 y 5.La encuesta no se puede enviar debido a un error de red o servicio.
Etiquetas de encuesta disponibles
Llamada general
| Etiqueta | Description |
|---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente salió y se unió de nuevo a la llamada como solución alternativa a una incidencia. |
CallEndedUnexpectedly |
La llamada del cliente finalizó sin ninguna razón aparente |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de audio
| Etiqueta | Description |
|---|---|
NoLocalAudio |
No hay audio en el equipo del cliente desde la llamada, incapacidad de escuchar a nadie en la llamada |
NoRemoteAudio |
Falta audio de un participante específico |
Echo |
Eco percibido en la llamada |
AudioNoise |
Audio recibido con ruido no deseado |
LowVolume |
Audio demasiado bajo |
AudioStoppedUnexpectedly |
Audio detenido sin ninguna razón clara (por ejemplo, nadie está silenciado) |
DistortedSpeech |
La voz de un participante se distorsiona, diferente de su voz esperada |
AudioInterruption |
El cliente experimenta interrupciones de audio, cortes de voz, etc. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
| Etiqueta | Description |
|---|---|
NoVideoReceived |
El cliente no recibe vídeo de un participante |
NoVideoSent |
El cliente inicia el vídeo, pero nadie de la llamada puede verlo |
LowQuality |
Vídeo de baja calidad |
Freezes |
El vídeo se congela |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ninguna razón clara (por ejemplo, la cámara está activada y la videollamada está activada) |
DarkVideoReceived |
El vídeo se envía, pero el participante ve solo un cuadro oscuro (u otro color único) |
AudioVideoOutOfSync |
El vídeo y el audio no parecen estar sincronizados |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de recursos compartidos de pantalla
| Etiqueta | Description |
|---|---|
NoContentLocal |
El cliente no recibe la compartición de pantalla de un participante que está compartiendo. |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar el compartir pantalla |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer el contenido. |
Freezes |
La compartición de pantalla se congela durante la presentación. |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ninguna razón clara (por ejemplo, el cliente no ha detenido el recurso compartido de pantalla). |
LargeDelay |
Retraso percibido entre lo que se muestra y lo que se ve |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Opciones de personalización
Puede elegir recopilar cada uno de los cuatro valores de API o solo los que encuentre más importantes. Por ejemplo, puede elegir solo preguntar a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, vídeo y uso compartido de pantalla. También puede personalizar los intervalos de entrada para satisfacer sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para la llamada general, audio, vídeo y uso compartido de pantalla. Sin embargo, cada valor de API se puede personalizar de un mínimo de 0 a un máximo de 100.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Preguntas personalizadas
Además de usar la API de encuesta de fin de llamada, puede crear sus propias preguntas de encuesta e incorporarlas con los resultados de la encuesta de fin de llamada.
La carga útil de resultados de la operación SubmitSurvey proporciona datos que puede usar para correlacionar los datos de la encuesta de ACS con sus propios datos y almacenamiento personalizados.
CallSurveyResult La clase tiene el SurveyId campo que denota un identificador único para la encuesta y CallId denota un identificador para la llamada donde se generó la encuesta. Guardar estos identificadores junto con los datos personalizados permiten asociar datos de forma única.
Importante
La encuesta de fin de llamada está disponible desde la versión 2.10.0 del SDK de llamadas para iOS. Asegúrese de usar esa versión o posterior al probar las instrucciones.
Ejemplo de uso de API
La función de Encuesta de Fin de la Llamada se debe utilizar después de que finalice la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, grupo, reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, la aplicación puede mostrar una interfaz de usuario al usuario final, lo que le permite elegir una puntuación de clasificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes snips de código muestran un ejemplo de llamada uno a uno. Después del final de la llamada, la aplicación puede mostrar una interfaz de usuario de encuesta y una vez que el usuario elige una clasificación, la aplicación debe llamar a la API de características para enviar la encuesta con las opciones del usuario.
Le recomendamos que use la escala de clasificación predeterminada, que es la clasificación de cinco estrellas (entre 1 y 5). Sin embargo, puede enviar una encuesta con escala de clasificación personalizada.
Iniciar una encuesta
Para crear un CallSurvey objeto, inicie una encuesta. Esto documenta la intención de llevar a cabo una encuesta. En caso de que este objeto concreto CallSurvey no se envíe después, significa que el cliente final omitió o ignoró la encuesta.
var surveyCallFeature = self.call.feature(Features.survey)
do {
try self.callSurvey = await surveyFeature.startSurvey()
} catch {
print("Failure to start survey")
}
Uso general
Al calificar las llamadas, debe respetar los valores definidos en el campo de la escala. El valor lowerBound denota la peor experiencia posible, mientras que el valor upperBound significa la experiencia perfecta. Ambos valores son inclusivos.
OverallRating es una categoría necesaria para todas las encuestas.
Para obtener más información sobre el uso sugerido de la encuesta, consulte Conceptos de la encuesta.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Solo llamada de valoración - sin escala personalizada
let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore
Calificar solo llamada - con escala personalizada y problemas
// 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 ];
Calificación general, audio y video con un problema de muestra
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 ];
Enviar la encuesta y gestionar los errores que el SDK pueda enviar.
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
Búsqueda de diferentes tipos de errores
Errores al enviar la encuesta:
La API submitSurvey puede devolver un error en los escenarios siguientes:
Se requiere la clasificación general de la encuesta.
CallSurveyRatingScaleLos límites deben estar dentro de 0 y 100. LowerBound debe ser menor que UpperBound. LowScoreThreshold debe estar dentro de los límites.Cualquiera de las puntuaciones debe respetar los límites definidos por .
CallSurveyRatingScaleTodos los valores delCallSurveyRatingScaleobjeto son inclusivos. Con la escala predeterminada, el valor de puntuación debe estar comprendido entre 1 y 5.La encuesta no se puede enviar debido a un error de red o servicio.
Etiquetas de encuesta disponibles
Llamada general
| Etiqueta | Description |
|---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente salió y se unió de nuevo a la llamada como solución alternativa a una incidencia. |
CallEndedUnexpectedly |
La llamada del cliente finalizó sin ninguna razón aparente |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de audio
| Etiqueta | Description |
|---|---|
NoLocalAudio |
No hay audio en el equipo del cliente desde la llamada, incapacidad de escuchar a nadie en la llamada |
NoRemoteAudio |
Falta audio de un participante específico |
Echo |
Eco percibido en la llamada |
AudioNoise |
Audio recibido con ruido no deseado |
LowVolume |
Audio demasiado bajo |
AudioStoppedUnexpectedly |
Audio detenido sin ninguna razón clara (por ejemplo, nadie está silenciado) |
DistortedSpeech |
La voz de un participante se distorsiona, diferente de su voz esperada |
AudioInterruption |
El cliente experimenta interrupciones de audio, cortes de voz, etc. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
| Etiqueta | Description |
|---|---|
NoVideoReceived |
El cliente no recibe vídeo de un participante |
NoVideoSent |
El cliente inicia el vídeo, pero nadie de la llamada puede verlo |
LowQuality |
Vídeo de baja calidad |
Freezes |
El vídeo se congela |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ninguna razón clara (por ejemplo, la cámara está activada y la videollamada está activada) |
DarkVideoReceived |
El vídeo se envía, pero el participante ve solo un cuadro oscuro (u otro color único) |
AudioVideoOutOfSync |
El vídeo y el audio no parecen estar sincronizados |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de recursos compartidos de pantalla
| Etiqueta | Description |
|---|---|
NoContentLocal |
El cliente no recibe la compartición de pantalla de un participante que está compartiendo. |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar el compartir pantalla |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer el contenido. |
Freezes |
La compartición de pantalla se congela durante la presentación. |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ningún motivo claro (por ejemplo, el cliente no ha detenido el recurso compartido de pantalla). |
LargeDelay |
Retraso percibido entre lo que se muestra y lo que se ve |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Opciones de personalización
Puede elegir recopilar cada uno de los cuatro valores de API o solo los que encuentre más importantes. Por ejemplo, puede elegir solo preguntar a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, vídeo y uso compartido de pantalla. También puede personalizar los intervalos de entrada para satisfacer sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para la llamada general, audio, vídeo y uso compartido de pantalla. Sin embargo, cada valor de API se puede personalizar de un mínimo de 0 a un máximo de 100.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Preguntas personalizadas
Además de usar la API de encuesta de fin de llamada, puede crear sus propias preguntas de encuesta e incorporarlas con los resultados de la encuesta de fin de llamada.
Sin embargo, la carga útil de resultados de la operación SubmitSurvey proporciona datos que puede usar para correlacionar los datos de la encuesta de ACS con sus propios datos y almacenamiento personalizados.
CallSurveyResult La clase tiene el SurveyId campo que denota un identificador único para la encuesta y CallId denota un identificador para la llamada donde se generó la encuesta. Guardar estos identificadores junto con los datos personalizados permite asociar datos de forma única.
Importante
La Encuesta de Fin de Llamada está disponible a partir de la versión 1.8.0 del SDK de Windows para llamadas. Asegúrese de usar esa versión o posterior al probar las instrucciones.
Ejemplo de uso de API
La función de Encuesta de Fin de la Llamada se debe utilizar después de que finalice la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, grupo, reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, la aplicación puede mostrar una interfaz de usuario al usuario final, lo que le permite elegir una puntuación de clasificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes snips de código muestran un ejemplo de llamada uno a uno. Después del final de la llamada, la aplicación puede mostrar una interfaz de usuario de encuesta y una vez que el usuario elige una clasificación, la aplicación debe llamar a la API de características para enviar la encuesta con las opciones del usuario.
Le recomendamos que use la escala de clasificación predeterminada, que es la clasificación de cinco estrellas (entre 1 y 5). Sin embargo, puede enviar una encuesta con escala de clasificación personalizada.
Iniciar una encuesta
Para crear un CallSurvey objeto, inicie una encuesta. Esto documenta la intención de llevar a cabo una encuesta. En caso de que este objeto concreto CallSurvey no se envíe después, significa que el cliente final omitió o ignoró la encuesta.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
Uso general
Al calificar las llamadas, debe respetar los valores definidos en el campo de la escala. El valor lowerBound denota la peor experiencia posible, mientras que el valor upperBound significa la experiencia perfecta. Ambos valores son inclusivos.
OverallRating es una categoría necesaria para todas las encuestas.
Para obtener más información sobre el uso sugerido de la encuesta, consulte Conceptos de la encuesta.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Solo llamada de valoración - sin escala personalizada
survey.OverallScore = new CallSurveyScore() { Score = 5 };
Calificar solo llamada - con escala personalizada y problemas
// 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;
Calificación general, audio y video con un problema de muestra
survey.OverallScore = new CallSurveyScore() {
Score = 5
};
survey.AudioScore = new CallSurveyScore() {
Score = 4
};
survey.VideoScore = new CallSurveyScore() {
Score = 3
};
survey.videoIssues = VideoIssues.Freezes;
Enviar la encuesta y gestionar los errores que el SDK pueda enviar.
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Búsqueda de diferentes tipos de errores
Errores al enviar la encuesta:
La API submitSurvey puede devolver un error en los escenarios siguientes:
Se requiere la clasificación general de la encuesta.
CallSurveyRatingScaleLos límites deben estar dentro de 0 y 100. LowerBound debe ser menor que UpperBound. LowScoreThreshold debe estar dentro de los límites.Cualquiera de las puntuaciones debe respetar los límites definidos por .
CallSurveyRatingScaleTodos los valores delCallSurveyRatingScaleobjeto son inclusivos. Con la escala predeterminada, el valor de puntuación debe estar comprendido entre 1 y 5.La encuesta no se puede enviar debido a un error de red o servicio.
Etiquetas de encuesta disponibles
Llamada general
| Etiqueta | Description |
|---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente salió y se unió de nuevo a la llamada como solución alternativa a una incidencia. |
EndedUnexpectedly |
La llamada del cliente finalizó sin ninguna razón aparente |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de audio
| Etiqueta | Description |
|---|---|
NoLocalAudio |
No hay audio en el equipo del cliente desde la llamada, incapacidad de escuchar a nadie en la llamada |
NoRemoteAudio |
Falta audio de un participante específico |
Echo |
Eco percibido en la llamada |
AudioNoise |
Audio recibido con ruido no deseado |
LowVolume |
Audio demasiado bajo |
AudioStoppedUnexpectedly |
Audio detenido sin ninguna razón clara (por ejemplo, nadie está silenciado) |
DistortedSpeech |
La voz de un participante se distorsiona, diferente de su voz esperada |
AudioInterruption |
El cliente experimenta interrupciones de audio, cortes de voz, etc. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
| Etiqueta | Description |
|---|---|
NoVideoReceived |
El cliente no recibe vídeo de un participante |
NoVideoSent |
El cliente inicia el vídeo, pero nadie de la llamada puede verlo |
LowQuality |
Vídeo de baja calidad |
Freezes |
El vídeo se congela |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ninguna razón clara (por ejemplo, la cámara está activada y la videollamada está activada) |
DarkVideoReceived |
El vídeo se envía, pero el participante ve solo un cuadro oscuro (u otro color único) |
AudioVideoOutOfSync |
El vídeo y el audio no parecen estar sincronizados |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de recursos compartidos de pantalla
| Etiqueta | Description |
|---|---|
NoContentLocal |
El cliente no recibe la compartición de pantalla de un participante que está compartiendo. |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar el compartir pantalla |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer el contenido. |
Freezes |
La compartición de pantalla se congela durante la presentación. |
StoppedUnexpectedly |
El recurso compartido de pantalla se detiene sin ninguna razón clara (por ejemplo, el cliente no ha detenido el recurso compartido de pantalla). |
LargeDelay |
Retraso percibido entre lo que se muestra y lo que se ve |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Opciones de personalización
Puede elegir recopilar cada uno de los cuatro valores de API o solo los que encuentre más importantes. Por ejemplo, puede elegir solo preguntar a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, vídeo y uso compartido de pantalla. También puede personalizar los intervalos de entrada para satisfacer sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para la llamada general, audio, vídeo y uso compartido de pantalla. Sin embargo, cada valor de API se puede personalizar de un mínimo de 0 a un máximo de 100.
Nota:
El valor límite indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Al personalizar el valor de corte o el intervalo de entrada, Microsoft analiza los datos de la encuesta según la personalización.
Preguntas personalizadas
Además de usar la API de encuesta de fin de llamada, puede crear sus propias preguntas de encuesta e incorporarlas con los resultados de la encuesta de fin de llamada.
Sin embargo, la carga útil de resultados de la operación SubmitSurvey proporciona datos que puede usar para correlacionar los datos de la encuesta de ACS con sus propios datos y almacenamiento personalizados.
CallSurveyResult La clase tiene el SurveyId campo que denota un identificador único para la encuesta y CallId denota un identificador para la llamada donde se generó la encuesta. Guardar estos identificadores junto con los datos personalizados permiten asociar datos de forma única.
Recopilación de datos de encuestas
Importante
Debe habilitar una configuración de diagnóstico en Azure Monitor para enviar los datos de registro de las encuestas a un área de trabajo de Log Analytics, Event Hubs o una cuenta de Almacenamiento de Azure para recibir y analizar los datos de la encuesta. Si no envía datos de encuestas a una de estas opciones, los datos de la encuesta no se almacenarán y se perderán. Para habilitar estos registros para servicios de comunicación, consulte: Registros de encuestas al finalizar la llamada
Visualización de datos de encuestas con un área de trabajo de Log Analytics
Debe habilitar un área de trabajo de Log Analytics para almacenar los datos de registro de las encuestas y acceder a los resultados de la encuesta. Para habilitar estos registros para el servicio de comunicaciones, consulte: Finalización de los registros de encuestas de llamadas.
- También puede integrar el área de trabajo de Log Analytics con Power BI; consulte: Integración de Log Analytics con Power BI.
procedimientos recomendados
Estos son nuestros flujos de encuesta recomendados y las solicitudes de preguntas sugeridas para su consideración. El desarrollo puede usar nuestra recomendación o usar mensajes y flujos de preguntas personalizados para la interfaz visual.
Pregunta 1: ¿Cómo percibieron los usuarios su experiencia general de calidad de llamadas? Le recomendamos que inicie la encuesta preguntando solo sobre la calidad general de los participantes. Si separa las preguntas primera y segunda, solo ayuda a recopilar respuestas a problemas de audio, vídeo y uso compartido de pantalla si un participante de la encuesta indica que ha experimentado problemas de calidad de llamadas.
- Aviso sugerido: "¿Cómo fue la calidad de la llamada?"
- Valores de la pregunta API: llamada general
Pregunta 2: ¿El usuario percibió algún problema de audio, vídeo o uso compartido de pantalla en la llamada? Si un participante de la encuesta respondió a la pregunta 1 con una puntuación en o por debajo del valor de corte de la llamada general, presente la segunda pregunta.
- Aviso sugerido: "¿Qué podría haber sido mejor?"
- Valores de preguntas de API: audio, vídeo y compartir pantalla
Directrices de encuesta
- Evite el agotamiento de la encuesta, no realice una encuesta a todos los participantes de la llamada.
- El orden de sus preguntas es importante. Le recomendamos que aleatorice la secuencia de etiquetas opcionales en la pregunta 2 en caso de que los encuestados enfoquen la mayoría de sus comentarios en la primera indicación que ven.
- Considere la posibilidad de usar encuestas para recursos de Azure Communication Services independientes en experimentos controlados para identificar los impactos de la versión.
Pasos siguientes
Analiza tus datos de la encuesta, consulta Registros de Encuestas al Final de la Llamada
Más información sobre la Encuesta al finalizar la llamada, consulte: Descripción general de la Encuesta al finalizar la llamada.
Aprenda a usar el área de trabajo de Log Analytics, consulte: Tutorial de Log Analytics.
Creación de consultas propias en Log Analytics, consulte : Introducción a las consultas