Бөлісу құралы:


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

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

Получение справки

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

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

  • Идентификатор MS-CV: устранение неполадок с вызовами и сообщениями.
  • Идентификатор вызова: определение вызовов служб коммуникации.
  • Идентификатор 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 в разделе "Нормативные документы".

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


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

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

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

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

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

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

  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 и его хранения.

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

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

  1. Перейдите на портал Azure и выполните вход с использованием учетных данных.
  2. Откройте ресурс Службы коммуникации.
  3. В левой области выберите "Обзор" и перейдите в представление JSONСнимок экрана: переключение обзора ресурса коммуникации в представление JSON.
  4. На странице JSON ресурса скопируйте значение и предоставьте immutableResourceId его группе поддержки. Снимок экрана: JSON ресурса.

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

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

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

Проверка через веб-клиент 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 с помощью API Microsoft Graph licenseDetails , который возвращает лицензии, назначенные пользователю. Выполните следующие действия, чтобы использовать средство обозревателя 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"