Известные проблемы в пакетах SDK и API
В этих статьях содержатся сведения об ограничениях и известных проблемах, связанных с Службы коммуникации Azure вызовами ПАКЕТОВ SDK и API автоматизации вызовов служб коммуникации.
Внимание
Есть несколько факторов, которые могут повлиять на качество вызовов. Дополнительные сведения о настройке и тестировании сетевых служб коммуникации см . в рекомендациях по сети.
Вызов веб-пакета SDK
В следующих разделах содержатся сведения о известных проблемах, связанных с пакетами SDK Службы коммуникации Azure для голосовых и видеозвонков JavaScript.
Chrome M115 — регрессия
Chrome версии 115 для Android появился регрессия при выполнении видеозвонков - результатом этой ошибки является пользователь, вызывающий Службы коммуникации Azure с этой версией Chrome, не имеет исходящего видео в группе и Службы коммуникации Azure-Microsoft Teams.
- Эта регрессия является известной проблемой, введенной в Chromium
- В качестве краткосрочного устранения рисков пользователи могут использовать Microsoft Edge или Firefox на Android или избегать использования Google Chrome 115/116 на Android.
Известные проблемы Firefox
Поддержка браузера Firefox desktop теперь доступна в общедоступной предварительной версии. Известные проблемы:
- Перечисление динамиков недоступно: если вы используете Firefox, ваше приложение не может перечислить или выбрать динамиков с помощью диспетчера устройств служб коммуникации. В этом сценарии необходимо выбрать устройства с помощью операционной системы.
- Виртуальные камеры в настоящее время не поддерживаются при выполнении классических аудио-вызовов Firefox\видеозвонков.
Известные проблемы с iOS Chrome
Поддержка браузера iOS Chrome теперь доступна в общедоступной предварительной версии. Известные проблемы:
- Исходящие и входящие звуки при переключении браузера на фон или блокировку устройства. Эта проблема устранена в iOS версии 16.4+.
- Нет входящих и исходящих звуковых данных, поступающих из гарнитуры Bluetooth. Когда пользователь подключает гарнитуру Bluetooth в середине Службы коммуникации Azure звонка, звук по-прежнему выходит из динамика, пока пользователь не заблокирует и разблокирует телефон. Эта проблема возникла в старых версиях iOS (15.6, 15.7), и она не воспроизводима в iOS 16.
В iOS Safari отображается неправильный размер разрешения предварительной версии камеры
Эта ошибка возникает в версиях iOS 16.7 или iOS 17, предшествующих версии 17.4, когда пользователи сменят свои телефоны или включите или отключите видео во время звонка. Предварительный просмотр камеры кратко отображает неправильный размер разрешения перед возвращением в нормальное состояние. Проблема не воспроизводима в бета-версии iOS 17.4. Связанная ошибка WebKit здесь.
При вводе браузера в фоновом режиме при вызове в iOS 16 появились ошибки.
В выпуске iOS 16 появилась ошибка, которая может остановить Службы коммуникации Azure аудио-видеозвонок при использовании мобильного браузера Safari. Apple знает об этой проблеме и ищет исправление на их стороне. Влияние может быть то, что Службы коммуникации Azure звонок может перестать работать во время звонка, и единственное решение, чтобы получить его работу снова, это иметь конечный клиент перезагрузить свой телефон.
Чтобы воспроизвести эту ошибку, выполните указанные ниже действия.
- Пользователь, использующий i Телефон под управлением iOS 16
- Присоединение Службы коммуникации Azure звонка (только аудио или аудио и видео) с помощью мобильного браузера Safari iOS
- Если во время звонка кто-то помещает браузер Safari в фоновом режиме и просматривает YouTube OR получает faceTime\телефонный звонок при подключении через устройство Bluetooth
Результаты.
- Через несколько минут после этой ситуации входящие и исходящие видео могут перестать работать.
- Единственным способом Службы коммуникации Azure повторного вызова является перезапуск телефона конечным пользователем.
Chrome M98 — регрессия
Chrome версии 98 представила регрессию с ненормальным поколением видеокадров, которые влияют на разрешение отправленного видеопотока отрицательно для большинства (70%+) пользователей.
- Эта регрессия является известной проблемой, введенной в Chromium
В то время как при вызове ТСОП пользователь по-прежнему может слышать звук из вызова ACS.
Эта проблема возникает, когда пользователь Android Chrome испытывает входящий вызов ТСОП после ответа на вызов ТСОП, микрофон в вызове ACS становится отключенным. Исходящий звук вызова ACS отключен, поэтому другие участники не могут слышать пользователя, который является вызовом ТСОП. Следует отметить, что входящие звуки пользователя не отключены, и это поведение присуще браузеру.
Нет входящего звука во время вызова
Иногда пользователь в Службы коммуникации Azure вызове может не слышать звук от удаленных участников. Существует связанная ошибка Chromium, которая приводит к этой проблеме, проблема может быть устранена путем повторного подключения однорангового узла Подключение ion. Мы добавили это решение, так как пакет SDK 1.9.1 (стабильная) и пакет SDK 1.10.0 (бета-версия).
В Android Chrome, если пользователь присоединяется к Службы коммуникации Azure вызывать несколько раз, входящий звук также может исчезнуть. Пользователь не сможет услышать звук от других участников, пока не будет обновлена страница. Устранена эта проблема в пакете SDK 1.10.1-beta.1 и улучшено использование аудиоресурсов.
Некоторые устройства Android завершаются сбоем вызовов, за исключением групповых вызовов.
Многие определенные устройства Android не могут запускаться, принимать звонки и собрания. Устройства, которые выполняются в этой проблеме, не могут восстановиться и выполнить сбой при каждой попытке. В основном это samsung model A, особенно модели A, особенно модели A326U, A125U и A215U.
- Эта регрессия является известной проблемой, введенной в Chromium.
Android Chrome отключает звонок после того, как браузер переходит в фоновое режим в течение одной минуты
В Android Chrome, если пользователь находится на вызове Службы коммуникации Azure и помещает браузер в фоновый режим в течение одной минуты. Микрофон теряет доступ, а другие участники звонка не могут слышать звук от пользователя. После того как пользователь переведет браузер на передний план, микрофон снова доступен. Связанные ошибки chromium здесь и здесь
Мобильный пользователь (iOS и Android) бросил звонок, но по-прежнему отображается в списке участников.
Проблема может возникнуть, если мобильный пользователь покидает вызов группы Службы коммуникации Azure без использования API Call.hangUp(). Когда мобильный пользователь закрывает браузер или обновляет веб-страницу без зависания, другие участники группового звонка по-прежнему могут видеть этого мобильного пользователя в списке участников около 60 секунд.
IOS Safari обновляет страницу, если пользователь переходит в другое приложение и возвращается обратно в браузер.
Проблема может возникнуть, если пользователь в Службы коммуникации Azure вызове с iOS Safari и переключается на другое приложение в течение некоторого времени. После возвращения пользователя в браузер страница браузера может обновиться. Это связано с тем, что ОС убивает браузер. Одним из способов устранения этой проблемы является сохранение некоторых состояний и восстановление после обновления страницы.
Пользователи iOS 15.1 присоединяются к групповым звонкам или собраниям Microsoft Teams.
- Иногда при получении входящего ТСОП вкладка с вызовом или собранием зависает. Связанные ошибки WebKit здесь и здесь.
Локальный микрофон или камера отключены при определенных прерываниях в iOS Safari и Android Chrome.
Эта проблема может возникнуть, если другое приложение или операционная система берет на себя контроль микрофона или камеры. Ниже приведены несколько примеров, которые могут произойти во время вызова пользователя:
- Входящий звонок поступает через ТСОП (общедоступная телефонная сеть) и записывает доступ к устройству микрофона.
- Пользователь воспроизводит видео YouTube, например или запускает вызов FaceTime. Переключение на другое собственное приложение может записывать доступ к микрофону или камере.
- Пользователь включает Siri, который фиксирует доступ к микрофону.
Например, в iOS, в то время как при вызове Службы коммуникации Azure, если вызов ТСОП поступает, микрофонMutedUnexepectedly плохой UFD вызывается, а звук останавливается в вызове Службы коммуникации Azure, и вызов помечается как отключенный. После завершения вызова ТСОП пользователь должен отменить Службы коммуникации Azure вызов звука, чтобы начать поток снова в Службы коммуникации Azure вызове. В случае Android Chrome при вызове ТСОП звук останавливается в вызове Службы коммуникации Azure и вызов Службы коммуникации Azure не помечен как отключенный. В этом случае не существует события UFD микрофонаMutedUnexepectedly. После завершения вызова ТСОП Android Chrome автоматически восстанавливает звук, а звук начинается нормально в вызове Службы коммуникации Azure.
В случае, если камера включена и возникает прерывание, Службы коммуникации Azure звонок может или не потерять камеру. Если потерялась, камера помечена как отключенная, и пользователь должен вернуться обратно после прерывания выпуска камеры.
Иногда устройства микрофона или камеры не выпускаются вовремя и могут вызвать проблемы с исходным вызовом. Например, если пользователь пытается отменить воспроизведение при просмотре видео YouTube, или если вызов ТСОП активен одновременно.
Входящие видеопотоки не останавливают отрисовку, если пользователь находится в iOS 15.2+ и использует пакет SDK версии 1.4.1-beta.1+, для перезапуска исходящего звука и видео по-прежнему требуются действия отмены и запуска видео.
Для iOS 15.4+ звук и видео должны иметь возможность автоматического восстановления в большинстве случаев. В некоторых пограничных случаях приложение должно вызвать API для "отмены" (может быть в результате действия пользователя) для восстановления исходящего звука.
IOS с Safari завершает работу и обновляет страницу, если пользователь пытается переключиться с передней камеры на обратную камеру.
Службы коммуникации Azure пакет SDK для вызовов версии 1.2.3-beta.1 ввел ошибку, которая влияет на все вызовы, сделанные из iOS Safari. Проблема возникает, когда пользователь пытается переключить видеопоток камеры с передней на спину. Переключение камеры приводит к сбою браузера Safari и перезагрузке страницы.
Эта проблема устранена в пакете SDK для вызовов Службы коммуникации Azure версии 1.3.1-beta.1 +
- Версия iOS Safari: 15.1
Общий доступ к экранам в macOS Ventura Safari (версия 16.3 и более низкий)
Общий доступ к экранам не работает в macOS Ventura Safari(v16.3 и более низкий). Известная проблема из Safari и будет исправлена в версии 16.4+.
Обновление страницы не приводит к немедленному удалению пользователя из вызова
Если пользователь находится на вызове и решает обновить страницу, служба мультимедиа Служб коммуникации не удаляет этого пользователя немедленно из вызова. Он ожидает повторного взаимодействия пользователя. Пользователь удаляется из вызова после ожидания службы мультимедиа.
Лучше создавать пользовательские интерфейсы, не требующие от конечных пользователей обновлять страницу приложения во время вызова. Если пользователь обновляет страницу, повторно используйте тот же идентификатор пользователя Служб коммуникации после возвращения этого пользователя в приложение. При повторном подключении с тем же идентификатором пользователя пользователь представляется таким же, как существующий объект в remoteParticipants
коллекции. С точки зрения других участников вызова, пользователь остается в вызове в течение времени, необходимого для обновления страницы, до минуты или двух.
Если пользователь отправлял видео перед обновлением, videoStreams
коллекция сохраняет предыдущие данные потока до истечения времени ожидания службы и не удаляет его. В этом сценарии приложение может решить наблюдать за любыми новыми потоками, добавленными в коллекцию, и отрисовывать их с наибольшим id
значением.
Невозможно отобразить несколько предварительных версий на нескольких устройствах в Интернете
Эта проблема — известное ограничение. Дополнительные сведения см. в обзоре пакета SDK для вызовов.
В Safari невозможно получить список устройств, если приложение выполняется в среде iOS или iPadOS
Приложения не могут перечислять или выбирать устройства динамиков (например, Bluetooth) в Safari iOS или iPadOS. Эта проблема является известным ограничением этих операционных систем.
Если вы используете Safari в macOS, приложение не может перечислить или выбрать динамиков через диспетчер устройств Служб коммуникации. В этом сценарии необходимо выбрать устройства с помощью операционной системы. Если вы используете Chrome в macOS, приложение может перечислить или выбрать устройства с помощью диспетчера устройств Служб коммуникации.
- Версия iOS Safari: 15.1
Многократное переключение видеоустройств может привести к временной остановке потоковой передачи видео
Переключение между видеоустройствами может привести к приостановке видеопотока во время получения потока с выбранного устройства. Частое переключение между устройствами может приводить к снижению производительности. Разработчики лучше всего остановить один поток устройств перед началом другого.
Микрофон гарнитуры Bluetooth не обнаружен или слышен во время вызова в Safari на iOS
В Safari на iOS не поддерживаются гарнитуры Bluetooth. Устройство Bluetooth не отображается в доступных вариантах микрофона, и другие участники не могут слышать вас, если вы пытаетесь использовать Bluetooth через Safari.
Эта регрессия является известным ограничением операционной системы. С помощью Safari в macOS и iOS/iPadOS невозможно перечислить или выбрать динамики через диспетчер устройств Служб коммуникации. Это связано с тем, что Safari не поддерживает перечисление или выбор динамиков. В этом сценарии используйте операционную систему для обновления выбора устройства.
Поворот устройства может ухудшить качество видео
Когда пользователи поворачивают устройство, это движение может снизить качество видео, которое выполняет потоковую передачу.
Эта проблема возникает в следующих средах:
- Затронутые устройства: Google Pixel 5, Google Pixel 3A, Apple iPad 8 и Apple iPad X
- Клиентская библиотека: Calling (JavaScript)
- Браузеры: Safari, Chrome
- Операционные системы: iOS, Android
Переключение камеры приводит к "замораживанию" экрана
Когда пользователь служб коммуникации присоединяется к вызову с помощью пакета SDK для вызова JavaScript, а затем выбирает кнопку переключателя камеры, пользовательский интерфейс может перестать отвечать. Затем пользователь должен обновить приложение или отправить браузер в фоновом режиме.
Эта проблема возникает в следующих средах:
- Затронутые устройства: Google Pixel 4A
- Клиентская библиотека: Calling (JavaScript)
- Браузер: Chrome
- Операционные системы: iOS, Android
Проблема с видео сигналом, когда вызов находится в состоянии подключения
Если пользователь быстро включает и отключает видео во время вызова в состоянии Подключение, это действие может привести к проблеме с потоком, полученным для вызова. Разработчики лучше всего создавать свои приложения таким образом, чтобы видео не было включено и выключено, пока вызов находится в состоянии Подключение. Снижение производительности видео может произойти в следующих сценариях:
- Если пользователь начинается с звука, а затем запускает и останавливает видео, а вызов находится в состоянии Подключение.
- Если пользователь начинается с звука, а затем запускает и останавливает видео, пока звонок находится в состоянии лобби .
Перечисление или доступ к устройствам для Safari в macOS и iOS
В некоторых средах можно заметить, что разрешения устройства сбрасываются через некоторое время. В macOS и iOS Safari не сохраняет разрешения в течение длительного времени, если поток не получен. Самый простой способ обойти это ограничение заключается в вызове DeviceManager.askDevicePermission()
API перед вызовом API перечисления устройств диспетчера устройств. К этим API перечисления относятся DeviceManager.getCameras()
, DeviceManager.getSpeakers()
и DeviceManager.getMicrophones()
. Если есть разрешения, пользователь ничего не видит. Если разрешения отсутствуют, пользователю снова будет предложено предоставить разрешения.
Эта проблема возникает в следующих средах:
- Затронутые устройства: i Телефон
- Клиентская библиотека: Calling (JavaScript)
- Браузер: Safari
- Операционная система: iOS
Задержка при отрисовке видео удаленных участников
Во время текущего группового вызова предположим, что пользователь A отправляет видео, а затем пользователь B присоединяется к вызову. Иногда пользователь Б не получает видео от пользователя А или получает его только после длительной задержки. Проблема конфигурации сетевой среды может вызвать эту задержку. Дополнительные сведения см. в рекомендациях по сети.
Использование сторонних библиотек во время вызова может привести к потере звука
Если вы используете getUserMedia
отдельно внутри приложения, аудиопоток теряется. Аудиопоток теряется, так как сторонняя библиотека получает доступ к устройству из библиотеки Службы коммуникации Azure.
- Не используйте сторонние библиотеки, которые используют
getUserMedia
API внутри во время вызова. - Если вам по-прежнему нужно использовать стороннюю библиотеку, единственным способом восстановления звукового потока является изменение выбранного устройства (если у пользователя несколько) или перезапуск вызова.
Эта проблема возникает в следующих средах:
- Браузер: Safari
- Операционная система: iOS
Причиной этой проблемы может быть то, что получение собственного потока с того же устройства имеет побочный эффект запуска в условиях гонки. Получение потоков с других устройств может привести пользователя к недостаточной пропускной способности USB/ввода-вывода и скорости sourceUnavailableError
взлететь.
Чрезмерное использование определенных API- интерфейсов, таких как отключение и отключение, приводит к регулированию в инфраструктуре Службы коммуникации Azure
В результате вызова API выключения или отмены звука Службы коммуникации Azure инфраструктура сообщает другим участникам вызова о состоянии звука локального участника, вызвавшего отключение или отключение звука, чтобы участники звонка знали, кто отключен или не включен. Чрезмерное использование выключения или отмены звука блокируется в Службы коммуникации Azure инфраструктуре. Регулирование происходит, если участник (или приложение от имени участника) пытается непрерывно отключить или отменить отключение, каждые секунды, более 15 раз в 30-секундном скользящее окно.
API службы автоматизации вызовов
Следующие ограничения являются известными проблемами в API автоматизации вызовов служб коммуникации.
Единственная проверка подлинности, поддерживаемая в настоящее время для серверных приложений, — использовать строка подключения.
Выполнять вызовы только между сущностями одного ресурса Служб коммуникации. Обмен данными между ресурсами блокируется.
Звонки между пользователями клиента Microsoft Teams и пользователями служб коммуникации или сущностями серверного приложения запрещены.
Если приложение удостоверяет два или более ТСОП, а затем завершает вызов, вызов между другими сущностями ТСОП удаляется.
В следующих разделах содержатся сведения о известных проблемах, связанных с пакетами SDK для вызовов собственного и собственного пользовательского интерфейса Службы коммуникации Azure.
Эмуляторы API Android
При использовании эмуляторов API Android в Android 5.0 (уровень API 21) и Android 5.1 (уровень API 22) некоторые из них ожидаются.
Конфликт модуля Android Trouter
Когда пакет SDK для чата и звонков Android находятся вместе в одном приложении, функция уведомлений пакета SDK для чата в режиме реального времени не работает. Может возникнуть проблема с разрешением зависимостей.
Пока мы работаем над решением, вы можете отключить функцию уведомлений в режиме реального времени, добавив следующие сведения о зависимостях в файл build.gradle приложения и проверив API GetMessages для отображения входящих сообщений пользователям.
Java
implementation ("com.azure.android:azure-communication-chat:1.0.0") {
exclude group: 'com.microsoft', module: 'trouter-client-android'
}
implementation 'com.azure.android:azure-communication-calling:1.0.0'
Примечание. Если приложение пытается коснуться любого из API-интерфейсов уведомлений, например chatAsyncClient.startRealtimeNotifications()
или chatAsyncClient.addEventHandler()
, произойдет ошибка среды выполнения.
Текущее видео в iOS на рисунке (PiP)
Входящее видео останавливается, когда приложение переходит в фоновый режим. Если приложение находится на переднем плане, видео отображается правильно.
IOS, отвечая на входящие вызовы через CallKit
Исходящие параметры звука не применяются, если CallKit включен, и пользователи отвечают на входящие вызовы напрямую через CallKit.
Библиотека пользовательского интерфейса
Вы можете следовать за известными проблемами на вики-странице в репозиториях GitHub.