Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lb(pattern).doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
657.41 Кб
Скачать

3.1.4 Програми

Кожна програма виконує певну дiю над цим каналом, наприклад вiдтворення звуку, запис розмови в каналi, прийом тональних сигналiв, виклик каналу, розрив з'єднання i т. д.

Список програм:

Answer () - програма Answer () (Вiдповiдь) використовується для вiдповiдi каналу, по якому здiйснюється дзвiнок. Answer () не приймає apгументів.

Playback () - (Вiдтворення) вiдтворює в каналi попередньо записаний звуковий файл. При використаннi програми Playback () введення, що надходить вiд користувача iгнорується. 3 Asterisk поставляється безлiч професiйно записаних звукових файлiв, якi повиннi знаходитися у папцi, яка використовується для зберiгання звукiв за замовчанням (звичайно це /var/lib/asterisk/sounds/). Щоб використовувати Playback (), необxiдно задати як аргумент iм'я файлу (без розширення). Наприклад, Playback (filename) забезпечить вiдтворення звукового файлу filename.gsm, припускаючи, що він розмiщений у стандартнiй папцi для звукових файлiв.

Hangup () - (Роз'єднати) виконує роз'єднання активного каналу. Ця програма мaє застосовуватися в кінці контексту для завершення поточного виклику, що захистить від несанкціонованого використання Діалплана абонентами. Програма Hangup () не приймає apгyмeнтів.

Background () - (Фон). Як i Playback (), ця програма вiдтворює записаний звуковий файл. Однак, на відміну вiд Playback (), якщо користувач натискає кнопку (або послiдовнiсть кнопок) на клавiатурi телефону, вона перериває вiдтворення i переходить на додатковий номер відповідно натиснутим значенням цифр. Наприклад, якщо абонент натисне кнопку 5, Asterisk припинить вiдтворення звукового повiдомлення i передасть управлiння викликом першому прiоритету додаткового номера 5. Синтаксис Background () аналогiчний синтаксису Playback():

exten => 123,1, Answer О

exten => 123, п, Background (mаin-mепи)

WaitExten () - програма очiкує вiд абонента набору телефонного номера i часто викликається вiдразу пiсля програми Background (), як у цьому фрагментi дiалплана:

exten => 123,1, Answer ()

exten => 123, n, Background (main-menu)

exten => 123, n, WaitExten ()

Якщо потрiбно, щоб програма WaitExten () очiкувала вiдповiдi протягом певного часу (замiсть використання часу очiкування за замовчуванням 10с), необxiдно вказати число, вiдповiдне необхiднiй кiлькостi секунд, як перший аргумент:

exten => 123, n, WaitExten (5)

Goto () - програма використовується для перенаправлення дзвiнка в iншу частину дiалплана. Синтаксис Goto () вимагає передачi в нього в якостi аргументів цільового контексту, додаткового номера і пріоритету:

exten => 123, п, Goto (контекст, додатковий номер, прiоритет)

Приклад застосування програми Goto () в дiалпланi:

[incoming]

exten => 123,1, Answer ()

exten => 123, n, Background (main-menu)

exten => 1,1, Playback (digits / 1)

exten => 1, n, Goto (incoming, 123,1)

exten => 2,1, Playback (digits / 2)

exten => 2, n, Goto (incoming, 123,1)

Dial О - програма змушує Asterisk телефонувати через канал. Dial () приймає чотири аргументи.

Dial( type/identifier, timeout,options, URL)

Перший - одержувач дзвiнка. Biн складається (в самiй простiй формi) з назви технологiї (type), за допомогою якої виконується виклик, символу «слеш» та iмeні вiддаленої кiнцeвoї точки або ресурсу (identifier). Далi необов'язковi параметри максимального часу виклику вiддаленого абонента в секундах (timeout), параметри (options), та можливiсть вiдправки посилання URL ­посилання (URL).

Параметри (options):

t- дозволяє користувачевi, який вiдповiв на дзвiнок, перевести виклик.

т - дозволяє користувачевi, який викликає, перевести виклик.

Якщо час очiкування задано, Dial () буде намагатися додзвонитися за заданими номерами протягом цiєї кiлькостi секунд, а потiм перейде до наступного прiоритету додаткового номера. Якщо час очiкування не задано, Dial () буде телефонувати на канали до тих пiр, поки хто-небудь не вiдповiсть або поки абонент не покладе слухавку:

exten => 123,I,Dial(SIP/100,10)

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

GotoIfТime () - вибирає, в яку гiлку дiалплана виконати перехiд, на пiдставi поточного системного часу.

Найбiльш очевидне застосування цiєї програми - надання абонентам рiзних привiтань до початку робочого часу i пiсля його закiнчення.

Додаток GotoIfТime () має наступний синтаксис:

GotoIfТime (times, days_of_week, days_of_month, months, label)

Одним словом, GotoIfТime () передає виклик у задану мітку label, якщо поточнi дата i час вiдповiдають критерiю, заданому параметрами times (час), days_of_week (днi тижня), days_of_month (днi мiсяця) i months (мiсяцi).

Queue () - помiщає виклик у чергу, iм'я якої передається в аргумент.

Додатковий номер s

Необхiдно розглянути додатковий номер «s». Коли в контекст надходять виклики, для яких не вказано конкретний додатковий номер (наприклад, виклик FХО-лiнii), вони передаються на додатковий номер «s». (s­ - скорочення вiд start (початок), оскільки саме тут почнеться обробка виклику, якщо з ним не передана iнформацiя про додатковий номер.)

Обробка помилкових вводiв i часу очiкування

Обробка помилкових вводiв i часу очiкування, проводиться по-перше, коли абонент натискає не ту кнопку, при цьому виклик направляється на додатковий номер «i». По-друге, якщо абонент занадто довго не натискає кнопку пiсля запуску програми WaitExten() (час очiкування за замовчуванням - 10 с), виклики направляються на додатковий номер «t». Використання додаткових номерів «i» та «t» робить дiалплан бiльш надiйним i практичним.

Синтаксис зiставлення з шаблонами

Використовуванi в шаблонах букви i символи представляють певнi групи символiв. Шаблони завжди починаються з символу пiдкреслення "_". Biн вказує Asterisk, що виконується зiставлення з шаблоном, а не з явно заданим додатковим номером.

Пiсля пiдкреслення може використовуватися один або більше символів з перерахованих нижче:

х - вiдповiдає будь-якому одиночному числу вiд о до 9.

z - вiдповiдає будь-якому одиночному числу вiд 1 до 9.

N - вiдповiдає будь-якому одиночному числу вiд 2 до 9.

[] - вiдповiдає будь-якому однозначному числу iз заданого дiапазону.

Наприклад, запис [15-7] вiдповiдає одиночнiй цифрi 1,5,6 або 7.

. (точка) - Унiверсальна вiдповiднiсть; вiдповiдає одному або бiльше символам, будь-яким.

! (знак оклику) - Унiверсальна вiдповiднiсть; вiдповiдає нулю або бiльше символам, будь-яким.

Щоб використовувати зiставлення з шаблонами в дiалпланi, необхiдно вставити шаблон на мiсце додаткового номера (або його iмeнi):

exten => _ NXX, 1, Playback (auth-thankyou)

У цьому прикладi шаблону вiдповiдає тризначний додатковий номер в дiапазонi вiд 200 до 999 (N вiдповiдає будь-якiй цифрi вiд 2 до 9, а кожен Х - ­вiд 0 до 9).

Якщо Asterisk знаходить бiльше одного шаблону, вiдповiдно до набраного додаткового номеру, вона буде використовувати найбiльш точний з них (злiва направо). Наприклад, якщо задано два наступних шаблони i абонент набирає номер 555-1212:

exten => _555ХХХХ, 1, Playback (digits / 1)

exten => _55512ХХ, 1, Playback (digits / 2)

В даному випадку обраний був би другий додатковий номер, тому що вiн бiльш точно вiдповiдатиме набраному номеру.

Використання змiнної каналу $ (EXTEN)

При кожному дзвiнку на додатковий номер Asterisk зберiгає набраний номер у змiннiй каналу $ (EXTEN).

Директива include

Asterisk надає можливiсть використовувати додатковi номери з одного контексту в iншому контексті з допомогою директиви include (включити). Так можна управляти доступом до рiзних роздiлiв дiалплана. Вираз include має такий вигляд, де контекст - iм'я вiддаленого контексту, який потрiбно включити в поточний:

include => контекст

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]