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

2.13.2 Приклад налаштування послуги інтерактивного голосового меню

  1. За допомогою програми Virtual Box запустити віртуальну машину з назвою Asterisk1234

  2. При вході в систему під користувачем asterisk1234 необхідно ввести пароль безпеки: 1234

  3. Після загрузки системи, перед собою ви бачите робочий стіл. Далі необхідно у лівому верхньому куті натиснути на вкладку «додатки» → «стандартні» → «термінал». В результаті відкриється нове вікно.

  4. Для можливості працювати з конфігураційними файлами Asterisk необхідно отримати права адміністратора, для цього вводимо команду:

$ sudo –s

Після цього вас попросять ввести пароль, вводимо: 1234

  1. Перед переходом до налаштування конфігураційних файлів, необхідно скласти структуру голосового меню (рис. 34). Вважатимемо, що перед нами поставлене завдання налаштувати IVR для Інституту телекомунікаційних систем.

  2. Далі відкриємо конфігураційний файл, що відповідає за реалізацію даної послуги: extensions.conf. Набираємо команду:

# nano /etc/asterisk/extensions.conf

  1. Для того, щоб в голосовому меню відтворювались аудіо файли, потрібно їх записати. В системі Asterisk передбачена така можливість. За її реалізацію відповідає додаток Record(). Створимо контекст [ivr] і почнемо його конфігурацію:

  2. [ivr]

  3. exten => _88XX,1,Wait(2)

  4. exten => _88XX,n,Record(var/lib/asterisk/sounds/ivr/ast${EXTEN:2}:gsm)

  5. exten => _88XX,n,Wait(1)

  6. exten => _88XX,n,Playback(/var/lib/asterisk/sounds/ivr/ast${EXTEN:2})

  7. exten => _88XX,n,Wait(2)

  8. exten => _88XX,n,Hangup

  9. Представлена частина контексту призначена для запису аудіо файлів з сервісним номером 88, ім’ям «astXX» в форматі gsm директорію: var/lib/asterisk/sounds/ivr/

Рис. 34 Структура інтерактивного голосового меню

  1. Продовжимо наповнювати контекст [ivr]:

; підключимо контексти другого рівня IVR

include => cathedra_ts

include => cathedra_ti

include => cathedra_tk

; опишемо план набору першого рівня меню

exten => 777,1,Answer

exten => 777,n,Background(/var/lib/asterisk/sounds/ivr/ast00)

exten => 777,n,WaitExten(10)

; опишемо перехід на другий рівень меню

exten => 1,1,Goto(cathedra_ts,s,1)

exten => 2,1,Goto(cathedra_ti,s,1)

exten => 3,1,Goto(cathedra_tk,s,1)

; дії меню при неправильному вводі номеру

exten => i,1,Playback(/var/lib/asterisk/sounds/ivr/ast01)

exten => i,n,Hangup

; дії меню при бездіяльності абонента

exten => t,1,Playback(/var/lib/asterisk/sounds/ivr/ast02)

exten => t,n,Hangup

  1. Створимо контекст для кафедри телекомунікаційних систем [cathedra_ts] і опишемо план набору:

; підключимо контексти для третього рівня меню

[cathedra_ts]

include => section_11

include => section_12

include => section_13

; план набору

exten => s,1,Background(/var/lib/asterisk/sounds/ivr/ast03)

exten => s,n,WaitExten(10)

; перехід до третього рівня IVR

exten => 1,1,Goto(section_11,s,1)

exten => 2,1,Goto(section_12,s,1)

exten => 3,1,Goto(section_13,s,1)

; з’єднання з «Консультантом»

exten => 4,1,Dial(SIP/555,20,m)

exten => 4,n,Playback(/var/lib/asterisk/sounds/ivr/ast04)

exten => 4,n,Hangup

; повернення в попереднє меню

exten => 0,1,Goto(ivr,777,1)

; дії меню при неправильному вводі номеру

exten => i,1,Playback(/var/lib/asterisk/sounds/ivr/ast01)

exten => i,n,Hangup

; дії меню при бездіяльності абонента

exten => t,1,Playback(/var/lib/asterisk/sounds/ivr/ast02)

exten => t,n,Hangup

; контексти для 3 рівня

