Поделиться через


Устранение неполадок в Службах коммуникации Azure

В этой статье описаны проблемы, которые могут возникнуть в решении Службы коммуникации Azure. При устранении неполадок с SMS можно включить отчеты о доставке с помощью Сетка событий Azure для записи сведений о доставке SMS.

Получить помощь

Мы советуем разработчикам отправлять вопросы, предлагать функции и сообщать о проблемах. Дополнительные сведения см. на странице выделенных параметров поддержки и справки.

Чтобы устранить некоторые проблемы, может потребоваться один или несколько следующих элементов информации:

  • Идентификатор MS-CV: устранение неполадок с вызовами и сообщениями.
  • Идентификатор вызова: определение Службы коммуникации Azure вызовов.
  • Идентификатор SMS-сообщения: определение SMS-сообщений.
  • Краткий идентификатор программы кода: определение короткого приложения для программы кода.
  • Краткий идентификатор кампании проверки бесплатной проверки: определение краткого приложения для бесплатной проверки.
  • Идентификатор сообщения электронной почты: определение запросов на отправку электронной почты .
  • Идентификатор корреляции: определение запросов, выполненных с помощью службы автоматизации вызовов.
  • Журналы вызовов: используйте подробные сведения для устранения проблем с вызовами и сетью.

Дополнительные сведения о регулировании и ограничениях см. в разделе "Ограничения службы".

Доступ к ИД MS-CV

Вы можете получить доступ к идентификатору MS-CV, настроив диагностика в экземпляре clientOptions объекта при инициализации пакетов SDK. Вы можете настроить диагностика для любого пакета SDK Azure, включая чат, удостоверение и вызов VoIP.

Пример параметров клиента

В указанных ниже фрагментах кода показана конфигурация диагностики. Если включить диагностика для пакетов SDK, диагностика сведения создаются для настроенного прослушивателя событий.

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

Использование идентификаторов доступа для автоматизации вызовов

При устранении неполадок с пакетом SDK службы автоматизации вызовов( например, проблемы с управлением вызовами или записью), необходимо собрать идентификаторы, которые помогают определить неудачный вызов или операцию. Вы можете указать один из следующих двух идентификаторов:

  • Из заголовка ответа API. Найдите поле X-Ms-Skype-Chain-Id.

    Снимок экрана: заголовок ответа с идентификатором X-Ms-Skype-Chain-Id.

  • Из событий обратного вызова, получаемых приложением после выполнения действия. Например, используйте CallConnected или PlayFailed найдите идентификатор корреляции.

    Снимок экрана: событие отключения вызова с идентификатором корреляции.

Помимо одного из этих идентификаторов, необходимо указать сведения о неудачном варианте использования и метке времени при возникновении сбоя.

Доступ к идентификатору вызова клиента

При устранении неполадок голосовых или видеозвонков call IDможет потребоваться предоставить . Доступ к этому значению через id свойство call объекта.

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

Доступ к ИД SMS-сообщений

При проблемах с SMS идентификатор сообщения можно получить из объекта ответа.

// 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
}

Доступ к короткому идентификатору программы кода

Найдите краткий идентификатор программы в портал Azure в разделе "Короткие коды".

Снимок экрана: краткий идентификатор программы кода.


Доступ к краткому идентификатору кампании проверки бесплатного доступа

Найдите краткий идентификатор программы в портал Azure в разделе "Нормативные документы".

Снимок экрана: краткий идентификатор кампании проверки бесплатной проверки.


Доступ к идентификатору операции электронной почты

При устранении неполадок с состоянием отправки электронной почты или запросами на состояние сообщения электронной почты может потребоваться указать идентификатор операции. Вы можете получить доступ к этому значению в ответе.

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

Доступ к файлам поддержки в пакете SDK для вызовов

Пакет SDK для вызова предоставляет удобные методы для доступа к файлам журнала. Эти файлы могут помочь специалистам и инженерам службы поддержки Майкрософт. Мы рекомендуем собирать эти журналы при обнаружении проблемы.

Включение журналов вызовов и доступ к ним

Узнайте, как включить и получить доступ к журналам вызовов.

JavaScript

Пакет SDK для вызовов Службы коммуникации Azure используется внутри библиотеки @azure или средства ведения журнала для управления ведением журнала.

setLogLevel Используйте метод из пакета для настройки уровня выходных @azure/logger данных журнала. Создайте средство ведения журнала и передайте его в CallClient конструктор.

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

Вы можете AzureLogger использовать для перенаправления выходных данных ведения журнала из пакетов SDK Azure, переопределив AzureLogger.log метод.

Вы можете войти в консоль браузера, файл или буфер. Вы также можете отправить в собственную службу. Если вы собираетесь отправлять журналы по сети в собственную службу, не отправляйте запрос на строку журнала, так как этот метод отрицательно влияет на производительность браузера. Вместо этого накапливайте строки журналов и отправляйте их в пакеты.

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

Собственный пакет SDK (Android/iOS)

Для Android, iOS и Windows пакет SDK для вызовов Службы коммуникации Azure предоставляет доступ к файлам журналов.

Сведения о вызове собственных пакетов SDK см. в руководстве по доступу к файлам журнала.

Библиотеки пользовательского интерфейса (Android, iOS)

