IP-телефония на базе Asterisk
Введите свой номер телефона
и мы перезвоним вам
Решаем Ваши бизнес-задачи с помощью IT-технологий. Знаем, как сделать лучше, быстрее и дешевле. Наш опыт – на службе Вашего бизнеса.
Не все герои носят плащи. Сотни техических статей, написанных инженерами нашей компании. Делимся опытом и своими знаниями со всем сообществом.
Сотни функций и возможностей Asterisk помогут вывести коммуникации в Вашей компании на принципиально новый уровень. Технические ограничения – фантазия Заказчика.
Вы платите за систему, которая будет полностью соответствовать Вашим ожиданиям, требованиям и будет драйвером роста Вашего бизнеса
Идти в ногу со временем или оставаться на старых технологиях? Такой вопрос не стоит перед нашими клиентами. Решаем самые смелые задачи для Колл-Центров. Строим с нуля или работаем с существующими.
Поместите свой бизнес в эпицентр продаж. Интеграция IP-телефонии и CRM даст новый и мощный импульс Вашему Отделу Продаж и выведет компанию на три шага впереди конкурентов.
Подбираем для клиентов такие тарифы, которые ему редко получится найти на рынке самостоятельно. Работаем с 100+ операторов связи в интересах клиента.
Разработки, созданные нашей командой под запросы клиентов. Не отказывайтесь от инноваций. Мы поможем идти с ногу со временем.
Умные всю жизнь учатся, а остальные всегда все и так знают. Мы проводим обучение более 8 лет и выпустили более 1000 специалистов по Asterisk и Mikrotik. Проводим ежегодную конференцию Asterisk.
Купить наш опыт дешевле, чем набивать свои шишки. Мы реализовали более 800 проектов и накопили экспертизу для того, чтобы идеально выполнить Ваш проект.
Правильный выбор оборудования позволяет сэкономить от 20 до 50% бюджета телефонии. Мы предельно внимательно подойдем к выбору «железа» в Ваш проект.
Наши цены доступны не только для Москвы, но и для регионов. А вложения в нашу экспертизу обычно окупаются за несколько месяцев.
Работаем с 2011 года. Собрали отличную команду реальных фанатов своего дела. Подходим к работе с душой и ответственностью.
Ниже приведена отредактированная версия материала по Asterisk, сфокусированная на практической конфигурации PJSIP, NAT, диалплане, безопасности и вспомогательных инструментах. Речевая форма сведена к формату технического доклада: убраны обращения от первого лица и к аудитории, сохранены ключевые мысли и примеры, исправлены огрехи распознавания и неточности терминов.
После изменения конфигурационных файлов рекомендуется перезагружать конкретные модули, а не выполнять общий core reload. Точечная перезагрузка позволяет сразу увидеть, где именно возникла ошибка.
Примеры:
Команда core reload перечитывает все конфиги, но затрудняет диагностику, так как не очевидно, какой модуль обновился с ошибками. Практика: изменён logger.conf — выполняется только module reload logger; изменён диалплан — только dialplan reload и т. п.
Примечание: утверждение о «запрете SRTP почти во всем мире» некорректно. В отдельных юрисдикциях действуют ограничения на использование криптографии, однако SRTP широко используется в корпоративных сетях и при подключении удалённых абонентов.
Для настольных ОС и мобильных устройств удобны следующие SIP-клиенты:
Выбор зависит от требований к кодекам, TLS/SRTP, push-уведомлениям и удобству администрирования. Следует избегать перегруженных рекламой сборок.
FOP2 — веб-интерфейс для наблюдения за состоянием внутренних номеров (extensions), транков, очередей. Часто интегрируется с FreePBX; лицензирование, как правило, недорогое (порядка ~$100 за базовый набор). Позволяет видеть текущие вызовы прямо в браузере и выполнять базовые операции.
При размещении Asterisk за NAT необходима корректная публикация внешних адресов и объявление «локальных» подсетей. В pjsip.conf (секция type=transport) используются параметры:
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060
Если сервер за NAT:
local_net=192.168.1.0/24 ; одна или несколько локальных сетей
external_signaling_address=203.0.113.10 ; внешний адрес для SIP-сигналинга
external_media_address=203.0.113.10 ; внешний адрес для RTP
Эти параметры задаются согласованно. Если есть несколько локальных сетей — перечисляются несколько local_net. При динамическом внешнем IP можно применять динамический DNS, но предпочтителен статический внешний адрес. Если Asterisk расположен во внешней сети без NAT, параметры external_* не требуются.
PJSIP использует типизированные секции:
Для внутреннего SIP-аккаунта (IP-телефон как клиент Asterisk) в aor задаётся количество одновременных регистраций (мульти-регистрация):
[aor-1101]
type=aor
max_contacts=5 ; до 5 устройств могут зарегистрироваться на один номер
Для провайдерского транка (Asterisk регистрируется у провайдера) обычно задаётся contact вместо max_contacts:
[aor-trunk]
type=aor
contact=sip:username@sip.provider.example:5060
Секция identify используется для входящих от провайдера (матч по IP):
[trunk-identify]
type=identify
endpoint=trunk-endpoint
match=198.51.100.20/32
Шаблоны упрощают массовую конфигурацию:
[ep-template](!)
type=endpoint
context=from-internal
disallow=all
allow=ulaw,alaw ; или allow=!all,ulaw,alaw
direct_media=no ; рекомендуется отключить для корректной записи/переводов и NAT
dtmf_mode=rfc4733 ; DTMF по RFC2833/4733
tone_zone=ru ; по желанию
[auth-template](!)
type=auth
auth_type=userpass
; Аккаунт 1101
[endpoint-1101](ep-template)
type=endpoint
aors=aor-1101
auth=auth-1101
[aor-1101]
type=aor
max_contacts=5
[auth-1101](auth-template)
username=1101 ; логин устройства (необязательно равен номеру)
password=СЛОЖНЫЙ_ПАРОЛЬ
Замечание по безопасности: логин для авторизации (auth/username) необязательно равен внутреннему номеру (endpoint/имя секции). Разведение этих значений усложняет подбор пароля.
В endpoint задаётся context — имя входного контекста диалплана, в котором обрабатываются вызовы от данного устройства. Часто для внутренних абонентов используется from-internal (аналогично FreePBX). У разных групп устройств могут быть разные контексты (ограничения по наборам, доступ к транкам и т. п.).
Полезные команды Asterisk:
При регистрации телефон сначала отправляет REGISTER, получает 401 Unauthorized (challenge), затем повторяет REGISTER с авторизацией (Digest). Это штатная процедура.
Простой внутренний набор (взаимные вызовы номеров 11XX) и пример принудительного мутирования аудио перед набором:
[from-internal]
exten => _11XX,1,NoOp(Внутренний вызов: ${CALLERID(num)} -> ${EXTEN})
same => n,Set(MUTEAUDIO(all)=on) ; выключить TX/RX на текущем канале
same => n,Dial(PJSIP/${EXTEN},30)
same => n,Hangup()
Функция MUTEAUDIO(direction)=on|off, где direction — in, out или all.
Для конфколлов стартовое отключение микрофона удобнее задавать профилем ConfBridge (параметр startmuted) на уровне моста.
После правок диалплан перечитывается командой dialplan reload. Проверка загруженного контекста: dialplan show from-internal.
Asterisk — достаточно безопасная система при корректной конфигурации. Основные проблемы традиционно связаны не с самим движком, а с популярностью Asterisk и ошибками администрирования.
Рекомендуемые меры:
Исторически некоторые готовые дистрибутивы (например, ранние сборки FreePBX) поставлялись с нестрогими дефолтами, однако современные версии закрывают большинство рисков «из коробки» (включая базовый firewall и Fail2Ban).
Этот материал приведён к формату публикации, сохранены технические детали, устранены распознавания и стилистические огрехи, уточнены термины и параметры, чтобы текст был пригоден для практической работы с Asterisk.
Билеты уже в продаже!
Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.