Slide 1

Slide 1 text

Дешёвый и масштабируемый кол-центр на FreeSWITCH. Правда или вымысел? Александр Леушкин Software Engineering Conference Russia 2018 October 12-13 Moscow

Slide 2

Slide 2 text

2 Опыт • Разработка сложной системы ПО Call-Center-а • Построение архитектуры масштабируемой системы • Решение проблем, встающих на пути • Подстраиваемся под нужды заказчика

Slide 3

Slide 3 text

3 Колл-центры ПО Колл-Центра Исходящий обзвон Входящий обзвон (IVR, Customer Services) Занятость агентов – отсутствие простоя

Slide 4

Slide 4 text

4 Новое ПО колл-центра Зачем…

Slide 5

Slide 5 text

5 Новое ПО колл-центра  Open Source • Только базовый функционал • Чужой код • Неизвестные баги • Лицензионные ограничения

Slide 6

Slide 6 text

6 Новое ПО колл-центра  Коммерческие решения • Богатый функционал, но не всё, что нужно • Стоит денег • Дорогая доработка • Долго ждать результата • Геополитические риски

Slide 7

Slide 7 text

7 Чего хотелось бы от идеальной системы • Много тысяч автоматических исходящих звонков • Предиктивный дайлинг • Несколько тысяч зарегистрированных агентов • Голосовое меню для входящих звонков • Не соединять с агентом автоответы • Запись и хранение звонков 5+ лет • Отчетность • Сжатые сроки • Только OpenSource • Качественно, но быстро (антонимы?)

Slide 8

Slide 8 text

8 Проблемы • Какие технологии и ПО выбрать? • Как обеспечить взаимодействие компонентов системы? • Как масштабировать решение? • Какое достичь отказоустойчивости? • Как обеспечить хранение звонков за много лет?

Slide 9

Slide 9 text

9 Open Source

Slide 10

Slide 10 text

10 С чего начать. Шаг 1 Core Dialer Генерация звонков Нотификации Управление SIP Gateway Звонки

Slide 11

Slide 11 text

11 Задуматься • Как управлять FreeSWITCH? • Интерфейс агентов?

Slide 12

Slide 12 text

12 Шаг 2. Ближе к делу Core (FSM) Dialer Generate Calls Notifications Management SIP Gateway Calls FS Proxy API Web Clients SIP + WebRTC

Slide 13

Slide 13 text

13 Задуматься Что если ресурсы SIP-шлюза ограничены? Что если один FreeSWITCH не справляется с нагрузкой?

Slide 14

Slide 14 text

14 Шаг 3. Масштабирование шлюзов SIP Gateway SIP SIP SIP Proxy (Kamailio) Web Clients SIP + WebRTC SIP Gateway SIP Gateway FS Proxy FS Proxy Core (FSM) Dialer FS Proxy Message Broker SIP SIP

Slide 15

Slide 15 text

15 Задуматься Что если один из FreeSwitch-ей отключился или перегружен?

Slide 16

Slide 16 text

16 Шаг 3. Масштабирование шлюзов SIP Gateway Web Clients SIP Gateway SIP Gateway FS Proxy FS Proxy Core (FSM) Dialer FS Proxy Message Broker PBX/Load How much channels? PBX Load PBX1 100 PBX2 1000 PBX3 500 SIP Proxy (Kamailio)

Slide 17

Slide 17 text

17 Шаг 3. Масштабирование шлюзов SIP Gateway SIP Proxy (Kamailio) Web Clients SIP Gateway SIP Gateway FS Proxy FS Proxy Core (FSM) Dialer FS Proxy Message Broker PBX/Load/TTL API PING PBX TS PBX1 123456 PBX2 234556 PBX3 525232

Slide 18

Slide 18 text

18 Задуматься Куда регистрировать клиентов?

Slide 19

Slide 19 text

19 Перерегистрация. Шаг 6 FS Proxy SIP Proxy Agent Session Call

Slide 20

Slide 20 text

20 Перерегистрация. Шаг 7 FS Proxy SIP Proxy Audio Agent SIP/Audio SIP Proxy Registrar (Kamailio) SIP SIP API

Slide 21

Slide 21 text

21 Задуматься Как не присоединять агента в случае, если соединились с автоответом оператора?

Slide 22

Slide 22 text

22 Стратегии перезвона и распознавание звука • Не соединять агентов с «гудками» • Не соединять агентов с «сообщениями оператора» • Понять причину отказа и принять решение по поводу перезвона • Любой язык/диалект

Slide 23

Slide 23 text

23 Стратегии перезвона и распознавание звука • Speech Recognition • Open source-а мало • Качество распознавания оставляет желать лучшего • Для разных языков и диалектов найти почти нереально • Нужно интегрировать с PBX (FreeSWITCH) • Платные - дорогие и всё равно нет необходимого качества и ограничения по языкам

Slide 24

Slide 24 text

24 Стратегии перезвона и распознавание звука • Audio Fingerprint • Есть Open Source решения (например, chromaprint) • Не привязано к языку • Но нужно собирать образцы • Нужно интегрировать с PBX

Slide 25

Slide 25 text

25 Стратегии перезвона и распознавание звука Причина Хэш Hangup Reason Абонент недоступен (оператор 1) 0388ffac89d3… NOT_AVAIL Не обслуживается 235238a9e9ef… NOT_IN_SERVICE Абонент недоступен (оператор 2) 219dad927e9b… NOT_AVAIL … … … Fingerprint Module Dialer Hang up Reason Audio

Slide 26

Slide 26 text

26 За кадром • Масштабирование FSM и Dialer-а • Статистика • Отчетность • Формула предиктивного дайлинга • Поддержка системы

Slide 27

Slide 27 text

27 Your photo Контакты Александр Леушкин Email: [email protected] MERA. Software Services Company Some useful links: • Acoustic Fingerprint: https://github.com/acoustid/chromaprint https://habr.com/company/vkontakte/blog/330988/ • FreeSWITCH HA: https://www.youtube.com/watch?v=Q3Y6mLsq6VU • Kamailio as Registrar and SIP Proxy (with asterisk): https://www.slideshare.net/fredposner/using-asterisk-and-kamailio- for-reliable-scalable-and-secure-communication-solutions