Если вы используете библиотеки пользовательского интерфейса Службы коммуникации Azure для Android или iOS, вы можете запросить отзывы пользователей с помощью встроенной формы поддержки.

Дополнительные сведения о функциях поддержки формы поддержки вызывающего пользовательского интерфейса см. в руководстве по интеграции формы поддержки. В этой статье показано, как добавить необходимый обработчик событий и создать базовую реализацию клиента или сервера для централизованного хранения сведений о поддержке. В этой статье описывается путь интеграции со службами поддержки, которые использует ваша организация.

Создание сквозных потоков поддержки в интеграции ACS

Независимо от того, используете ли вы пакет SDK для вызовов или пакет SDK для пользовательского интерфейса для вызовов, предоставляя клиентам поддержку, является ключевым компонентом любой надежной интеграции.

В статье "Предоставление поддержки пользователей" рассматриваются ключевые аспекты каждого цикла отзывов о поддержке и предоставляются дополнительные сведения.


Поиск сведений о Microsoft Entra

Используйте следующие процедуры для поиска сведений о Microsoft Entra.

Получение идентификатора каталога

Чтобы найти идентификатор каталога (клиента), выполните следующие действия.

  1. Войдите на портал Azure.

  2. В меню службы выберите идентификатор Microsoft Entra.

  3. На странице обзора в идентификаторе Microsoft Entra скопируйте идентификатор каталога (идентификатор клиента) и сохраните его в коде приложения.

    Снимок экрана, на котором показано, как скопировать идентификатор клиента Microsoft Entra и сохранить его.

Получение идентификатора приложения

Чтобы найти идентификатор приложения, выполните следующие действия.

  1. Войдите на портал Azure.

  2. В меню службы выберите идентификатор Microsoft Entra.

  3. В Регистрация приложений в идентификаторе Microsoft Entra выберите приложение.

  4. Скопируйте идентификатор приложения (клиента) и сохраните его в коде приложения.

    Снимок экрана, на котором показано, как скопировать идентификатор приложения Microsoft Entra и сохранить его.

    Вы также можете найти идентификатор каталога (клиента) на странице обзора приложения.

Получение идентификатора пользователя

Чтобы найти идентификатор пользователя, выполните следующие действия.

  1. Войдите на портал Azure.

  2. В меню службы выберите идентификатор Microsoft Entra.

  3. В разделе "Пользователи " в идентификаторе Microsoft Entra выберите пользователя.

  4. На странице профиля для пользователей Microsoft Entra скопируйте идентификатор объекта и сохраните его в коде приложения.

    Снимок экрана, на котором показано, как скопировать идентификатор пользователя Microsoft Entra и сохранить его.

Получение неизменяемого идентификатора ресурса

Иногда также необходимо указать неизменяемый идентификатор ресурса Службы коммуникации Azure ресурса. Чтобы найти его, выполните следующие действия.

  1. Войдите на портал Azure.

  2. Откройте ресурс Службы коммуникации Azure.

  3. В меню службы выберите "Обзор" и перейдите в представление JSON.

    Снимок экрана, на котором показано, как переключить обзор ресурсов Службы коммуникации Azure в представление JSON.

  4. На странице JSON ресурса скопируйте значение и предоставьте immutableResourceId его группе поддержки.

    Снимок экрана: страница JSON ресурса.

Проверка наличия лицензии Teams для использования Службы коммуникации Azure поддержки для пользователей Teams

Существует два способа проверить право лицензии Teams на использование Службы коммуникации Azure поддержки для пользователей Teams.

Проверка через веб-клиент Teams

Чтобы проверить соответствие лицензии Teams через веб-клиент Teams, выполните следующие действия.

  1. Откройте браузер и перейдите в веб-клиент Teams.
  2. Войдите с учетными данными, имеющими действительную лицензию Teams.
  3. Если проверка подлинности выполнена успешно, и вы остаетесь в домене https://teams.microsoft.com/ , ваша лицензия Teams имеет право. Если проверка подлинности завершается ошибкой или вы перенаправляетесь в https://teams.live.com/v2/ домен, лицензия Teams не может использовать Службы коммуникации Azure поддержку для пользователей Teams.

Проверка текущей лицензии Teams с помощью API Microsoft Graph

Текущую лицензию Teams можно найти с помощью licenseDetails. API Microsoft Graph возвращает лицензии, назначенные пользователю. Выполните следующие действия, чтобы использовать средство обозревателя Graph для просмотра лицензий, назначенных пользователю.

  1. Откройте браузер и перейдите в обозреватель Graph.

  2. Войдите в обозреватель Graph с помощью учетных данных.

    Снимок экрана: вход в Graph Explorer.

  3. В поле запроса введите следующий API и выберите "Выполнить запрос".

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

    Снимок экрана, на котором показано, как ввести API в обозревателе Graph.

    Или вы можете запросить конкретного пользователя, предоставив идентификатор пользователя с помощью следующего API:

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. В области предварительного просмотра ответа отображаются выходные данные.

    Объект ответа, показанный здесь, может быть сокращен для удобства.

    {
        "@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. Найдите сведения о лицензии, где servicePlanName свойство имеет одно из значений в таблице "Соответствующие лицензии Teams".