Как было все прекрасно до часа X


Мы — небольшая команда разработчиков, которая много лет назад занималась разработкой и внедрением программ 1С. В далеком 2011 году мы хорошо знали программные продукты 1С, и не имели опыта в разработке собственных решений. На тот момент компании было 5 лет и заниматься классическим бизнесом 1С немного надоело, нужен был глоток свежего воздуха. И мы погрузились в мир IP телефонии, а конкретно в дебри Asterisk. Это офигенная платформа, со своим языком для написания диалпланов. Где-то мы это уже видели, платформа + конфигурации, все как в 1С :)

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

Мы установили себе этого монстра, и сделали свой первый успешный продукт, модуль интеграции программ 1С и Asterisk. Это была смесь из C++ кода в виде DLL и 1С кода для встраивания в 1С.

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



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

Нам очень была нужна контролируемая нами сборка PBX на Asterisk, чтобы мы могли покрыть все тестами и гарантировать работоспособность наших продуктов, хотя бы с чем-нибудь конкретным.

В какой-то момент мы нашли проект Askozia, от немецкой компании Plantel. Это была бесплатная АТС с небольшим, но достаточным функционалом для большинства наших клиентов. Мы наконец смогли собрать готовое коробочное решение, которое полностью работало после установки именно так, как мы этого хотели.



Со временем Askozia обрастала новыми функциями: редактор маршрутов в виде визуальных блок схем, поддержка автоматической настройки телефонов, защищенных звонков, разных аппаратных плат и шлюзов. Это нам немного мешало… Продукт стал платным, а поддержка некоторых зарубежных провайдеров и зарубежных стандартов аналогов-цифровых каналов связи для нас вообще была лишней. 

Но, несмотря на все это, продукт зашел на рынок и хорошо продавался, мы выкупили домен Askozia.ru, сделали сайт, занимались маркетингом и дистрибуцией.

Час X


В августе 2017 года, я был в отпуске и был обрадован звонком с новостью: «Askozia была куплена компанией 3CX».



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

Но спустя пару недель мы получили еще более веселую новость: «Проект Askozia PBX закрывается, продажи возможны до конца 2017, поддержка до конца 2018, все переходим на 3CX».

В голове летает фраза: «Отлично, но как же мы?» У нас сайт, маркетинг, глубоко интегрированные разработки, налаженная схема работы, партнеры, которых мы обучили настройке Askozia и наших 1С интеграций… Все летело в трубу!

Че делать?


Возвращаться к FreePBX не хотелось, еще не зажили все шишки, которые мы набили. Askozia у нас отобрали и ни продавать, ни развивать ее точно не будут. 3CX — крутая платформа, но она не на Asterisk, и для работы с ней нам надо многое переделывать. Не вариант, ведь у нас сейчас много клиентов на FreePBX и Askozia и даже есть отчаянные ребята с чистым Asterisk, нужно продолжать развивать свои решения.

А давайте сделаем свою Askozia


Это же просто web-интерфейс, который пишет диалпланы. Да, за пару месяцев набросаем прототип, да за полгода сделаем MVP (то, что не стыдно показать людям). Мы же знаем Asterisk как свои 5 пальцев, мы знаем, что Askozia была построена на платформе t2sde (это про маленький встраиваемый Linux).

Азарт был, но катастрофически не хватало времени. Чтобы его хоть немного выиграть, добились от ребят из Plantel возможности закупить текущих версий Askozia впрок, чтобы нам хватило до середины 2018. 

Прошел 1 год


Мы действительно смогли собрать прототип за 3 месяца, а спустя 5 месяцев с момента начала разработки заменили у себя в офисе Askozia от Plantel на свою. Но это были лишь первые 90% проекта :) 

Самый первый релиз мы выпустили в сентябре 2018 (спустя год). Наша Askozia построена на все той же платформе t2sde, в сердце у нее Asterisk, за веб-интерфейс и внутренний API отвечает PHP фреймворк Phalcon, а в качестве дизайна веб-морды мы выбрали набор стилей Semantic-UI.
Внешне получилось симпатично, внутренне-структурировано.



По крайней мере, нам так кажется!

