/ #linux 

IP-телефонія на базі Asterisk. Частина 6.5: Додаткові функції Asterisk. Конференції (ConfBridge).

Цикл статей по розгортанню IP-телефонії на базі Asterisk. Фактично це моя проектна робота на отримання відповідного сертифікату одного з навчальних центрів. Робота була захищена, сертифікат отриманий, все написане тестувалось і є повтінстю робочою реалізацією. Інформація в статті і версії програмного забезбечення актуальні на 2017 рік.

6. Додаткові функції Asterisk.

6.5 Конференції (ConfBridge).

Створимо дві конференції, відкриту, до якої може приєднатись будь-хто в компанії, з номером 801 та закриту паролем тільки для керівників відділів - 802. У контекст внутрішніх ліній додамо такі рядки:

exten => 801,1,Answer()
exten => 801,2,ConfBridge(801)
exten => 802,1,Answer()
exten => 802,2,ConfBridge(802,,user-pin,)

В файлі confbridge.conf визначимо профіль користувача для участі в закритій конференції:

[user-pin]
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=1234

Перевіримо роботу відкритої конференції:

asterisk-centos*CLI> 
  == Using SIP RTP CoS mark 5
    -- Executing [801@buyings:1] Answer("SIP/301-00000004", "") in new stack
    -- Executing [801@buyings:2] ConfBridge("SIP/301-00000004", "801") in new stack
    -- <SIP/301-00000004> Playing 'conf-onlyperson.slin' (language 'ru')
    -- Channel CBAnn/801-00000002;2 joined 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>
       > 0xb6b1a8f0 -- Probation passed - setting RTP source address to 192.168.1.100:7078
    -- <SIP/301-00000004> Playing 'confbridge-join.slin' (language 'ru')
    -- <CBAnn/801-00000002;1> Playing 'confbridge-join.gsm' (language 'en')
    -- Channel SIP/301-00000004 joined 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>
  == Using SIP RTP CoS mark 5
    -- Executing [801@buyings:1] Answer("SIP/302-00000005", "") in new stack
    -- Executing [801@buyings:2] ConfBridge("SIP/302-00000005", "801") in new stack
    -- <SIP/302-00000005> Playing 'confbridge-join.slin' (language 'ru')
    -- <CBAnn/801-00000002;1> Playing 'confbridge-join.gsm' (language 'en')
    -- Channel SIP/302-00000005 joined 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>
    -- Channel SIP/302-00000005 left 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>
    -- <CBAnn/801-00000002;1> Playing 'confbridge-leave.gsm' (language 'en')
    -- Channel SIP/301-00000004 left 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>
    -- <CBAnn/801-00000002;1> Playing 'confbridge-leave.gsm' (language 'en')
    -- Channel CBAnn/801-00000002;2 left 'softmix' base-bridge <c5de6505-4977-40b0-8cbc-abd873ae62ac>

Перевіримо роботу закритої конференції:

asterisk-centos*CLI> 
  == Using SIP RTP CoS mark 5
    -- Executing [802@buyings:1] Answer("SIP/301-0000000a", "") in new stack
       > 0xb6b1a8c8 -- Probation passed - setting RTP source address to 192.168.1.100:7078
    -- Executing [802@buyings:2] ConfBridge("SIP/301-0000000a", "802,,user-pin,") in new stack
    -- <SIP/301-0000000a> Playing 'conf-getpin.slin' (language 'ru')
    -- <SIP/301-0000000a> Playing 'vm-rec-name.slin' (language 'ru')
    -- <SIP/301-0000000a> Playing 'beep.slin' (language 'ru')
    -- x=0, open writing:  /var/spool/asterisk/confbridge/confbridge-name-802-1494265335.28 format: sln, 0xb2b76cf8
    -- User ended message by pressing #
    -- <SIP/301-0000000a> Playing 'auth-thankyou.slin' (language 'ru')
    -- Channel CBAnn/802-00000004;2 joined 'softmix' base-bridge <80ae3ef1-1024-4928-85ad-f193a733b9af>
    -- <SIP/301-0000000a> Playing 'conf-onlyperson.slin' (language 'ru')
    -- <CBAnn/802-00000004;1> Playing '/var/spool/asterisk/confbridge/confbridge-name-802-1494265335.28.slin' (language 'en')
    -- <CBAnn/802-00000004;1> Playing 'conf-hasjoin.gsm' (language 'en')
    -- <SIP/301-0000000a> Playing 'confbridge-join.slin' (language 'ru')
    -- <CBAnn/802-00000004;1> Playing 'confbridge-join.gsm' (language 'en')
    -- Started music on hold, class 'default', on channel 'SIP/301-0000000a'
    -- Channel SIP/301-0000000a joined 'softmix' base-bridge <80ae3ef1-1024-4928-85ad-f193a733b9af>
    -- Stopped music on hold on SIP/301-0000000a
    -- Channel SIP/301-0000000a left 'softmix' base-bridge <80ae3ef1-1024-4928-85ad-f193a733b9af>
    -- <CBAnn/802-00000004;1> Playing '/var/spool/asterisk/confbridge/confbridge-name-802-1494265335.28.slin' (language 'en')
    -- <CBAnn/802-00000004;1> Playing 'conf-hasleft.gsm' (language 'en')

В наступній статті навчимося переводити виклики на зовнішню лінію в Asterisk.

Посилання

Author

Олександр Бобилєв

Залишаю собі право використовувати ненормативну (але інформативну) лексику там, де звичайні слова втрачають сенс і не відображають всієї палітри почуттів, від споглядання навколишньої дійсності.