Читайте также:
|
|
Кожна програма виконує певну д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 => контекст
3.2 Конфiгурування основних cepвiciв IP - телефонiї
3.2.1 Конфiгурацiя cepвicy конференц-зв'язку
Встановлення конференц-зв'язку забезпечуеться додатком MeetMe().
Конфiгурацiйнi опцiї конференц-зв'язку розташовуються у файлi meetme.conf (/etc/asterisk/meetme.cont). У цьому файлi конфiгурацiї створюються конференц-зали та необов'язковi числовi паролi доступу.
Приклад конфiгурацiї конференц-зали за додатковим номером 600:
[rooms]
conf => 600
MeetMe () приймає три аргументи: iм'я конференц-залу, набiр опцiй i пароль, який користувач повинен ввести, щоб приєднатися до конференцiї.
Налаштуємо просту конференцiю, використовуючи конференц-зал 600, опцiю i (яка забезпечує оповiщення про те, що хтось приєднався або покинув конференцiю) i пароль 111 додавши наступний рядок у дiалплан:
exten => 600,1, MeetMe (600, i, 111)
Дата добавления: 2015-09-11; просмотров: 80 | Поможем написать вашу работу | Нарушение авторских прав |