- •Перелік скорочень
- •Перелік визначень
- •Теоретичні відомості
- •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
- •Обладнання, прилади і матеріали
- •Завдання на лабораторну роботу
- •Варіанти завдань
- •Контрольні питання
Контрольні питання
Якими полями визначається абонент у конфігураційному файлі sip.conf?
Які поля визначають інформацію, що буде відображатися при виклику, та режим публікації даної інформації в конфігураційному файлі sip.conf?
Які команди конфігураційного файлу extensions.conf визначають інформацію, що буде відображатися при виклику, та режим публікації даної інформації?
Яка інформація може відображатися при виклику абонента?
Лiтература
Меггелен Дж., Мадлен Л., Смит Дж. Asterisk: будущее телефонии, 2-е издание. – Пер. с англ. – СПБ: Символ_Плюс, 2009. – 656 с., ил.
Asterisk Dialplan - план набора (одной страницей). [Електронний ресурс] // – Режим доступу: http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan
Команда CALLERID(). [Електронний ресурс] // – Режим доступу: http://asterisk.ru/knowledgebase/Asterisk+func+callerid
Офіційний сайт IP-ATC Asterisk. [Електронний ресурс] // – Режим доступу: www.asterisk.org
2.4 Повтор останнього набраного номеру
2.4.1 Короткі теоретичні відомості
Дана послуга дозволяє повторити виклик останнього набраного абонента без повторного набору його номера, а набираючи лише спеціальний системний номер, який може бути самостійно обраний для кожної АТС [1, 4].
Для того, щоб повторити останній набраний номер, необхідно його спочатку зберегти. Для цього в Asterisk використовується спеціальна база даних, яка має назву AstDB [2]. База даних Asterisk зберігає дані в групах, які називаються сімействами, значення котрих ідентифікується ключами. Під одним ідентифікатором (ключем) може зберігатись лише одне значення. Після присвоєння ідентифікатору нового значення, старе значення буде втрачене.
Для збереження нового значення та для доступу до цього значення в AstDB використовується команда Set().
В Asterisk широко використовуються шаблони [3], для того, щоб зберегти час адміністратора, та не вводити план набору для кожного користувача окремо, а використовувати загальний план для всіх абонентів, що додаються.
Запис додаткового номеру екстеншну, який починається з символу «_» є шаблоном і в залежності від того, які символи стоять після нього, визначає план набору для цілого діапазону номерів:
X відповідає будь-якому числу від 0 до 9;
Z відповідає будь-якому числу від 1 до 9;
N відповідає будь-якому числу від 2 до 9;
[1236-9] відповідає будь-якому числу або діапазону чисел, котрі знаходяться в квадратних дужках (в даному випадку: 1,2,3,6,7,8,9);
. спеціальний символ, відповідає одному або більше символів (не тільки цифрам);
! спеціальний символ, відповідає відсутності, одному або більше символів (не тільки цифрам).
Проте, необхідно пам’ятати, що Asterisk використовує контекст, додатковий номер якого найбільш подібний до додаткового номеру, набраного абонентом. Тож, при дзвінку на номер 101, екстеншн з додатковим номером _ХХХ буде використовуватись, якщо в плані набору будуть відсутні більш подібні до номеру 101 додаткові номери, наприклад: 101, _1ХХ, _10Х! і т.д..
Реалізація більш складних послуг в Asterisk не можлива без використання змінних.
Запис, який починається з символу «$» та заключний в фігурні дужки є змінною. В ASTERISK є змінні, які визначаються адміністратором та змінні, які заздалегідь визначені та є специфічними для каналів.
Змінні, які визначає адміністратор бувають трьох типів:
Глобальні змінні можуть бути визначені або у контексті [globals] файлу конфігурації extensions.conf або використовуючи команду Set(GLOBAL(змінна) = значення) в плані набору. Якщо змінна одного разу визначена, тоді вона може бути використана для будь-якого каналу в будь-який час.
Змінні специфічні для кожного каналу задаються за допомогою команди Set. Кожен канал використовує ізольований простір для імен змінних, отже, для різних викликів не буде колізій у значеннях змінної з одним і тим же ім'ям і змінна буде автоматично очищена, коли виклик по якомусь каналу буде завершено.
Змінні оточення забезпечують доступ з Asterisk до змінних оточення Unix.
В заздалегідь визначені змінні записується інформація, яку можна використовувати при визначенні плану набору. Перелік цих змінних можна знайти в [1] та [3].
Для набуття послугою більш інтерактивного характеру в Asterisk широко використовується відтворення музичних файлів та перенаправлення по плану набору.
Команда Playback() відтворює заданий звуковий файл абоненту, що викликає. Її синтаксис:
exten => s,n,Playback(filename[,option])
Де
filename – назва файлу, який буде відтворено;
option – опція (не обов’язкова для заповнення)б яка може приймати значення:
skip: звуковий файл відтворюється, якщо канал здійснив відповідь. Якщо з’єднання відсутнє, Playback відразу закінчить роботу без відтворення файлу.
noanswer: звуковий файл відтворюється, поки канал не відповів (якщо до цього канал був роз’єднаний). Проте не всі канали підтримують відтворення файлів в роз’єднаному стані.
Якщо опції skip та noanswer не задані, то команда Playback спочатку з’єднується з каналом і лише після цього починає відтворювати файл.
Подібною командою є команда Background(), проте, під час відтворення файлу за допомогою цієї команди можуть виконуватися інші команди, які не очікують на її завершення. Її синтаксис:
exten => s,n,Background(filename)
Asterisk відтворює файли з директорії /var/lib/asterisk/sounds, в цій директорії знаходяться стандартні звукові файли, які встановлюються разом з Asterisk. Для відтворення звукових файлів, які знаходяться поза даною директорією, необхідно замість аргументу filename вказати повний шлях до цього файлу разом з його ім’ям. Стандартно, разом з Asterisk встановлюються звукові файли англійською мовою, проте вільно розповсюджуються і файли, записані на інших мовах.
Також Asterisk може відтворювати цифри та дати. Для цього в файлі say.conf записані параметри, за допомогою яких відбувається відтворення. За умовчуванням, Asterisk «розмовляє» англійською, проте мовний запас можливо розширювати.
Синтаксис команд для відтворення цифр та дат:
exten => s,n,Set(CHANNEL(language)=en)
exten => s,n,Playback(num:digits,say)
Першим екстеншном вказуємо, якою мовою буде відтворюватись інформація, якщо в файлі say.conf їх є декілька, а в другому указуємо, що відтворюватись буде число (num), вказуємо саме число для відтворення (digits) та вказуємо, що Asterisk має використовувати файл say.conf для відтворення.
Для перенаправлення абонента по плану набору використовуються команди Goto() та Gotoif().
Команда Goto() забезпечує перехід на вказаний пріоритет, екстеншн або контекст. Її синтаксис:
exten => s,n,Goto([[context|]extension|]priority),
де
context – назва контексту, до якого буде перенаправлено абонента;
extension – назва екстеншну(додаткового номеру), до якого буде перенаправлено абонента;
priority – номер пріоритету, до якого буде перенаправлено абонента є обов’язковим аргументом та може задаватися міткою. Мітка – будь-яке значення, яке покращує зрозумілість плану набору та має синтаксис: exten => s,n,(label),Command(argument), де label – мітка.
Команда GotoIf() забезпечує перехід на вказаний пріоритет, екстеншн або контекст при виконанні деякої умови. Її синтаксис:
exten => s,n,GotoIf(condition?label1[:label2]),
де
condition – умова, за якої буде здійснено перехід до команди label1, яка задається таким же чином, як і в команді Goto();
label1 – ідентифікатор команди, тобто контекст, до якого вона входить, її додатковий номер та пріоритет або мітка;
label2 – ідентифікатор команди, тобто контекст, до якого вона входить, її додатковий номер та пріоритет або мітка, до якого перейде абоненти у випадку хибності умови.
За умови відсутності аргументу label2 буде здійснено перехід до наступної, за пріоритетом, команди для цього ж додаткового номеру за умови хибності умови.
Інший варіант синтаксису даної команди:
exten => s,n,GotoIf(condition?[label1]:label2).
Її відмінність полягає у тому, що при відсутності аргументу label1 буде здійснено перехід до наступної, за пріоритетом, команди для цього ж додаткового номеру за умови істинності умови.
Умовою, що перевіряється в даній лабораторній роботі буде наявність у змінній даних, за що відповідає функція ISNULL.
