Compartir a través de


Uso de 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.

Prerrequisitos

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.

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 source sea Logs y Resource type sea Communication
  • 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 source sea Logs y Resource type sea Application 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 source esté configurado como Combinar y seleccione Merge 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

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.

  • CallSurveyRatingScale Los 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 .CallSurveyRatingScale Todos los valores del CallSurveyRatingScale objeto 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.

  • CallSurveyRatingScale Los 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 .CallSurveyRatingScale Todos los valores del CallSurveyRatingScale objeto 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.

  • CallSurveyRatingScale Los 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 .CallSurveyRatingScale Todos los valores del CallSurveyRatingScale objeto 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.

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