Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Організація VoIP-зв’язку на базі IP-АТС ASTERISK.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.9 Mб
Скачать

2.11.2 Приклад налаштування умовного та безумовного перенаправлення викликів

    1. За допомогою VirtualBox запустити образ ОС Ubuntu 10.04.

    2. Для внесення змін в конфігураційні файли IP-PBX Asterisk необхідно зайти в «Термінал». Виконаємо наступні дії: «Додатки» → «Стандартні» → «Термінал».

    3. Для того, щоб отримати права доступу адміністратора вводимо команду # sudo su, після чого з’явиться запит паролю. За умовчанням: 1234.

    4. Після того, як отримали права адміністратора (root) стає можливим редагування конфігураційного файлу extensions.conf, який відповідає за налаштування умовного та безумовного переведення виклику.

    5. Відкриваємо файл extensions.conf за допомогою текстового редактору nano, попередньо перейшовши в каталог з конфігураційними файлами: # cd /etc/asterisk.

# nano extensions.conf

    1. У цьому файлі необхідно додати наступні рядки:

exten=>102,n,GotoIf($[DIALSTATUS}=BUSY] ?ZANAT, 1)

exten=>102,n,Dial(SIP/101, 30,rtwwT)

exten=>ZANAT,1,Hangup

На рис. 30 зображений остаточний вигляд файлу extensions.conf.

Рис. 30 Вигляд файлу extensions.conf

    1. Після того як конфігураційний файл був налаштований, ініціюємо запуск IP-PBX Asterisk. Для цього необхідно виконати наступні дії:

# asterisk start

# asterisk –r (вхід до консольного режиму IP-PBX Asterisk).

    1. Якщо сервер Asterisk вже був запущений до початку редагування конфігураційного файлу extensions.conf, то необхідно виконати зчитування нової інформації за допомогою команди, яка вводиться в консолі Asterisk:

> dialplan reload

Контрольні питання

  1. Що таке запис розмови в Asterisk?

  2. Яка схема організації зв’язку використовується в лабораторному макеті?

  3. Який SIP-клієнт використовується в лабораторній роботі?

  4. Який конфігураційний файл відповідає за створення сервісу умовного та безумовного переведення викликів?

  5. Які способи переведення викликів існують?

  6. Яким чином у реальному житті використовується функція умовного та безумовного переведення виклику в Asterisk?

  7. Що відбувається, якщо абонент, на якого переводиться виклик (безумовне перенаправлення виклику), також не в мережі?

Література

  1. Меггелен Дж., Мадлен Л., Смит Дж. Asterisk: будущее телефонии, 2-е издание. – Пер. с англ. – СПБ: Символ_Плюс, 2009. – 656 с., ил.

  2. Asterisk переадресация. [Електронний ресурс] // – Режим доступу: http://invoip.net/2012/04/asterisk-pereadresaciya/

2.12 Вибіркове обмеження вхідних та вихідних викликів

2.12.1 Короткі теоретичні відомості

Основною задачею функції вибіркового обмеження вхідних та вихідних викликів (blacklist) цифрової IP-PBX є занесення деяких номерів в «чорний список» і заборона комутації дзвінків з них і на них [1]. За реалізацію даної функції відповідає команда BLACKLIST(). Вона перевіряє, чи є поточний номер у базі даних.

IP-PBX Asterisk має потужний механізм для зберігання даних - AstDB. AstDB забезпечує простий спосіб зберігання даних, які в подальшому можуть використовуватись у діалплані. База даних Asterisk зберігає дані в групи, які називаються сім'ями, зі значеннями певних клавіш. У сім'ї, ключ може бути використаний тільки один раз.

Таким чином, команда BLACKLIST (), працюючи у поєднанні з базою даних AstDB, виявляє чи занесений номер в «чорний список», якщо так, то повертається значення 1, в іншому випадку повертається 0. У поєднанні з GotoIf (), ці значення можуть бути використані для контролю виклику.

Для налаштування цієї функції необхідно внести деякі зміни в конфігураційний файл extensions.conf, що знаходиться за адресою: /etc/asterisk/extensions.conf.

