- •Перелік скорочень
- •Перелік визначень
- •Теоретичні відомості
- •1.1 Технологія Asterisk
- •1.2 Функціональні можливості Asterisk
- •1.3 Переваги та недоліки Asterisk
- •1.4 Архітектура Asterisk
- •1.5 Основи дiалплана ip-aтс Asterisk
- •Контекст
- •Додаткові номери
- •Прiоритети
- •Програми
- •Лiтература
- •2. Налаштування сервісів ip-атс asterisk
- •2.1 Схема мережі
- •2.2 Встановлення та налаштування VirtualBox, Ubuntu та ip-pbx Asterisk
- •2.2.1 Встановлення та налаштування платформи віртуалізації Oracle vm VirtualBox
- •2.2.2 Встановлення Ubuntu версії 10.04
- •2.2.3 Встановлення Asterisk на Ubuntu
- •Контрольні питання
- •Лiтература
- •2.3 Відображення номеру абонента, що викликає
- •2.3.1 Короткі теоретичні відомості
- •2.3.2 Приклад налаштування послуги відображення номеру абонента, що викликає
- •Контрольні питання
- •Лiтература
- •2.4 Повтор останнього набраного номеру
- •2.4.1 Короткі теоретичні відомості
- •2.4.2 Приклад налаштування послуги повтору останнього набраного номера
- •Контрольні питання
- •Лiтература
- •2.5 Прослуховування розмов
- •2.5.1 Короткі теоретичні відомості
- •2.5.2 Приклад налаштування послуги прослуховування розмов
- •Контрольні питання
- •Лiтература
- •2.6. Музика на утриманні
- •2.6.1 Короткі теоретичні відомості
- •2.6.2 Приклад налаштування послуги музики на утриманні
- •Контрольні питання
- •Лiтература
- •2.7 Голосова пошта
- •2.7.1 Короткі теоретичні відомості
- •2.7.1.1 Створення поштових скриньок
- •2.7.1.2 Додавання голосової пошти в діалплан
- •2.7.1.3 Організація доступу до голосової пошти
- •2.7.2 Приклад налаштування послуги голосової пошти
- •Контрольні питання
- •Лiтература
- •2.8. Запис розмов
- •2.8.1 Короткі теоретичні відомості
- •2.8.2 Приклад налаштування послуги запису розмови
- •Контрольні питання
- •Лiтература
- •2.9 Автоматичний дзвінок в заданий час
- •2.9.1 Короткі теоретичні відомості
- •2.9.1.1 .Call файли
- •2.9.2 Приклад налаштування послуги автоматичного дзвінка в заданий час
- •Контрольні питання
- •Лiтератури
- •2.10 Постановка викликів на паркування
- •2.10.1 Короткі теоретичні відомості
- •2.10.2 Приклад налаштування послуги постановки викликів на парркування
- •Контрольні питання
- •Література
- •2.11 Умовне та безумовне перенаправлення викликів
- •2.11.1 Короткі теоретичні відомості
- •2.11.2 Приклад налаштування умовного та безумовного перенаправлення викликів
- •Контрольні питання
- •Література
- •2.12 Вибіркове обмеження вхідних та вихідних викликів
- •2.12.1 Короткі теоретичні відомості
- •2.12.2 Приклад налаштування послуги вибіркового обмеження вхідних та вихідних викликів
- •Контрольні питання
- •Література
- •2.13 Інтерактивне голосове меню
- •2.13.1 Короткі теоретичні відомості
- •2.13.2 Приклад налаштування послуги інтерактивного голосового меню
- •Контрольні питання
- •Лiтература
- •2.14 Конференц-зв’язок
- •2.14.1 Короткі теоретичні відомості
- •2.14.2 Приклад налаштування послуги конференц–зв’язку
- •Контрольні питання
- •Лiтература
- •Додаток 1 Завдання до лабораторниз робіт з дисципліни «Проектування телекомунікаційних мереж наступного покоління»
- •Порядок виконання лабораторних робіт
- •Лабораторна робота № 1. Налаштування відображення номеру абонента, що викликає, на базі ip-атс Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 2. Налаштування повтору останнього набраного номеру на базі ip-атс Asterisk
- •Обладнання, прилади і матеріали
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 3. Налаштування сервісу прослуховування розмов на базі ip-атс Asterisk
- •Обладнання та матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 4. Налаштування сервісу музики на утриманні на базі ip-атс Asterisk
- •Обладнання та матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 5. Налаштування голосової пошти на базі ip-атс Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Лабораторна робота № 6. Налаштування запису розмови на базі ip-атс Asterisk
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 7. Налаштування автоматичного дзвінка в заданий час на базі ip-атс Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Лабораторна робота № 8. Налаштування постановки викликів на паркування за допомогою засобів ip-pbx Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Оформлення звіту та порядок його подання
- •Лабораторна робота № 9. Налаштування умовного та безумовного перенаправлення викликів за допомогою засобів ip-pbx Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
- •Оформлення звіту та порядок його подання
- •Лабораторна робота № 10. Налаштування вибіркового обмеження вхідних та вихідних викликів за допомогою засобів ip-pbx Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Лабораторна робота № 11. Налаштування сервісу інтерактивного голосового меню на базі ip-атс Asterisk
- •Контрольні питання
- •Лабораторна робота № 12. Налаштування конференц-зв’язку на базі ip-атс Asterisk
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
Програми
Кожна програма виконує певну д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 => контекст
