Євген
Євген
CBDO
29.11.2022

Створення SaaS-сервісу IP-телефонії з нуля: досвід WEZOM

Євген
Євген
CBDO
29.11.2022
29.11.2022
4.0
2114
12 мін
0

До WEZOM звернувся один із наших старих клієнтів, великий хостинг-провайдер. Компанія мала дуже амбітну і перспективну ідею - запустити власний хмарний VOIP-сервіс, який перевершив би всю доступну на ринку онлайн-телефонію. Ми взялися за проект у новій для нас ніші і виклалися на 100%, аби зробити дійсно сильний продукт.

Суть проекту

Це не перша наша робота з командою клієнта, раніше ми допомагали йому створювати успішні продукти для хост-провайдинга. Тож коли у клієнта виникла ідея щодо запуску нового напряму бізнесу, він без роздумів звернувся до нас.

У чому полягала ця ідея? Клієнт бачив, що ринок IP-телефонії стагнує. Його ділять між собою великі провайдери, які працюють на застарілих технологіях та пропонують слабкий сервіс: низьку якість зв'язку, жорсткі тарифи, складну кастомізацію послуг, слабку техпідтримку.

Приклад з життя: якщо клієнт великого провайдера стикається з технічними проблемами, то змушений дзвонити на підтримку, де йому дають поради з бородатих анекдотів про системних адміністраторів: "перезавантажте комп'ютер", "не використовуйте ваш вай-фай” тощо. 

Крім жартів, у B2B-сегменті давно з'явився запит на якісну та зручну IP-телефонію, і компанія клієнта мала усе, щоб вийти на цей ринок з новими рішеннями: обладнання, технології, команду. Вони хотіли створити платформу для надання послуг за моделлю SaaS – за щомісячну плату. Клієнти такого сервісу могли б користуватися гнучкими тарифними планами та детально налаштовувати телефонію без звернення в техпідтримку. Але для цього потрібно було збудувати велику VOIP-інфраструктуру.

Що потрібно було розробити?

Клієнт звернувся до нас без повноцінного ТЗ, але мав технічно підковану команду та чітке бачення фінального продукту. На етапі збору вимог та консультацій ми детально опрацювали архітектуру проекту та оформили її у вигляді блок-схем.

Ціль розробки команда WEZOM визначила так: створити VOIP-платформу з мікросервісною архітектурою, що включатиме кілька продуктів для надання послуг за моделлю SaaS.

Ця мета вимагала вирішення низки завдань:

  • Побудова VoIP-інфраструктури для сервісу
  • Створення веб-платформи для презентації та продажу послуг
  • Створення особистого кабінету з великими налаштуваннями VOIP
  • Створення клієнтського сервісу безпосередньо для здійснення дзвінків

Коли концепцію продукту узгодили, деталізували та затвердили, можна було братися за опрацювання ТЗ та формування стеку технологій.

Вибір технологій та формування команди

Справедливо буде уточнити важливу деталь - на момент звернення клієнта ми не мали достатньої експертизи в галузі VOIP, і ми чесно сказали про це клієнту. Наш devops Євген чудово розбирався в тонкощах роботи IP-телефонії і концептуально продумав архітектуру всього проекту, яку ми потім і втілили в життя. Але цього було замало.

Для повноцінної роботи над продуктом потрібно було знайти VoIP-інженерів, тож ми зі схвалення клієнта взяли до штату трьох фахівців, які займалися розвитком інфраструктури – налаштуванням серверів, розгортанням цифрових АТС, термінацією транків.

Так ми фактично сформували нову команду спеціально під проект. Окрім нових інженерів, до неї увійшли наші розробники - дизайнери, фахівці з фронтенду та бекенду, тестувальники, менеджери.

Ключова концепція розробки – побудова сервісу за принципом мікросервісної архітектури. Кожна окрема функція у системі, кожен її модуль являє собою так званий мікросервіс - малу незалежну програму, яка взаємодіє з іншими мікросервісами в розподіленій мережі за розумними алгоритмами. Це дає системі гнучкість, надійність та масштабованість.

Основним фреймворком розробки команда обрала ReactJS. Він дозволив побудувати швидку і надійну систему, яку можно модифікувати, підтримувати та розвивати з мінімальними зусиллями.

Сфера VOIP спирається на низку загальноприйнятих правил та стандартів, тому “винаходити велосипед” для неї небажано. У системі за допомогою API застосовуються готові рішення та послуги для організації онлайн-телефонії (наприклад, системи для білінгу). Це не лише дозволило заощадити на розробці, а й забезпечило їй найкращу сумісність із нормами галузі.

Як проходила розробка

Команда сформувала пул завдань і рухалася ними через великі місячні спринти.

Ми діяли за принципами SCRUM та практикували ітеративний підхід – спочатку сфокусувалися на розробці ключового функціоналу, а потім послідовно вдосконалювали його на основі фідбеку від клієнта.

Паралельно з розробкою клієнт аналізував свою бізнес-логіку та додавав до пулу завдань все більше нових функцій та фіч. Під часрозробки проект суттєво трансформувався і віддалився від початкової концепції. Але команда була готова до цього та впроваджувала функціонал гнучко та послідовно, у кілька ітерацій.

Ключова частина роботи над проектом зайняла близько 10 місяців, після неї команда зосередилася на доопрацюваннях та подальшому розвитку платформи.

Комунікація, звітність, пошук рішень

Хоч команда клієнта була добре підкована технічно, її уявлення про розробку були дещо спрощеними. На початку проекту вони були переконані, що створити подібну систему можна дуже легко та швидко, “на колінці”. Але наші фахівці послідовно відстоювали іншу точку зору: мало “накодити” щось, що “просто працюватиме”. Такий проект потребує розвинутої архітектури, яка забезпечить йому надійність та тривалий життєвий цикл.

