ConfBridge

Эх не успеваю буквально ничего, завален работенкой)) Интернет давать не хотели, пришлось самому брать, «ашопоробыш»
Одна из задач Телепрезенс на коленке из зоопарком железа)
Благо в Астериске 10 добавили почти такую возможность в виде ConfBridge.
Из минусов хотелось бы отметить отсутствие веб ифейса(сказали мастерить самому)

Немного истории
В Asterisk’е есть такие приложения для конференций:
MeetMe — самое первое приложение, которое требовало плату Digium для тайминга (или другое zaptel устройство). В 10ке обьявлено deprecated.
app_conference — первое приложение, в котором уже не требовалось устройство для тайминга.
app_konference — форк от вышестоящего приложения, с расширенным функционалом. Поддерживает video, что позволяет его использовать в качестве сервиса селекторной видео связи (изображение только одного участника, с переключение картинки по DTMF или распознаванию говорящего).
И наш ХэдЛайнер:
ConfBridge — заново изобретенный MeetMe от команды разработчиков Asterisk. Архитектура этого приложения основана на bridging framework, появившийся в Asterisk 1.6.
+Не требует устройства для тайминга.
+Поддерживает любые кодеки, включая HD (audio).
-Не выполняет функции MCU, т.е. не занимается транскодингом или объединением видео, т.е. по прежнему это селекторная видео связь.
С помощью AMI и менюшек мы можем побороть этот недостаток)

ConfBridge основы:
Conference Number(Номер конфернеции)
Bridge Profile(Профиль конференции, у каждой конференции должен быть свой профиль и только один)
User Profile(Профиль пользователя, определяет права пользователя, у каждого пользователя может быть свое меню)
Conference Menu(Меню конференциии- набор DTMF-комбинаций управления конференцией. У каждого пользователя может быть своя менюха)

Настройки хранятся в confbridge.conf
Содержит 3 раздела:
[general] (не используется, зарезервирована для дальнейшего использования)
[default_bridge] — настройки конференции по умолчанию, когда не задан профиль при входе в конференцию.
[default_user] — настройки пользователя по умолчанию, когда не задан профиль при входе в конференцию.

Существует 3 типа профилей(задается с помощью поля type):
bridge
user
menu

Опции раздела Bridge:

Опция Значение Описание
type bridge Указывает что этот раздел описывает настройки бриджа(конференции)
max_members 50 Максимальное количество участников конференции
record_conference yes/no записывать ли конференцию(Начало записи, когда первый подключился, конец — последний вышел) Имя файла по умолчанию ‘confbridge-<имя конференции>—<время_начала>.wav формат по умолчанию 8kHz. Файл будет находиться в папке мониторинга, которая задана в asterisk.conf. По умолчанию эта опция отключена
record_file путь, напр.: /tmp/myfiles Имя файла куда будет писаться конференция, по умолчанию spool/monitory. Лучше не использовать эту опцию, а отдать это на откуп астериску, но если хотите, то позаботьтесь о том чтобы конференции не использовали одинаковое имя файлов.
internal_sample_rate auto, 8000, 12000, 16000, 24000, 32000, 44100, 48000, 96000, 192000 Устанавливает внутренний битрейд конференции. «auto» позволяет астериску настроить соотношение качество/производительность основываясь на составе участников. Если число не соответствует битрейду который поддерживается в Асетриске, то будет использоваться ближайшее подходящее значение.
mixing_interval 10, 20, 40, 80 Установка, в миллисекундах, определяющая внутреннюю нарезку звуковых потоков на семплы для их смешивания(микширования). По умолчанию, продолжительность семплов, которые будут смешиваться для получения исходящего звукового потока равен: 20ms. Этот параметр влияет на то на сколько «жестким» или «свободным» будет смикшированный сигнал конференции. Меньшие интервалы обеспечивают более «жесткий» звук с меньшей задержкой в конференции, но требуют больше ресурсов системы. Высокие значения создают более «свободный» звук с большими задержками, но требуют меньше ресурсов системы.
video_mode none, follow_talker, last_marked, first_marked Настройка способа распределения видео (в отличие от аудио) между участниками конференции. Участники видеоконференции должны использовать одинаковый видео кодек. Confbridge не предоставляет функциональность MCU сервера. Он не производит перекодирование между видеокодеками, на масштабирует видео и не производит никаких иных действий с видеосигналом. Значение «none» указывает, что нет источника видеосигнала по умолчанию, который увидят участники конференции, и источник видеосигнала будет выбран позже посредством AMI или DTMF меню. Значение «follow_talker» переключает видеосигнал на говорящего в данный момент участника конференции. Значение «last_marked,» выбирает последнего вошедшего в конференцию пользователя, с которого есть видеосигнал и который отмечен как “marked user” в качестве единственного источника видео для всех участников конференции. Когда данный пользователь покидает конференцию, предыдущий “marked user”, с которого поступает видеосигнал, становиться источником видео для всех участников конференции. Значение «first-marked» выбирает первого вошедшего в конференцию пользователя, с которого есть видеосигнал и который отмечен как “marked user” в качестве единственного источника видео для всех участников конференции. Если данный участник выходит из конференции, то следующий пользователь, отмеченный как “marked user” становиться источником видеосигнала всех участников конференции. Использование видео в сочетании с использованием jitterbuffer для звука может приводить к рассинхронизации изображения и звука, т.к. jitterbuffer работает только для звукового потока. Следовательно, следует отключать Jitterbuffer при использовании видео в конференции.

