Эх не успеваю буквально ничего, завален работенкой)) Интернет давать не хотели, пришлось самому брать, “ашопоробыш”
Одна из задач Телепрезенс на коленке из зоопарком железа)
Благо в Астериске 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