Организация конференц-связи на базе Asterisk
Система Asterisk поддерживает функцию конференц-связи с неограниченным (искусственными лимитами) числом пользователей. Выполняет данную стандратное приложение астериск Организация конференц-связи на базе Asterisk (app_meetme.so).
Возможности
Перечень осноынх фич перечислен ниже:
- динамическое создание конференций;
- зашита конференции паролем, набираемым через dtmf;
- разделение ролей (админ, полноправный участник, слушаетель);
- Обяъвления о числе участников конференции, входе и выходе из конферененции;
- поддержка музыки-на-удержании (music-on-hold, MoH);
- запись конференции в внешний аудио-файл (wav, mp3, ogg и др);
- обнаружение говорящего (talker detection);
- предоставление меню для навигации при помощи dtmf;
- и др.;
Установка
Для того, чтобы на вашем Asterisk заработала Конференция (Meetme) вам необходимо:
Установить Zaptel (нужен ztdummy в случае если нет Digium железа. Если есть Digium железо meetme берет тайминг от карты.)
1. Подгрузить модули (modprobe zaptel ztdummy) и проврить lsmod:
crc_ccitt 6337 1 zaptel и zaptel 181284 73 ztdummy,zttranscode
2. Установить/пересобрать Asterisk, так как если в момент установки не было zaptel, приложение meetme не соберется. Для asterisk 1.4 надо использовать make menuselect.
3. Убедитесь, что в modules.conf нет запрета на загрузку модуля канала DAHDI. (Присутствует autoload=yes и отсутствует noload => chan_dahdi.so) Без этого модуля приложение конференций Организация конференц-связи на базе Asterisk работает некорректно.
Настройка
Файл настройки конференций (meetme.conf)
; ; этот файл срабатывает (считывается) всегда при выполнение команды app meetme() [general] ;audiobuffers=32 ; буферизация звука ; Минимальная величина - 2,; максимальная величина - 32. [rooms] ;комнаты для конференции ; ;для создания комнаты нам нужно использовать ;conf=>номер конференции, код, код админа ;Это файл конфигурации конференций (Default)
Пример meetme.conf
[general] audiobuffers=32 [rooms] conf=>2000,1234, 5889465
Итак, в файле конфигурации добавили комнату для конференции. Теперь надо звонок направить на комнату в extensions.conf используя команду Организация конференц-связи на базе Asterisk.
Организация конференц-связи на базе Asterisk(конференций,(Опции,код]) |
Опции
- '1' — не произносить фразу "you are currently the only person in this conference" (вы являетесь первым участником телеконференции) первому подключившемуся к конференции пользователю.
- 'a' — войти в режиме администратора конференции.
- 'A' — включить мод главного юзера.
- 'b' — выполнить AGI скрипт указанные в ${MEETME_AGI_BACKGROUND} Default: conf-background.agi Это не работает с non-Zap каналы на ту же конференцию.
- 'd' — Добавить конференцию динамично.
- 'D' — Добавить конференцию динамично , без использования кода.
- 'e' — выбрать свободную конференцию.
- 'E' — выбрать свободную конференцию без кода.
- 'I' – анонсировать о заходе юзера в конференцию.
- 'M' — включить Музыку заднего фона, если нет обсуждения в конференции.
- 'm' — включить запись.
- 'p' — выгрузить всех юзеров из конференции с помощью '#'.
- 'q' — тихи способ (не проигрывается оповещения (вход /выход юзера)).
- 'r' — Запись конференции (использовать с ${MEETME_RECORDINGFILE} формат файла ${MEETME_RECORDINGFORMAT}). По умолчанию meetme-conf-rec-${CONFNO}-${UNIQUEID} и ормат wav.
- 's' — Дать возможность пользователям входить в меню (юзера или админа) с помощью '*'.
- 't' — разрешить только разговор (не слышно).
- 'T' — использовать детектор разговора.
- 'v' — разрешить использование видео.
- 'w' — ждать пока главный юзер не зайдет в конференцию.
- 'x' — закрыть конференцию если главный юзер вышел.
Пример extensions.conf
exten => 2000,1,MeetMe(2000)
Если с любого СИП юзера набрать 2000 то мы попадем в конференцию с номером 2000.
Функциональные блоки
В данном разделе приводится несколько полезных функциональных блоков с использование meetme.