В современном телекоме, да и не только там, техподдержка — это подразделение, работа которого бесконечно оптимизирована, а затраты выжаты по максимуму. При этом, все понимают, что качество техподдержки сильно влияет на число клиентов, на отзывы о сервисе компании, — но что еще можно здесь улучшить, заодно облегчив работу операторов? Оказывается, есть такая почти волшебная таблетка и называется она «видеоподдержка». Но обо всем по порядку.

По опыту общения с телеком-операторами, в ценах февраля 2022 года выезд инженера техподдержки на адрес клиента стоит в среднем около 650 рублей, которые во многих ситуациях можно попробовать сэкономить. И заодно уменьшить число сотрудников, работающих на выезде, так как эти кадры в отрасли сегодня в дефиците.

Существует мнение, что для техподдержки телеком-операторов и провайдеров Интернета вполне достаточно иметь в арсенале ПО TeamViewer. Да, это самое популярное в мире решение для удаленной поддержки, — но что делать, если у клиента полностью не работает Интернет, проблемы с показом телепрограмм или приложений на Смарт-ТВ?

Вот тут начинаются расспросы — «А что у вас за роутер, какие индикаторы на нем горят, что вы видите на экране ТВ и т.д. и т.п.». Иначе говоря, оператор техподдержки пытается понять ситуацию на стороне клиента и это занимает достаточно долгое время, причем часто безрезультатно. Клиенты — люди с разным пользовательским опытом, и далеко не все вообще понимают, о чем их спрашивает техподдержка.

Иными словами, поддержка телеком-операторов и провайдеров цифровых сервисов остро нуждается в инструменте, который бы позволил увидеть ситуацию глазами клиента. Такова предыстория проблемы, для решения которой мы взялись за разработку сервиса видеоподдержки «Смарт Видео Агент».

Лирическое отступление про «почему бы не взять готовый сервис». Наш анализ рынка показал, что можно было рассмотреть с десяток подходящих, на первый взгляд, приложений. В основном это приложения в нише так называемых «умных очков». Т.е. когда, к примеру, сервис-инженер, работающий на удаленном объекте, консультируется через такое приложение с шеф-механиком (или иным экспертом) в головном офисе.

Однако, у приложений-кандидатов было два недостатка: они не были рассчитаны на применение совместно с довольно специфичным ПО колл-центров, и это были зарубежные разработки с необходимостью оплаты базовых лицензий и дополнительной локализации/кастомизации в валюте.

Смарт Видео Агент – как выбирали технологии

При постановке задачи, помимо набора функциональных требований, было несколько важных моментов:

  1. Во-первых, надо было сделать систему Enterprise Friendly — чтобы она могла интегрироваться в практически любой ИТ-ландшафт предприятия, а также позволять замену части своих модулей программными компонентами, имеющимися на предприятии.

  2. Во-вторых, надо было сделать систему доступной для клиентов, не используя мобильное приложение, т.е. она должна работать в браузере.

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

Сначала по второму пункту — для передачи видео и чата было решено использовать технологию WebRTC. Ее поддерживают браузеры практически на всех смартфонах. Удобно, что никаких дополнительных приложений устанавливать на стороне клиента не надо, технология обеспечивает видеосвязь «точка-точка», используя только браузер.

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

Технология отлично подходит для разработки приложений для видеоконференций на основе браузера. При этом, WebRTC можно использовать не только для видеочатов: технология позволяет передавать данные любого формата и текстовые сообщения в специально предназначенном для этого канале данных.

WebRTC — технология передачи данных реального времени. Для достижения максимальной стабильности используются кодеки с профилями, оптимизированными для проведения видеоконференций в реальном времени. Если задержки в канале превышают доли секунды, видео автоматически сжимается, чтобы не допустить зависания изображения.

Команде разработки предстояло написать интерфейсы клиента, агента, админку. Далее реализовать идентификацию и авторизацию, чат, статистику, запись, функции дополненной реальности и оставить возможности для подключения системы компьютерного зрения. Учитывая предполагаемый объем разработки и желаемые сроки, команда решила взять готовый медиа-сервер, реализующий работу непосредственно с WebRTC. Благо на рынке сейчас много open-source решений.

Про наш отрицательный опыт с медиа-сервером Kurento

В первый раз наш взгляд упал на довольно популярное решение под названием Kurento. Kurento — это низкоуровневый WebRTC сервер с хорошим API, MCU, транскодингом, записью, широкими возможностями по управлению медиа-потоками, возможностью подключения плагинов, и даже с готовыми примерами реализации с использованием компьютерного зрения.

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

По спринтам двигались довольно быстро — еще через 3 месяца была готова статистика, функциональный чат, запись видео, аудио и текста, появилась возможность работы с скриншотами.

