IP-телефонія на базі Asterisk. Частина 6.5: Додаткові функції Asterisk. Конференції (ConfBridge).
Цикл статей по розгортанню IP-телефонії на базі Asterisk. Фактично це моя проектна робота на отримання відповідного сертифікату одного з навчальних центрів. Робота була захищена, сертифікат отриманий, все написане тестувалось і є повтінстю робочою реалізацією. Інформація в статті і версії програмного забезбечення актуальні на 2017 рік.
- частина 1 - Встановлення сервера Asterisk
- частина 2 - Налаштування SIP
- частина 3 - Логіка обробки дзвінків (Dialplan)
- частина 4 - Голосове меню
- частина 5 - Деталізований звіт про виклики (Call Detail Records, CDR)
- частина 6.1 - Додаткові функції Asterisk. Паркування дзвінка.
- частина 6.2 - Додаткові функції Asterisk. Переадресація дзвінків.
- частина 6.3 - Додаткові функції Asterisk. Музика на утриманні (music on hold).
- частина 6.4 - Додаткові функції Asterisk. Перехоплення дзвінків (call pickup).
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.
- частина 1 - Встановлення сервера Asterisk
- частина 2 - Налаштування SIP
- частина 3 - Логіка обробки дзвінків (Dialplan)
- частина 4 - Голосове меню
- частина 5 - Деталізований звіт про виклики (Call Detail Records, CDR)
- частина 6.1 - Додаткові функції Asterisk. Паркування дзвінка.
- частина 6.2 - Додаткові функції Asterisk. Переадресація дзвінків.
- частина 6.3 - Додаткові функції Asterisk. Музика на утриманні (music on hold).
- частина 6.4 - Додаткові функції Asterisk. Перехоплення дзвінків (call pickup).
Посилання
- Photo by Jonny Clow on Unsplash