Также можно настроить звук для определенного действия, из названия переменных можно понять их назначение:
sound_join(обычно пик)
sound_leave (обычно пик)
sound_has_joined (пользователь такой-то присоединился)
sound_has_left (пользователь такой-то покинул)
sound_kicked (звук тому кого кикнули)
sound_muted (звук тому, кому вырубили микрофон)
sound_unmuted (звук тому, кому врубили микрофон)
sound_only_person (звук если только один человек в конференции)
sound_only_one (звук тому кто один в конференции)
sound_there_are (сколько человек в конференции)
sound_other_in_party (используется вместе с «sound_there_are»)
sound_place_into_conference (играет когда кто-то находиться в конференции, в ожидании marked участника)
sound_wait_for_leader (Звук который играет когда пользователь в конференции, но не может начать пока не зайдет marked учатсник)
sound_leader_has_left (звук когда marked участник покинул конференцию)
sound_get_pin (звук с требованием ввода пина)
sound_invalid_pin (звук при неправильном вводе пина(3 раза))
sound_locked (играет когда пользователь пытается подключиться в заблокированную конференцию)
sound_locked_now (играет участнику с админскими правами о том что конференция только что была заблокирована)
sound_unlocked_now (играет участнику с админскими правами о том что конференция только что была разблокирована)
sound_error_menu (играет когда выбран несуществующий пункт меню)

Пример:

[fancybridge]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=yes

Раздел настройки профиля пользователя
Здесь и далее Marked пользователь — Ведущий конференции

