Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)

Введение в облачную телефонную систему 2600hz KAZOO. Презентация с конференции KAZOOMEETUP MOSCOW 2015

  • Login to see the comments

  • Be the first to like this

KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)

  1. 1. KAZOO 101KAZOO 101 Михаил Родионов (marod@siplabs.ru)
  2. 2. ПРОЕКТ
  3. 3. ИСТОРИЯ Компания 2600hz: ● Основана в 2010м ● Часть сотрудников пришли из проекта blue.box (PHP+FreeSWITCH) ● Проект Whistle (свисток) ● Whistle 2.0 → KAZOO ● KAZOO v3 (2013г) ● KAZOO v4 (2016г)
  4. 4. ОСОБЕННОСТИ ● Проект основан “собственными силами” (без стартапных денег от VC и т.п. ● Большая ИДЕЯ устроить революцию в телеком-индустрии ● Open Source, лицензия MPL ● Облачность, масштабируемость и отказоустойчивость – “в ДНК” ● API и внешние интерфейсы
  5. 5. АКТИВНОСТЬ
  6. 6. ПРИЧЁМ ТУТ МЫ?
  7. 7. ИСПОЛЬЗУЕМОЕ ПО 3RD PARTY
  8. 8. Erlang Erlang используется в многих компонентах KAZOO ● RabbitMQ - Erlang ● BigCouch – Erlang ● KAZOO eCallMgr - Erlang ● KAZOO Applications - Erlang ● Kamailio – C ● Freeswitch – C/C++ ● HAProxy – C
  9. 9. МОНЕТИЗАЦИЯ Компания 2600hz – оператор связи ● Предоставляет whitelabeled hosted- платформу и приложения (SaaS) ● Предоставляет услуги поддержки KAZOO ● Предоставляет услуги доработки KAZOO ● Разрабатывает коммерческие расширения ● Имеет собственную MVNO
  10. 10. ПЛАТФОРМА
  11. 11. ФУНКЦИОНАЛЬНАЯ Функциональная платформа Виртуальных АТС ● Произвольная нумерация ● Звонки, переводы звонков ● Удержание, парковка ● Запись разговоров ● Конференции ● Голосовая почта, факсы ● Группы обзвона, переадресации ● Presence, BLF
  12. 12. ФУНКЦИОНАЛЬНАЯ ● TTS/ASR ● Медиа-ресурсы и Say ● HTTP-запросы Pivot ● Web-хуки ● Управление CallerID ● Подключениие собственных ITSP ● Служебные коды (ДВО) ● Очереди вызовов* ● ….
  13. 13. БЕЗОПАСНАЯ ● Полная изоляция клиентов друг от друга ● Одно устройство – один SIP-аккаунт ● Ограничение количества транков ● Ограничения по IP (IP ACL) ● Ограничения packet rate ● API-токены с ограниченным сроком жизни ● Ограничение API request rate ● API Token restrictions ● TLS/SRTP ● WSS/DTLS
  14. 14. Архитектура системы KAZOO SBC MediaAMQP eCallMgr Приложения (Whapps) База данных Erlang AMQP HTTP SIP
  15. 15. МАСШТАБИРУЕМАЯ ● Кластеры горизонтально масштабируются добавлением узлов ● Кластеры соединяются между собой в отказоустойчивые гео-распределённые структуры
  16. 16. Архитектура системы KAZOO SBC MediaAMQP eCallMgr Приложения (Whapps) База данных Erlang AMQP HTTP SIP
  17. 17. ОТКАЗОУСТОЙЧИВАЯ ● Отсутствие единой точки отказа ● Возможность резервирования кластеров ● Все компоненты дублируются
  18. 18. Архитектура системы KAZOO SBC Media AMQP eCallMgr Приложения (Whapps) База данных SBC AMQP eCallMgr Media Приложения (Whapps) Приложения (Whapps) База данныхБаза данныхБаза данных
  19. 19. Архитектура системы KAZOO SBC Media AMQP eCallMgr Приложения (Whapps) База данных SBC AMQP eCallMgr Media Приложения (Whapps) Приложения (Whapps) База данныхБаза данныхБаза данных SBC Media AMQP eCallMgr Приложения (Whapps) База данных SBC AMQP eCallMgr Media Приложения (Whapps) Приложения (Whapps) База данныхБаза данныхБаза данных ЦОД 1 ЦОД 2 ● Многозоновая конфигурация – отказоустойчивость и распределение нагрузки между многими кластерами ● Естественный способ масштабирования платформы
  20. 20. ОБЛАЧНАЯ ● Взаимодействие компонент по открытым протоколам (HTTP, AMQP, Erlang) ● Работа в VM (в т.ч. в публичных облаках) ● Отказоустойчивость ● Масштабируемость по мере роста нагрузки
  21. 21. ОСНОВНЫЕ ПОНЯТИЯ
  22. 22. СУЩНОСТИ Account Account Account User User User Device Device Device Conference
  23. 23. СУЩНОСТИ Основные сущности внутри аккаунтов: ● Users ● Devices ● Callflows ● VMBoxes ● FAXBoxes ● Conferences ● Lists ● Media
  24. 24. ОРГАНИЗАЦИИ (ACCOUNTS) ● Name ● Realm (FQDN) ● CALLER-ID ● Outbound flags ● Хранятся в отдельных БД ● Являются контейнерами
  25. 25. ПОЛЬЗОВАТЕЛИ (USERS) ● Физлица ● Имя, Фамилия, Email ● CALLER-ID ● Аватар ● Произнесённое имя ● Перенаправление ● Username/password
  26. 26. УСТРОЙСТВА (DEVICES) ● Принадлежат пользователям ● SIP-устройства ● Мобильные ● Устройства перенаправления ● SIP credentials ● CALLER-ID ● PRESENCE-ID ● НЕ ИСПОЛЬЗУЮТСЯ БОЛЕЕ ЧЕМ НА ОДНОМ ФИЗИЧЕСКОМ УСТРОЙСТВЕ
  27. 27. СЦЕНАРИИ (CALLFLOWS) ● Имеют НОМЕРА ● Цепочка вызовов “модулей”: ● Вызов пользователя/устройства ● Воспроизведение ● Меню ● Приём факса ● …. ● ВЕТВЛЕНИЕ
  28. 28. ГОЛОСОВАЯ ПОЧТА ● Собственные приветствия ● Отправка на Email ● Голосовое меню ● Новые/Просмотренные и т.п. ● Защита PIN-кодом ● Соответствие номеру Extension ● Оповещение звонком
  29. 29. ФАКСЫ ● Отправка на почту (fax2email) ● Отправка ИЗ почты (email2fax) ● Интеграция с Google Cloud Printer ● PDF/TIFF/Картинки/Офисные форматы (unoconv) ● Поддержка T.38
  30. 30. КОНФЕРЕНЦИИ ● Аудиоконференции ● Более чем на одном сервере ● Видео MCU (FreeSWITCH 1.6/KAZOO 4) ● Различные профили (SD, HD, ограничения) ● MeetMe, серверы конференций ● Защита PIN-кодами ● API
  31. 31. СПИСКИ (LISTS) ● Списки контактов ● Поиск по списку ● Сравнение со списком (match) ● Универсальный инструмент
  32. 32. ИДЕНТИФИКАТОРЫ (ID) ● 32 символа (HEX) ● Используются повсеместно ● Уникальны внутри БД
  33. 33. API
  34. 34. API ● REST + JSON ● Простая и понятная структура ● Схемы данных ● Функциональная полнота (через API доступно ВСЁ)
  35. 35. Биллинг
  36. 36. Встроенный биллинг ● Postpay ● Prepay ● Пополнения ● Автоматические пополнения (ограничения) ● Bursts ● Toll free ● Поддержка реселлеров
  37. 37. CDR ● CDR содержат очень много информации о каждом плече ● Доступны через API ● Доступны на шине AMQP
  38. 38. СЕРВИСНЫЕ ПЛАНЫ ● Цены транков ● Цены “мест” ● Подсчёт количеств ● Ограничения количеств
  39. 39. Ratedecks ● Цены минут направлений ● (not merged) Множественные тарифные сетки ● Импорт CSV
  40. 40. GUI/UI
  41. 41. ВАЖНО KAZOO – ЭТО НЕ UI
  42. 42. “OLD” KAZOO UI ● Drag and Drop ● JS + JQuery ● УМРЁТ ВЕСНОЙ
  43. 43. “OLD” KAZOO UI
  44. 44. MONSTER UI ● Monster UI framework ● Изначально многоязычный ● Приложения ● Магазин приложений ● Современный вид ● JavaScript
  45. 45. MONSTER UI SmartPBX
  46. 46. Будущее
  47. 47. KAZOO V4 ● Erlang 18 ● FreeSWITCH 1.6 ● CouchDB 2 ● Federations ● Q4-2015 – Q1-2016 ● Движение в сторону выноса логики в Kamailio
  48. 48. БУДУЩЕЕ УЖЕ НАСТУПИЛО
  49. 49. Наши проекты
  50. 50. Списки (Lists)  Универсальные списки (API)  Поддержка VCARD  Поддержка аватаров  Модули Callflow
  51. 51. Охрана периметра - Frontier  IP ACLs на уровне account и device  Ограничения packet rate  Скоро: временные блокировки  Защита SIP, API и не только
  52. 52. RADIUS/AAA  Нативная реализация KAZOO  Полноценный клиент AAA  authn, authz, accounting, session times, interim updates, disconnect packets  Произвольные словари RADIUS  Возможность добавить DIAMETER  Дружественен к реселлерам  Модуль произвольных запросов
  53. 53. FMC (Узнавание по CallerID)  “Опознание” своих устройств по CallerID  Ассоциация с account/device  Звонки с мобильных на внутренние  Улучшения DTMF  Может использоваться как основа при построении MVNO
  54. 54. Мелочи  CAMP-ON  Eavesdrop  Приоритеты ACD  Стратегия случайного обзвона с весами для ring-group  Поддержка unoconv (форматы Office) и изображений для FAX  Временные приветствия voicemail  Выбор операторов (outbound_flags) для accounts  Поддержка Voicefabric TTS  Monster-UI Russian i18n files
  55. 55. Ещё мелочи...  Call Waiting на стороне сервера  Метод PATCH для большинства модулей API  Модификации записи разговоров  Приветствие в конференциях записанным именем  Системные коллекции dial-plans  Множественные фиксы DTMF-команд  Исправления ACD  И т.п.
  56. 56. Сейчас в работе
  57. 57. Проект Ananke  Оригинирование вызовов по расписанию  Пример – звонки ОТ voicemail  Управление попытками  Планировщик, учитывающий часовые пояса *Ananke – Богииня судьбы (в греческой мифологии)
  58. 58. Проект Stromboli  Provisioner  Политики настроек  Многолинейные устройства  Безопасность!!!  Частично open source (для Yealink)  Интеграция телефонных “фич”
  59. 59. Проект Bluemoon  Поддержка LUA внутри callflows и API  Работа с данными звонка в реальном времени  Расширение API скриптами
  60. 60. Проект Wormhole  Связь между accounts  Подключение клиентских АТС в состав облачной нумерации  Тонкая настройка манипуляций с CallerID  Безопасность в приоритетах
  61. 61. СПАСИБО ЗА ВНИМАНИЕ! Михаил Родионов, marod@siplabs.ru

×