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

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

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

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

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

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

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

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

Доступ к ИД MS-CV можно получить, настроив диагностику в экземпляре объекта clientOptions при инициализации пакетов SDK. Диагностику можно настроить для любого из пакетов Azure SDK, в том числе для чата, удостоверений и вызовов 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 Обозреватель.

  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"

Коды ошибок пакета SDK для вызовов

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

Код ошибки Description Предстоящее действие
403 Запрещено / сбой проверки подлинности. Убедитесь, что маркер Служб коммуникации действителен и не просрочен.
404 Вызов не найден. Убедитесь, что номер, по которому вы звоните, или вызов, к которому вы присоединяетесь, существует.
408 Истекло время ожидания для контроллера вызовов. В контроллере вызовов истекло время ожидания сообщений протокола от конечных точек пользователей. Убедитесь, что клиенты подключены и доступны.
410 Ошибка стека локальных носителей или инфраструктуры носителей. Убедитесь, что вы используете последнюю версию пакета SDK в поддерживаемой среде.
430 Не удалось доставить сообщение в клиентское приложение. Убедитесь, что клиентское приложение работает и доступно.
480 Удаленная конечная точка клиента не зарегистрирована. Убедитесь, что удаленная конечная точка доступна.
481 Не удалось обработать входящий вызов. Создайте запрос на поддержку на портале Azure.
487 Вызов отменен, локально отклонен, завершен из-за несоответствия конечной точки или не удалось создать предложение в отношении носителя. Ожидаемое поведение.
490, 491, 496, 497, 498 Проблемы с сетью в локальной конечной точке. Проверьте сеть.
500, 503, 504 Ошибка инфраструктуры Служб коммуникации. Создайте запрос на поддержку на портале Azure.
603 Вызов глобально отклонен удаленным участником Служб коммуникации. Ожидаемое поведение.

Коды ошибок пакета SDK для службы автоматизации вызовов

Приведенные ниже коды ошибок предоставляются пакетом SDK службы автоматизации вызовов.

Код ошибки Description Необходимые действия
400 Недопустимый запрос Недопустимый входной запрос. Просмотрите сообщение об ошибке, чтобы определить, какие входные данные неверны.
400 Сбой воспроизведения Убедитесь, что звуковой файл — WAV, 16KГц, Mono и убедитесь, что URL-адрес файла доступен в общедоступном формате.
400 Распознать сбой Проверьте сообщение об ошибке. Сообщение выделяет, если этот сбой связан с истечением времени ожидания или если операция была отменена. Дополнительные сведения о кодах ошибок и сообщениях можно проверка нашим руководством по сбору входных данных пользователей.
401 Не авторизовано Сбой проверки подлинности HMAC. Проверьте правильность строка подключения, используемой для создания CallAutomationClient.
403 Запрещено Запрос запрещен. Убедитесь, что у вас есть доступ к ресурсу, к которому вы пытаетесь получить доступ.
404 Ресурс не найден Вызов, на который вы пытаетесь действовать, не существует. Например, передача вызова, который уже отключен.
429 Слишком много запросов Повторите попытку после задержки, предложенной в заголовке Retry-After, а затем экспоненциально обратно.
500 Внутренняя ошибка сервера. Повторите попытку после задержки. Если он сохраняется, создайте запрос в службу поддержки.
500 Сбой воспроизведения Создайте запрос на поддержку на портале Azure.
500 Распознать сбой Проверьте сообщение об ошибке и убедитесь, что формат звукового файла действителен (WAV, 16KHz, Mono), если формат файла действителен, то отправьте запрос на поддержку через портал Azure.
502 Недопустимый шлюз Повторите попытку после задержки с помощью нового http-клиента.

