ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Организация конференций в FreePBX 13 | Конференц – рум
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
Пошаговое видео
Настройка
Откроется настройка конференц – рума. Давайте разберемся подробнее с каждой из настроек:
Давайте разберемся с опциями настройки:
По окончанию настройки, нажмите Submit, а затем Apply Config. Давайте разберемся, какое меню доступно для пользователя конференц комнаты при нажатии «*», если это разрешено опцией Allow Menu
| Цифра на телефоне | Действие от лидера комнаты | Действие от обычного пользователя |
|---|---|---|
| 1 | Включить/выключить звук у себя | Включить/выключить звук у себя |
| 2 | Заблокировать/разблокировать конференцию | Недоступно |
| 3 | Удалить из конференции последнего подключившегося пользователя | Недоступно |
| 4 | Уменьшить громкость звука в конференции | Та же опция, применимая к собственным настройкам пользователя |
| 5 | Сбросить громкость на настройки по умолчанию | Та же опция, применимая к собственным настройкам пользователя |
| 6 | Увеличить громкость звука в конференции | Та же опция, применимая к собственным настройкам пользователя |
| 7 | Уменьшить громкость вещания (громкость от говорящего) | Та же опция, применимая к собственным настройкам пользователя |
| 8 | Покинуть меню | Та же опция, применимая к собственным настройкам пользователя |
| 9 | Увеличить громкость вещания (громкость от говорящего) | Та же опция, применимая к собственным настройкам пользователя |
| 0 | Позволяет администратору выключать/включать звук у всех пользователей конференции | Недоступно |
| * | Озвучить возможные опции в меню | Та же опция, применимая к собственным настройкам пользователя |
| # | Покинуть конференцию | Покинуть конференцию |
Таким образом, мы разобрались как настраивать конференции в FreePBX13
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
Asterisk конференции — создание через почту
Конференц-колы это очень удобный и нужный сервис. Собирать участников просто(они сами дозваниваются и подключаются), количество абонентов почти не ограничено(пока канал не кончится), телефонные линии свободны (если конференции у вас висят на отдельном sip номере с неограниченным количеством сессий.) Есть только одно неудобство — конференция создается по заявке. И если у админа заявок море, а то и заболел (уснул, напился, умер), то создание конференц-кола сильно затягивается. К тому же пароль у постоянных конференций тоже постоянный. И в этом случае бывший участник всегда сможет к ней подключиться, а то и вообще собрать там свой митинг, что ни есть гуд. Вот такие мысли крутились в моей голове после помпезного объявления по компании о запуске конференц-колов. И решено было создание телеконференций автоматизировать.
Но! Делать мы это будем через почту. Схема следующая. Пользователь пишет письмо с определенной темой на определенный адрес. Через некоторое время ему возвращается ответ с данными телеконференции.
Действующие лица и исполнители:
Crontab — Хроноголик. Постоянно испытывает потребность следить за временем, запускает bash скрипт и сопутствующие команды.
Fetchmail — Несчастный пролетарий, которого постоянно гоняют на почту и если таковая обнаруживается бедолага вынужден тащить неподъемные сообщения на сервер при помощи MTA.
Sendmail — та самая MTA при помощи которой fetchmail таскает письма на сервер.
Sendemail — легкомысленная профурсетка, которая, думая что шлет пользователям любовные записки, на самом деле, будучи жестоко обманутая bash скриптом, отправляет ответ с настройками конференции.
Bash скрипт — злостный эксплуататор всех вышеописанных персонажей. Тем не менее тоже не в масле катается, обрабатывает полученные письма, анализирует их и создает конференции.
Далее. Crontab каждые 10 минут запускает срипт. А около 12 ночи стирает счетчик конференций и файл с временными конференциями.
Ну и наш жестокий эксплуататор:
Вот и все. Теперь рассылаем не менее помпезное заявление о создании временных телеконференций и… На ваш вкус :))
Конференц-комнаты FreePBX
Возможности современных систем телефонии не ограничиваются ведением разговоров между двумя абонентами. С помощью специального режима – конференц-связь – возможно организовать одновременное общение нескольких человек. Если в недорогих офисных мини-АТС количество собеседников, как правило, невелико (не больше 8-10 человек), то в Asterisk их максимальное число ограничивается лишь аппаратными возможностями используемого сервера. Создание конференции: Настройку будем проводить […]
Возможности современных систем телефонии не ограничиваются ведением разговоров между двумя абонентами. С помощью специального режима – конференц-связь – возможно организовать одновременное общение нескольких человек. Если в недорогих офисных мини-АТС количество собеседников, как правило, невелико (не больше 8-10 человек), то в Asterisk их максимальное число ограничивается лишь аппаратными возможностями используемого сервера.
Создание конференции:
Настройку будем проводить на FreePBX 13, в качестве телефонов будем использовать софтфон microsip и Zoiper, почитать об этих телефонах и посмотреть их настройку можно по следующей ссылке.
А мы заострять на этом внимание не будем.
Все настройки выполняем на web-интерфейсе. Подключаемся.