На уровне 6 месяцев с момента начала разработки появилась существенная проблема. Иногда под нагрузкой наш Kurento падал, унося с собой docker. В 9 случаях из 10 после перезагрузки он поднимался, но иногда поднять его можно было только рестартом сервера. При этом, в логах полная тишина. То есть он просто переставал работать безо всяких видимых причин.

В этот момент мы и выяснили, что у испанцев, которые разрабатывают данный сервер, нет Community, с которым можно обсудить эту нашу боль. Интернет тем временем пестрит подобными отзывами о низкой стабильности решения и полном отсутствии каких-либо действий со стороны разработчиков.

Все наши попытки самостоятельно разобраться, что же тут не так с Kurento, приводили нас к тому, что надо садиться за непростой анализ чужого кода с непонятными перспективами поиска источника нестабильности. Увы, такой роскоши, как делать работу за вендора, мы себе позволить не могли.

Поэтому было принято решение поменять медиа-сервер. Во второй раз мы выбирали сервер уже с учетом опыта с Kurento — кроме функциональных возможностей, пристально изучали, насколько проект живой, как быстро закрываются найденные баги, что клиенты пишут в отзывах.

Janus, который нас выручил

В качестве нового медиа-сервера взяли другой популярный и активно развивающийся проект — Janus. Это сервер WebRTC, позволяющий почти все тоже самое, что и Kurento. К плюсам Janus можно отнести высокую стабильность (по отзывам клиентов и нашему опыту), более развитый API, множество готовых плагинов.

Сложность с Janus была в том, что часть работы надо было начинать заново. У этого медиа-сервера другие объекты и их состояния, иначе реализована работа с клиентами, естественно, у него другой API и, в целом, отличий с Kurento оказалось больше, чем сходства.

Повторить MVP на Janus с устранением ранее выявленных недочетов в функциональности и дизайне нам удалось еще только через 6 месяцев. Прошло плюс 3 месяца — и мы догнали по функциональности версию, работающую на Kurento.

Потом оказалось, что надо быть аккуратнее с выбором плагинов. Один из плагинов Janus внес нам ограничения на использование систем компьютерного зрения и нам опять пришлось переписывать часть Front и Back модулей и менять модель состояний клиентов.

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

Сегодня архитектура решения Видео Смарт Агент выглядит так:

Архитектура решения Видео Смарт Агент
Архитектура решения Видео Смарт Агент

Несколько слов о том, как реализована безопасность и конфиденциальность клиента:

  • Оператор не видит экран клиента, только изображение с камеры телефона. Причем доступ к камере возможен только в момент сеанса, после завершения сеанса доступа к камере смартфона нет.

  • Оператор не может самостоятельно подключиться к смартфону клиента, только если это соединение инициирует клиент по ссылке на сеанс видеоподдержки. При этом, ссылка на сеанс связи имеет уникальный одноразовый адрес, повторно по ней соединиться нельзя.

  • DTLS и SRTP обеспечивают шифрование пакетов и гарантируют защиту от прослушивания и вмешательства третьей стороны.

Смотрим примеры как видеоподдержка работает у клиента

Для инициации сеанса связи, после ввода номера телефона клиента и заполнения полей тикета (тема заявки и т.п.), оператор нажимает кнопку «Начать разговор» и клиенту приходит SMS со ссылкой, запускающей сеанс связи с оператором. Кроме SMS, ссылку можно отправить в виде сообщения в Telegram, Viber, WhatsApp или по email. При клике по ссылке, клиенту предлагается разрешить доступ к камере, микрофону и своей геопозиции.

Получив доступ к камере и микрофону на смартфоне клиента, оператор видит то, что ему показывает клиент через камеру смартфона. У клиента на экране выводится изображение собственной камеры (по умолчанию, основной камеры, но клиент может переключить изображение и на фронтальную камеру).

Экран запуска сервиса на стороне оператора техподдержки
Экран запуска сервиса на стороне оператора техподдержки

Получив доступ к камере и микрофону на смартфоне клиента, оператор видит то, что ему показывает клиент через камеру смартфона. У клиента на экране выводится изображение собственной камеры (по умолчанию, основной камеры, но клиент может переключить изображение и на фронтальную камеру).

Оператор действует по внутрикорпоративной инструкции по выявлению и устранению неисправностей, или настройке оборудования. Например, в соответствии с ситуацией предлагает навести камеру на роутер, на разъемы кабелей, индикатор блока питания ТВ-приставки, на экран Смарт-ТВ и т.п.

Пример, как техподдержка подсказывает клиенту проверить нужный индикатор на роутере
Пример, как техподдержка подсказывает клиенту проверить нужный индикатор на роутере

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

