artem
25.12.2017
7852

Автоматический обзвон пропущенных вызовов, поступивших в нерабочее время

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

Обзвон пропущенных вызовов, поступивших в нерабочее время на автомате

Для работы потребуется модуль ODBC.

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

Для начала создадим базу в MySQL.

create database missed_calls;
use missed_calls;
create table current_numbers (num int(20) not null);//текущие номера
create table old_numbers (num int(20) not null); //отработанные номера

Итак, сейчас настроим запись номеров в данную базу. Использовать будем механизм обработки пропущенных, описанный в статье, добавим к отправке сообщения, добавление номера в базу. Будем отправлять вызовы в нерабочее время на голосовое приветствие, после которого будем заносить номер в таблицу. В файл extensions_ovverride_freepbx.conf вносим изменения.

[app-announcement-2]
exten => h,1,Set(${ODBC_insertmissed(${CALLERID(num)})}=1)
same => n,Macro(hangupcall,)

Проверка записи

Далее приступим к написанию скрипта.

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

Рассматривать весь скрипт не будем, остановимся на моменте непосредственного сбора файла.

$i=0;
$j=2;
$dbcount = bd_bridge(‘missed_calls’,»SELECT count(num) FROM current_numbers;»);
$count = mysql_fetch_array($dbcount);
while ($j<=$count[‘count(exten)’]) {
$result = bd_bridge(‘missed_calls’,»SELECT num FROM current_numbers limit $i,$j;»);
while ($row = mysql_fetch_array($result)) //выбираем из базы по 2 номера
{
$number=$row[«num»];
$fp = fopen(«/tmp/record_send/».$number.».call», ‘w’);
fwrite($fp, «Channel: Local/600@ext-queues»); //очередь операторов
fwrite($fp, «MaxRetries: 1″.»n»);
fwrite($fp, «RetryTime: 30″.»n»);
fwrite($fp, «WaitTime: 30″.»n»);
fwrite($fp, «Context: from-internal».»n»); //контекст для исходящего вызова
fwrite($fp, «Extension: $number».»n»);
fwrite($fp, «Priority: 1″.»n»);
fclose($fp);
$chownfile=`chown asterisk:asterisk /tmp/record_send/ -R`;
$mvfile=`mv /tmp/record_send/$number.call /var/spool/asterisk/outgoing`;
}
$i=$i+2;
$j=$j+2;
Sleep 120; //ожидаем 2 минуты до следующего шага
}
$insforold = bd_bridge(‘missed_calls’,» insert into old_numbers select * from current_numbers;»); //записываем отработанные номера в другую таблицу
$delfromcurr = bd_bridge(‘missed_calls’,» TRUNCATE TABLE current_numbers;»); //удаляем из текущей

Соответственно после обработки всех номеров мы переносим их в таблицу отработки.

Для удобства можете дополнить базу отработки некоторыми значениями вроде отвечен/неотвечен.

После настройки скрипта можно протестировать его на внутренних номерах, запустив вручную.

Тест с внутренними номерами

Тест с внутренними номерами

Тест со внутренними номерами.

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

Запуск из крона.

Настройка завершена. Демонстрация работы

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.