Обзор диагностики предварительного вызова
Внимание
Эта функция Службы коммуникации Azure сейчас доступна в предварительной версии.
Предварительные версии API и пакеты SDK предоставляются без соглашения об уровне обслуживания. Рекомендуется не использовать их для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности.
Дополнительные сведения см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Функция API предварительного вызова позволяет разработчикам программно проверить готовность клиента присоединиться к вызову Службы коммуникации Azure. Доступ к функциям предварительного вызова можно получить только с помощью пакета SDK для вызовов. Функция диагностики предварительного вызова предоставляет несколько диагностика включая устройство, подключение и качество вызова. Функция диагностики предварительного вызова доступна только для Web (JavaScript). Мы планируем включить эти возможности на разных платформах в будущем. Предоставьте нам отзыв о том, какие платформы вы хотите просмотреть диагностика предварительного вызова.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
рекомендуется использовать Node.js активные версии долгосрочной поддержки (LTS).
Активный ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
Маркер доступа пользователя для создания экземпляра клиента вызова. Узнайте, как создать маркер доступа пользователя и обеспечить управление им. Вы также можете использовать Azure CLI и выполнить следующую команду с строка подключения для создания пользователя и маркера доступа. Не забудьте скопировать строка подключения из ресурса через портал Azure.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Дополнительные сведения см. в статье "Использование Azure CLI для создания маркеров доступа и управления ими".
Доступ к предварительному вызову диагностика
Внимание
Предварительный вызов диагностика доступен начиная с версии 1.9.1-beta.1 пакета SDK для вызовов. При выполнении этих инструкций обязательно используйте такую версию или более позднюю.
Чтобы получить доступ к предварительному вызову диагностика, необходимо инициализировать callClient
маркер доступа и подготовить маркер доступа Службы коммуникации Azure. Там вы можете получить доступ к PreCallDiagnostics
функции и методу startTest
.
import { CallClient, Features} from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("INSERT ACCESS TOKEN");
const preCallDiagnosticsResult = await callClient.feature(Features.PreCallDiagnostics).startTest(tokenCredential);
После завершения работы разработчики смогут получить доступ к объекту результата.
Результаты диагностики
Предварительный вызов диагностика возвращает полную диагностику устройства, включая сведения, такие как разрешения устройства, доступность и совместимость, статистика качества звонков и диагностика вызовов. Результаты возвращаются в виде PreCallDiagnosticsResult
объекта.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
Доступ к отдельным объектам результатов можно получить с помощью preCallDiagnosticsResult
типа. Результаты для отдельных тестов возвращаются, так как они завершаются множеством результатов теста, доступных немедленно. При использовании inCallDiagnostics
теста результаты могут занять до 1 минуты, так как тест проверяет качество видео и звука.
Поддержка веб-браузеров
Проверка совместимости браузера. Проверяет наличие Browser
и совместимость и OS
возвращает Supported
значение или NotSupported
значение.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Если тест завершается ошибкой, и браузер, используемый пользователем, — NotSupported
самый простой способ исправить это путем запроса пользователя переключиться на поддерживаемый браузер. Ознакомьтесь с поддерживаемыми браузерами в обзоре > пакета SDK для вызовов JavaScript, поддерживаемого ОС и браузером.
Примечание.
Известная проблема: browser support
проверка, возвращающаяся Unknown
в случаях, когда она должна возвращать правильное значение.
Доступ к устройствам
Проверка разрешений определяет, доступны ли видео и звуковые устройства с точки зрения разрешений. Предоставляет boolean
значение для audio
устройств и video
устройств.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Если тест завершается ошибкой, а разрешения являются ложными для звука и видео, пользователь не должен продолжать присоединяться к вызову. Скорее, предложите пользователю включить разрешения. Лучше всего это сделать, предоставив конкретную инструкцию по доступу к разрешениям на основе ОС, версии и браузера, которые они используют. Дополнительные сведения о разрешениях см . в контрольном списке для расширенных вызовов в веб-браузерах.
Перечисление устройств
Доступность устройства. Проверяет, обнаружены ли устройства микрофона, камеры и динамиков в системе и готовы к использованию. Available
Возвращает значение или NotAvailable
значение.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Если устройства недоступны, пользователь не должен продолжать присоединяться к вызову. Скорее, предложите пользователю проверить подключения устройств, чтобы убедиться, что все гарнитуры, камеры или динамики правильно подключены. Дополнительные сведения об управлении устройствами см. в разделе "Управление видео во время вызовов".
InCall диагностика
Выполняет быстрый вызов для регистрации метрик звонка для аудио и видео и предоставляет результаты обратно. Включает подключение (, логическое значение), качество пропускной способности (connected
bandWidth
,'Bad' | 'Average' | 'Good'
) и вызов диагностика для аудио и видео (diagnostics
). Предоставляемые категории диагностики включают jitter
, packetLoss
и rtt
результаты создаются с помощью простого класса качества ('Bad' | 'Average' | 'Good'
).
InCall диагностика использует статистику качества мультимедиа для вычисления показателей качества и диагностики проблем. Во время предварительной диагностики полный набор статистики качества мультимедиа доступен для использования. Эти статистические данные включают необработанные значения для видео и звуковых метрик, которые можно использовать программно.
Диагностика InCall предоставляет удобный уровень на вершине статистики качества мультимедиа, чтобы использовать результаты без необходимости обрабатывать все необработанные данные. Дополнительные сведения, включая инструкции по доступу, см . в статистике качества мультимедиа для текущего вызова.
const inCallDiagnostics = await preCallDiagnosticsResult.inCallDiagnostics;
if(inCallDiagnostics) {
console.log(inCallDiagnostics.connected)
console.log(inCallDiagnostics.bandWidth)
console.log(inCallDiagnostics.diagnostics.audio)
console.log(inCallDiagnostics.diagnostics.video)
}
На этом шаге существует несколько возможных точек сбоя. Значения, предоставляемые API, основаны на пороговых значениях, необходимых службе. Необработанные пороговые значения можно найти в статистике качества мультимедиа.
- Если подключение завершается ошибкой, предложите пользователям повторно проверить сетевое подключение. Сбои подключения также могут быть связаны с сетевыми условиями, такими как DNS, прокси-серверы или брандмауэры. Дополнительные сведения о рекомендуемом параметре сети см . в рекомендациях по сети.
- Если пропускная способность имеет
Bad
значение, предложите пользователям попробовать другую сеть или проверить доступность пропускной способности в текущей сети. Убедитесь, что не выполняются другие действия с высокой пропускной способностью.
Цены
Когда тест диагностики предварительного вызова выполняется за кулисами, он использует минуты вызова для запуска диагностики. Тест длится примерно на 30 секунд, используя до 30 секунд времени вызова, который взимается по стандартной ставке $ 0,004 на участника в минуту. В случае предварительного вызова диагностика плата взимается за 1 участника x 30 секунд = $0,002.