В процессе работы по тикету, пользуясь двухсторонней голосовой связью, оператор предлагает клиенту выполнить ряд действий по устранению неисправности или настройке оборудования. Чтобы клиенту было понятнее, оператор может задействовать онлайн-указку, с помощью которой показывает клиенту на экране смартфона, какие действия надо совершить. Например, просит клиента навести камеру на клавиатуру и показывает, какие клавиши на клавиатуре ПК (пульте Смарт-ТВ и т.п.) надо нажать и в какой последовательности.

При необходимости, оператор может сделать снимок оборудования (в том числе с увеличением) и показать это фото клиенту с отмеченной стрелкой кнопкой или иным элементом управления. Оператор также может попросить клиента переключить камеру на фронтальную и сделать фото клиента для сохранения в аккаунте (с согласия клиента).

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

Админ панель сервиса – что там

В сервисе Смарт Видео Агент имеется панель администратора, где можно предоставлять/запрещать сотрудникам техподдержки доступ к сервису, управлять настройками, получать различную статистику использования сервиса, выполнять брендирование экрана у клиента и осуществлять ряд других полезных действий.

А это вид на тот же клиентский роутер уже на стороне оператора
А это вид на тот же клиентский роутер уже на стороне оператора
Оператор может сделать снимок оборудования и отправить этот снимок клиенту
Оператор может сделать снимок оборудования и отправить этот снимок клиенту
Пример записи о сеансе связи с клиентом в админ панели
Пример записи о сеансе связи с клиентом в админ панели

Сервис видеоподдержки можно развернуть как в облаке, так и установить On-premises в ИТ-системе организации (телеком-оператора, провайдера Интернета и ТВ, банка, финансового или страхового сервиса, ремонтной службы бытовой техники и т.д.).

Настройка Панели администратора - как и клиентская часть, она может быть брендирована
Настройка Панели администратора - как и клиентская часть, она может быть брендирована

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

Что показало использование сервиса на реальных задачах

Автор собрал для этой статьи небольшую статистику об использовании сервиса и его эффективности. Эти результаты, конечно, отражают конкретный кейс, но будут интересны сообществу Хабра для общего понимания картины.

О сокращении времени на коммуникацию с клиентом при использовании видеоподдержки:

Немного парадоксальной оказалась ситуация, что агент видеоподдержки не помог заметно снизить время звонка. У сотрудников, которые активно его используют, наблюдается даже рост AHT (Average Handle Time) в 15-20%, но при этом они показывают динамику по снижению количества заведенных сервисных заявок на 10-15%.

Оценка снижения числа выездов на объект к клиенту:

У операторов техподдержки, которые активно используют Смарт Видео Агент как инструмент удаленной диагностики, в т.ч. в сочетании с TeamViewer, количество сервисных заявок на выезд снизилось в среднем с 34% до 24%, и выиграть 10% для любого оператора очень значительно.

О числе заявок, закрываемых с первого раза при использовании видеоподдержки:

FCR клиента (First Call Resolution) достиг высокого уровня в районе 94,4%. Использование инструментов удаленной диагностики (Смарт Видео Агент + TeamViewer) положительно сказывается на оценках удовлетворенности клиентов, согласно нашим опросам.

У использующих видео-инструментарий сотрудников оценка удовлетворенности клиентов достигла уровня в 4,95 по 5-бальной шкале. А удовлетворенность клиентов ведет к тому, что они продолжают пользоваться услугами компании, при этом рекомендуя своим друзьям и знакомым.

Заключение

Смарт Видео Агент оказался довольно эффективным сервисом для сотрудников техподдержки. Кроме телеком-операторов и провайдеров Интернета, сервис может быть полезен при удаленной настройке оборудования во всех иных сферах, где используются современная бытовая или промышленная техника:

  • Провайдеры спутникового ТВ,

  • Службы ремонта и поддержки технологий «Умного дома», сложной бытовая техники, в т.ч. на предприятиях в секторе В2В,

  • Страховые компании (съемка состояния объекта перед заключением договора без выезда агента, фиксация ущерба в удаленном режиме).

Из других преимуществ — применение WebRTC и шифрования гарантирует конфиденциальность личной жизни и персональных данных клиента после завершения сеанса связи. В эксплуатирующей организации бэкенд Смарт Видео Агента размещается внутри контура безопасности компании.

В «дорожной карте» сервиса планируется выпуск агента видеоподдержки в виде мобильного приложения, создание чат-бота с компьютерным зрением и элементами ИИ и дополненной реальности для автоматизации рутинных операций техподдержки без участия оператора, выпуск десктопной версии с функциональными возможностями показа экрана и полноценных видеоконференций.

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

Комментарии (2)


  1. vlasenkofedor
    16.02.2022 08:57

    Mediasoup, чего стороной обошли?


    1. avBaga Автор
      16.02.2022 18:41

      Стек не наш. У него Rust и Node. У нас Scala /Java.