Настройка видеоконференций на asterisk 1.10 (confbridge).

В предыдущих статьях шла речь об установке asterisk 1.10 и настройке интерактивного голосового меню IVR. Сейчас хочу раскрыть тему работы с видеоконференциями на asterisk при помощи уже встроенного модуля confbridge. Модуль ставиться вместе с asterisk 1.10 (make samples). Он состоит всего из одного файла конфигураций. В полезных ссылка в конце статьи будет ссылка на подробное описание каждой опции модуля.
Пример настройки модуля:

[root@server] cat /etc/asterisk/confbridge.conf

[general]

[fancybridge]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=no
video_mode=follow_talker

[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

[fancymenu]
type=menu
*=playback_and_continue(conf-usermenu)
*1=toggle_mute
1=toggle_mute
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=leave_conference
8=leave_conference

Это было взято из примера на сайте. Теперь нужно добавить хотябы 2-х sip-юзеров для тестирования видео и добавить в диалплан astersk вызов видеоконференции.

[root@server] cat /etc/asterisk/sip.conf

[general]
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
registertimeout=30
maxexpiry=7200
minexpiry=3600
videosupport=yes

[1001]
qualify=yes
type=friend
context=phones
username=Sasha
host=dynamic
secret=1001
;nat=yes
callerid="IT Crowd"
callgroup=1
language=ru
accountcode=Alex_Gubernatrov
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
directmedia=no

[1002]
qualify=yes
type=friend
context=phones
username=Frodo
host=dynamic
secret=1002
;nat=yes
callerid="IT Crowd"
callgroup=1
language=ru
accountcode=Frodo_Sumkin
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
directmedia=no

Мы добавили 2-х sip пользователей и настроили возможность передачи видео между ними основываясь на видеокодеках h263 и h264. Т.е. софтфон обоих пользователей должен поддерживать хотя бы один из кодеков и этот кодек должен быть одинаковым у всех пользователей конференции (в настройках софтфона нужно выбрать используемый кодек).
Теперь нужно добавить в диалплан точку входа в конференцию.

[root@server] cat /etc/asterisk/extensions.conf
[globals]

[general]
static = yes
writeprotect = no
clearglobalvars = yes

[internal]
exten => _XXXX,1,Dial(SIP/${EXTEN:0})

[phones]
include => internal

exten => 111,1,Answer()
exten => 111,n,ConfBridge(1234,fancybridge,fancyuser,fancymenu)

В данному случаи при звонке на номер «111» мы присоединимся в конференцию с номером 1234 с описанными в confbridge.conf правилами и меню. Чтобы все действия вступили в силу, необходимо перегрузить настройки модуля, sip пользователей и диалплана.

[root@server] asterisk -rvvv
CLI> module reload app_confbridge.so
CLI> sip reload
CLI> dialplan reload

Для поиска проблем и неисправностей можно врубить режим отладки.

CLI> sip set debug on/off

Теперь просто ставим себе на компьютер софтфон ( к примеру, бесплатный jitsi client) и вводим в нем настройки sip аккаунта.

SIP id:	@ (в моем случаи 1001@192.168.1.201)
Password: 	1001

Если все введено верно, то на сервере asterisk в консоли выведется сообщение о подключении пользователя.

[Nov 19 04:02:02] NOTICE[29727]: chan_sip.c:21967 handle_response_peerpoke: Peer '1001' is now Reachable. (628ms / 2000ms)
[Nov 19 04:02:02] NOTICE[29727]: chan_sip.c:26165 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1001
CLI> sip show peers
Name/username  Host           Dyn Forcerport ACL Port     Status      Description
1001/Sasha     192.168.2.153  D   N              9947     OK (16 ms)

Теперь при звонке на «111» все попадают в видеоконференцию.
Также можно добавить запись этого разговора.

[root@server]  vim /etc/asterisk/extensions.conf
[...]
exten => 111,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 111,n,Monitor(wav,/home/share/monitor/${fname},mb)
exten => 111,n,ConfBridge(1234,fancybridge,fancyuser,fancymenu)
[...]

Полезные команды для прерывания/перезагрузки/включения asterisk.

CLI> core stop now # This command stops the Asterisk service immediately, ending any calls in progress.
CLI> core stop gracefully # This command prevents new calls from starting up in Asterisk, but allows calls in progress to continue. When all the calls have finished, Asterisk stops.
CLI> core stop when convenient # This command waits until Asterisk has no calls in progress, and then it stops the service. It does not prevent new calls from entering the system.
There are three related commands for restarting Asterisk as well.
CLI> core restart now # This command restarts the Asterisk service immediately, ending any calls in progress.
CLI> core restart gracefully # This command prevents new calls from starting up in Asterisk, but allows calls in progress to continue. When all the calls have finished, Asterisk restarts.
CLI> core restart when convenient # This command waits until Asterisk has no calls in progress, and then it restarts the service. It does not prevent new calls from entering the system.
#There is also a command if you change your mind.
CLI> core abort shutdown # This command aborts a shutdown or restart which was previously initiated with the gracefully or when convenient options.

Полезные ссылки:
https://jitsi.org/index.php/Main/Download
https://wiki.asterisk.org/wiki/display/AST/ConfBridge+10
http://asterisk.ru/knowledgebase/books
https://wiki.asterisk.org/wiki/display/AST/Asterisk+standard+channel+variables

Автор: admin, 12 июня 2013
Рубрики: VoIP
Метки: , ,
4 комментария к сообщению: “Настройка видеоконференций на asterisk 1.10 (confbridge).”
  1. canreinvite=no

    Это уже устарело. нужно использовать directmedia=no

  2. r!ck:

    Добрый день.

    Все сделал как вы написали, в итоге ввожу комманду confbridge list, и у меня нет комнаты для конференций вообще.
    Не понятен еще один момент. Вы пишите при звонке на номер 111 попадаете в комнату с номером 1234.
    Эти два номера должны быть прописаны в sip.conf?

    • Привет. Для начала, нужно прочитать, как работает confbridge модуль и про диалплан.
      В диалплане я рандомно указал номер на который нужно звонить(111), чтобы попасть в конференцию с id=1234.

Написать комментарий

Последние статьи

Яндекс.Метрика
?>