В отличие от разработок на 1С, для нас Askozia-полностью самостоятельный продукт, написанный с 0 и построенный на собственной настроенной операционной системе. Во время разработки мы изучили кучу полезных инструментов: Jira, Bitbucket, Team City, Katalon Studio, SonarQube и всякие рекомендации по структурированию и написанию кода, по его оформлению, автоматической сборке и тестированию.

А давайте кинем вызов FreePBX


Такая мысль у меня возникла во время длинных новогодних праздников. Мне нравится FreePBX за его функциональность, огромное количество опций, за то, что он проверен на сотнях тысяч установках. Он полностью бесплатен. Любой может его скачать, развернуть, и сделать IP телефонию для своей компании. 

Но у него есть и большой минус. Он имеет слишком много опций, его не так просто настроить, если ты делаешь это впервые. С ним сложно сделать интеграции, т.к. он постоянно обновляется, меняется версия Asterisk, которая добавляет новых опций для администратора и сомнительные дополнительные возможности для бизнеса.

Это как микроволновка, в которой есть и гриль и мультиповар, и куча всяких программ, но реально 99% пользователей жмут на одну кнопку. 

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

Зачем нужна Askozia, если есть облачные провайдеры


Это конечно вопрос выбора. Я не люблю вендорлоков, я не люблю, когда у провайдера будет возможность слушать все наши разговоры, даже внутренние. Я не люблю платить абонентскую плату за каждых гигабайт хранения записей разговоров и за каждый дополнительно подключенный чужой номер, за API для интеграции в CRM или за каждого сотрудника.
Облачные провайдеры — это комфортабельные автобусы, которые едут туда, куда нужно большинству, а своя АТС — это личный автомобиль, который едет именно туда, куда нужно вам.  Выбор за вами :) Несмотря на наличие большого числа облачных провайдеров, у Asterisk и FreePBX огромное количество пользователей, значит, у меня есть единомышленники!

На чем зарабатывать, если Askozia бесплатная АТС


Этот вопрос мне задают регулярно особенно коллеги. Некоторые крутят у виска. Вы потратили полтора года жизни на разработку продукта и отдаете его бесплатно? Да все именно так!

Я изучал количество запросов Askozia в поисковой выдаче Google начиная с момента ее появления на рынке, и она очень активно прибавляла ровно до того момента, как ее сделали коммерческим продуктом, после этого интерес начал угасать. Это обидно, т.к. идея и проект мне показались очень интересным. Пусть живет! Посмотрим, что из этого получится спустя годы.
В планах сделать английскую версию, и накрутить хвост FreePBX, по крайней мере, в том месте где для разогревания сосиски достаточно одной кнопки на микроволновке :) А после этого уже подумаем про монетизацию, платные модули и все такое.

