IP-телефония на базе Asterisk
Введите свой номер телефона
и мы перезвоним вам
Решаем Ваши бизнес-задачи с помощью IT-технологий. Знаем, как сделать лучше, быстрее и дешевле. Наш опыт – на службе Вашего бизнеса.
База знаний Не все герои носят плащи. Сотни техических статей, написанных инженерами нашей компании. Делимся опытом и своими знаниями со всем сообществом.
Сотни функций и возможностей Asterisk помогут вывести коммуникации в Вашей компании на принципиально новый уровень. Технические ограничения – фантазия Заказчика.
IP-АТС Вы платите за систему, которая будет полностью соответствовать Вашим ожиданиям, требованиям и будет драйвером роста Вашего бизнеса
Идти в ногу со временем или оставаться на старых технологиях? Такой вопрос не стоит перед нашими клиентами. Решаем самые смелые задачи для Колл-Центров. Строим с нуля или работаем с существующими.
Поместите свой бизнес в эпицентр продаж. Интеграция IP-телефонии и CRM даст новый и мощный импульс Вашему Отделу Продаж и выведет компанию на три шага впереди конкурентов.
Подбираем для клиентов такие тарифы, которые ему редко получится найти на рынке самостоятельно. Работаем с 100+ операторов связи в интересах клиента.
Разработки, созданные нашей командой под запросы клиентов. Не отказывайтесь от инноваций. Мы поможем идти с ногу со временем.
Умные всю жизнь учатся, а остальные всегда все и так знают. Мы проводим обучение более 8 лет и выпустили более 1000 специалистов по Asterisk и Mikrotik. Проводим ежегодную конференцию Asterisk.
Купить наш опыт дешевле, чем набивать свои шишки. Мы реализовали более 800 проектов и накопили экспертизу для того, чтобы идеально выполнить Ваш проект.
Оборудование Правильный выбор оборудования позволяет сэкономить от 20 до 50% бюджета телефонии. Мы предельно внимательно подойдем к выбору «железа» в Ваш проект.
Наши цены доступны не только для Москвы, но и для регионов. А вложения в нашу экспертизу обычно окупаются за несколько месяцев.
О нас Работаем с 2011 года. Собрали отличную команду реальных фанатов своего дела. Подходим к работе с душой и ответственностью.
Проблема большинства крупных телекоммуникационных проектов заключается в огромном количестве накопленного «legacy». В какой-то момент любая компания, работающая на рынке долгое время, обнаруживает себя заваленной старым кодом, написанным на языках, которые постепенно уходят в прошлое. В сфере IP-телефонии таким «багажом» чаще всего оказывается Perl. Это мощный инструмент, на котором когда-то строились серьезные системы, но сегодня он все чаще становится тормозом для развития продукта и профессионального роста команды.
Ситуация, когда разработчики годами варятся в старом коде, неизбежно приводит к вопросу: «А туда ли мы движемся?». Технологический стек напрямую влияет на то, насколько эффективно решаются задачи бизнеса и насколько комфортно чувствуют себя специалисты. Когда популярность используемого языка в мировых рейтингах и на площадках вроде HeadHunter неуклонно падает, наступает время для серьезной модернизации АТС и пересмотра подходов к разработке внутренних сервисов.
Проблема Perl не только в его возрасте. Это язык со специфическим синтаксисом, который часто называют «пиши-читай» — написать код можно быстро, но разобраться в нем через полгода бывает крайне сложно. В современных реалиях, когда системы становятся все сложнее, динамическая типизация и вольное обращение с памятью в Perl начинают генерировать ошибки, которые трудно отловливать.
Кроме того, рынок диктует свои правила. Популярность языка — это не просто цифры в таблице, это наличие готовых библиотек, сообщества и, что самое важное, доступность кадров. Найти квалифицированного Perl-разработчика сегодня сложнее и дороже, чем специалиста на более современных стеках. Это создает риски для поддержки существующих систем и замедляет внедрение новых фич. Если на этапе запуска проекта установка Asterisk и написание простых скриптов на Perl казались логичными, то при масштабировании на тысячи одновременных вызовов старая архитектура начинает «трещать по швам».
Выбор в пользу языка Go (Golang) при создании новых проектов выглядит максимально оправданным. Это не просто дань моде, а переход на инструмент, который изначально создавался в Google для решения проблем высоконагруженных систем. Go объединяет в себе лучшие черты: он компилируемый, как C++, но при этом простой в освоении и безопасный, как современные скриптовые языки.
Основные технические преимущества Go перед старым стеком:
Для бизнеса это означает более дешевую поддержку и возможность быстро выводить на рынок новые функции. Для инженеров — это способ работать с актуальными технологиями, которые ценятся на рынке.
Одной из самых «больных» тем в телефонии является обработка множества одновременных запросов. В классическом подходе на Perl для каждого нового вызова в FastAGI часто приходилось делать «fork» — создавать копию процесса. Это крайне ресурсоемкая операция. Если одновременно приходят сотни звонков, сервер начинает тратить больше сил на управление процессами, чем на саму логику обработки звонка.
В Go эта проблема решена на уровне архитектуры языка с помощью GoRoutines (горутин). Это максимально легковесные потоки, которые потребляют ничтожно мало памяти.
Такой подход идеально ложится на специфику FastAGI серверов для Asterisk. Каждый звонок обрабатывается в своей горутине, они изолированы друг от друга, работают быстро и не «отъедают» память у всей системы.
Разработка — это не только написание кода, но и его тестирование, сборка и доставка на сервер. В Go всё необходимое встроено в стандартный инструментарий. Здесь нет нужды искать сторонние фреймворки для unit-тестов или мучиться с зависимостями.
Например, система тестирования поставляется вместе с компилятором. Достаточно создать файл с окончанием _test.go, и можно сразу проверять логику. Это критически важно для телекома, где любая ошибка в диалплане или логике AGI может привести к потере звонков. Если система вовремя не прошла аудит IP-ATC, проблемы могут накапливаться годами. С переходом на Go автоматизация проверок становится естественной частью процесса.
Также стоит отметить уникальный менеджер пакетов. Можно просто указать адрес репозитория на GitHub, и Go сам скачает и подключит нужную библиотеку. Это избавляет от «ада зависимостей», который часто встречается в Perl (CPAN) или Python (pip).
Написание AGI-скриптов на Go выглядит гораздо чище и понятнее, чем на старых языках. Даже сложная логика, включающая работу с базами данных, внешними API или Redis, упаковывается в компактные структуры.
Как это работает на практике:
При поступлении звонка Asterisk передает управление на FastAGI сервер. В Go это реализуется через чтение параметров из стандартного потока или сетевого сокета в обычную map (словарь). Мы сразу получаем доступ ко всем переменным: номеру звонящего, контексту, уникальному идентификатору вызова. Ответные команды Asterisk отправляются так же просто. Благодаря типизации, разработчик всегда знает, какие данные он получил и в каком формате их нужно вернуть.
Если же стоит задача вынести данные, например, в Redis, то в Go это делается парой строк. Данные можно хранить в виде JSON-строк, что упрощает их чтение другими сервисами. Такой подход позволяет строить распределенные системы, где телефония — лишь часть общего ИТ-ландшафта компании.
При выборе языка часто возникают альтернативные варианты. Почему не Python или PHP?
Python — отличный язык, он очень прост в обучении и имеет огромную базу библиотек. Но он интерпретируемый и, честно говоря, медленный для задач реального времени. Чтобы Python работал быстро, приходится использовать библиотеки на C, что усложняет проект.
PHP также популярен, но он исторически заточен под веб-запросы «пришел-ушел». Попытки строить на нем демоны для обработки звонков часто заканчиваются проблемами с утечками памяти и стабильностью.
Lua часто используется внутри самого Asterisk для написания логики диалплана. Это быстро и удобно для простых задач. Но как только дело доходит до сложного парсинга данных, работы с очередями или внешними сервисами, Lua становится тесным. Go в этом плане является «золотой серединой»: он дает производительность C++ при простоте написания кода, близкой к Python.
Сравнение работающих систем на Perl и Go дает наглядную картину. В типичных задачах FastAGI (обработка входящего вызова, запрос к БД, выполнение пары команд Asterisk) разница в потреблении ресурсов колоссальна:
Эти показатели позволяют значительно экономить на серверном оборудовании или на тех же ресурсах обрабатывать в разы больше трафика. Это особенно актуально, когда требуется обеспечить надежнe. защиту IP-ATC от внешних угроз и перегрузок.
Технологии — это прежде всего люди. Чтобы продукт развивался, инженеры должны быть заинтересованы в своей работе. Переход на Go сильно меняет атмосферу в команде.
Во-первых, разработчикам больше не нужно копаться в «древних свитках» Perl. Работа с современным, быстрым и логичным языком повышает лояльность сотрудников.
Во-вторых, это упрощает найм. Молодые и талантливые специалисты охотнее пойдут в компанию, где используют Go, чем туда, где основным языком является Perl.
Инвестиции в обучение сотрудников, например, отправляя их на профильные курсы по Asterisk, окупаются кратно. Команда начинает применять современные паттерны проектирования, использовать микросервисную архитектуру и быстрее решать задачи бизнеса. В конечном счете, это избавляет от ситуации, когда «все держится на одном человеке, который знает Perl».
Время «монолитных» и тяжелых систем на старых языках уходит. Для современной IP-телефонии на базе Asterisk связка с Go в качестве языка для AGI/FastAGI становится стандартом де-факто. Это решение позволяет закрыть сразу несколько критических вопросов: производительность, надежность кода и кадровый голод.
Переход на новый стек требует усилий, но результат того стоит. Вы получаете систему, которую легко поддерживать, просто масштабировать и не стыдно показывать коллегам. Использование Go дает ту самую гибкость, которой так часто не хватает в жестких рамках старого «legacy» кода. В конечном итоге, качественный инструмент в руках инженера — это залог того, что связь будет работать стабильно, а бизнес — расти.
Билеты уже в продаже!
Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.