Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

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

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

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

База знаний Настройка Asterisk

В данной статье рассмотрим возможность автоматического обзвона клиентов, позвонивших во внерабочее время. Для этого опять же будем использовать скрипт написанный на 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 на выполнение, например каждый день спустя час после начала рабочего дня, либо в определенные дни.

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

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

asterisk, настройка, Call-файл, FreePBX, Channel, limit, call, callerid, ODBC, missed calls