Use la encuesta de fin de llamada para recopilar comentarios de los usuarios
En este tutorial se muestra cómo usar la encuesta de fin de llamada de Azure Communication Services.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Recurso activo de Communication Services. Creación de un recurso de Communication Services. Los resultados de la encuesta están vinculados a recursos únicos de Communication Services.
- Un área de trabajo de análisis de registros activa, también conocida como registros de Azure Monitor. Consulte Registros de encuestas de fin de llamadas.
- Para realizar encuestas con preguntas personalizadas con formato de texto libre, necesita un recurso de App Insights.
Importante
La encuesta de fin de llamada está disponible a partir de la versión 1.13.1 del SDK de llamada. Asegúrese de usar esa versión o una posterior cuando pruebe las instrucciones.
- Node.js se recomiendan las versiones de soporte técnico a largo plazo (LTS) activas.
Ejemplo de uso de API
La función de encuesta de fin de llamada debe usarse una vez finalizada la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, de grupo, de reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, su aplicación puede mostrar una interfaz de usuario al usuario final que le permita elegir una puntuación de calificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes fragmentos de código muestran un ejemplo de llamada uno a uno. Una vez finalizada la llamada, la aplicación puede mostrar una interfaz de encuesta y, cuando el usuario elija una puntuación, la aplicación debe llamar a la API de funciones para enviar la encuesta con las opciones del usuario.
Le recomendamos que use la escala de valoración predeterminada. Sin embargo, puede enviar una encuesta con una escala de valoración personalizada. Puede consultar la aplicación de ejemplo para ver un ejemplo de uso de la API.
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 obligatoria 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'))
Errores que puede enviar el SDK
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
Buscar diferentes tipos de errores
Errores al enviar la encuesta
La API devolverá los siguientes mensajes de error si se produce un error en la validación de datos o la encuesta no se pudiera enviar.
Se requiere al menos una clasificación de encuesta.
En la escala predeterminada, X debería ser de 1 a 5. - donde X es cualquiera de:
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName}: {rating.score} debería 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} deberían estar 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 encuestas
Categorías de valoración de la API | Valor límite* | Intervalo de entrada | Comentarios |
---|---|---|---|
Llamada general | 2 | De 1 a 5 | Evalúa la experiencia global de calidad del participante en la llamada en una escala de 1 a 5. Una respuesta de 1 indica una experiencia de llamada imperfecta y una de 5 indica una llamada perfecta. El valor límite de 2 significa que una respuesta del cliente de 1 o 2 indica una experiencia de llamada menos que perfecta. |
Audio | 2 | De 1 a 5 | Una respuesta de 1 indica una experiencia de audio imperfecta y 5 indica que no hubo problemas de audio. |
Vídeo | 2 | De 1 a 5 | Una respuesta de 1 indica una experiencia de video imperfecta y 5 indica que no hubo problemas de video. |
Pantalla compartida | 2 | De 1 a 5 | Una respuesta de 1 indica una experiencia de pantalla compartida imperfecta y 5 indica que no se experimentaron problemas de pantalla compartida. |
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuestas
Categorías de clasificación | Etiquetas opcionales |
---|---|
Llamada general | CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues |
Audio | NoLocalAudio NoRemoteAudio Echo AudioNoise LowVolume AudioStoppedUnexpectedly DistortedSpeech AudioInterruption OtherIssues |
Vídeo | NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues |
Pantalla compartida | NoContentLocal NoContentRemote CannotPresent LowQuality Freezes StoppedUnexpectedly LargeDelay OtherIssues |
Opciones de personalización
Puede elegir recoger cada uno de los cuatro valores API o solo los que considere más importantes. Por ejemplo, puede elegir preguntar solo a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, video y uso compartido de pantalla. También puede personalizar los rangos de entrada para adaptarlos a sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para llamada general, audio, video y pantalla compartida. Sin embargo, cada valor API puede personalizarse desde un mínimo de 0 hasta un máximo de 100.
Ejemplos de personalización
Categorías de valoración de la API | Valor límite* | Intervalo de entrada |
---|---|---|
Llamada general | 0 - 100 | 0 - 100 |
Audio | 0 - 100 | 0 - 100 |
Vídeo | 0 - 100 | 0 - 100 |
Pantalla compartida | 0 - 100 | 0 - 100 |
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuestas de fin de llamadas, puede crear sus propias preguntas de encuestas e incorporarlas a los resultados las encuestas de fin de llamadas. A continuación, encontrará los pasos necesarios para añadir sus propias preguntas de cliente en encuestas y consultar los resultados de la API de encuestas de fin de llamadas y sus propias preguntas para encuestas.
Inserción de Azure AppInsights en la aplicación Haga clic aquí para obtener más información sobre la inicialización de App Insights 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 Insights mediante NPM.
Cree una interfaz de usuario en la aplicación que haga preguntas personalizadas a los usuarios y recopile sus entradas. Supongamos que la aplicación recopiló respuestas como cadena en la variable
improvementSuggestion
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 => { // `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();
Las respuestas de los usuarios enviadas mediante AppInsights están disponibles en el área de trabajo de App Insights. Puede usar libros para consultar entre varios recursos, además de correlacionar las calificaciones de llamadas y los datos de encuestas personalizados. Pasos para correlacionar las calificaciones de llamadas y los datos de encuestas 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.
- Agregar nueva consulta (+Agregar -> Agregar consulta)
- Asegúrese de que
Data source
seaLogs
y de queResource type
seaCommunication
- Es posible cambiar el nombre de la consulta (Configuración avanzada -> Nombre del paso [ejemplo: encuesta-llamadas])
- Tenga en cuenta que podrían pasar 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)
- Agregar otra consulta para obtener datos de App Insights (+Agregar -> Agregar consulta)
- Asegúrese de que
Data source
seaLogs
y de queResource type
seaApplication 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
- Es posible cambiar el nombre de la consulta (Configuración avanzada -> Nombre del paso [ejemplo: encuesta-llamadas-personalizada])
- Por último, combine estas dos consultas por surveyId. Crear nueva consulta (+Agregar -> Agregar consulta).
- Asegúrese de que
Data source
se combine y seleccioneMerge type
, segú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
Final de la encuesta de llamadas 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 una posterior cuando pruebe las instrucciones.
Ejemplo de uso de API
La función de encuesta de fin de llamada debe usarse una vez finalizada la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, de grupo, de reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, su aplicación puede mostrar una interfaz de usuario al usuario final que le permita elegir una puntuación de calificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes fragmentos de código muestran un ejemplo de llamada uno a uno. Una vez finalizada la llamada, la aplicación puede mostrar una interfaz de encuesta y, cuando el usuario elija una puntuación, la aplicación debe llamar a la API de funciones 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 una escala de valoración personalizada.
Iniciar una encuesta
Para crear un objeto CallSurvey
, inicie una encuesta. Esto registra una intención de encuesta. En caso de que este objeto CallSurvey
concreto 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 clasificar las llamadas, debe respetar los valores definidos en el campo de escalado. 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 obligatoria para todas las encuestas.
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuesta y controlar los errores que el SDK puede enviar
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
Buscar 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.
Los límites
CallSurveyRatingScale
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
CallSurveyRatingScale
. Todos los valores del objetoCallSurveyRatingScale
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 | Descripción |
---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente abandonó y se unió de nuevo a la llamada como solución alternativa para un problema |
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 | Descripción |
---|---|
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 |
Se percibe eco 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étera. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
Etiqueta | Descripción |
---|---|
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 uso compartido de pantalla
Etiqueta | Descripción |
---|---|
NoContentLocal |
El cliente no recibe la pantalla compartida de un participante que comparte |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar la pantalla compartida |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer |
Freezes |
La pantalla compartida se bloquea durante la presentación |
StoppedUnexpectedly |
La pantalla compartida se detiene sin ninguna razón clara (por ejemplo, el cliente no ha detenido la pantalla compartida) |
LargeDelay |
Se percibe un retraso 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 recoger cada uno de los cuatro valores API o solo los que considere más importantes. Por ejemplo, puede elegir preguntar solo a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, video y uso compartido de pantalla. También puede personalizar los rangos de entrada para adaptarlos a sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para llamada general, audio, video y pantalla compartida. Sin embargo, cada valor API puede personalizarse desde un mínimo de 0 hasta un máximo de 100.
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuestas de fin de llamadas, puede crear sus propias preguntas de encuestas e incorporarlas a los resultados las encuestas de fin de llamadas.
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. La clase CallSurveyResult
tienen el campo SurveyId
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 2.10.0 del SDK de llamada de iOS. Asegúrese de usar esa versión o una posterior cuando pruebe las instrucciones.
Ejemplo de uso de API
La función de encuesta de fin de llamada debe usarse una vez finalizada la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, de grupo, de reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, su aplicación puede mostrar una interfaz de usuario al usuario final que le permita elegir una puntuación de calificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes fragmentos de código muestran un ejemplo de llamada uno a uno. Una vez finalizada la llamada, la aplicación puede mostrar una interfaz de encuesta y, cuando el usuario elija una puntuación, la aplicación debe llamar a la API de funciones 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 una escala de valoración personalizada.
Iniciar una encuesta
Para crear un objeto CallSurvey
, inicie una encuesta. Esto registra una intención de encuesta. En caso de que este objeto CallSurvey
concreto 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 clasificar las llamadas, debe respetar los valores definidos en el campo de escalado. 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 obligatoria 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 de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuesta y controlar los errores que el SDK puede enviar
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
Buscar 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.
Los límites
CallSurveyRatingScale
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
CallSurveyRatingScale
. Todos los valores del objetoCallSurveyRatingScale
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 | Descripción |
---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente abandonó y se unió de nuevo a la llamada como solución alternativa para un problema |
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 | Descripción |
---|---|
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 |
Se percibe eco 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étera. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
Etiqueta | Descripción |
---|---|
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 uso compartido de pantalla
Etiqueta | Descripción |
---|---|
NoContentLocal |
El cliente no recibe la pantalla compartida de un participante que comparte |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar la pantalla compartida |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer |
Freezes |
La pantalla compartida se bloquea durante la presentación |
StoppedUnexpectedly |
La pantalla compartida se detiene sin ninguna razón clara (por ejemplo, el cliente no ha detenido la pantalla compartida) |
LargeDelay |
Se percibe un retraso 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 recoger cada uno de los cuatro valores API o solo los que considere más importantes. Por ejemplo, puede elegir preguntar solo a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, video y uso compartido de pantalla. También puede personalizar los rangos de entrada para adaptarlos a sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para llamada general, audio, video y pantalla compartida. Sin embargo, cada valor API puede personalizarse desde un mínimo de 0 hasta un máximo de 100.
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuestas de fin de llamadas, puede crear sus propias preguntas de encuestas e incorporarlas a los resultados las encuestas de fin de llamadas.
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. La clase CallSurveyResult
tienen el campo SurveyId
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 llamada de Windows. Asegúrese de usar esa versión o una posterior cuando pruebe las instrucciones.
Ejemplo de uso de API
La función de encuesta de fin de llamada debe usarse una vez finalizada la llamada. Los usuarios pueden valorar cualquier tipo de llamada VoIP, 1:1, de grupo, de reunión, saliente y entrante. Una vez finalizada la llamada de un usuario, su aplicación puede mostrar una interfaz de usuario al usuario final que le permita elegir una puntuación de calificación y, si es necesario, elegir los problemas que ha encontrado durante la llamada de nuestra lista predefinida.
Los siguientes fragmentos de código muestran un ejemplo de llamada uno a uno. Una vez finalizada la llamada, la aplicación puede mostrar una interfaz de encuesta y, cuando el usuario elija una puntuación, la aplicación debe llamar a la API de funciones 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 una escala de valoración personalizada.
Iniciar una encuesta
Para crear un objeto CallSurvey
, inicie una encuesta. Esto registra una intención de encuesta. En caso de que este objeto CallSurvey
concreto 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 clasificar las llamadas, debe respetar los valores definidos en el campo de escalado. 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 obligatoria 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 de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuesta y controlar los errores que el SDK puede enviar
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Buscar 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.
Los límites
CallSurveyRatingScale
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
CallSurveyRatingScale
. Todos los valores del objetoCallSurveyRatingScale
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 | Descripción |
---|---|
CannotJoin |
El cliente no pudo unirse a una llamada |
CannotInvite |
El cliente no pudo agregar un nuevo participante a la llamada |
HadToRejoin |
El cliente abandonó y se unió de nuevo a la llamada como solución alternativa para un problema |
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 | Descripción |
---|---|
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 |
Se percibe eco 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étera. |
OtherIssues |
Cualquier problema que no se ajuste a las descripciones anteriores |
Problemas de vídeo
Etiqueta | Descripción |
---|---|
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 uso compartido de pantalla
Etiqueta | Descripción |
---|---|
NoContentLocal |
El cliente no recibe la pantalla compartida de un participante que comparte |
NoContentRemote |
El cliente está compartiendo pantalla, pero otros participantes no pueden verlo |
CannotPresent |
No se puede iniciar la pantalla compartida |
LowQuality |
Baja calidad en el vídeo de pantalla compartida, por ejemplo, no se puede leer |
Freezes |
La pantalla compartida se bloquea durante la presentación |
StoppedUnexpectedly |
La pantalla compartida se detiene sin ninguna razón clara (por ejemplo, el cliente no ha detenido la pantalla compartida) |
LargeDelay |
Se percibe un retraso 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 recoger cada uno de los cuatro valores API o solo los que considere más importantes. Por ejemplo, puede elegir preguntar solo a los clientes sobre su experiencia general de llamadas en lugar de preguntarles sobre su experiencia de audio, video y uso compartido de pantalla. También puede personalizar los rangos de entrada para adaptarlos a sus necesidades. El intervalo de entrada predeterminado es de 1 a 5 para llamada general, audio, video y pantalla compartida. Sin embargo, cada valor API puede personalizarse desde un mínimo de 0 hasta un máximo de 100.
Nota:
El valor de corte indicado de una pregunta en la API es el umbral que Microsoft usa al analizar los datos de la encuesta. Cuando personalizas 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 encuestas de fin de llamadas, puede crear sus propias preguntas de encuestas e incorporarlas a los resultados las encuestas de fin de llamadas.
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. La clase CallSurveyResult
tienen el campo SurveyId
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.
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 Azure Storage para recibir y analizar los datos de la encuesta. Si no envía los datos de la encuesta a una de estas opciones, los datos de la encuesta no se almacenarán y se perderán. Para habilitar estos registros en Communication Services, consulte: Registros de encuestas de fin de llamadas
Ver datos de encuestas con un área de trabajo de Log Analytics
Es necesario habilitar un área de trabajo de Log Analytics para almacenar los datos de registro de las encuestas y acceder a los resultados de las mismas. Para habilitar estos registros en Communication Services, consulte: Registros de encuestas de fin de llamadas.
- También puede integrar el área de trabajo de Log Analytics con Power BI. Para ello, consulte: Integración de Log Analytics con Power BI.
Procedimientos recomendados
Estos son los flujos de encuesta recomendados y las preguntas sugeridas para su consideración. El desarrollo puede usar nuestra recomendación o usar flujos e indicaciones de preguntas personalizados para su interfaz visual.
Pregunta 1: ¿Cómo perciben los usuarios la calidad general de sus llamadas? Le recomendamos que comience la encuesta preguntando únicamente por la calidad general de los participantes. Si separa la primera pregunta de la segunda, le resultará útil recopilar solo las respuestas sobre problemas de audio, video y pantalla compartida si un participante en la encuesta indica que ha experimentado problemas de calidad en la llamada.
- Pregunta sugerida: "¿Qué tal la calidad de la llamada?"
- Valores de la pregunta API: llamada general
Pregunta 2: ¿El usuario tuvo algún problema de audio, video o pantalla compartida durante la llamada? Si un participante en la encuesta respondió a la pregunta 1 con una puntuación igual o inferior al valor de corte para la llamada general, presente la segunda pregunta.
- Pregunta sugerida: "¿Qué podría haber sido mejor?"
- Valores de la pregunta API: Audio, video y pantalla compartida
Instrucciones de encuesta
- Evite el agotamiento de la encuesta, no encueste a todos los participantes de la llamada.
- El orden de las preguntas es importante. Le recomendamos que aleatorice la secuencia de etiquetas opcionales en la pregunta 2 por si los encuestados centran la mayoría de sus comentarios en la primera pregunta que ven visualmente.
- 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
Para analizar los datos de la encuesta, consulte: Registros de encuestas de fin de llamadas
Para obtener más información sobre la encuesta de fin de llamada, consulte: Introducción a la encuesta de fin de llamada
Para obtener información sobre cómo usar el área de trabajo de Log Analytics, consulte: Tutorial de Log Analytics
Para crear sus propias consultas en Log Analytics, consulte: Introducción a las consultas