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

1.5 Основи дiалплана ip-aтс Asterisk

Дiалплан визначає, як Asterisk оброблятиме вхідні та вихiднi виклики [1,2]. Biн складається зi списку iнструкцiй або кроків, яким буде слiдувати Asterisk. На відміну вiд традицiйних систем телефонного зв'язку, дiалплан Asterisk є повнiстю конфiгурованим. Дiалплан Asterisk визначений у файлi конфігурації /etc/asterisk/extensions.conf. Дiалплан складається з чотирьох основних елементів: контекстів, додаткових номерів, пріоритетів та програм.

  1. Контекст

Дiалплани розбиті на розділи, які називаються контекстами. Контексти - це iмeновані групи додаткових номерів, якi виконують декілька функцiй.

Контексти iзолюють рiзнi частини дiалплана, запобiгаючи можливiсть їх взаемодiї. Додатковий номер, визначений в одному контексті, повнiстю iзольований вiд додаткових номерів iншого контексту, якщо тiльки взаємодiя не дозволена спецiально. Контексти розрiзняються по іменах. Iмена контекстів записують у квадратні дужки []. Допустимими символами для присвоєння iмeні є лiтери вiд А до Z (верхнього та нижнього pericтpy), цифри вiд 0 до 9, дефiс i символ пiдкреслення. Iнакше кажучи, контекст - це точка дiалплана, з якої буде починатися обробка з'єднань, що виконуються через даний канал.

Інше важливе застосування контекстів - забезпечення безпеки. Правильно застосовуючи контексти, визначеним абонентам можна надати доступ до функцій (таким, як мiжмiський зв'язок), якi недоступні для інших.

  1. Додаткові номери

Додатковий номер (extension) зазвичай позначає числовий ідентифікатор, який назначено лiнii, що йде до конкретного телефону. Однак у Asterisk це набагато ширше поняття, оскільки воно визначає унікальні послідовності кpoків (кожен крок включає додаток), які Asterisk буде застосовувати до виклику по цій лiнiї. У кожному контексті може бути задано стiльки додаткових номерів, скiльки потрiбно. При виклику конкретного додаткового номера, Asterisk буде виконувати кроки, визначенi для цього додаткового номера. Тому саме додатковi номери визначають, що вiдбуваеться з дзвiнками при їх обробцi вiдповiдно дiалплану. Синтаксис додаткового номера - це слово exten, за яким слiдує стрiлка, утворена знаками piвності i «бiльше нiж»: exten =>. Далi вказується iм'я (або номер). У традицiйних системах телефонного зв'язку пiд додатковими номерами ми розумiємо цифри, якi треба набрати, щоб iнший телефон задзвонив. Як iм'я додаткового номера можна використовувати будь-яку комбiнацiю цифр і букв.

Повний додатковий номер складається з трьох компонентiв:

  • Iм'я ( або номери);

  • Прiоритету (кожен додатковий номер може включати велику кiлькiсть кроків; порядковий номер кроку називаеться його прiоритетом);

  • Програми (чи команди), якi виконують деяку дiю над викликом.

Цi три компоненти роздiляються комами:

exten => iм'я, прiоритет, програма ()

Ось приклад того, як може виглядати справжнiй додатковий номер:

exten => 123,1, Answer ()

у цьому прикладi iм'я додаткового номера - 123, прiоритет - 1, а програма­Answer (). Розглянемо, що таке прiоритети та програми.

  1. Прiоритети

Кожен додатковий номер може мiстити безлiч кроків, якi називаються прiоритетами. Кожний прiоритет пронумерований послiдовно, починаючи з 1, i виконує одну певну програму. Наприклад, наступний додатковий номер вiдповiдає на дзвiнок (в прiоритетi пiд номером 1) i потiм виконує роз'єднання (в прiоритетi пiд номером 2):

exten => 123,I,Answer ()

exten => 123,2,Hangup ()

Для окремого додаткового номера Asterisk виконує прiоритети по порядку. Починаючи з вepciї 1.2 був введений прiоритет n, що означає «наступний». Кожного разу, коли Asterisk зустрiчає прiоритет n, він бере номер попереднього прiоритету i дoдaє 1. Це спрощує внесення змiн до дiалплану, оскільки тепер не треба змiнювати номери вcix кpoків. Наприклад, дiалплан може бути таким:

exten => 123,1, Answer ()

exten => 123, n, виконати дiю

exten => 123, n, виконати наступну дiю

exten => 123, n, виконати останню дiю

exten => 123, n, Hangup ()

Asterisk буде самостiйно обчислювати номер наступного прiоритета при кожнiй зустрiчi з прiоритетом n. Прiоритет пiд номером 1 має бути заданий обов'язково. Якщо випадково для першого прiоритету задати n замiсть 1, додатковий номер буде недоступний.

Мiтки пріоритетів.

Прiоритетам можна привласнювати текстові мiтки. Це забезпечує можливiсть посилатися на прiоритет не за номером, який може бути невiдомий, тому що тепер в дiалпланах, як правило, використовуються ненумеровані прiоритети. Щоб присвоiти прiоритету текстову мітку, необхiдно додати П в круглих дужках пiсля прiоритету:

exten => 123, n (MiTKa), програма ()