Рассмотрим приведенные ниже советы при устранении некоторых проблем.

  • Приложение не получает событие Сетки событий ВходящихCall: убедитесь, что конечная точка приложения проверена с помощью сетки событий во время создания подписки на события. Состояние подготовки для подписки на событие помечается успешно, если проверка прошла успешно.
  • Получение ошибки "Поле CallbackUri недопустимо": служба автоматизации вызовов не поддерживает конечные точки HTTP. Убедитесь, что указанный URL-адрес обратного вызова поддерживает HTTPS.
  • Действие PlayAudio не воспроизводит ничего: в настоящее время поддерживается только формат файла волны (.wav) для звуковых файлов. Звуковое содержимое в волновом файле должно быть моно (одноканально), 16-разрядные образцы с частотой выборки 16 000 (16 КГц).
  • Действия в конечных точках ТСОП не работают: CreateCall, Transfer, AddParticipant и Redirect to phone numbers требует установки SourceCallerId в запросе на действие. Если вы не используете прямую маршрутизацию, исходный идентификатор вызывающего абонента должен быть номером телефона, принадлежащим ресурсу Служб коммуникации для успешного выполнения действия.

Ознакомьтесь с этой статьей , чтобы узнать о известных проблемах, отслеживаемых командой продуктов.

Коды ошибок пакета SDK для чата

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

Код ошибки Description Предстоящее действие
401 Не авторизовано Убедитесь, что маркер Служб коммуникации действителен и не просрочен.
403 Запрещено Убедитесь в том, что инициатор запроса имеет доступ к ресурсу.
429 Слишком много запросов Убедитесь в том, что клиентское приложение обрабатывает этот сценарий понятным для пользователя способом. Если ошибка сохраняется, отправьте запрос в службу поддержки.
503 Служба недоступна Создайте запрос на поддержку на портале Azure.

Коды ошибок SMS

Пакет SDK Службы коммуникации Azure SMS использует следующие коды ошибок для устранения неполадок SMS. Коды ошибок предоставляются в поле "DeliveryStatusDetails" в отчете о доставке SMS.

Код ошибки Description Предстоящее действие
2000 Сообщение успешно доставлено
4000 Сообщение отклонено из-за обнаружения мошенничества Убедитесь, что вы не превышаете максимальное количество сообщений, разрешенных для вашего числа
4001 Сообщение отклонено из-за недопустимого формата "Источник/Из" Убедитесь, что число находится в формате E.164 и числовой формат находится в формате E.164 или Short code
4002 Сообщение отклонено из-за недопустимого формата назначения или числа Убедитесь, что номер to находится в формате E.164
4003 Сообщение не удалось доставить из-за неподдерживаемого назначения Проверьте, поддерживается ли назначение, в который вы пытаетесь отправить
4004 Сообщение не удалось доставить, так как не существует номера назначения или назначения Убедитесь, что число, на который вы отправляете, является допустимым
4005 Сообщение заблокировано оператором назначения
4006 Число назначения или назначения недоступно Попробуйте повторно отправить сообщение позже
4007 Номер назначения или назначения отказался от получения сообщений от вас Помечайте номер назначения или номера как отказано, чтобы дальнейшие попытки сообщения не предпринимались к числу
4008 Превышено максимальное количество сообщений, разрешенных для профиля. Убедитесь, что вы не превышаете максимальное количество сообщений, разрешенных для номера или используйте очереди для пакетной обработки сообщений.
4009 Сообщение отклонено системой прав Майкрософт Чаще всего это происходит, если обнаружена мошенническая активность. Обратитесь в службу поддержки для получения дополнительных сведений
4010 Сообщение было заблокировано из-за отсутствия проверки бесплатного номера Просмотр неотверенных ограничений отправки и отправка бесплатной проверки как можно скорее
5000 Сообщение не удалось доставить. Обратитесь в службу поддержки Майкрософт для получения дополнительных сведений Отправьте запрос в службу поддержки с помощью портал Azure
5001 Сообщение не удалось доставить из-за временной недоступности приложения или системы
5002 Оператор не поддерживает отчет о доставке Чаще всего это происходит, если перевозчик не поддерживает отчеты о доставке. Никаких действий, необходимых в качестве сообщения, возможно, еще не было доставлено.
9999 Сообщение не удалось доставить из-за неизвестной ошибки или сбоя Попробуйте повторно отправить сообщение