Resolução de problemas nos Serviços de Comunicação da Azure

Este documento irá ajudá-lo a resolver problemas que poderá experimentar dentro da sua solução de Serviços de Comunicação. Se estiver a resolver problemas de SMS, pode ativar o relatório de entrega com a Grade de Eventos para capturar detalhes de entrega de SMS.

Obter ajuda

Encorajamos os desenvolvedores a submeter perguntas, sugerir funcionalidades e reportar problemas como problemas. Para ajudar a fazê-lo, temos uma página dedicada de apoio e opções de ajuda que lista as suas opções de suporte.

Para ajudá-lo a resolver determinados tipos de problemas, pode ser-lhe pedido qualquer uma das seguintes informações:

  • MS-CV ID: Este ID é usado para resolver chamadas e mensagens de resolução de problemas.
  • ID de chamada: Este ID é usado para identificar chamadas de Serviços de Comunicação.
  • ID de mensagem SMS: Este ID é utilizado para identificar mensagens SMS.
  • Registos de chamadas : Estes registos contêm informações detalhadas que podem ser usadas para resolver problemas de chamadas e problemas de rede.

Aceda ao seu ID MS-CV

O ID MS-CV pode ser acedido configurando diagnósticos na instância do clientOptions objeto ao rubricar os seus SDKs. Os diagnósticos podem ser configurados para qualquer um dos SDKs Azure, incluindo chat, identidade e chamada VoIP.

Exemplo de opções de cliente

Os seguintes fragmentos de código demonstram a configuração do diagnóstico. Quando os SDKs forem utilizados com diagnósticos ativados, os detalhes de diagnóstico serão emitidos ao ouvinte do evento 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) });

Aceda ao seu ID de chamada

Ao resolver chamadas de voz ou vídeo, pode ser-lhe pedido que forneça uma call ID . Isto pode ser acedido através da id propriedade do call objeto:

// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)

Aceda ao seu ID de mensagem SMS

Para problemas de SMS, pode recolher o ID da mensagem a partir do objeto de resposta.

// 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 will be in the result
}

Ativar e aceder a registos de chamadas

O Azure Communication Services Call SDK depende internamente da @azure/logger biblioteca para controlar a exploração madeireira. Utilize o setLogLevel método da embalagem para @azure/logger configurar a saída de registo:

import { setLogLevel } from '@azure/logger';
setLogLevel('verbose');
const callClient = new CallClient();

Pode utilizar o AzureLogger para redirecionar a saída de registo de SDKs Azure, sobressaltendo o AzureLogger.log método: Isto pode ser útil se quiser redirecionar registos para um local diferente da consola.

import { AzureLogger } from '@azure/logger';
// redirect log output
AzureLogger.log = (...args) => {
  console.log(...args); // to console, file, buffer, REST API..
};

Ativar e aceder a registos de chamadas (Windows)

Ao desenvolver Windows, os seus registos são armazenados em .blog ficheiros. Note que não pode ver os registos diretamente porque estão encriptados.

Estes podem ser acedidos olhando para onde a sua aplicação está guardando os seus dados locais. Existem muitas formas de descobrir onde uma aplicação UWP mantém os seus dados locais, os seguintes passos são apenas uma dessas formas:

  1. Abra uma solicitação de comando Windows (Windows chave + R)
  2. Escreva cmd.exe
  3. Escreva where /r %USERPROFILE%\AppData acs*.blog
  4. Por favor, verifique se o ID da aplicação da sua aplicação coincide com o devolvido pelo comando anterior.
  5. Abra a pasta com os troncos digitando start seguido do caminho devolvido pelo passo 3. Por exemplo: start C:\Users\myuser\AppData\Local\Packages\e84000dd-df04-4bbc-bf22-64b8351a9cd9_k2q8b5fxpmbf6
  6. Por favor, anexe todos os *.blog ficheiros e *.etl ficheiros ao seu pedido de suporte Azure.

Chamando códigos de erro SDK

Os Serviços de Comunicação Azure Call SDK utilizam os seguintes códigos de erro para ajudá-lo a resolver problemas de chamadas. Estes códigos de erro são expostos através da propriedade após o call.callEndReason fim de uma chamada.

Código de erro Description Medidas a tomar
403 Falha de autenticação proibida/ proibida. Certifique-se de que o seu token de Serviços de Comunicação é válido e não caducado. Se estiver a utilizar Teams Interoperabilidade, certifique-se de que o seu inquilino Teams foi adicionado à lista de pré-visualização de acesso. Para ativar/desativar Teams interoperabilidade do inquilino,preencha este formulário.
404 Chamada não encontrada. Certifique-se de que o número que está a ligar (ou ligue para o qual está a aderir) existe.
408 O controlador de chamadas está esgotado. O Controlador de Chamada sai em tempo de espera por mensagens de protocolo dos pontos finais do utilizador. Certifique-se de que os clientes estão conectados e disponíveis.
410 Pilha de meios de comunicação locais ou erro de infraestrutura de mídia. Certifique-se de que está a utilizar o mais recente SDK num ambiente apoiado.
430 Incapaz de entregar mensagem à aplicação do cliente. Certifique-se de que a aplicação do cliente está em execução e disponível.
480 Ponto final remoto do cliente não registado. Certifique-se de que o ponto de terminação remoto está disponível.
481 Falhou em lidar com a chamada recebida. Arquivar um pedido de apoio através do portal Azure.
487 Chamada cancelada, recusada localmente, terminou devido a um problema de incompatibilidade de pontos finais, ou não gerou oferta de mídia. Comportamento esperado.
490, 491, 496, 487, 498 Problemas de rede de pontos finais locais. Verifique a sua rede.
500, 503, 504 Erro de infraestrutura dos Serviços de Comunicação. Arquivar um pedido de apoio através do portal Azure.
603 Chamada globalmente recusada por participante remoto dos Serviços de Comunicação Comportamento esperado.

Códigos de erro chat SDK

O Azure Communication Services Chat SDK utiliza os seguintes códigos de erro para ajudá-lo a resolver problemas de chat. Os códigos de erro são expostos através da error.code propriedade na resposta de erro.

Código de erro Description Medidas a tomar
401 Não autorizado Certifique-se de que o seu token de Serviços de Comunicação é válido e não caducado.
403 Proibido Certifique-se de que o iniciador do pedido tem acesso ao recurso.
429 Muitos pedidos Certifique-se de que a sua aplicação do lado do cliente lida com este cenário de forma fácil de utilizar. Se o erro persistir, por favor, apresente um pedido de apoio.
503 Serviço Indisponível Arquivar um pedido de apoio através do portal Azure.