Voice Insights — это аналитический инструмент, который предоставляет вам действенные данные о метриках, влияющих на качество звонков в реальном времени, даже во время активного вызова. Мы рады объявить о последних обновлениях Voice Insights, основанных на ваших ценных отзывах. Мы улучшили панели управления Voice Insights, чтобы вы могли легко отслеживать и понимать опыт конечных пользователей с Twilio. За этими новыми дашбордами стоят значительные улучшения в точности сбора и анализа метрик качества звонков.
Если вы новичок в Voice Insights, вы можете начать работу, просто переключив тумблер здесь. Использование Voice Insights не требует изменений в коде, если вы используете Twilio JS 1.3 или 1.4. Если вы уже знакомы с Voice Insights, можете сразу перейти к разделу с улучшениями или продолжить чтение для получения дополнительной информации.
Вы прилагаете большие усилия, чтобы обеспечить отличное качество звонков для ваших пользователей. Быстрая диагностика проблем с качеством вызовов, вызванных нестабильными сетями или ненадёжными устройствами, крайне важна. Вам нужны правильные инструменты для этого.
Мы запустили Insights в сентябре прошлого года, чтобы помочь вам получить представление о факторах, влияющих на звонки через Twilio Client, и проактивно управлять опытом конечных пользователей. Мы добавили такие функции, как мониторинг сети на устройстве, API для выбора аудиоустройств и отчётность о качестве звонков в реальном времени, с выпуском Twilio Client 1.4. Voice Insights предоставляет аналитику по событиям на устройстве из вашего клиентского приложения. С помощью Insights вы можете:
**Быстро устранять проблемы с качеством звонков:** Благодаря оповещениям на устройстве и панелям управления в консоли, отслеживающим такие метрики, как джиттер, потеря пакетов, уровень аудиопотока и средняя оценка качества (MOS) для каждого звонка, вы можете узнать, у каких пользователей возникают проблемы. Используя Client API, вы можете предупреждать пользователей на их устройствах о ухудшении сетевых условий или неисправностях аудиоустройств, чтобы они могли самостоятельно улучшить качество звонка.
**Отслеживать ключевые метрики и проактивно связываться с пострадавшими пользователями:** Теперь вы можете отслеживать ключевые метрики звонков, которые были прерваны, не смогли подключиться или были затронуты сетевыми условиями. Используя фильтры по идентификатору клиента и IP-адресу, вы сможете проактивно связываться с пользователями, пострадавшими от проблем с качеством звонков.
#### Устранение ложных срабатываний в начале звонка
До этого релиза каждый звонок начинался с предупреждений о высокой задержке, низкой средней оценке качества (MOS) и высокой потере пакетов. Эти предупреждения генерировались во время установления соединения из-за стандартных сетевых метрик, предоставляемых WebRTC getstats API, которые не отражали реальные сетевые условия. Например, мы обнаружили, что первый замер в каждом звонке показывает 100% потерю пакетов и задержку более 1 секунды, что приводит к неприемлемо низкому MOS (см. изображение ниже). Это приводило к генерации как минимум трёх предупреждений в начале каждого звонка, что создавало большое количество ложных срабатываний.
Мы исправили это, избегая генерации предупреждений в первые 15 секунд звонка, пока метрики ещё нормализуются. После 15 секунд вы по-прежнему будете видеть любые сетевые аномалии, выделенные в виде предупреждений и на графиках метрик. Эти изменения отражены в журнале событий и в затенённой части графиков на вкладке метрик звонка.
SDK Twilio Client JS 1.3 и 1.4 постоянно измеряют джиттер, потерю пакетов, задержку и рассчитывают текущий MOS. Когда эти метрики падают ниже определённого порога на протяжении 5 секунд, генерируется предупреждение о проблемах с сетью.
В ходе анализа мы столкнулись с ситуациями, когда, несмотря на небольшое ухудшение сети, восприятие пользователя не страдало. Мы обнаружили, что гораздо более точным индикатором «прерывистого звука» было событие «проверка ICE Liveness не удалась», которое приводило к нарушению обмена информацией, необходимого для поддержания активной медиасессии.
Когда это событие фиксируется, звонок продолжается, но в большинстве случаев качество заметно ухудшается. Подробнее о WebRTC и событиях ICE можно прочитать здесь. Мы устранили ложные срабатывания на агрегированных дашбордах, заменив сырые предупреждения по сетевой статистике на раздел «Звонки, затронутые сетью». Этот раздел предоставляет количество звонков, в которых хотя бы раз была потеряна связь ICE или зафиксирован низкий MOS.
#### Исправление завышенного количества предупреждений
Мы обнаружили, что каждое кратковременное ухудшение сети могло генерировать как минимум 4 предупреждения, представляющих один и тот же случай проблемы. Поскольку эти предупреждения агрегировались по аккаунту, дашборды показывали завышенное количество предупреждений, что затрудняло оценку реального влияния на аккаунт.
Например, на изображении метрик звонка выше кратковременное ухудшение сети на 15-й секунде звонка привело к генерации 5 предупреждений, все из которых представляли один и тот же случай проблемы. Агрегация 50 таких предупреждений за день всё равно не давала понять, сколько звонков столкнулось с проблемой. Это мог быть один звонок с 50 предупреждениями или 10 звонков с 5 предупреждениями каждый. Невозможность различить эти случаи затрудняла быстрое выявление и устранение первопричины.
С последним релизом дашборды аккаунта теперь отражают **количество звонков**, столкнувшихся с проблемами качества, а не сырое количество предупреждений и ошибок. Это помогает точно понять, какие звонки действительно пострадали от плохой сети. Вы по-прежнему увидите разбивку предупреждений в разделе «Звонки, затронутые сетью» агрегированного дашборда.
#### Разбивка звонков по типам проблем
Вместо отображения сырого количества ошибок и предупреждений за весь звонок мы теперь разбиваем затронутые звонки по категориям проблем:
**Не удалось подключиться:** Это звонки, которые не удалось установить. Причиной могут быть проблемы с аутентификацией, сбои настройки устройства, превышение лимита запросов или отказ пользователя предоставить доступ к аудиоустройствам.
**Завершены с ошибкой:** Это звонки, которые были разорваны из-за ошибки. Они представляют собой подмножество прерванных звонков. Чаще всего звонки через клиент завершаются с ошибками из-за серьёзного ухудшения сети.
**Затронуты сетью:** Это звонки, в которых проверка ICE Liveness не удалась, была потеряна связь ICE или MOS упал ниже порогового значения. Эти звонки не обязательно прерывались из-за сети, но пользовательский опыт значительно ухудшался из-за плохой сети.
#### Детализированный дашборд для анализа KPI
Клиенты сообщали, что, несмотря на агрегацию данных на уровне аккаунта, было сложно отслеживать KPI, точно отражающие состояние приложения Twilio. Мы получили отзывы о ключевых метриках, важных для клиентов: общее количество звонков, продолжительность звонков, обратная связь от конечных пользователей, количество некачественных звонков и кто разорвал звонок. Мы переработали дашборды, чтобы вы могли легко отслеживать эти KPI на обзорной странице, а затем углубляться в метрики по каждому пользователю и IP-адресу при необходимости.
В целом мы сосредоточились на том, чтобы вы могли легко понимать и проактивно устранять проблемы с качеством звонков, влияющие на ваших пользователей. Мы упорно работаем над улучшением Voice Insights и ценим ваши отзывы. Наша миссия — сделать так, чтобы вы не тратили ни минуты на беспокойство о качестве звонков, поскольку мы совершенствуем наши Voice SDK и предоставляем такие инструменты, как Voice Insights, для проактивного управления пользователями.