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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web модуль управления переадресациями

База знаний Использование FreePBX

Многие сталкивались, при настройке функционала FreePBX с ситуацией, когда сотрудники компании периодически работают не в офисе, а, скажем, на удаленном объекте, в командировке в другом регионе и т. д., при этом забывают поставить переадресацию. Из-за чего может быть потерян клиент, т. к. не дозвонился менеджеру, чтобы уточнить важную информацию, или техническому специалисту для получения консультации или решения проблемы. Чтобы избежать такой проблемы был реализован модуль для установки и снятия переадресаций.

1. Описание

2. Разработка

3. Подключение к БД

4. Заполнение внутренних номеров

5. Заполнение списка активных переадресаций

Описание


Данный модуль имеет всего 1 web страницу, на которой можно управлять переадресациями.


Страница переадресации


Как видно на изображении интерфейс интуитивно понятный. Слева в колонке указаны внутренние номера на АТС, справа в текстовое поле вносятся данные, куда перенаправить вызов.


Разработка


Для создания данного модуля был использован PHP версии 5.3.

Для начала определим наши функции:


1. Подключение к БД
2. Заполнение массива с внутренними номерами
3. Заполнение массива данными о переадресации

Все данные берутся из AstDB и заносятся туда же

Рассмотрим каждую из функций.


Подключение к БД

function bd_connect($db,$q){
$link = @mysqli_connect('localhost',db_user,db_password,$db) or die("Error: ".@mysqli_connect_error($link));
$rs = @mysqli_query($link, $q) or die("Warning: ".@mysqli_error($link));
if($rs){
return $rs;
}
else{
}
@mysqli_close($link);
}


Данные о подключении хранятся в файле settings.php.

<?php
//! ================== Доступ к MySQL ==================
define('db_host','localhost');
define('db_user','DB_ISER');
define('db_password','DB_PASS');
?>

Заполнение внутренних номеров

function fill_val(){
$rs = bd_connect("asterisk","SELECT id, description FROM devices WHERE tech='sip' AND ORDER BY id;");
while($row = @mysqli_fetch_array($rs)){
if($row[0]!=''){
$nums[$row[0]] = $row[1];
}
}
return $nums;
}


Данная функция получает список внутренних номеров из таблицы sip базы asterisk. Данные записываются в массив $nums и возвращает массив.


Заполнение списка активных переадресаций

function Call_Forwards(){
$exts = fill_val();
foreach ($exts as $key => $value) {
$CF = shell_exec('asterisk -rx "database get CF '.$key.'"');
$pat = '/^Database/';
if (!preg_match($pat,$CF)){
$cf_nums[$key] = explode(':',$CF)[1];
}
else {
$cf_nums[$key] = '';
}
}
return $cf_nums;
}


Данная функция проходится по всем записям AstDB и выбирает значения CallForward, если они есть. Заносит данные в словарь $cf_nums. И возвращает его значения.


Далее перейдем к основнову файлу index.php.


В теле нашей страницы будем подкличать созданные нами файлы:
settings.php и functions.php.

<body>
<?php
require_once "settings.php";
require_once "functions.php";
?>
</body>


Теперь нам надо получить список внутренних номеров и установленные переадресации. Для этого после подключения файлов, занесем в переменную $exts значения выполненнлй функции Call_Forwards. И опираясь на данные полученные выполненной функции будем заполнять таблицу.

<body>
<?php
require_once "settings.php";
require_once "functions.php";
$exts = Call_Forwards();
echo "<form id='ext_list' action='newcf.php' class='form_check' method='POST'>";
foreach ($exts as $ext => $cf){
if ($cf!=''){
echo "
<tr>
<td class='CF extensions'>
<input type='checkbox' name='check[".$ext."]' value='".$ext."' id=id_$ext checked>
<label class='exten' for=id_$ext>$ext</label>
</td>
<td class='CF call_forwards'>
<input type='tel' pattern='[78][0-9]{5,10}|1[0-9][0-9]' maxlength='11' placeholder='Телефон' name='CF[".$ext."]' value='".intval($cf)."' class='input_phone_cf'>
<span class='form_error'>Телефон должен быть в формате 89007775599 или 79007775599 или ХХХ</span>
</td>
</tr>
";
} else {
echo "
<tr>
<td class='CF extensions'>
<input type='checkbox' name='check[".$ext."]' value='' id=id_$ext>
<label class='exten' for=id_$ext>$ext</label>
</td>
<td class='CF call_forwards'>
<input type='tel' pattern='[78][0-9]{5,10}|1[0-9][0-9]' maxlength='11' placeholder='Телефон' name='NoCF[".$ext."]' value='' class='input_phone_cf'>
<span class='form_error'>Телефон должен быть в формате 89007775599 или 79007775599 или ХХХ</span>
</td>
</tr>
";
}
}
echo "</form>
<button type='submit' class='apply_config' form='ext_list'> Применить </button>";
?>
</body>

asterisk, sip, Подключение, FreePBX, for, call, внутренние номера