Система Asterisk поддерживает функцию конференц-связи с неограниченным (искусственными лимитами) числом пользователей. Выполняет данную стандратное приложение астериск MeetMe(app_meetme.so). О том как решить некоторые возникшие проблемы читайте здесь.
Возможности
Перечень осноынх фич перечислен ниже:
- динамическое создание конференций;
- зашита конференции паролем, набираемым через dtmf;
- разделение ролей (админ, полноправный участник, слушаетель);
- Обяъвления о числе участников конференции, входе и выходе из конферененции;
- поддержка музыки-на-удержании (music-on-hold, MoH);
- запись конференции в внешний аудио-файл (wav, mp3, ogg и др);
- обнаружение говорящего (talker detection);
- предоставление меню для навигации при помощи dtmf;
- и др.;
Установка
Для того, чтобы на вашем Asterisk заработала Конференция (Meetme) вам необходимо: установить Zaptel и Asterisk с опцией --with-zaptel (об этом читайте здесь).
Файл настройки конференций (/etc/asterisk/meetme.conf). Этот файл срабатывает (считывается) всегда при выполнение команды app_meetme(). Для создания комнаты вам нужно использовать: conf=>номер конференции, код, код админа.
[general]
audiobuffers=32 ; буферизация звука
; Минимальная величина - 2,; максимальная величина - 32.
[rooms] ;комнаты для конференции
conf=>400
Итак, в файле конфигурации добавили комнату для конференции. Теперь надо направить звонок в комнату, делается это в файле /etc/asterisk/extensions.conf:
[confs]
exten=>400,1,meetme(400)
[demo]
include=>confs
MeetMe(номер конференции[|Опции])
Опции
- '1' — не произносить фразу "you are currently the only person in this conference" (вы являетесь первым участником телеконференции) первому подключившемуся к конференции пользователю.
- 'a' — войти в режиме администратора конференции.
- 'A' — включить мод главного юзера.
- 'b' — выполнить AGI скрипт указанные в ${MEETME_AGI_BACKGROUND} Default: conf-background.agi Это не работает с non-Zap каналы на ту же конференцию.
- 'd' — Добавить конференцию динамично - голосовое меню просит ввести номер конференции (после введения номера следует нажать клавишу[#]), если конференция с введенным номером не создана, то она создается и пользователь подключается к ней. Без использования PIN
- 'D' — Добавить конференцию динамично , c использованием PIN.
- 'e' — выбрать свободную конференцию.
- 'E' — выбрать свободную конференцию без кода.
- 'I' – анонсировать о заходе юзера в конференцию.
- 'm' — включить Музыку заднего фона, если нет обсуждения в конференции.
- 'M' — включить запись.
- 'p' — выгрузить всех юзеров из конференции с помощью '#'.
- 'q' — тихий способ (не проигрывается оповещения (вход /выход юзера)).
- 'r' — Запись конференции (использовать с ${MEETME_RECORDINGFILE} формат файла ${MEETME_RECORDINGFORMAT}). По умолчанию meetme-conf-rec-${CONFNO}-${UNIQUEID} и ормат wav.
- 's' — Дать возможность пользователям входить в меню (юзера или админа) с помощью '*'.
- 't' — разрешить только разговор (не слышно).
- 'T' — использовать детектор разговора.
- 'v' — разрешить использование видео.
- 'w' — ждать пока главный юзер не зайдет в конференцию.
- 'x' — закрыть конференцию если главный юзер вышел.
Пример:
exten=>401,1,meetme(|MD)
При звонке с любого SIP на номер 401, голосовое меню произносит:
"Введите номер конференции и завершите ввод нажатием на кливишу [#]"
если конференция еще не создана, то:
"Введите PIN конференции и завершите ввод нажатием на кливишу [#]"
"Введите PIN конференции и завершите ввод нажатием на кливишу [#]" - для подтверждения
если конференция уже создана, то вы будете подключены к ней, если на конференции стоит PIN, то вам потребуется ввести его.
Решение возникших проблем
Во-первых после каждого перезапуска необходимо подгружать модули ядра zaptel и ztdummy - можно вручную или добавить в автозагрузку.
Так вот, для проверки загружености указанных модулей выполняем:
# lsmod| grep zaptel
Если в выведеных строчках есть zaptel и ztdummy, тогда все ОК, иначе выполняем следующее:
# modprobe zaptel
# modprobe ztdummy
Также после каждого перезапуска компьютера, необходимо выполнить еще пару команд, поскольку очень странный глюк (видимо по недосмотру разработчиков) не позволяет создаться конференции, а именно, появление ошибки о невозможности подключения к устройству (в трубку звонящий абонент услышит сообщение, что номер конференции неверен), вызвано тем, что есть специальное устройство /dev/zappseudo, но астериск пытается подключиться к /dev/zap/pseudo, которого конечно же нет. Ну что же, не будем расстраивать астериск и дадим ему то, что он хочет:
# mkdir /dev/zap/
# mknod /dev/zap/pseudo c 196 255
или можно так:
# mkdir /dev/zap/
# ln -s /dev/zappseudo /dev/zap/pseudo
Источник: http://asteriskpbx.ru/wiki/MeetMe |