artem
16.07.2018
1562

Сборщик конференции средствами Web-интерфейса

В данной статье будет описано как разместить на сервер, настроить и эксплуатировать графический сборщик конференций.

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

Что не всегда удобно, поскольку:

  1. Участники могут быть не за телефонным аппаратом и далеко от сетей wi-fi – например с мобильного.
  2. Для звонков «снаружи» сервера телефонии требуется заводить номер, маршрут и IVR.
  3. Если собирать средствами телефонного аппарата – то присутствует ограничение только на трех операторов, включая владельца.

Чтобы сделать все удобно, просто и эффективно был разработан следующий скрипт.

Он представляет из себя простую форму, которая вытягивает из внутренней базы данных:

  1. Список внутренних номеров (для выбора собственного номера)
  2. Список номеров конференц-комнат
  3. Список внутренних номеров (для выбора участников конференции)
  4. Поле для перечисления 11-изначных номеров (мобильные и городские)
  5. Кнопка запуска

Разберемся, из чего состоит скрипт «изнутри». Написан он полностью на php c оформлением через css, включает в себя четыре файла:

В первом (по-порядку сверху вниз) находится содержимое следующего вида:

Синим выделены учетные данные которые нужно будет заменить на свои. И если MySQL учетка есть у всех владельцев серверов с FreePBX (найти можно в файле как на скрине),

учетку для подключения к AMI интерфейсу может не оказаться. Или он будет административным. Поэтому создаем своего пользователя в файле manager_custom.conf (для FreePBX)

И так же заносим выделенные данные в соответствующие разделы в файле access.php. После добавления не забываем выполнить «manager reload» из CLI консоли. Проверить наличие нового пользователя можно следующим образом.

Собственно, за исключением всех файлов на сервере и указания пути от корня web-сервера это все требуемые настройки.

Далее файл «bridge.php». Как и гласит название, этот файл содержит функции которые служат для связи web-интерфейса c внутренней базой MySQL, с интерфейсом управления AMI и непосредственно функцию генерации вызова средствами последнего.

//!================== Коннектор к внутренней базе даных ================== function bd_bridge($db,$q){

$link = @mysqli_connect(bd_host,bd_user,bd_pass,$db) or die(«Error: «.@mysqli_connect_error($link));

$rs = @mysqli_query($link, $q) or die(«Error: «.@mysqli_error($link));

if($rs){

//echo «Qwerty complete: $q <br />«;

return $rs;

@mysqli_free_result($rs);

}

else{

echo «Qwerty failure: $q <br />«;

}

@mysqli_close($link);

}

//! ================== Коннектор к AMI ==================

function ami_request($ingect){

$socket = fsockopen(ami_host, ami_port, $ac_err_num, $ac_err_msg, 1);

if ($socket){ stream_set_timeout($socket, 1);

$action = «Action: loginrn»;

$action .= «Username: «.ami_user.»rn»;

$action .= «Secret: «.ami_pass.»rnrn»;

$action .= $ingect;

$action .= «Action: Logoffrnrn»;

fwrite($socket,$action);

sleep(1);

$answer = fread($socket,8192);

fclose($socket);

}

return $answer;

}

//! =========================== Осуществляем вызов ===========================

function init_call($ext_from,$ext_to,$through){

$action = «Action: Originatern»;

if($through!=»»){

$action .= «Channel: SIP/$through/$ext_fromrn»;

}

else{

$action .= «Channel: SIP/$ext_fromrn»;

}

$action .= «Context: from-internalrn»;

$action .= «Exten: $ext_torn»;

$action .= «Priority: 1rn»;

$action .= «Timeout: 15000rn»;

$action .= «Callerid: Phoenix-Call <$ext_from>rn»;

$action .= «Async: falsernrn»; //echo str_replace(«rn»,»
«,$action);

ami_request($action);

}

Css.php содержит в себе описание стилей оформления фона, кнопок, переключателей и полей ввода. При желании или необходимости можно изменить под себя. В комплекте идет «темная тема». Переключить можно переименовав файл css_night.php в просто css.php

Последний, но не по значению файл «index.php» содержит:

require_once(«access.php»); require_once(«bridge.php»); require_once(«css.php»);

Css.php содержит в себе описание стилей оформления фона, кнопок, переключателей и полей ввода. При желании или необходимости можно изменить под себя. В комплекте идет «темная тема». Переключить можно переименовав файл css_night.php в просто css.php

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

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

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

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

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

ближайшие Вебинары

ONLINE

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