Solução de problemas nos Serviços de Comunicação do Azure

Esse documento ajuda a solucionar problemas que você pode enfrentar na sua solução de Serviços de Comunicação. Se estiver solucionando problemas de SMS, você poderá habilitar o relatório de entrega com a Grade de Eventos para capturar os detalhes da entrega do SMS.

Obtendo ajuda

Incentivamos os desenvolvedores a enviarem perguntas, sugerirem recursos e relatarem problemas. Para obter mais informações, consulte a página de opções de suporte dedicado e ajuda.

Para ajudar você a solucionar determinados problemas, talvez você precise de uma ou mais das seguintes informações:

  • MS-CV ID: Solucionar problemas de chamadas e mensagens.
  • ID da chamada: Identificar chamadas dos Serviços de Comunicação.
  • ID da mensagem SMS: Identificar mensagens SMS.
  • ID de resumo de programa de código curto: Identifica um aplicativo de resumo de programa de código curto.
  • ID do resumo da campanha de verificação de chamada gratuita: Identificar um aplicativo de resumo da campanha de verificação de chamada gratuita.
  • ID da mensagem de email: Identifica solicitações de envio de email.
  • ID de correlação: Identifica as solicitações feitas por meio da Automação de Chamadas.
  • Logs de chamadas: Contêm informações detalhadas que podem ser usadas para solucionar problemas de chamadas e de rede.

Para obter mais informações sobre estrangulamento e limitações, consulte Limites de serviço.

Acessar sua ID do MS-CV

Você pode acessar a ID do MS-CV configurando diagnósticos na instância do objeto clientOptions ao inicializar seus SDKs. Você pode configurar diagnósticos para qualquer SDK do Azure, incluindo Chat, Identidade e chamadas VoIP.

Exemplo das opções do cliente

Os trechos de código a seguir demonstram a configuração de diagnóstico. Quando você ativa o diagnóstico para SDKs, os detalhes do diagnóstico podem ser emitidos para o ouvinte 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) });

IDs de acesso necessárias para a Automação de Chamadas

Ao solucionar problemas com o SDK de Automação de Chamadas, como gerenciamento de chamadas ou problemas de gravação, você precisa coletar as IDs que ajudam a identificar a chamada ou a operação com falha. Você pode fornecer uma das duas IDs a seguir.

  • No cabeçalho da resposta da API, localize o campo X-Ms-Skype-Chain-Id.

    Captura de tela do cabeçalho de resposta mostrando X-Ms-Skype-Chain-Id.

  • Dos eventos de retorno de chamada que seu aplicativo recebe após a execução de uma ação. Por exemplo CallConnected ou PlayFailed, localize o CorrelationID.

    Captura de tela do evento de chamada desconectada mostrando a ID de correlação.

Além de uma dessas IDs, você precisa fornecer detalhes sobre o caso de uso com falha e o carimbo de data/hora em que a falha ocorreu.

Acessar sua ID de chamada do cliente

Ao solucionar problemas de chamadas de voz ou vídeo, talvez seja necessário fornecer um call ID. Acesse esse valor por meio da propriedade id do objeto call:

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

Acessar sua ID de mensagem de SMS

Para problemas de SMS, você pode coletar a ID da mensagem 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 is in the result
}

Acessar a ID do resumo do programa de código curto

Localize a ID do resumo do programa no portal do Microsoft Azure na seção Códigos Curtos.

Captura de tela mostrando uma ID de resumo de programa de código curto.


Acesse seu ID de resumo de campanha de verificação gratuito

Encontre a ID do resumo do programa no portal do Azure na seção Documentos Regulatórios.

Captura de tela mostrando uma breve ID da campanha de verificação gratuita.


Acesse seu ID de operação de email

Quando a solução de problemas enviar solicitações de status de email ou mensagem de email, talvez seja necessário fornecer um operation ID. Você pode acessar esse valor na resposta:

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}");

Acessando arquivos de suporte no SDK de chamada

O SDK de chamada fornece métodos convenientes para acessar os Arquivos de Log. Esses arquivos podem ser valiosos para especialistas e engenheiros de suporte da Microsoft. Recomendamos que você colete esses logs quando detectar um problema.

Habilitar e acessar registros de chamadas

[JavaScript]

O SDK de Chamada dos Serviços de Comunicação do Azure se baseiam internamente na biblioteca @azure/logger para controlar o registro em log.

Use o método setLogLevel do pacote @azure/logger para configurar o nível de saída do log. Crie um agente e passe-o para o construtor CallClient da seguinte forma:

import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });

Você pode usar o AzureLogger para redirecionar a saída de registro dos SDKs do Azure substituindo o método AzureLogger.log:

É possível registrar no console do navegador, em um arquivo, em um buffer, enviar para nosso próprio serviço e assim por diante. Se for enviar logs pela rede para o seu próprio serviço, não envie uma solicitação por linha de log, pois isso afeta negativamente o desempenho do navegador. Em vez disso, acumule linhas de log e envie-as em lotes.

// Redirect log output
AzureLogger.log = (...args) => {
    // To console, file, buffer, REST API, etc...
    console.log(...args); 
};

SDK nativo (Android/iOS)

Para Android, iOS e Windows, o SDK de chamada dos Serviços de Comunicação do Azure oferece acesso a arquivos de registro.

Para SDKs nativos de chamada, consulte os tutoriais Acesso a arquivos de log

Bibliotecas de UI (Android, iOS)