Розглянемо структуру даного файлу [2, 3]. Для роботи цього сервісу необхідно, щоб були присутніми чотири контексти:

  • [main-menu] – слугує загальним налаштуванням для роботи файлу;

  • [incoming] – допоміжні налаштування, які відповідають за обробку вхідних викликів;

  • [blacklist-add] – допоміжні налаштування, які відповідають за внесення номеру до «чорного спуску» за допомогою IVR;

  • [blacklist-rmv] – допоміжні налаштування, які відповідають за видалення номеру з «чорного спуску» за допомогою IVR.

Далі розглянемо кожний з цих контекстів більш детально.

Приклад простого контексту [main-menu]:

include = incoming

include = blacklist-add

include = blacklist-rmv

Кожен з цих рядків відповідає за активацію контекстів: incoming, blacklist-add, blacklist-rmv відповідно.

Контекст [incoming] має більш складну структуру і є головним контекстом, що відповідає, безпосередньо, за дозвіл комутації певного номеру. Він виглядає наступним чином:

exten=>XXX,1,Answer()

exten=>XXX,n,GotoIf($[${BLACKLIST()}=1]?102) – перевірка номеру на належність до «чорного списку», якщо належить, то присвоюється пріоритет 102;

exten=>XXX,n,Dial(SIP/XXX,20,t) – виклик номеру ХХХ;

exten=>XXX,102,Playback(privacy-you-are-blacklisted) – програвання аудіозапусу «номер заблоковано, через належність до чорного списку»;

exten=>XXX,103,Hangup() – завершення виклику.

На рис. 31 приведено приклад простої реалізації розглянутих вище контекстів конфігураційного файлу extensions.conf.

Рис. 31 Вигляд контекстів [main-menu] та [incoming]

Також необхідно налаштувати контекст [blacklist-add], для того щоб у користувача була можливість заносити номера абонентів до «чорного списку». Ці налаштування також виконуються в конфігураційному файлі – extensions.conf.

Контекст [blacklist-add] буде виглядати наступним чином:

exten=>ZZZ,1,Answer

exten=>ZZZ,n,Playback(enter-num-blacklist) - пропонується ввести номер, який буде занесений до «чорного списку»;

exten=>ZZZ,n,Read(blacklist,then-press-pound,4,,2,10) – зчитується введений номер;

exten=>ZZZ,n,SayDigits(${blacklist}) – озвучується введений номер;

exten=>ZZZ,n,Playback(if-correct-press&digits/2) – підтвердження занесення номеру до «чорного списку» шляхом натиснення кнопки «2»;

exten=>ZZZ,n,WaitExten(60,) – очікування введення;

exten=>ZZZ,n,Playback(sorry-youre-having-problems&goodbye) - по закінченню часу очікування, програється повідомлення про виникнення проблем;

exten=>2,1,Set(DB(blacklist/${blacklist})=1) – номеру присвоюється значення 1 у базі даних AstDB;

exten=>2,n,Playback(num-was-successfully&added) – програється повідомлення про успішне виконання операції;

exten=>2,n,Hangup – завершення виклику.

Наступний крок – налаштування контексту [blacklist-rmv], що відповідає за видалення номеру з «чорного спуску». Він виглядає наступним чином:

exten=>YYY,1,Playback(entr-num-rmv-blklist) – пропонується ввести номер, який необхідно видалити з «чорного списку»;

exten=>YYY,n,Read(blacklist,then-press-pound,4,,2,10) - зчитується введений номер;

exten=>YYY,n,SayDigits(${blacklist}) – озвучується введений номер;

exten=>YYY,n,Playback(if-correct-press&digits/1) – підтвердження видаленя номеру з «чорного списку» шляхом натиснення кнопки «1»;

exten=>YYY,n,WaitExten(60,) – очікування введення;

exten=>YYY,n,Playback(sorry-youre-having-problems&goodbye) - по закінченню часу очікування, програється повідомлення про виникнення проблем;

exten=>1,1,DBdel(blacklist/${blacklist}) – номер видаляється з бази даних AstDB;

exten=>1,n,Playback(removed) – програється повідомлення про успішне виконання операції;

exten=>1,n,Hangup – завершення виклику.

На рис 32 приведено приклад простої реалізації розглянутих вище контекстів конфігураційного файлу extensions.conf.

Рис. 32 Вигляд контекстів [blacklist-add] та [blacklist-rmv]

де YYY – номер, при наборі якого відбувається занесення абонента до «чорного списку»; ZZZ - номер, при наборі якого відбувається видалення абонента з «чорного списку».