Далее переходим по следующему пути: Applications — Conferences

Нажимаем на +

После чего попадаем на страничку создания конференции.

Пройдемся по пунктам.
— Conference Number: номер конференции;
— Conference Name: название конференции, короткое имя для аутентификации;
— User PIN: пароль пользователя, можно требовать ввести пароль для входа пользователя в конференцию, это необязательный параметр;
— Admin PIN: пароль администратора, также необязательный параметр, если используется опция «leader wait», то этот пароль идентифицирует администратора;
— Join Message: при подсоединении к конференции пользователю будет воспроизведено это сообщение;
— Leader Wait: ждать организатора (да/нет);
— Talker Optimization: включает оптимизацию для выступающего (астериск распознает пассивных слушателей и приглушает им микрофон, тем самым уменьшая нагрузку на декодирование незадействованных каналов и снижая тем самым общий шум заднего плана;
— Talker Detection: устанавливает распознавание выступающего;
— Quiet Mode: тихий режим (не воспроизводятся сообщения о том, кто вошел или вышел из конференции);
— User Count: анонсировать кол-во участников конференции при подключении;
— User join/leave: анонсировать подключение/отключение участников;
— Music on Hold: использовать музыку в ожидании, если в конференции пока один участник;
— Music on Hold Class: выбранный аудиофайл будет воспроизводиться присутствующим, пока они ожидают начало конференции;
— Allow Menu: предоставить доступ в меню (участнику или администратору) при нажатии «*»;
— Record Conference: записывать содержимое конференции?

— Maximum Participants: максимальное кол-во пользователей, присутствующих одновременно в этой конференции;
— Mute on Join: беззвучное подключение к конференции;
Прочие настройки отличаются в зависимости от подключенных модулей. В стандартню сборк FreePBX distro, к примеру, включен iSymphony и если поставить галочку, то это добавить вашу комнату конференции в систему управления iSymphony.
Сохраняем настройки и применяем их.
Allow Menu:
Если вы оставили данный пункт включен, то появляются дополнительные возможности, давайте рассмотрим их:
Сборка конференции:
Настройки тестовой конференции можете увидеть на скриншоте ниже

Ниже можете посмотреть, каким образом собирается конференция из администратора и обычного участника. Администратор с внутренним номером 100, а обычный пользователь будет 101.
Конфигурирование и обзор возможностей видеоконференции стандартными средствами Asterisk 16
Начиная с 15-й версии Asterisk появился полноценный функционал организации видеоконференций, но наблюдались некоторые проблемы в виде рассыпания видеокартинки. В 16 версии данный функционал был доработан и улучшен режим работы с мультипотоком «SFU»(когда приходящие видео потоки рассылаются всем участникам конференции, которые поддерживают прием нескольких потоков, т.е. получаем полноценный MCU на базе Asterisk). В статье использовались файлы: […]
Начиная с 15-й версии Asterisk появился полноценный функционал организации видеоконференций, но наблюдались некоторые проблемы в виде рассыпания видеокартинки. В 16 версии данный функционал был доработан и улучшен режим работы с мультипотоком «SFU»(когда приходящие видео потоки рассылаются всем участникам конференции, которые поддерживают прием нескольких потоков, т.е. получаем полноценный MCU на базе Asterisk).
В статье использовались файлы:
cyber_mega_phone_2k-master.zip — простое клиентское приложение на стороне браузера, созданное для тестирования многопотоковых возможностей Asterisk на основе библиотеки JsSIP.
Инструкция
1. Выполним предварительные настройки FreePBX, для этого перейдём в WEB панель управления FreePBX через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида: http://IP_адрес_сервера_Asterisk/ В примере ссылка имеет вид: http://192.168.170.163/
2. Пройдём авторизацию во FreePBX, нажмём «FreePBX Administration», введем «username и password» и нажмём «Continue»
Enable the mini-HTTP Server — установите значение «true»
Enable Static Content — установите в значение «true»
Enable TLS for the mini-HTTP Server — установите в значение «true»
HTTP Bind Address — установите значение «0.0.0.0»
HTTP Bind Port — установите значение «8088»
HTTPS Bind Address — установите значение «0.0.0.0»
HTTPS Bind Port — установите значение «8089»
HTTPS TLS Certificate Location – установите директорию расположения SSL сертификата(по умолчанию: /etc/asterisk/keys/integration/certificate.pem, рекомендуется использовать LetsEncrypt сертификат вместо самоподписанного или приобрести сертификат )
HTTPS TLS Private Key Location — установите директорию расположения приватного ключа сгенерированного вместе с SSL сертификатом(по умолчанию: /etc/asterisk/keys/integration/webserver.key, рекомендуется использовать LetsEncrypt ключ вместо самоподписанного или приобрести сертификат)
ws — 0.0.0.0 – All — установите значение «Yes»
wss — 0.0.0.0 – All — установите значение «Yes»
5. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.
6. Создадим гостевую кастом учетную запись PJsip:
7. Создадим дополнительный профиль телеконференции:
8. Создадим два экстена для проверки видео конференц связи:
9. Приступим к установке Cyber Mega Phone:
10. Перейдём в WEB панель управления Cyber Mega Phone через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида: https://IP_адрес_сервера_Asterisk/cmp2k/ и выполним базовую настройку созданной нами кастом учетной записи PJsip переходом по кнопке «Account» и заполнением следующих полей:
ID – ID учетной записи PJsip(в рамках данной статьи: guest)
Authorization password — пароль учетной записи PJsip(в рамках данной статьи: guest)
Host IP/Name – IP адрес или доменное имя сервера АТС(в рамках данной статьи генерировался сертификат на доменное имя: meet-voxlink.ddns.net)
Register – снимаем регистрацию с учетной записи
Extension – экстен конференц комнаты
Заполнив все данный учетной записи выполним подключение к серверу АТС нажатием клавиши «Connect» и выполним подключение к конференц комнате нажатием клавиши «Call»
Конференц-комнаты на базе Asterisk
Предисловие
На написание данной статьи меня сподвигло 2 вещи: малое количество или вовсе отсутствие современных рабочих примеров по «фишкам» Asterisk, а так же нежелание специалистов делиться этими самыми «фишками» с остальными. Это я сейчас про РУ-комьюнити. Всякие «Деды» на форумах скорее обольют тебя помоями и отправят читать книжки десятилетней давности, чем дадут мало мальски полезную информацию. Сами же темы форумов, созданные в 2005-2010 годах, сильно устарели и иногда что то уже выпилено из текущей версии астериска, а что то надо очень сильно переделать, чтобы заработало.
Так вот.
В следствие отказа от CUCM в пользу Астериска, руководством была поставлена задача сохранить особо популярные у пользователей сервисы в максимально первозданном виде, дабы не третировать людей. Одним из таких было и создание конференций. К тому моменту с Астериском я уже был знаком, но не столь глубоко, по этому на перебор всевозможных вариантов конференции у меня ушло около полутора недель, а на окончательное решение натолкнула вообще другая задача.
Проблема заключается в том, что из похожего на решение есть статья с устаревшей meetme, а так же какой то монстр, которого у меня так и не удалось заставить работать. Я же предлагаю кое что не настолько громоздкое.
Мякотка
Описывать что такое confbridge, за что отвечают секции в том или ином конфиге и что это за опция такая, я не буду, эта информация как раз имеется и актуальна. Сейчас про решение в целом.
Задача: сделать так, чтобы конференцию можно было создать во время разговора, а затем пригласить туда еще абонентов. Основная проблема, что функция channelredirect работает не так как хотелось бы. То есть если выполнять ее из диалплана во время разговора, то один из каналов улетит куда надо, а второй разрушится, а лазать по всему диалплану на 2к строк и прописывать на Dial’ах опцию g было лениво. И мне совершенно не понятно, почему в большинстве мануалов все пытаются решить задачу только через диалплан, игнорируя возможность астериска работать с внешними скриптами и ami.
Итак. Астериск 14.4.0
Скрипт конференции на 2 варианта(c комментариями):
Гуру программирования могут исправить код, сделав из него конфетку, я писал как умел.
Далее начинаем использовать данный скрипт непосредственно в самом Астериске.
Для того, чтобы создать конференцию, я выбрал комбинацию *1. Коротко и не пересекается с основной нумерацией.
Добавляем в features.conf вызов скрипта с передачей в него требуемых переменных
Затем, чтобы это срабатывало, создаем в диалплане в секции [globals] переменную и добавляем нашу фичу
Для добавления в уже созданную конференцию новых участников, потребуется прописать код в confbridge.conf
Ну а теперь самое вкусное, extensions.ael:
Для создание конференции (сюда адресует php скрипт оба разговорных канала):
Для добавления нового пользователя (сюда адресует dialplan_exec):
Все. Никаких килотонн кода в диалплане. Все емко. *1 в разговоре и вы в конфе, еще раз *1 гудок и набор номера, кого добавить.
Наросты
Гонимый пожеланиями пользователей, я стал развивать данную фичу.
Следующим стала возможность создавать конференции с нуля (не из разговора), а так же заходить в уже созданные конференции по их номеру, а не ждать приглашающего звонка
Добавляем в диалплан:
Добавляем в скрипт:
Так же пришлось доработать строчку _*X.
Теперь чтобы войти в конференцию или создать ее с нуля, просто совершается звонок на *1 и номер, например *15234.
Финальной мутацией этого сервиса пока является так называемая «групповая конференция». Это когда большим начальникам лень всех добавлять вручную, а хочется нажать одну кнопку и все в сборе. Для этого я решил сделать отдельные сервис коды (*XXX), чтобы людям и самому не путаться. Для нашей организации вряд ли в ближайшие 100 лет потребуется over1000 конференц групп, так что запаса нумерации должно хватить. У себя вы можете добавить как другой префикс, так выделить другую номерную емкость.
Сам скрип сбора участников:
Все группы хранятся в базе данных по структуре «Группы, номер, имя, описание». Если появляется новая группа, то просто добавляем ее в базу.
Теперь для сбора, например, всех директоров на совещание, генеральному всего лишь потребуется набрать *100. А как правило у больших боссов большие телефоны. Следовательно биндим *100 на любую клавишу speeddial’а, подписываем как «директора» и пользователь вообще не заморачивается, что ему набрать. Кнопку нажал — совещание собрал.
Теперь предвосхищая ваши вопросы:
Почему скрипты и ami? Потому что средствами диалплана у меня так и не получилось сделать вменяемый редирект обоих каналов, не растеряв их по дороге. В ami же в функции redirect можно прицепить доп канал + задать ему переменную (например номер конференции, чтобы он тоже мог кого то в нее добавить).
Так же вы могли заметить, что я вынес фичи в отдельный контекст service_code-ael. Это удобно, когда всяких фич у вас становится больше пары штук. Я решил делать их через *, следовательно в любом контексте я просто пишу _*X. и адресую в этот контекст. Возможно, кто то найдет решение изящнее, но я за несколько месяцев так и не нашел. А данный функционал пришелся пользователям по душе.
Почему ael, а не conf? Ну потому что он структурированней и читать его легче
и понятнее. Одна функция gotoif чего стоит. До lua я еще не дорос.
Почему в примере массового сбора originate сделаны через bash, а не через AMI? Проблема в том, что выполняя кучу originate подряд через ami, система ждет, пока завершится предыдущий, чтобы дать следующий. А если никто не берет трубку, а там 20 секунд no_ans и таких 5 штук? Можно будет до вечера ждать сбора.
Ну вот, пожалуй, и все. Надеюсь эта статья поможет таким же ищущим, каким был я, когда все это потребовалось сделать быстро, комфортно для пользователей, а главное, чтобы в дальнейшем обслуживать данную систему было удобно самому, так сказать с заделом на будущее.