Se você estiver usando as Bibliotecas de Interface do Usuário dos Serviços de Comunicação do Azure para Android ou iOS, poderá solicitar comentários do usuário por meio do formulário de suporte interno.

Para obter mais informações sobre as funções de suporte do formulário Suporte da Interface do Usuário de Chamada, consulte o Tutorial de integração de formulários de suporte. Esse documento orienta você na adição do manipulador de eventos necessário e na criação de uma implementação cliente/servidor básica para armazenamento centralizado de informações de suporte. Este guia descreve o caminho para a integração com os serviços de suporte usados por sua organização.

Construindo fluxos de suporte completos em suas integrações ACS

Independentemente de estar usando o SDK de Chamada ou o SDK da Interface do Usuário de Chamada, fornecer suporte aos seus clientes é um componente essencial de qualquer integração robusta. O documento a seguir destaca as principais considerações em cada ponto do ciclo de comentários do suporte e fornece pontos de partida para saber mais.

Fornecendo suporte ao usuário


Localizando informações do Microsoft Entra

  • Obter a ID do Diretório
  • Obter a ID do Aplicativo
  • Obter a identificação de usuário

Obter a ID do Diretório

Para encontrar o ID do seu diretório (locatário), siga essas etapas:

  1. Navegue até o portal do Azure e entre usando as credenciais.

  2. No painel esquerdo, selecione Microsoft Entra ID.

  3. Na página Visão geral do ID do Microsoft Entra, copie o ID do diretório (locatário) e armazene-o no código do seu aplicativo.

    Captura de tela de como copiar a ID do locatário do Microsoft Entra e armazená-la.

Obter a ID do Aplicativo

Para encontrar o ID do seu aplicativo, siga essas etapas:

  1. Navegue até o portal do Azure e entre usando as credenciais.

  2. No painel esquerdo, selecione Microsoft Entra ID.

  3. Em Registros de aplicativo no Microsoft Entra ID, selecione seu aplicativo.

  4. Copie a ID do aplicativo e armazene-a no código do aplicativo.

    Captura de tela de como copiar a ID do aplicativo do Microsoft Entra e armazená-la.

    A ID do diretório (locatário) também pode ser encontrada na página de visão geral do aplicativo.

Obter a identificação de usuário

Para encontrar seu ID de usuário, siga essas etapas:

  1. Navegue até o portal do Azure e entre usando as credenciais.

  2. No painel esquerdo, selecione Microsoft Entra ID.

  3. Em Usuários no Microsoft Entra ID, selecione seu usuário.

  4. Na página Perfil dos usuários do Microsoft Entra, copie o ID do objeto e armazene-o no código do seu aplicativo.

    Captura de tela de como copiar a ID de usuário do Microsoft Entra e armazená-la.

Obtendo a ID do recurso imutável

Às vezes, você também precisa fornecer a ID de recurso imutável do recurso do Serviço de Comunicação. Para encontrá-lo, siga essas etapas:

  1. Navegue até o portal do Azure e entre usando as credenciais.
  2. Abra seu recurso do Serviço de Comunicação do Azure.
  3. No painel esquerdo, selecione Visão geral e mude para uma visualização JSONCaptura de tela de como alternar a visão geral do Recurso de Comunicação para um modo de exibição JSON.
  4. Na página JSON do Recurso, copie o valor immutableResourceId e forneça-o à sua equipe de suporte. Captura de tela do JSON do Recurso.

Verificação da qualificação da licença do Teams para usar o suporte dos Serviços de Comunicação do Azure para usuários do Teams

Há duas maneiras de verificar a qualificação de sua Licença do Teams para usar o suporte dos Serviços de Comunicação do Azure para usuários do Teams:

  • Verificação por meio do cliente Web do Teams
  • Verificar sua licença atual do Teams por meio da API do Microsoft Graph

Verificação por meio do cliente Web do Teams

Para verificar a elegibilidade da licença do Teams por meio do cliente Web do Teams, siga essas etapas:

  1. Abra o navegador e navegue até o Cliente Web do Teams.
  2. Entre com credenciais que tenham uma licença válida do Teams.
  3. Se a autenticação for bem-sucedida e você permanecer no domínio https://teams.microsoft.com/, sua Licença do Teams estará qualificada. Se a autenticação falhar ou você for redirecionado para o domínio https://teams.live.com/v2/, sua Licença do Teams não estará qualificada para usar o suporte dos Serviços de Comunicação do Azure para usuários do Teams.

Verificar sua licença atual do Teams por meio da API do Microsoft Graph

Você pode encontrar sua licença atual do Teams usando licenseDetails Microsoft Graph API que retorna as licenças atribuídas a um usuário. Siga essas etapas para usar a ferramenta Graph Explorer para visualizar licenças atribuídas a um usuário:

  1. Abra o navegador e navegue até o Explorador do Graph

  2. Entre no Explorador do Graph usando as credenciais. Captura de tela de como entrar no Explorador do Graph.

  3. Na caixa de consulta, insira a seguinte API e clique em Executar Consulta:

    https://graph.microsoft.com/v1.0/me/licenseDetails
    

    Captura de tela de como inserir a API no Explorador do Graph.

    Ou você pode consultar um usuário específico fornecendo a ID do usuário usando a seguinte API:

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. O painel Visualização de resposta exibe a saída da seguinte maneira:

    O objeto de resposta mostrado aqui pode ser reduzido para facilitar a leitura.

    {
        "@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"
                    }
                ]
            }
        ]
    }
    
  5. Localize detalhes da licença em que a propriedade servicePlanName tem um dos valores na tabela Licenças qualificadas do Teams