Опция Значение Описание
type user Указывает что этот раздел описывает настройки пользователя
admin yes/no Административная учетная запись или нет
marked yes/no Marked(Ведущий конференции) пользователь или нет
startmuted yes/no При подключении включен ли микрофон или нет
music_on_hold_when_empty yes/no Должна ли играть музыка если один участник в конференции или когда пользователь ожидает marked пользователя для входа в конференцию. По умолчанию откл
music_on_hold_class class Класс музыки на удержании
quiet yes/no Если установлено в «yes,» то сообщения участникам о входе или выходе пользователя конференции и приветствия самому пользователю входящему в конференцию проигрываться не будут. По умолчанию: no.
announce_user_count yes/no Устанавливает, будет ли проигрываться анонс числа участников конференции входящему в конференцию пользователю. По умолчанию: no.
announce_user_count_all yes/no; или целое число Устанавливает, будет ли проигрываться анонс числа участников конференции всем ее участникам, когда новый пользователь входит в нее. Если аргументом является число, то анонс будет производиться если число участников конференции превышает указанное значение.
announce_only_user yes/no Играть приветствие при входе пользователя в пустую конференцию
wait_marked yes/no Должен ли пользователь ждать marked пользователя перед входом в конференцию
end_marked yes/no Если установлено yes, то все пользователи будут удалены из конференции после выхода marked пользователя
dsp_drop_silence yes/no Блокирует то что Астериск посчитал шумом. Радикально улучшает производительность, и помогает удалить нарастание фонового шума. Очень рекомендуется для больших конференций.
dsp_talking_threshold целое число, мс По умолчанию 160мс, продолжительность звука выше определенного уровня, который DSP считает базовым уровнем тишины, выше этого уровня считается, что пользователь говорит. Влияет на:
Аудио микшируется только с тех кто говорит. Если установлено слишком широкое значение, то пользователь будет слышать себя очень кратко(начало будет отрезаться), пока DSP не определит, что пользователь действительно говорит.
Если установлено слишком маленькое значение, могут быть ложные срабатывания AMI от фонового шума.
dsp_silence_threshold целое число, мс По умолчанию 2500, продолжительность звука, ниже определенного уровня который DSP считает базовым уровнем тишины, ниже этого уровня считается, что пользователь молчит. При низком значение, могут быть ложные срабатывания при длинных паузах между предложениями, при маленьких значениях речь может казаться странной)
talk_detection_events yes/no Должны ли посылаться АМI сообщения, при определении начала/конца речи.
denoise yes/no Должен ли включаться фильтр шума перед микшированием. по умолчанию нет. Требуется установленный codec_speex . не путать с drop_silence. denoise убирает фоновый шум у пользователя, с сохранением речи. Немного ресурсоемкая операция, и не убирает шум из конференции.
jitterbuffer yes/no Нужно ли использовать джитбуфер перед микшированием. очень рекомендуется, но добавляет небольшую задержку, и вносит небольшую потерю производительности. Включение этого параметра приводит к неявному использованию функции плана набора JITTERBUFFER с адаптивным jitterбуфером по умолчанию. Для более тонкой настройки jitter буфера, выключите этот параметр и используйте функцию плана набора JITTERBUFFER для канала перед тем, как абоненты попадут в приложение ConfBridge.
pin цифры Пин-код для подключения к конференции
announce_join_leave yes/no Если включено, пользователю будет предложено представиться перед тем, как он войдет в конференцию. После того, как имя будет записано, оно будет использоваться в сообщениях о входе и выходе пользователя в конференцию. По умолчанию: no.
dtmf_passthrough yes/no Должен ли пользователь получать DTMF от других пользователей конференции. По умолчанию нет.
announcement(новое в 11 версии) путь к файлу Проигрывает заданный файл при подключении к конференции

Пример:

[fancyuser]
type=user
music_on_hold_when_empty=yes
music_on_hold_class=default
announce_user_count_all=yes
announce_join_leave=yes
dsp_drop_silence=yes
denoise=yes
pin=456

Настройка меню:

Опция Значение Описание
type menu Указывает, что в данном разделе описывается конфигурация меню конференции
playback (<имя звукового файла1>&< имя звукового файла 2>&…) Воспроизведение пользователю аудио-файла или списка звуковых файлов, имена которых разделены символом ‘&’, затем возвращает пользователя в конференцию.
playback_and_continue (<имя звукового файла 1>&< имя звукового файла 2>&…) Воспроизведение пользователю аудио-файла или списка звуковых файлов, имена которых разделены символом ‘&’, при этом продолжая ожидать ввода DTMF последовательности. Можно применять как голосовая помощь по пунктам меню. Обратите внимание, что при получении любого DTMF символа прерывает воспроизведение файлов.
toggle_mute Включение или выключение микрофона. Если у пользователю выключен микрофон, он не может общаться с другими пользователями конференции, но он по прежнему может слышать всех пользователей конференции. В режиме выключенного микрофона, DTMF команды по прежнему могут быть приняты и обработаны.
no_op Задает пустое действие. Его единственная реальная задача – дать возможность зарезервировать последовательность в конфигурации для выхода из меню.
decrease_listening_volume Уменьшение уровня громкости у абонента. Все что он слышит, будет звучать тише.
increase_listening_volume Увеличение уровня громкости у абонента. Все что он слышит, будет звучать громче.
reset_listening_volume Сброс уровня громкости у абонента в значение по умолчанию.
decrease_talking_volume Уменьшение уровня громкости звука поступающего от абонента в конференцию. Все что он говорит, будет звучать тише у других участников конференции.
increase_talking_volume Увеличение уровня громкости звука поступающего от абонента в конференцию. Все что он говорит, будет звучать громче у других участников конференции.
reset_talking_volume Сброс уровня громкости звука поступающего от абонента в значение по умолчанию.
dialplan_exec (context,exten,priority) Позволяет выйти из конференции и выполнить команды плана набора. По окончанию выполнения команд пользователь будет возвращен обратно в конференцию.
leave_conference Позволяет пользователю покинуть конференцию и продолжить для него выполнение команд плана набора.
admin_kick_last Позволяет администратору исключить последнего вошедшего пользователя из конференции. Эта команда работает только для тех пользователей, для которых установлен признак администратора конференции в профиле пользователя.
admin_toggle_conference_lock Позволяет администратору закрыть или открыть доступ в конференцию. Когда конференция закрыта, только администраторы конференции могут в нее зайти. Если конференция открыта, то в нее может войти любой пользователь, пока не достигнуто ограничение на количество участников, заданное в параметре max_members профиля конференции. Эта команда работает только для тех пользователей, для которых установлен признак администратора конференции в профиле пользователя..
set_as_single_video_src Позволяет пользователю установить себя в качестве единственного источника видео для всех участников конференции. Это действие отменяет настройки в параметре video_mode.
release_as_single_video_src Позволяет пользователю снять с себя обязанности источника видео для всех участников конференции. После снятия источника видео и/или, если video_mode установлено в значение «none,» результатом выполнения этой команды будет возврат к видео режиму, который был установлен в профиле конференции. Если пользователь не был источником видеосигнала для конференции, то эта команда не производит ни каких действий. Также нет никаких гарантий, что при использовании этой команды пользователь в дальнейшем не станнит источником видеосигнала для конференции.
participant_count(новое в 11 Версии) Воспроизведет к-во участников конференции
admin_toggle_mute_participants(новое в 11 Версии) Отключить микрофоны всем НЕ админам, и сообщает об этом в конференцию

Пример:
В данном примере, мы создаем меню с именем «fancymenu.» В этом меню мы будем использовать множество действий, которые были перечислены выше. Первое что мы делаем – это создаем голосовую подсказку по всем пунктам меню, если пользователь нажал кнопку *. Поскольку мы сделали это с помощью команды playback_and_continue, мы определим все остальные пункты меню как «подмножество» команды , которые начинаются с символа *. Например, *4, т.к. пользователь может сначала нажать звездочку *, потом прослушал голосовую подсказку и после этого уже нажать кнопку команды, например: 4, чтобы выполнить те действия, которые ему нужны. В дополнение к этому, мы продублировали команды с вариантом без звездочки *, т.к. пользователь мог уже сто раз слышать это меню и уже знает какую кнопку нажать, чтобы выполнить нужное действие.

[fancymenu]
type=menu
*=playback_and_continue(conf-togglemute&press&digits/1&silence/1&conf-leave&press&digits/2&silence/1&add-a-caller&press&digits/3&silence/1&conf-decrease-talking&press&digits/4&silence/1&reset-talking&press&digits/5&silence/1&increase-talking&press&digits/6&silence/1&conf-decrease-listening&press&digits/7&silence/1&conf-reset-listening&press&digits/8&silence/1&conf-increase-listening&press&digits/9&silence/1&conf-exit-menu&press&digits/0)
*1=toggle_mute
1=toggle_mute
*2=leave_conference
2=leave_conference
*3=dialplan_exec(addcallers,1,1)
3=dialplan_exec(addcallers,1,1)
*4=decrease_listening_volume
4=decrease_listening_volume
*5=reset_listening_volume
5=reset_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=reset_talking_volume
8=reset_talking_volume
*9=increase_talking_volume
9=increase_talking_volume
*0=no_op
0=no_op

Особое внимание в этом примере стоит уделить использованию параметра меню dialplan_exe. В этой команде мы указали «addcaller,1,1» в качестве аргумента. Это означает, что если кто-либо нажмет кнопку 3, то Asterisk ненадолго выведет его из конференции для того, чтобы выполнить команду плана набора с приоритетом 1 для экстеншена 1 в контексте addcaller (extensions.conf). Наш план набора, который включает контекст addcaller, может выглядеть примерно так:

