IP-телефония на базе Asterisk
Введите свой номер телефона
и мы перезвоним вам
Решаем Ваши бизнес-задачи с помощью IT-технологий. Знаем, как сделать лучше, быстрее и дешевле. Наш опыт – на службе Вашего бизнеса.
Не все герои носят плащи. Сотни техических статей, написанных инженерами нашей компании. Делимся опытом и своими знаниями со всем сообществом.
Сотни функций и возможностей Asterisk помогут вывести коммуникации в Вашей компании на принципиально новый уровень. Технические ограничения – фантазия Заказчика.
Вы платите за систему, которая будет полностью соответствовать Вашим ожиданиям, требованиям и будет драйвером роста Вашего бизнеса
Идти в ногу со временем или оставаться на старых технологиях? Такой вопрос не стоит перед нашими клиентами. Решаем самые смелые задачи для Колл-Центров. Строим с нуля или работаем с существующими.
Поместите свой бизнес в эпицентр продаж. Интеграция IP-телефонии и CRM даст новый и мощный импульс Вашему Отделу Продаж и выведет компанию на три шага впереди конкурентов.
Подбираем для клиентов такие тарифы, которые ему редко получится найти на рынке самостоятельно. Работаем с 100+ операторов связи в интересах клиента.
Разработки, созданные нашей командой под запросы клиентов. Не отказывайтесь от инноваций. Мы поможем идти с ногу со временем.
Умные всю жизнь учатся, а остальные всегда все и так знают. Мы проводим обучение более 8 лет и выпустили более 1000 специалистов по Asterisk и Mikrotik. Проводим ежегодную конференцию Asterisk.
Купить наш опыт дешевле, чем набивать свои шишки. Мы реализовали более 800 проектов и накопили экспертизу для того, чтобы идеально выполнить Ваш проект.
Правильный выбор оборудования позволяет сэкономить от 20 до 50% бюджета телефонии. Мы предельно внимательно подойдем к выбору «железа» в Ваш проект.
Наши цены доступны не только для Москвы, но и для регионов. А вложения в нашу экспертизу обычно окупаются за несколько месяцев.
Работаем с 2011 года. Собрали отличную команду реальных фанатов своего дела. Подходим к работе с душой и ответственностью.
Автоматический дозвон — одна из часто востребованных задач при использовании Asterisk. Он применяется в самых разных сценариях: от обработки пропущенных вызовов и организации конференций до построения голосовых роботов, реализации функции «обратный звонок» и вызовов по щелчку. Каждый из этих сценариев требует от системы умения инициировать вызовы автоматически, без участия человека.
Для реализации подобных сценариев Asterisk предоставляет четыре базовых механизма автоматического вызова
Наиболее простой способ — использование команды originate из командной строки:
bash
originate SIP/100 extension 89101234567@outgoing
В этом примере вызов сначала поступает на внутренний номер SIP/100. После снятия трубки система инициирует звонок на внешний номер через указанный контекст.
Возможен и другой режим — вызов непосредственно в приложение:
bash
originate SIP/100 application MusicOnHold default
В данном случае после подъема трубки вызывающему абоненту будет проигрываться музыка из указанного класса.
Важно понимать, как инициируется канал: при выполнении команды originate сначала создается канал и отправляется SIP INVITE. После ответа вызывается вторая «нога» — либо extension, либо приложение.
Также возможно использование специального extension в диалплане для отладки ошибок — например, с доступом к переменной REASON, отражающей причину завершения звонка. Однако при параллельной отправке нескольких автоматических вызовов идентифицировать источник ошибки становится затруднительно, так как отсутствует контекст каждого вызова.
AMI позволяет более гибко управлять вызовами. Для этого:
Пример команды:
vbnet
Action: Originate
Channel: SIP/100
Exten: 89101234567
Context: outgoing
Priority: 1
CallerID: "Callback" <100>
Async: true
Variable: CUSTOM_VAR=some_value
Здесь async=true позволяет выполнять вызовы асинхронно, что критично при массовом обзвоне. Также AMI позволяет передавать переменные, которые потом доступны в диалплане, что даёт гибкость в обработке вызова.
Дополнительно рекомендуется указывать ActionID — уникальный идентификатор, позволяющий отслеживать события, относящиеся к конкретному вызову.
Call-файлы — это один из старейших, но по-прежнему актуальных способов организации автоматических вызовов. Суть заключается в создании файла с определённым форматом и сохранении его в папку, указанную в astserisk.conf (например, /var/spool/asterisk/outgoing).
Пример call-файла:
makefile
Channel: SIP/100
MaxRetries: 3
RetryTime: 60
WaitTime: 30
Context: outgoing
Extension: 89101234567
Priority: 1
Set: CUSTOM_VAR=some_value
Asterisk проверяет наличие новых файлов в директории outgoing каждую секунду. Для реализации отложенного вызова можно использовать команду touch -t и указать время модификации файла в будущем. Вызов будет инициирован в момент, когда текущее время превысит указанное в mtime.
Важно: если канал не поднят, попытка считается неудачной, но не засчитывается как использованная. Повторные попытки будут выполняться согласно параметрам RetryTime и MaxRetries.
В Asterisk существует встроенное приложение Originate, которое можно вызвать прямо из диалплана:
ini
exten => 100,1,Originate(SIP/101,exten,callback,200,1,a)
Подобный вызов может использоваться, например, в голосовом роботе, который по голосовой команде пользователя инициирует параллельный звонок, получает данные и возвращает ответ.
Все механизмы автоматического вызова используют общий программный интерфейс внутри Asterisk, реализованный в файле pbx.c. Функции с префиксами pbx_exec вызываются как из CLI, так и из AMI, call-файлов и диалплана. Это объясняет схожесть в поведении различных методов.
Если злоумышленник получает доступ к файловой системе сервера, он может массово генерировать call-файлы и инициировать огромное количество звонков — вплоть до тысяч в секунду. Это может привести к серьёзным финансовым потерям.
Для ограничения таких атак предлагается реализовать простой патч в коде pbx_spool.c, который анализирует направление первой ноги вызова. Если звонок уходит на международное направление (например, через 8-10), его можно прервать на этапе формирования:
if (strstr(chan->name, "SIP/") && strncmp(number, "810", 3) == 0)
return -1;
Такой подход усложнит работу атакующему и даст системному администратору дополнительное время на обнаружение и устранение взлома.
Первая реализация автоматического дозвона в Asterisk появилась ещё в версии 0.2 (1999 год). Уже тогда в коде manager.c и pbx.c присутствовали базовые функции для инициации вызова.
Хотя перечисленные механизмы и позволяют выполнять автоматические вызовы, полноценная система автодозвона требует надстройки — логического уровня, который отвечает за:
Для этого вводятся четыре ключевых сущности:
Задачи могут быть разных типов: перезвоны, сбор конференций, подтверждения заказов и др. Каждый тип задачи использует одни и те же механизмы автодозвона, но с разной бизнес-логикой.
Таким образом, Asterisk предоставляет мощные и гибкие средства для реализации автоматических звонков. Однако для построения надёжной и функциональной системы автодозвона необходим логический слой управления, обеспечивающий планирование, контроль и гибкую настройку. Такой подход позволяет создавать профессиональные решения для самых разных бизнес-задач — от уведомлений и подтверждений до интеграции с CRM и интеллектуальными голосовыми системами.
Билеты уже в продаже!
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.