Solución de problemas en Azure Communication Services
Este documento le ayuda a solucionar problemas que puede experimentar en la solución de Communication Services. Si está solucionando problemas de SMS, puede habilitar los informes de entrega con Event Grid para capturar los detalles de la entrega de SMS.
Ayuda
Animamos a los desarrolladores a enviar sus preguntas, sugerir características y notificar incidencias. Para ayudar a obtener ayuda, tenemos una Página de opciones de soporte técnico y ayuda dedicadas que enumera las opciones de soporte técnico.
Para ayudarle a solucionar determinados tipos de problemas, es posible que se le pidan los siguientes datos:
- Id. de MS-CV: este identificador se usa para solucionar problemas de llamadas y mensajes.
- Identificador de llamada: este identificador se usa para identificar las llamadas de Communication Services.
- Identificador de mensaje SMS: este identificador se usa para identificar mensajes SMS.
- Id. breve del programa de código corto: este id. se usa para identificar una aplicación breve del programa de código corto.
- Id. breve de la campaña de verificación gratuita: este identificador se usa para identificar una aplicación breve de campaña de verificación de número gratuito.
- Id. de mensaje de correo electrónico: este identificador se usa para identificar las solicitudes de envío de correo electrónico.
- Id. de correlación: este identificador se usa para identificar las solicitudes realizadas mediante la automatización de llamadas.
- Registros de llamadas: estos registros contienen información detallada para solucionar problemas de llamadas y de red.
Consulte también la documentación sobre los límites de servicio para obtener más información sobre el límite de ancho de banda y las limitaciones.
Acceso al identificador de MS-CV
Para acceder al identificador de MS-CV, configure los diagnósticos en la instancia del objeto clientOptions
al inicializar los SDK. Se pueden configurar diagnósticos para cualquiera de los SDK de Azure, como chat, identidad y llamadas VoIP.
Ejemplo de opciones de cliente
Los fragmentos de código siguientes muestran la configuración del diagnóstico. Cuando los SDK se usan con los diagnósticos habilitados, se pueden emitir detalles de diagnóstico al agente de escucha de eventos configurado:
// 1. Import Azure.Core.Diagnostics
using Azure.Core.Diagnostics;
// 2. Initialize an event source listener instance
using var listener = AzureEventSourceListener.CreateConsoleLogger();
Uri endpoint = new Uri("https://<RESOURCE-NAME>.communication.azure.net");
var (token, communicationUser) = await GetCommunicationUserAndToken();
CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);
// 3. Setup diagnostic settings
var clientOptions = new ChatClientOptions()
{
Diagnostics =
{
LoggedHeaderNames = { "*" },
LoggedQueryParameters = { "*" },
IsLoggingContentEnabled = true,
}
};
// 4. Initialize the ChatClient instance with the clientOptions
ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential, clientOptions);
ChatThreadClient chatThreadClient = await chatClient.CreateChatThreadAsync("Thread Topic", new[] { new ChatThreadMember(communicationUser) });
Identificadores de acceso necesarios para la automatización de llamadas
Al solucionar problemas con el SDK de Automatización de llamadas, como la administración de llamadas o los problemas de grabación, debe recopilar los identificadores que ayudan a identificar la llamada o la operación con errores. Puede proporcionar cualquiera de los dos identificadores mencionados aquí.
En el encabezado de la respuesta de la API, busque el campo
X-Ms-Skype-Chain-Id
.Desde los eventos de devolución de llamada que recibe la aplicación después de ejecutar una acción. Por ejemplo
CallConnected
oPlayFailed
, busque el correlationID.
Además de uno de estos identificadores, proporcione los detalles sobre el caso de uso con errores y la marca de tiempo de cuando se observó el error.
Acceso al id. de llamada de cliente
Al solucionar problemas de llamadas de voz o vídeo, es posible que se le pida que proporcione un identificador call ID
. Se puede tener acceso a este valor a través de la propiedad id
del objeto call
:
// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)
Acceso al identificador de mensajes de texto
En caso de problemas en los mensajes de texto, puede recopilar el identificador del mensaje del objeto de respuesta.
// Instantiate the SMS client
const smsClient = new SmsClient(connectionString);
async function main() {
const result = await smsClient.send({
from: "+18445792722",
to: ["+1972xxxxxxx"],
message: "Hello World 👋🏻 via Sms"
}, {
enableDeliveryReport: true // Optional parameter
});
console.log(result); // your message ID is in the result
}
Acceso al id. breve del programa de código corto
El id. breve del programa se puede encontrar en Azure Portal, en la hoja Códigos cortos.
Acceder al identificador breve de la campaña de verificación de número gratuito
El identificador breve del programa se puede encontrar en Azure Portal en la hoja Documentos normativos.
Acceso al identificador de la operación de correo electrónico
Al solucionar problemas de envío de solicitudes de estado de correo electrónico o de mensaje de correo electrónico, se le puede pedir que proporcione un operation ID
. Se puede acceder a este valor en la respuesta:
var emailSendOperation = await emailClient.SendAsync(
wait: WaitUntil.Completed,
senderAddress: sender,
recipientAddress: recipient,
subject: subject,
htmlContent: htmlContent);
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
Console.WriteLine($"Email operation id = {emailSendOperation.Id}");
Acceso a Files de soporte técnico en el SDK de llamadas
Llamar al SDK proporciona métodos útiles para obtener acceso a los archivos de registro. Estos archivos pueden servir valiosos para los especialistas y ingenieros de soporte técnico de Microsoft. Se recomienda recopilar activamente estos registros cuando se detectan problemas.
Habilitar y acceder a los registros de llamadas
[JavaScript]
El SDK de llamadas de Azure Communication Services se basa internamente en la biblioteca @azure/logger para controlar el registro.
Use el método setLogLevel
del paquete @azure/logger
para configurar el nivel de salida del registro. Cree un registrador y páselo al constructor CallClient:
import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });
Puede usar AzureLogger para redirigir la salida de registro de los SDK de Azure invalidando el método AzureLogger.log
: puede iniciar sesión en la consola del explorador, un archivo, un búfer, enviar a nuestro propio servicio, etc. Si va a enviar registros a través de la red a su propio servicio, no envíe una solicitud por línea de registro porque esto afectará al rendimiento del explorador. En su lugar, acumula las líneas de registros y las envía en lotes.
// Redirect log output
AzureLogger.log = (...args) => {
// To console, file, buffer, REST API, etc...
console.log(...args);
};
SDK nativo (Android/iOS)
Para Android, iOS y Windows, el SDK de llamadas de Azure Communication Services ofrece acceso a los archivos de registro.
Para llamar a SDK nativos, consulte los tutoriales de acceso a archivos de registro
Bibliotecas de interfaz de usuario (Android, iOS)
Si usa las bibliotecas de interfaz de usuario de Azure Communication Services para Android o iOS, los comentarios de los usuarios se pueden solicitar mediante el formulario de soporte técnico integrado.
Para obtener más información sobre cómo usar la funcionalidad de soporte técnico del formulario de soporte técnico de la interfaz de usuario de llamada, consulte el Tutorial de integración de formularios de soporte técnico. Este documento le guía a través de la adición del controlador de eventos necesario y la creación de una implementación básica de cliente o servidor para el almacenamiento centralizado de información de soporte técnico. Esta guía está diseñada para guiarle en su camino hacia una integración con los servicios de soporte técnico que usa su organización.
Compilación de flujos de soporte técnico de un extremo a otro en las integraciones de ACS
Tanto si usa el SDK de llamadas como el SDK de interfaz de usuario de llamada, proporcionar soporte técnico a los usuarios finales es un componente clave de cualquier integración sólida. En el siguiente documento se resaltan las consideraciones clave en cada punto del bucle de comentarios de soporte técnico y se proporcionan puntos de salto para obtener más información.
Proporcionar soporte técnico al usuario
Búsqueda de información de Microsoft Entra
- Obtención del id. de directorio
- Obtención del id. de aplicación
- Obtención del id. de usuario
Obtención del id. de directorio
Para buscar el identificador de directorio (inquilino), siga estos pasos:
Vaya a Azure Portal e inicie sesión con las credenciales.
En el panel izquierdo, seleccione Microsoft Entra ID.
En página Información general en Microsoft Entra ID, copie el identificador de directorio (inquilino) y almacénelo en el código de la aplicación.
Obtención del id. de aplicación
Para buscar el identificador de aplicación, siga estos pasos:
Vaya a Azure Portal e inicie sesión con las credenciales.
En el panel izquierdo, seleccione Microsoft Entra ID.
En Registros de aplicaciones en Microsoft Entra ID, seleccione la aplicación.
Copie el id. de aplicación y almacénelo en el código de la aplicación.
El id. de directorio (inquilino) también se puede encontrar en la página de información general de la aplicación.
Obtención del id. de usuario
Para buscar el identificador de usuario, siga estos pasos:
Vaya a Azure Portal e inicie sesión con las credenciales.
En el panel izquierdo, seleccione Microsoft Entra ID.
En Usuarios en Microsoft Entra ID seleccione el usuario.
En página Perfil de usuarios de Microsoft Entra, copie el Id. de objeto y almacénelo en el código de la aplicación.
Obtención del identificador de recurso inmutable
A veces, también debe proporcionar el identificador de recurso inmutable del recurso de Communication Service. Para encontrarlo, siga estos pasos:
- Vaya a Azure Portal e inicie sesión con las credenciales.
- Abra el recurso de Communication Service.
- En el panel izquierdo, seleccione Información general, y cambie a una Vista JSON
- En la página JSON de recursos, copie el valor
immutableResourceId
y proporciónelo al equipo de soporte técnico.
Comprobar si la licencia de Teams es idónea para utilizar el soporte técnico de Azure Communication Services para usuarios de Teams
Hay dos formas de comprobar si la licencia de Teams es idónea para utilizar el soporte técnico de Azure Communication Services para usuarios de Teams:
- Comprobación a través del cliente web de Teams
- Comprobación de la licencia actual de Teams a través de Microsoft Graph API
Comprobación a través del cliente web de Teams
Para comprobar la idoneidad de la licencia de Teams a través del cliente web de Teams, siga estos pasos:
- Abra el explorador y vaya al cliente web de Teams.
- Inicie sesión con unas credenciales que tengan una licencia válida de Teams.
- Si la autenticación se realiza correctamente y permanece en el dominio https://teams.microsoft.com/, la licencia de Teams es válida. Si se produce un error en la autenticación o se le redirige al dominio https://teams.live.com/v2/, la licencia de Teams no es apta para utilizar el soporte técnico de Azure Communication Services para usuarios de Teams.
Comprobación de la licencia actual de Teams a través de Microsoft Graph API
Puede encontrar la licencia actual de Teams mediante licenciaDetails Microsoft Graph API que devuelve las licencias asignadas a un usuario. Siga estos pasos para usar la herramienta Graph Explorer para ver las licencias asignadas a un usuario:
Abra el explorador y vaya a Probador de Graph.
Inicie sesión en el Probador de Graph con las credenciales.
En el cuadro de consulta, escriba la API siguiente y haga clic en Ejecutar consulta:
https://graph.microsoft.com/v1.0/me/licenseDetails
También puede consultar un usuario determinado si proporciona el identificador de usuario mediante la API siguiente:
https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
El panel Vista previa de la respuesta muestra la salida de la siguiente forma:
Tenga en cuenta que el objeto de respuesta que se muestra aquí se puede acortar para facilitar la lectura.
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('071cc716-8147-4397-a5ba-b2105951cc0b')/assignedLicenses", "value": [ { "skuId": "b05e124f-c7cc-45a0-a6aa-8cf78c946968", "servicePlans":[ { "servicePlanId":"57ff2da0-773e-42df-b2af-ffb7a2317929", "servicePlanName":"TEAMS1", "provisioningStatus":"Success", "appliesTo":"User" } ] } ] }
Busque los detalles de la licencia donde la propiedad
servicePlanName
tenga uno de los valores de la tabla Licencias válidas de Teams.
Códigos de error del SDK de llamadas
El SDK de llamadas de Azure Communication Services usa los siguientes códigos de error para ayudarle a solucionar los problemas de las llamadas. Estos códigos de error se exponen a través de la propiedad call.callEndReason
después de que finaliza una llamada.
Código de error | Descripción | Acción que realizar |
---|---|---|
403 | Prohibido o error de autenticación. | Asegúrese de que el token de Communication Services es válido y no ha expirado. |
404 | Llamada no encontrada. | Asegúrese de que el número al que llama (o la llamada a la que se une) existe. |
408 | Se agotó el tiempo de espera del controlador de llamadas. | Se agotó el tiempo de espera del controlador de llamadas mientras esperaba los mensajes de protocolo de los puntos de conexión de usuario. Asegúrese de que los clientes están conectados y disponibles. |
410 | Error de infraestructura de medios o de pila de medios locales. | Asegúrese de que usa el SDK más reciente en un entorno compatible. |
430 | No se puede enviar el mensaje a la aplicación cliente. | Asegúrese de que la aplicación cliente se está ejecutando y está disponible. |
480 | Punto de conexión remoto del cliente no registrado. | Asegúrese de que el punto de conexión remoto está disponible. |
481 | No se pudo controlar la llamada entrante. | Envíe una solicitud de soporte técnico mediante Azure Portal. |
487 | Llamada cancelada, rechazada localmente, finalizada debido a un problema de falta de coincidencia de punto de conexión o no se pudo generar una oferta multimedia. | Comportamiento esperado. |
490, 491, 496, 497, 498 | Problemas de red en el punto de conexión local. | Compruebe la red. |
500, 503, 504 | Error de infraestructura de Communication Services. | Envíe una solicitud de soporte técnico mediante Azure Portal. |
603 | Un participante remoto de Communication Services ha rechazado globalmente la llamada | Comportamiento esperado. |
Códigos de error del SDK de automatización de llamadas
El SDK de automatización de llamadas expone los siguientes códigos de error.
Código de error | Descripción | Acciones que se deben realizar |
---|---|---|
400 | Solicitud incorrecta | La solicitud de entrada no es válida. Examine el mensaje de error para determinar qué entrada es incorrecta. |
400 | Error de reproducción | Asegúrese de que el archivo de audio es WAV, 16KHz, Mono y asegúrese de que la dirección URL del archivo sea accesible públicamente. |
400 | Error de reconocimiento | Compruebe el mensaje de error. El mensaje resalta si este error se debe a que se alcanza el tiempo de espera o si se canceló la operación. Para más información sobre los códigos de error y los mensajes, puede consultar nuestra guía paso a paso para recopilar la entrada del usuario. |
401 | No autorizado | Error de autenticación HMAC. Compruebe si la cadena de conexión usada para crear CallAutomationClient es correcta. |
403 | Prohibida | La solicitud está prohibida. Asegúrese de que tiene acceso al recurso al que está intentando acceder. |
404 | Recurso no encontrado | La llamada en la que intenta actuar no existe. Por ejemplo, al transferir una llamada que ya está desconectada. |
429 | Demasiadas solicitudes | Vuelva a intentarlo después del tiempo sugerido en el encabezado Retry-After y retroceda exponencialmente. |
500 | Error interno del servidor | Vuelva a intentarlo después de un tiempo. Si el problema persiste, abra una incidencia de soporte técnico. |
500 | Error de reproducción | Envíe una solicitud de soporte técnico mediante Azure Portal. |
500 | Error de reconocimiento | Compruebe el mensaje de error y confirme que el formato de archivo de audio es válido (WAV, 16KHz, Mono), si el formato de archivo es válido, abra una solicitud de soporte técnico a través de Azure Portal. |
502 | Puerta de enlace incorrecta | Vuelva a intentarlo después de un tiempo con un cliente HTTP nuevo. |
Tenga en cuenta las sugerencias siguientes al solucionar ciertos problemas.
- La aplicación no recibe el evento IncomingCall de Event Grid: asegúrese de que el punto de conexión de la aplicación se haya validado con Event Grid en el momento de crear la suscripción a eventos. El estado de aprovisionamiento de la suscripción de eventos se marca como correcto si la validación se ha realizado correctamente.
- Obtención del error "El campo CallbackUri no es válido": la automatización de llamadas no admite los puntos de conexión HTTP. Asegúrese de que la dirección URL de devolución de llamada que proporcione admita HTTPS.
- La acción PlayAudio no reproduce nada: actualmente solo se admite el formato de archivo Wave (.wav) para los archivos de audio. El contenido de audio del archivo Wave debe ser mono (un canal), muestras de 16 bits con una frecuencia de muestreo de 16 000 (16 KHz).
- Las acciones en los puntos de conexión RTC no funcionan: CreateCall, Transfer, AddParticipant y Redirect a números de teléfono quieren establecer el valor de SourceCallerId en la solicitud de acción. A menos que use enrutamiento directo, el identificador del autor de la llamada de origen debe ser un número de teléfono propiedad del recurso de Communication Services para que la acción se realice correctamente.
Consulte este artículo para información sobre los problemas conocidos que supervisa el equipo del producto.
Códigos de error del SDK de chat
El SDK de chat de Azure Communication Services usa los siguientes códigos de error para ayudarle a solucionar los problemas del chat. Los códigos de error se exponen a través de la propiedad error.code
en la respuesta del error.
Código de error | Descripción | Acción que realizar |
---|---|---|
401 | No autorizado | Asegúrese de que el token de Communication Services es válido y no ha expirado. |
403 | Prohibida | Asegúrese de que el iniciador de la solicitud tiene acceso al recurso. |
429 | Demasiadas solicitudes | Asegúrese de que la aplicación del lado cliente controla este escenario de forma sencilla. Si el problema continúa, abra una solicitud de soporte técnico. |
503 | Servicio no disponible | Envíe una solicitud de soporte técnico mediante Azure Portal. |
Códigos de error de SMS
El SDK de SMS de Azure Communication Services usa los siguientes códigos de error para ayudarle a solucionar problemas de SMS. Los códigos de error se exponen a través del campo "DeliveryStatusDetails" del informe de entrega de SMS.
Código de error | Descripción | Acción que realizar |
---|---|---|
2000 | Mensaje entregado correctamente | |
4000 | El mensaje se rechaza debido a la detección de fraudes | Asegúrese de que no supera el número máximo de mensajes permitido para el número |
4001 | El mensaje se rechaza debido a un formato de número de origen no válido | Asegúrese de que el número de destino está en formato E.164 y que el formato del número de origen es también E.164 o un formato de código corto |
4002 | El mensaje se rechaza debido a un formato de número de destini no válido | Asegúrese de que el número de destino está en formato E.164 |
4003 | No se pudo entregar el mensaje debido a un destino no admitido | Comprobar si se admite el destino al que intenta realizar el envío |
4004 | No se pudo entregar el mensaje porque el número de destino no existe | Asegurarse de que el número de destino al que envía el mensaje es válido |
4005 | El operador de destino bloquea el mensaje | |
4006 | No se puede acceder al número de destino | Intentar volver a enviar el mensaje más adelante |
4007 | El número de destino ha optado por no recibir mensajes de usted | Marque el número de destino como no seleccionado para que no se intenten más mensajes hacia ese número |
4008 | Ha superado el número máximo de mensajes permitidos para el perfil | Asegúrese de que no supera el número máximo de mensajes permitidos para el número o use colas para procesar por lotes los mensajes |
4009 | El sistema de derechos de Microsoft rechaza el mensaje. | La mayoría de las veces ocurre si se detecta actividad fraudulenta. Para más información, póngase en contacto con el soporte técnico. |
4010 | El mensaje se bloqueó porque no se ha comprobado el número gratuito | Revise los límites de envío sin comprobar y envíe la comprobación del número gratuito lo antes posible. |
5000 | No se pudo entregar el mensaje. Póngase en contacto con el equipo de soporte técnico de Microsoft para obtener más detalles. | Envíe una solicitud de soporte técnico mediante Azure Portal |
5001 | No se pudo entregar el mensaje debido a la falta de disponibilidad temporal de la aplicación o del sistema | |
5002 | El operador no admite el informe de entrega | Esto sucede con más frecuencia si un operador no admite informes de entrega. No se requiere ninguna acción, ya que es posible que el mensaje ya se haya entregado. |
9999 | No se pudo entregar el mensaje debido a un error desconocido | Intentar volver a enviar el mensaje |
Información relacionada
- Acceda a los registros de voz y vídeo, chat, correo electrónico, grabación, SMS y automatización de llamadas.
- API de nombre de archivo de registro para el SDK de llamadas
- Métricas
- Límites de servicio
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de