[addcaller]
exten => 1,1,Originate(SIP/otherpeer,exten,conferences,100,1)

[conferences]
exten => 100,1,ConfBridge(1234)

Таким образом, когда кто-то нажимает «3» он подключает SIP/otherpeer к конференции. Когда вызов прошел, человек который нажал 3, возвращается в конференцию.

Приложение ConfBridge

ConfBridge([confno][,bridge_profile[,user_profile[,menu]]])

В приложении ConfBridge используются следующие аргументы:
confno – номер конференции.
bridge_profile – Имя профиля конференции, описанного в файле конфигурации confbridge.conf. Если аргумент не указан, будет использован динамический профиль конференции, созданный для данного канала функцией плана набора CONFBRIDGE. Если динамический профиль конференции не был создан, то будет использоваться профиль с именем ‘default_bridge’ из файла конфигурации confbridge.conf.

Важно отметить, что в то время как профили пользователей являются уникальными для каждого участника, профиль конференции являются уникальным для конференции, но * не * для пользователя. Следовательно, Вы можете создать только один профиль конференции для каждой из конференции.

user_profile — Имя профиля пользователя, описанного в файле конфигурации confbridge.conf. Если аргумент не указан, будет использован динамический профиль пользователя, созданный для данного канала функцией плана набора CONFBRIDGE. Если динамический профиль пользователя не был создан, то будет использоваться профиль с именем ‘default_user’ описанный в файле конфигурации confbridge.conf.
menu — Имя DTMF меню, описанного в файле конфигурации confbridge.conf, которое будет использоваться в конференции для данного канала. По умолчанию, если этот параметр опущен, в конференции не будет использоваться меню.

Пример 1
В этом примере, абоненты помещаются в в конференцию с номером 1234, используется профиль конференции и профиль пользователя по умолчанию, у конференции нет меню.

exten => 1,1,Answer()
exten => 1,n,ConfBridge(1234)

Пример2
В данном пример, абонент будет присоеденен к конференции с номером 1234,с профилем конференции по умолчанию, с профилем пользователя под именем «1234_participants» и будет использоваться меню конференции с именем «1234_menu».

exten => 1,1,Answer()
exten => 1,n,ConfBridge(1234,,1234_participants,1234_menu)

ФУНКЦИИ Диалплана
CONFBRIDGE(type,option) -Функция устанавливает на текущем канале параметры динамического профиля пользователя или конференции для их последующего использования в приложении ConfBridge. Используются те же параметры, что и в файле конфигурации confbridge.conf.
Используется в качестве аргумента функции SET, как имя переменной, которую требуется установить.
type: Тип профиля, параметры которого мы хотим установить. Тип профиля может быть или ‘bridge’ или ‘user’.
option: Параметр профиля, который мы хотим установить для текущего канала. Имена параметров идентичны используемым в файле конфигурации confbridge.conf.

Пример 1
В этом примере настраивается профиль пользователя для текущего канала, который будет использоваться автоматически приложением ConfBridge.

exten => 1,1,Answer()
exten => 1,n,Set(CONFBRIDGE(user,announce_join_leave)=yes)
exten => 1,n,Set(CONFBRIDGE(user,startmuted)=yes)
exten => 1,n,ConfBridge(1)

Пример 2
В данном примере показано, как использовать уже описанные в файле confbridge.conf профиль пользователя или конференции, в качестве шаблона для динамически создаваемого профиля. Тут мы устанавливаем пользовательские флаги ‘admin’ и ‘marked’ для профиля пользователя ‘default_user’, который уже описан в файле конфигурации confbridge.conf.

exten => 1,1,Answer()
exten => 1,n,Set(CONFBRIDGE(user,template)=default_user)
exten => 1,n,Set(CONFBRIDGE(user,admin)=yes)
exten => 1,n,Set(CONFBRIDGE(user,marked)=yes)
exten => 1,n,ConfBridge(1)