Ясна річ, така робота забере більше часу. Але якщо на старті не закласти в архітектуру платформи правильні рішення, то через кілька років безконтрольного розвитку вона обросте “милицями” і втратить потенціал для зростання. Підтримувати такий проект практично неможливо, легше створити новий. Це означає, що інвестиції у цю розробку просто зникнуть.

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

В іншому суттєвих протиріч між сторонами не виникало. Клієнт брав активну участь у всіх етапах розробки, з його боку нам допомагала велика команда спеціалістів. Мітинги та зідзвони з ними проводилися як мінімум щотижня, а за потреби і щодня. Власник бізнесу особисто брав участь у презентації підсумків спринтів та давав розробникам весь необхідний фідбек.

Крім того, ми завжди надаємо нашим клієнтам доступ до таск-трекінгу команди розробників. Вони завжди розуміють, на якому етапі робота перебуває просто зараз.

Що ми розробили

З погляду користувача система виглядає дуже просто. Розглянемо її детально:

  • Є веб-платформа – сайт, який презентує сервіс, продає послуги та надає доступ до особистого кабінету.
  • Є особистий кабінет користувача сервісу. У ньому можна поповнити рахунок, вибрати віртуальний номер, скористатися додатковими сервісами та провести тонке налаштування власної телефонії.
  • Є функціонал для VoIP-дзвінків. Фактично це цифровий IP-телефон, який виглядає і працює відповідно. Він має цифрову панель для набору номерів, журнал контактів, список абонентів, функціонал запису дзвінків тощо.

Веб-портал фокусується на презентації послуг для корпоративного VOIP-зв'язку. Одна з головних фішок для продажів  на головній сторінці - динамічна інфографіка зі статистикою і географією сервісу. Користувач може знайти на сайті всю необхідну інформацію про можливості телефонії та в пару кліків вибрати один з кількох тарифних планів, або придбати віртуальний телефонний номер.

Особистий кабінет користувача покликаний максимально спростити процес тонкого налаштування VoIP-телефонії, який у багатьох провайдерів організований дуже складно і вимагає залучення служби підтримки.

Наприклад, у ЛК користувач може налаштувати такі функції:

  • автовідповідач
  • голосове меню
  • переклад/перехоплення/переадресацію дзвінків
  • запис та статистику розмов

Також доступні і додаткові сервіси, такі як інструменти для маршрутизації дзвінків.

Функціоналом VOIP-дзвінків можна скористатися двома способами.

Перший - завантажити один із безлічі сторонніх SIP-клієнтів - програм для онлайн-телефонії (Zoiper, Phonerlite та подібні). Таку програму можна поставити, наприклад, на ПК, і використовувати його як телефон. Єдина складність полягає в тому, що налаштування для зв'язку потрібно буде вносити до утиліти вручну.

Другий спосіб – застосувати вбудований клієнт для дзвінків, який доступний прямо в особистому кабінеті користувача через веб-оболонку. Це дуже зручно, адже для зв'язку знадобиться лише браузер.

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

Унікальні фішки проекту 

Чим продукт значно відрізняється від аналогічних рішень на VOIP-ринку? У чому його кілер-фічі?

  • Цифровий телефон доступний просто з браузера. У конкурентів на сьогодні нічого подібного немає, принаймні з аналогічним функціоналом та рівнем якості.
  • Тонкі налаштування телефонії у власному кабінеті. Скажімо, користувач може без допомоги налаштувати шаблони інтерактивного голосового меню (IVR). Можливості особистого кабінету розраховані на професіоналів – фахівців, які розуміють, чого хочуть досягти від телефонного сервісу.
  • Простота інтеграції. Завдяки хмарній інфраструктурі будь-який користувач може підключити онлайн-телефонію для свого офісу буквально за 15 хвилин.

Система відмінно слідує логіці "від простого до складного". Пересічні користувачі можуть без проблем підключити базові можливості телефонії і скористатися ними негайно. Професіонали можуть тонко налаштувати телефонію для свого офісу в особистому кабінеті без необхідності звертатися в техпідтримку.

Результати розробки

Хоча ми раніше не мали релевантного досвіду в області IP-телефонії, розробка платформи минула без проблем. Проект успішно запущений та повною мірою виправдовує очікування клієнта. У його найближчих планах – розширення географії роботи сервісу, реалізація функцій СМС-розсилки та готових модулів для інтеграції телефонії до популярних CRM-систем.

Робота над проектом продовжується і зараз. Команда планомірно вводить у систему новий функціонал та модулі, розширює можливості особистого кабінету та інтеграції зі сторонніми сервісами.

Нова платформа відрізняється продуманою архітектурою та добре виконана технічно. Це масштабний хмарний сервіс за найвищими стандартами, заради “полірування” якого команда не шкодувала сил та часу. Ми пишаємося цим кейсом, адже нам вдалося не лише зробити якісний продукт, а й здобути досвід у новій для себе індустрії.

Як вам стаття?
4.0
Проголосувало: 1
Давайте обговоримо Ваш проєкт
Натискаючи кнопку “Відправити”, ви даєте згоду на обробку особистих даних. Детальніше
Коментарі
(0)
Будьте першими, хто залишить коментар
wezom logo
Залишились питання?
Залиште контактні дані. Наш менеджер зв'яжеться та проконсультує вас.
Підписуйтесь на розсилку Айтижблог
blog subscriber decor image
Бажаєте отримувати цікаві статті?
Натискаючи кнопку “Відправити”, ви даєте згоду на обробку особистих даних. Детальніше
Слідкуйте за нами у соціальних мережах
Цей сайт використовує cookie-файли для більш комфортної роботи користувача. Продовжуючи переглядати сайт, Ви погоджуєтеся на використання cookie.