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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Включение и отключение переадресации по звонку

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

Часто происходит так, что уйдя с работы мы забываем включить переадресацию на мобильный либо на какой либо другой номер, а рядом с рабочим местом никого нет. В таком случае вам может быть полезен функционал включения/выключения переадресации по звонку.

Для этого нам понадобится настроить все аналогично включения/отключения DND по звонку. То есть нам понадобится создать список паролей для внутренних номеров, ИВР для ввода внутреннего номера и контексты для обработки.

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

В отличие от DND тут нам так же понадобится вводить номер для переадресации (если включаем).

Для тестов использовалась АТС с Asterisk 11 & FreePBX 12.

Для включения и выключения будем использовать стандартные контексты FreePBX: app-cf-on & app-cf-off, предварительно изменив их. Изменить нужно будет название (поскольку именно их будем использовать только для данного функционала). Назовем, например, app-cf-outbound-on & app-cf-outbound-off.

Контексты можно найти в файле extensions_additional.conf, копируем их в extensions_custom.conf и изменяем название и extension.

Cf-app-outbound-on

Cf-app-outbound-off

Как видно на картинках изменили мы помимо названия сервисный код на номер, и ${AMPUSER} на ${EXTEN}.

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

Для ввода пароля воспользуемся аналогичным DND механизмом:

[ivr-9]
exten => _XXX,1,Set(pass=${DB(CFPASS/${EXTEN})})
same => n,Authenticate(${pass})
same => n,Set(num=${EXTEN})
same => n,Read(toggle,ru/custom/hello-test,1)
same => n,GotoIf($["${toggle}"="1"]? app-cf-outbound-on,${EXTEN},1)
same => n,GotoIf($["${toggle}"="2"]? app-cf-outbound-off,${EXTEN},1)
same => n,Playback(beep)
same => n,Macro(hangupcall,)

Соответственно ivr-9 должна быть создана, аналогично той что для DND.

Примечание! Номер ИВР можно узнать через веб-интерфейс, он будет подписан как id в адресной строке при открытии нужного голосового меню.


Пароль для внутренних номеров так же получаем из базы, можно использовать ту же базу что и для DND, а можно создать новую.

Голосовое меню для CF.

Входящий маршрут.

Применяем изменения диалплана:

Asterisk –rx ‘dialplan reload’


И можем тестировать.

Для управления паролями будем использовать web-форму.

Для основы используем форму управления DND из прошлой статьи (Управление DND через web).

Оттуда возьмем вывод всех операторов и их текущие пароли:

<?php
include('connectdb.php');
$cfdb = new SQLite3('/var/lib/asterisk/astdb.sqlite3');
$result = bd_bridge('asterisk','SELECT extension, name FROM users ORDER BY extension ASC;');
echo "<form action='cfpass.php' method='POST'><table border=1><tr><td>Номер</td><td>Имя</td><td>Статус</td></tr>";
 
while ($row = mysql_fetch_array($result))
{
$CellName = $row['name'];
$CellPhone = $row['extension'];
 
$cfpass = $cfdb->query("SELECT value FROM astdb WHERE key like '/CFPASS/$CellPhone' AND key not like '%only'  ORDER BY key");
$astdb = $cfpass->fetchArray();
$CFpwd = $astdb['value'];
 
    echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td><input type='text' name='".$row[0]."' pattern='[0-9]{4}' value='".$CFpwd."'></td></tr>";//Выводим поля для ввода пароля с необходимым паттерном и индексом.
    echo "</td></tr>";
}
echo "</table>
<input type=submit name=set>//кнопка обработчик
    </form>";

Вывод всех текущих паролей для CF.

Соответственно теперь необходимо внесенные в формы пароли внести в базу, а удаленные – удалить:

if (isset ($_POST['set'])) {
                foreach ($_POST as $key => $pass) {
                              
if ($pass != "") {$cf = `asterisk -rx "database put CFPASS $key $pass"`;}
                else {$cf = `asterisk -rx "database del CFPASS $key"`;}
               
}
 
echo "<meta http-equiv='refresh' content='1'>";
}
?>

Данный скрипт помещаем как обычно в веб-директорию и даем ему пользователя asterisk.

БД Asterisk пример.

Демонстрация web-интерфейса

 

asterisk, FreePBX, outbound, номерной план, IVR