[section_11]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast11)

exten => s,n,Hangup

[section_12]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast12)

exten => s,n,Hangup

[section_13]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast13)

exten => s,n,Hangup

  1. Створимо контекст для кафедри інформаційно-телекомунікаційних мереж [cathedra_tі] і опишемо план набору:

; підключимо контексти для третього рівня меню

[cathedra_ts]

include => section_21

include => section_22

include => section_23

; план набору

exten => s,1,Background(/var/lib/asterisk/sounds/ivr/ast03)

exten => s,n,WaitExten(10)

; перехід до третього рівня IVR

exten => 1,1,Goto(section_21,s,1)

exten => 2,1,Goto(section_22,s,1)

exten => 3,1,Goto(section_23,s,1)

; з’єднання з «Консультантом»

exten => 4,1,Dial(SIP/555,20,m)

exten => 4,n,Playback(/var/lib/asterisk/sounds/ivr/ast04)

exten => 4,n,Hangup

; повернення в попереднє меню

exten => 0,1,Goto(ivr,777,1)

; дії меню при неправильному вводі номеру

exten => i,1,Playback(/var/lib/asterisk/sounds/ivr/ast01)

exten => i,n,Hangup

; дії меню при бездіяльності абонента

exten => t,1,Playback(/var/lib/asterisk/sounds/ivr/ast02)

exten => t,n,Hangup

; контексти для 3 рівня

[section_21]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast21)

exten => s,n,Hangup

[section_22]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast22)

exten => s,n,Hangup

[section_23]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast23)

exten => s,n,Hangup

  1. Створимо контекст для кафедри телекомунікацій [cathedra_tk] і опишемо план набору:

; підключимо контексти для третього рівня меню

[cathedra_tk]

include => section_31

include => section_32

include => section_33

; план набору

exten => s,1,Background(/var/lib/asterisk/sounds/ivr/ast03)

exten => s,n,WaitExten(10)

; перехід до третього рівня IVR

exten => 1,1,Goto(section_31,s,1)

exten => 2,1,Goto(section_32,s,1)

exten => 3,1,Goto(section_33,s,1)

; з’єднання з «Консультантом»

exten => 4,1,Dial(SIP/555,20,m)

exten => 4,n,Playback(/var/lib/asterisk/sounds/ivr/ast04)

exten => 4,n,Hangup

; повернення в попереднє меню

exten => 0,1,Goto(ivr,777,1)

; дії меню при неправильному вводі номеру

exten => i,1,Playback(/var/lib/asterisk/sounds/ivr/ast01)

exten => i,n,Hangup

; дії меню при бездіяльності абонента

exten => t,1,Playback(/var/lib/asterisk/sounds/ivr/ast02)

exten => t,n,Hangup

; контексти для 3 рівня

[section_31]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast21)

exten => s,n,Hangup

[section_32]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast22)

exten => s,n,Hangup

[section_33]

exten => s,1,Playback(/var/lib/asterisk/sounds/ivr/ast23)

exten => s,n,Hangup

  1. Зберігаємо внесені зміни за допомогою комбінації клавіш cntr+O →Enter та виходимо з редактору: cntr+Х

  2. Тепер створимо «Консультанта» в іншому конфігураційному файлі sip.conf. Відкриваємо файл, набравши команду:

# nano /etc/asterisk/sip.conf

  1. У файлі sip.conf набираємо:

[555]

qualify=yes

context=ivr

type=friend

username=555

secret=555

nat=yes

allow=yes

host=dynamic

callerid=”Operator <555>”

callgroup=1

pickupgroup=1

language=ru

canreinvite=yes

  1. Зберігаємо внесені зміни за допомогою комбінації клавіш cntr+O →Enter та виходимо з редактору: cntr+Х

  2. Далі необхідно запустити Asterisk, для цього вводимо команду:

# asterisk –vvvc

У випадку, коли сервер Asterisk був запущений раніше, то необхідно здійснити його перезагрузку, набираємо команду:

CLI> reload

Перевірка правильності виконання завдання

Для перевірки правильності виконання завдання необхідно зателефонувати на сервісний номер IVR «777» і перейти за вказаними в меню номерами до третього рівня або зв’язатися з «Консультантом».