IP-телефония на базе Asterisk
Введите свой номер телефона
и мы перезвоним вам
Решаем Ваши бизнес-задачи с помощью IT-технологий. Знаем, как сделать лучше, быстрее и дешевле. Наш опыт – на службе Вашего бизнеса.
Не все герои носят плащи. Сотни техических статей, написанных инженерами нашей компании. Делимся опытом и своими знаниями со всем сообществом.
Сотни функций и возможностей Asterisk помогут вывести коммуникации в Вашей компании на принципиально новый уровень. Технические ограничения – фантазия Заказчика.
Вы платите за систему, которая будет полностью соответствовать Вашим ожиданиям, требованиям и будет драйвером роста Вашего бизнеса
Идти в ногу со временем или оставаться на старых технологиях? Такой вопрос не стоит перед нашими клиентами. Решаем самые смелые задачи для Колл-Центров. Строим с нуля или работаем с существующими.
Поместите свой бизнес в эпицентр продаж. Интеграция IP-телефонии и CRM даст новый и мощный импульс Вашему Отделу Продаж и выведет компанию на три шага впереди конкурентов.
Подбираем для клиентов такие тарифы, которые ему редко получится найти на рынке самостоятельно. Работаем с 100+ операторов связи в интересах клиента.
Разработки, созданные нашей командой под запросы клиентов. Не отказывайтесь от инноваций. Мы поможем идти с ногу со временем.
Умные всю жизнь учатся, а остальные всегда все и так знают. Мы проводим обучение более 8 лет и выпустили более 1000 специалистов по Asterisk и Mikrotik. Проводим ежегодную конференцию Asterisk.
Купить наш опыт дешевле, чем набивать свои шишки. Мы реализовали более 800 проектов и накопили экспертизу для того, чтобы идеально выполнить Ваш проект.
Правильный выбор оборудования позволяет сэкономить от 20 до 50% бюджета телефонии. Мы предельно внимательно подойдем к выбору «железа» в Ваш проект.
Наши цены доступны не только для Москвы, но и для регионов. А вложения в нашу экспертизу обычно окупаются за несколько месяцев.
Работаем с 2011 года. Собрали отличную команду реальных фанатов своего дела. Подходим к работе с душой и ответственностью.
Asterisk успешно работает на большинстве современных Linux-дистрибутивов, включая Debian/Ubuntu, Astra Linux и Red OS. В корпоративных сборках с ограниченными репозиториями (например, Astra Linux/Red OS) часто приходится вручную доустанавливать зависимости и собирать часть пакетов из исходников. Практично вести собственный список требуемых пакетов (например, в GitHub) и держать его в актуальном состоянии.
Для промышленной эксплуатации предпочтительны LTS-версии Asterisk (long-term support): они дольше получают исправления и обновления безопасности. Линейка Certified Asterisk нередко воспринимается как “лучше”, но фактически это урезанные сборки с выпиленными модулями; иногда отсутствует критичный функционал (например, curl). Для универсальности и предсказуемости сценариев рекомендуется именно LTS.
Образы FreePBX традиционно отстают от актуальной ветки Asterisk на 1–2 релиза. Это ограничение в основном на уровне сборочной логики; при необходимости совместимость можно достичь ручной пересборкой, однако такой подход требует аккуратности.
Крупные изменения синтаксиса конфигурации были в эпоху 1.2/1.4/1.6. Конфигурации начиная с 1.8 в подавляющем большинстве случаев безболезненно мигрируют на современные версии. При этом в AMI (Asterisk Manager Interface) и событиях встречались эволюционные изменения, но сохранялась разумная обратная совместимость и мягкий путь миграции.
Зависимости
В исходном дереве Asterisk есть скрипт для установки предварительных зависимостей:
contrib/scripts/install_prereq install
Он подтягивает компилятор, заголовки, dev-пакеты и полезные утилиты для сборки.
PJProject и PJSIP
Современная SIP-реализация в Asterisk — PJSIP (движок — PJProject). При конфигурации:
./configure
система либо найдёт установленный PJProject, либо предложит собрать встроенный (bundled). Без PJSIP сборка SIP-функционала будет ограниченной.
Меню выбора модулей (menuselect)
make menuselect
Здесь выбираются приложения, кодеки, канальные драйверы, звуковые файлы и флаги компиляции.
Сборка и установка
make
make install
make samples # развернуть пример конфигурации
make install-logrotate # установить конфиг ротации логов
По умолчанию автозагрузка всех модулей нежелательна: дополнительный открытый порт — это лишний риск. Рекомендуется:
В комплекте configs/basic-pbx/ есть минимальный набор конфигов; это удобная база, от которой можно «наращивать» только требуемое.
Исторический chan_sip признан устаревшим и постепенно исключается из новых веток. chan_pjsip архитектурно современнее, лучше масштабируется на многоядерных системах, корректнее обрабатывает параллельные транзакции и поддерживает мульти-регистрации одного endpoint (например, аппаратный телефон, софтфон на ПК и мобильный — все на одном аккаунте).
Для миграции имеется скрипт:
contrib/scripts/sip_to_pjsip
Он конвертирует объекты из sip.conf в структуры pjsip.conf. Результат автоматически применять не стоит — разумно вручную проверить и допилить нюансы (ACL, трансляции, таймеры, транспорт, аутентификацию и т. д.).
Скрипты в contrib/scripts/ помогают с генерацией TLS-сертификатов. Для WebRTC предпочтительны публично доверенные сертификаты (например, Let’s Encrypt), чтобы браузеры (Chrome и др.) не ругались на самоподписанные.
Проблемы тайминга в ранних гипervisors давно решены; Asterisk стабильно работает в VMware, KVM/QEMU, Hyper-V и пр. Возможна установка на ARM (включая Raspberry Pi) — производительность зависит от задач.
Важно учитывать переносимость бинарников между пулами виртуализации: при миграции ВМ между узлами с разными CPU семейства/флагами Asterisk, собранный с -march=native, может не стартовать. Решение — снимать BUILD_NATIVE и, при необходимости, пересобрать.
Транскодирование между кодеками — одна из заметных статей нагрузки CPU; чем меньше транскодировать, тем лучше.
В logger.conf задать необходимые каналы: включить файл full и задать желаемые уровни (notice,warning,error,verbose,dtmf и др.);
В CLI для комфортной диагностики повысить подробность: asterisk -rvvvvv # пять v ≈ уровень 5.
Ротация логов:
При наличии централизованной системы логирования отправлять туда агрегированные события (CDR/CEL, приложные логи интеграций и т. д.).
Запись — одна из самых ресурсоёмких функций (вплоть до диска I/O). Для снижения влияния на звонки:
При завершении вызова записи из RAM переносятся на постоянное хранилище.
res_config_* модули позволяют хранить конфигурацию в БД (Realtime), что удобно для динамических сред. Отдельное внимание — интеграциям по AMI/ARI и HTTP (res_curl): чем активнее внешние запросы/ответы, тем выше нагрузка на систему. Планировать ресурсы и очереди обработки соответственно.
Астериск сам по себе крайне нетребователен: базовая инсталляция стартует на сотнях мегабайт RAM и одном виртуальном ядре. Нагрузка определяется сценарием:
Для надёжной эксплуатации — Asterisk LTS, минимальный набор модулей и автозагрузки, централизованная ротация/логирование, Fail2Ban. Для SIP — PJSIP (PJProject) и по возможности отказ от chan_sip; миграцию облегчает sip_to_pjsip. При сборке — следить за BUILD_NATIVE (переносимость), аккуратно настраивать menuselect, включать нужные звуки/кодеки. Для WebRTC — доверенные TLS-сертификаты. Запись — самая тяжёлая часть: буферизация в RAM и продуманная ротация файлов.
Материал подготовлен в формате практического доклада: все шаги воспроизводимы на Debian/Ubuntu и совместимых системах, применимы также к Astra Linux/Red OS при условии ручной установки зависимостей.
Билеты уже в продаже!
Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.