Как думаете, полетит?

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


  1. misato
    11.03.2019 16:05

    Коля, а право на название «Аскозия» вам передали вместе со статусом дистрибьютора или были какие-то юридические действия?
    ps: имена с телефонами на скриншоте я бы изменил, а то приватность же ;)


    1. jorikfon Автор
      11.03.2019 16:33

      В России торговая марка у нас. Имена с телефонами вымышленные, специально для скриншота, сделал, но я их еще и замазал :)


  1. zepps
    11.03.2019 17:06
    +1

    Молодцы, ребята!
    Желаю, чтобы все удалось!


    1. jorikfon Автор
      11.03.2019 18:46

      Пустишь на следующий Asterconf выступить и расказать про то как этот продукт развивается? :)


      1. zepps
        11.03.2019 22:09

        Вай, как говорится, нот?


  1. beho1der
    11.03.2019 17:22

    Очень хорошее решение, реально не хватает простых систем с возможностью править конфиги и не поломать веб управления.
    Возможно было бы лучше, если выложили исходники основной системы для получения pull request'тов и возможности создания открытых модулей.
    Из возможных платных модулей:
    1. web панель секретаря
    2. grpc\websocket api событий АТС
    3. модуль резервирования АТС


    1. jorikfon Автор
      11.03.2019 18:01

      До этого надо дорасти. Сейчас у нас 2 задачи, зацементировать базовый функционал, чтобы работало то, что уже заявлено, чтобы это было уднбно и интуитивно понятно.

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


      1. beho1der
        11.03.2019 18:39
        +1

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


        1. jorikfon Автор
          12.03.2019 10:40

          Для AGI у нас есть механизм приложений диалпланов, который вынесен в Web интерфейс.



          1. beho1der
            12.03.2019 11:22

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


  1. ISE73
    11.03.2019 17:56

    ЗЫ не нашел «бесплатной» версии на сайте. Может не так искал ;)
    В письме на скачку приходит «AskoziaPBX — триальная версия телефонной системы»


    1. jorikfon Автор
      11.03.2019 17:57

      Спасибо, это косяк в теме письма. Она не триальная, можете качать и ставить.


  1. zhenyat
    11.03.2019 18:21

    Сразу вопрос — как с каналами на h.323?


    1. jorikfon Автор
      11.03.2019 18:31

      Мы как раз решили отсчь все лишнее. Поддержку старых протоколов не планируем. Для телефонов только SIP, для провайдеров только SIP и IAX. Всем, кому надо что-то сложнее, можно пойти покопаться в настройках FreePBX. Я хочу сделать продукт, который подойдет 85% всех пользователей и будет максимально простым и понятным. Из-за этого постоянно лупим себя по рукам, чтобы не добавить лишнего…


      1. zhenyat
        11.03.2019 18:48

        Жаль :(
        Ну значит останусь на FreeePBX :)


      1. zhenyat
        11.03.2019 18:50

        А может все-таки дадите возможность ограниченно ручками в конфигах и каналах копаться — добавить драйверочек ooh323? ;)


        1. jorikfon Автор
          11.03.2019 18:54

          В конфигах покопаться можно, они доступны через Web интерфейс. Посмотрите на демке, развернутой у нас. demo.askozia.ru/admin-cabinet/custom-files/index

          Есть доступ к SSH, и можно подкинуть туда что угодно, но компилировать надо будет на чем нить с подобным ядром Linux, в самой Askozia ни менеджера пакетов, ни компилятора нет.


  1. Materializator
    11.03.2019 18:21
    +1

    Ещё один хороший зеленоградский продукт!


  1. zeronice
    11.03.2019 20:34

    FreePBX — адский монстр, который почти невозможно интегрировать бесшовно с чем то новым, если на нем уже наросла какая либо кастомизация. Вообще в целом хорош он тем, что базовый функционал офисной АТС реализуется очень быстро, когда нужно развернуть телефонию или заменить погоревший TEM824 или TDA30(100). Когда хочется чего-либо не искоробочного — начинается боль.
    Ваше начинание замены Askozia — поддерживаю, мне понравилась та, старая, Askozia, когда ее щупал лет 5-8 назад


    1. jorikfon Автор
      12.03.2019 10:31

      Будем стараться сделать именно ту старую, которая была 6 лет назад, т.к. я сам ей восхищался :)


  1. arheops
    12.03.2019 04:01

    Freepbx в последних версиях двигается к классам и там все нормально совместимо с версиями до 2.4 включительно.
    Можно узнать, что конкретно вас не устроило в freepbx?

    А 3СХ редиски, да.


    1. jorikfon Автор
      12.03.2019 10:32

      FreePBX отличная система и она реально выполняет свою функцию. Но она сложная для неспециалистов и она неконтролируемо для нас обновляется, вместе с версией Asterisk. Из-за этого мы имеем кучу проблем с нашими коммерческими продуктами. Считай каждое внедрение становится уникальным!


  1. pvsur
    12.03.2019 09:53

    FreePBX = Asterisk + Web-морда — это весьма поверхностное представление…

    Вообще, рекомендую использовать ARI. При этом офисная АТС Астериск плавно превращается… превращается… в телефонный коммутатор общего назначения с полным ручным управлением вызовами.

    Есть и свои минусы у Астера:
    1. Нет возможности использовать несколько IP-адресов и портов для сигналки с выбором нужного для каждого соединения
    2. Строгая аутентификация вызова сначала по callerid, а только затем по ip источника, из-за чего внутренние абоненты должны отличаться по формату от используемых АОН.
    3. Очень долгий ответ на некоторые команды от астериска по ARI — вплоть до 250 мс…
    4. Некоторые странности при работе, например принудительный отбой входящего плеча вызова, если, находясь в бридже с ним, исходящее плечо получает некоторые коды отбоя.
    5. Придется забыть о факсах — прием и передача в ARI не реализованы никак.

    Это снижает возможность использования Астера для предоставления услуг оператором большому количеству клиентов. Впрочем, его плюсы перевешивают. По крайней мере, моя платформа с он-лайн биллингом стабильно держит 350-400 одновременных вызовов со скоростью до 10 cps…


    1. jorikfon Автор
      12.03.2019 10:36

      Мы периодически посматриваем на ARI, но пока я не увидел реального преимущества именно бизнес использования. Старый добрый AMI завернутый в HTTPS более универсальный. Кстати мы даже PJSIP не используем в текущей реализации, хотя у него есть интересные штуки, например возможность мультирегистрации.

      Основная причина создания Askozia, это вернуть нишевой продукт, который решает поставленные перед ним задачи лучше чем что либо другое. Задачи использовать самое современное, новое, перспективное у нас пока не стояло…


    1. IgorPie
      12.03.2019 10:46
      +1

      Факсы как-то делали и в AGI/AMI. Писал надстройку для астера по молодости. Пройдены и факсы, и не распознающиеся dtmf некоторых провайдеров сотовой связи, и т.п.

      10к клиентов на одном астере — видели лет 15 назад. 400 вызовов по alaw, думаю, без проблем даже на домашнем железе.


      1. jorikfon Автор
        12.03.2019 10:51

        Мы тоже делали факсы еще на 1.8 версии Asterisk через AMI. У нас даже ролик есть про отправку факса прямо из 1С :)
        youtu.be/5ZuclVUtOuk


      1. pvsur
        12.03.2019 12:31

        AMI и ARI разные вещи. Для программирования сервисов ARI гораздо проще и понятнее. Из AMI, насколько помню, нет доступа к бриджам астериска. В ARI факсов нет по причине — устаревшая технология, нет причин для реализации. Правда никто не запрещает совмещать и ARI и AMI.

        400 вызовов и 400 вызовов со скоростью 10-20 cps- разные вещи. А если он-лайн биллинг, так нагрузка еще вдвое увеличивается. Стабильные 400 вызовов при 10 cps грузят 8 процов старенького сервера на 65% каждый.
        При 1000 вызовов и 20-25 cps астериск уже принципиально не успевает обрабатывать команды за отведенные 5 сек, и это без учета оверхеда на биллинг (в который входят авторизация вызова в БД, запись сессии в БД, предроутинг, расчет стоимости и продолжительности вызова, построутинг, ежеминутная ретарификация вызова, фиксация завершения с параметрами в БД, конвертация записи в mp3, складирование записи, фиксация ее в БД), при том что БД располагается на другом мощном сервере.


  1. IgorPie
    12.03.2019 10:49

    Я бы акцентировал на торговой марке. Если в Европе и США она принадлежит 3CX, вам может знатно прилететь. Если не принадлежит, сами понимаете, надо регать по мадридскому соглашению и по-быстрее.

    В остальном, удачи вам с вашей микроволновкой.


    1. jorikfon Автор
      12.03.2019 11:08

      У 3CX есть права на торговую марку в ЕС. У нас в России, я пока не очень понимаю как все это работает, но в данном случае для нас не критично выпускать продукт именно под таким названием. Возможно постепенно мы его сменим. Пока задача сделать сам продукт… С патентным поверенным переписваемся, но понять всю эту хрень сложнее чем на ассемблере код писать :(


      1. IgorPie
        12.03.2019 11:35

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

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


  1. jorikfon Автор
    12.03.2019 11:56

    Отдадут врядли, они ее еще и продлили на 10 лет в прошлом году. Но продукт под этой маркой они уже не выпускают.
    Рекламировать бесплатный продукт мы пока не планировали… Но кто знает…


  1. JenDoZ
    14.03.2019 10:15

    А платы E1 в SIP поддерживаються?
    Или как нибудь реализация?


    1. jorikfon Автор
      14.03.2019 10:16

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