CONFBRIDGE_INFO(type,conf) — Получение информации о конференции
type: Тип получаемой информации. Может быть: parties, admins, marked или locked.
conf: Имя конференции, параметры которой необходимо получить.
Функция возвращает положительное число, если имя конференции правильное 0 или 1( для запроса параметра конференции ‘locked’) или «», если имя конференции неправильное или она не существует.

CLI команды для ConfBridge

ConfBridge предлагает несколько команд, которые могут быть вызваны из Asterisk CLI.

confbridge kick «conference» «channel»
Удаляет указанный канал из конференции, например:

*CLI> confbridge kick 1111 SIP/mypeer-00000000
Kicking SIP/mypeer-00000000 from confbridge 1111

confbridge list
Показывает краткий список всех конференц-комнат, например:

*CLI> confbridge list
Conference Bridge Name           Users  Marked Locked?
================================ ====== ====== ========
1111                                  1      0 unlocked


confbridge list «conference»

Показывает подробный список участников указанной конференции, например:

*CLI> confbridge list 1111
Channel                       User Profile     Bridge Profile   Menu
============================= ================ ================ ================
SIP/mypeer-00000001          default_user     1111             sample_user_menu 

confbridge lock «conference» — Закрывает вход в указанную конференцию, только администраторы конференции могут войти.
confbridge unlock «conference» — Открывает вход в указанную конференцию.
confbridge mute «conference» «channel» — Выключение микрофона конкретного пользователя в указанной конференции
confbridge unmute «conference» «channel» — Включает микрофон конкретного пользователя в указанной конференции

confbridge record start «conference» «file»

Включает запись конференции.Если указан аргумент «file», то для записи используется указанное имя файла, иначе используется имя из параметра record_file профиля конференции. Если в профиле конференции не указан параметр record_file, имя автоматически будет сгенерировано сервером Asterisk в директории “monitor”.

confbridge record stop «confererence» — Останавливает запись указанной конференции
confbridge show menus — Выводит список меню конференций, которые определены в файле конфигурации confbridge.conf
confbridge show menu «menu name» — Показывает подробный список меню конференций
confbridge show profile bridges — Выводит список профилей конференций, которые определены в файле конфигурации confbridge.conf
confbridge show profile bridge «bridge» — Показывает подробный список профилей конференций
confbridge show profile users — Выводит список профилей пользователей, которые определены в файле конфигурации confbridge.conf
confbirdge show profile user «user» — Показывает подробный список профилей пользователей

ConfBridge команды для Asterisk Manager Interface (AMI)

ConfbridgeList
Список всех пользователей в конференции ConfBridge. Результат запроса ConfbridgeList приходит в виде отдельных событий, завершает его финальное событие с именем ConfbridgeListComplete
Пример

Action: ConfbridgeList 
Conference: 1111 

Response: Success 
EventList: start 
Message: Confbridge user list will follow 

Event: ConfbridgeList 
Conference: 1111 
CallerIDNum: malcolm 
CallerIDName: malcolm 
Channel: SIP/malcolm-00000000 
Admin: No 
MarkedUser: No 

Event: ConfbridgeListComplete 
EventList: Complete 
ListItems: 1

ConfbridgeListRooms
Список всех активных конференции. Результат запроса ConfbridgeListRooms приходит в виде отдельных событий, завершает его финальное событие с именем ConfbridgeListRooms
Пример

Action: ConfbridgeListRooms 

Response: Success 
EventList: start 
Message: Confbridge conferences will follow 

Event: ConfbridgeListRooms 
Conference: 1111 
Parties: 1 
Marked: 0 
Locked: No 

Event: ConfbridgeListRoomsComplete 
EventList: Complete 
ListItems: 1

ConfbridgeMute
Выключает микрофон указанного пользователя в конкретной конференции.
Пример

Action: ConfbridgeMute
Conference: 1111
Channel: SIP/mypeer-00000001

Response: Success
Message: User muted

ConfbridgeUnmute
Включает микрофон указанного пользователя в конкретной конференции.
Пример

Action: ConfbridgeUnmute 
Conference: 1111 
Channel: SIP/mypeer-00000001 

Response: Success 
Message: User unmuted

ConfbridgeKick
Удаляет указанного пользователя из конкретной конференции.
Пример

