Возникла необходимость организовать IP-PBX Elastix v2.5 конференц-зал. Просто, что бы в нем могли собраться сразу несколько сотрудников и что-то обсудить. Задача осложнялась только тем, что необходимо было обеспечить возможность подключать к конференц-связи внешних абонентов. Поэтому встроенных возможностей Elastix оказалось недостаточно.
Реализовывать задачу будем на базе функционала ConfBridge. Начнем с его настройки. Добавим в файл "/etc/asterisk/confbridge_custom.conf" следующие строки, тем самым задав параметры по умолчанию:
[general]
[default_bridge]
type=bridge
language=ru
record_conference=no
video_mode=none[default_user]
type=user
admin=no
marked=no
startmuted=no
music_on_hold_when_empty=yes
quiet=no
announce_user_count=yes
announce_user_count_all=yes
announce_only_user=yes
wait_marked=no
end_marked=no
dsp_drop_silence=yes
talk_detection_events=no
denoise=yes
jitterbuffer=yes
announce_join_leave=no
dtmf_passthrough=no
Создадим конференц-зал под номером 00. Идея заключается в том, что любой внутренний абонент может позвонить на специальный сервисный номер *00. Тем самым он как бы входит в конференц-зал и всего его участники могут одновременно разговаривать друг с другом. Для этого модернизируем план нумерации, добавив в файл "/etc/asterisk/extensions_custom.conf" следующие строки:
[macro-confbridge]
exten => s,1,ChannelRedirect(${BRIDGEPEER},confbridge,*00,1)
exten => s,n,agi(googletts.agi,"Конференц-связь запущена.",ru)
exten => s,n,Answer()
exten => s,n,ConfBridge(00)
exten => s,n,agi(googletts.agi,"Конференц-связь остановлена.",ru)
exten => s,n,Hangup[confbridge]
exten => *00,1,agi(googletts.agi,"Конференц-связь запущена.",ru)
exten => *00,n,Answer()
exten => *00,n,ConfBridge(00)
exten => *00,n,agi(googletts.agi,"Конференц-связь остановлена.",ru)
exten => *00,n,Hangup
Для чего нужен макрос "macro-confbridge" станет ясно немного позже.
Один из вариантов, посредством, которого внешний абонент может зайти в конференц-зал, это позвонить на специальный номер ТСОП. В этом случае необходимо в разделе "Inbound Routes" создать для него специальный "Custom Destinations".