Action: ConfbridgeKick 
Conference: 1111 
Channel: SIP/mypeer-00000001 

Response: Success 
Message: User kicked

ConfbridgeLock
Закрывает вход в указанную конференцию.
Пример

Action: ConfbridgeLock
Conference: 1111

Response: Success
Message: Conference locked


ConfbridgeUnlock

Открывает вход в указанную конференцию.
Пример

Action: ConfbridgeUnlock 
Conference: 1111 

Response: Success 
Message: Conference unlocked


ConfbridgeStartRecord

Включает запись указанной конференции. Если конференция уже записывается, будет возвращено сообщение об ошибке. Если указан RecordFile, то для записи используется указанное имя файла, иначе используется имя из параметра record_file профиля конференции. Если в профиле конференции не указан параметр record_file, имя автоматически будет сгенерировано сервером Asterisk в директории “monitor”.
Пример

Action: ConfbridgeStartRecord 
Conference: 1111 

Response: Success 
Message: Conference Recording Started. 

Event: VarSet 
Privilege: dialplan,all 
Channel: ConfBridgeRecorder/conf-1111-uid-1653801660 
Variable: MIXMONITOR_FILENAME 
Value: /var/spool/asterisk/monitor/confbridge-1111-1303309869.wav 
Uniqueid: 1303309869.6

ConfbridgeStopRecord
Останавливает запись указанной конференции.
Пример

Action: ConfbridgeStopRecord 
Conference: 1111 

Response: Success 
Message: Conference Recording Stopped. 

Event: Hangup 
Privilege: call,all 
Channel: ConfBridgeRecorder/conf-1111-uid-1653801660 
Uniqueid: 1303309869.6 
CallerIDNum:  
CallerIDName:  
Cause: 0 
Cause-txt: Unknown

ConfbridgeSetSingleVideoSrc
Устанавливает указанного пользователя конференции в качестве единственного источника видео для всех остальных участников конференции, способных принимать видео.
Пример

Action: ConfbridgeSetSingleVideoSrc 
Conference: 1111 
Channel: SIP/mypeer-00000001 

Response: Success 
Message: Conference single video source set.

ConfBridge события Asterisk Manager Interface (AMI)

ConfbridgeStart
Это событие будет отправлено, когда первый пользователь входит в конференцию и создается новая комната конференции.
Пример

Event: ConfbridgeStart 
Privilege: call,all 
Conference: 1111

ConfbridgeJoin
Это событие будет отправлено, когда пользователь входит в конференцию, как в случае, если он входит в уже существующую конференцию, так и в случае, если создается новая комната конференции.
Пример

Event: ConfbridgeJoin 
Privilege: call,all 
Channel: SIP/mypeer-00000001 
Uniqueid: 1303309562.3 
Conference: 1111 
CallerIDnum: 1234 
CallerIDname: mypeer

ConfbridgeLeave
Это событие будет отправлено, когда пользователь покидает конференцию.
Пример

Event: ConfbridgeLeave 
Privilege: call,all 
Channel: SIP/mypeer-00000001 
Uniqueid: 1303308745.0 
Conference: 1111 
CallerIDnum: 1234 
CallerIDname: mypeer


ConfbridgeEnd

Это событие будет отправлено, когда последний пользователь покидает конференцию и конференц комната закрывается.
Пример

Event: ConfbridgeEnd 
Privilege: call,all 
Conference: 1111


ConfbridgeTalking

Это событие отсылается, когда конференция определяет, что какой-либо пользователь начал говорить ли замолчал.
Пример события начала разговора

Event: ConfbridgeTalking 
Privilege: call, all 
Channel: SIP/mypeer-00000001 
Uniqueid: 1303308745.0 
Conference: 1111 
TalkingStatus: on

Пример события окончания разговора

Event: ConfbridgeTalking 
Privilege: call, all 
Channel: SIP/mypeer-00000001 
Uniqueid: 1303308745.0 
Conference: 1111 
TalkingStatus: off

Литература:
https://wiki.asterisk.org/wiki/display/AST/ConfBridge+10
http://voip.rus.net/tiki-index.php?page=Asterisk+ConfBridge

Комментарии: