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

2.8.2 Приклад налаштування послуги запису розмови

Необхідно:

1. Виконати процес конфiгурацiї запису розмови за допомогою цифрової програмної IP-АТС.

2. Провести тестові виклики, записати тестову розмову та прослухати її.

Послідовність дій:

exten => 123,1, Answer ()

; Записуємо розмову з поточного каналу

; І об'єднуємо звукові канали в кінці запису

exten => 123,2, Monitor (wav, monitor_test, mb)

exten => 123,3, SayDigits (12345678901234567890)

exten => 123,4, StopMonitor ()

Приклад створення змінної для імені записуваного файлу [3]:

exten=>123,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLER(number)} -${EXTEN})

де, STRFTIME(${EPOCH} – стандартний синтаксис;

%Y%m%d%H% - послідовність що показує рік, місяць, день, годину та хвилини запису розмови відповідно;

${CALLER(number) – номер абонента, який викликає;

${EXTEN} – номер абонента, якого викликають.

Контрольні питання

  1. Що таке запис розмови в Asterisk?

  2. Яка схема організації зв’язку використовується в лабораторному макеті?

  3. Які SIP-клієнти можуть бути використані в лабораторній роботі?

  4. Що таке функція Monitor() ?

  5. Що таке функція MixMonitor() ?

  6. Чи існує можливість захистити доступу до записаної розмови за допомогою пароля? Якщо так, то як?

  7. Чи існує можливість запису розмови в інших форматах аудіо файлів? Якщо так, то як?

  8. Яким чином у реальному житті використовується функція запису розмови в Asterisk?

Лiтература

  1. Меггелен Дж., Мадлен Л., Смит Дж. Asterisk: будущее телефонии, 2-е издание. – Пер. с англ. – СПБ: Символ_Плюс, 2009. – 656 с., ил.

  2. Функция MixMonitor(). [Електронний ресурс] // – Режим доступу: http://www.sipring.ru/overview/130-func-mixmonitor.html

  3. Asterisk Dialplan - план набора (одной страницей). [Електронний ресурс] // – Режим доступу: http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan

  4. Офіційний сайт IP-ATC Asterisk. [Електронний ресурс] // – Режим доступу: www.asterisk.org

2.9 Автоматичний дзвінок в заданий час

2.9.1 Короткі теоретичні відомості

Система автодозвону застосовується не тільки для автоматичного інформування боржників або клієнтів, а й для екстрених оповіщень співробітників або населення. А також служить для збору інформації рейтингів про якість надавання послуг [1, 4]. Конфігурація плану набору в Asterisk - extensions.conf відповідає за те, щоб виклики, які надходять від кого-небудь потрапляли на потрібний екстеншен, через заданий канал [2]. Якщо ж виникає необхідність, щоб ініціатором виклику був якийсь зовнішній додаток, то існує метод для цього завдання. Для налаштування автоматичного дзвінка необхідно працювати з .call файлом ( файлом виклику).

2.9.1.1 .Call файли

Файли виклику Asterisk це структуровані файли, які при переміщенні у відповідний каталог, здатні автоматично виконувати виклики з використанням Asterisk [3]. Файли виклику є бездоганним рішенням для виконання автоматичного дзвінка без використання більш складних функцій, таких як Asterisk AGI, AMI. Також файли виклику вимагають дуже мало технічних знань для використання.

Синтаксис. Визначаємо куди і як потрібно здійснити виклик.

Channel: <channel>: Канал, який буде використовуватися для вихідного дзвінка.

CallerID: Name <number> - Ідентифікатор користувача.

MaxRetries: <number> Кількість спроб перед тим, як виклик вважатиметься невдалим (не включаючи першу спробу, тобто 0 = означає вчинити 1 спробу дзвінка). Значення за замовчуванням: 0.

RetryTime: <number> Кількість секунд між спробами виклику. Значення за замовчуванням: 300 (5 хвилин)

WaitTime: <number> Кількість секунд для очікування відповіді на дзвінок. Значення за замовчуванням: 45.

Account: Установка поля "account code" для запису в CDR.

Якщо перший учасник виклику відповів, то далі описуємо з ким і як його з'єднати

Context: <context-name> Контекст у файлі extensions.conf.

Extension: <ext> Назва екстеншена в extensions.conf ..

Priority: <priority> Номер пріоритету для екстеншена, з якого потрібно почати виконання.

Application: Ім'я програми Asterisk, яку необхідно виконати (використовується замість параметрів context, extension і priority).

Data: Параметри додатка який запускається.

Для здійснення виклику в. call файлі має бути визначено як мінімум один додаток або екстеншен, а також має бути визначений каналу, з якого здійснюється виклик.

Принцип роботи з .call файлами:

  • Поміщаємо заданий .call файл в директорію (за умовчанням): / var / spool / asterisk / outgoing

  • Якщо у файлі конфігурації modules.conf встановлено: autoload = no, переконайтеся, що у Вас завантажено модуль pbx_spool.so, інакше робота з .call файлами буде неможлива.

  • При виявленні .call файлу, Asterisk створить канал для виклику, який буде з'єднаний з вказаним екстеншеном і пріоритетом з плану набору. Всі ці параметри будуть узяті з .call файлу.

  • Якщо дата модифікації .call файлу більше поточної дати на сервері, то Asterisk відкладе обробку даного файлу до тих пір, поки час модифікації цього файлу не зрівняється або не стане більше поточного часу.

  • Як приклад див: "sample.call", який йде у складі дистрибутива.

2.9.1.2 Створення та переміщення .call файлів.

Внаслідок того, що сервер Asterisk може прочитати ці файли в будь-який час (наприклад, коли він ще записаний тільки наполовину), не створюйте їх безпосередньо в директорії, де їх читає Asterisk (/var/spool/asterisk/outgoing). Процедура їх створення повинна бути приблизно такою [5]:

Створіть Ваш. call файл в який-небудь інший тимчасової директорії, наприклад, в: /var/spool/asterisk/temp1234. Встановіть власника і групу для цього файлу, командою: chown asterisk: asterisk/var/spool/asterisk/temp1234 (якщо файл temp1234 створений від користувача root, а Asterisk працює від системного користувача asterisk). Перемістіть цей файл, командою:

mv /var/spool/asterisk/temp1234 var /spool/asterisk/outgoing

Цей метод буде коректно працювати в більшості випадків, бо в Unix операція переміщення файлу в межах одного розділу (команда mv) просто переміщає "inode" - покажчик на файл - і він з'явитися у вказаній директорії вже відразу цілком, що запобігає ситуацію, коли Asterisk зчитує частково записаний файл. (Зверніть увагу: Що все вищесказане відноситься тільки до того випадку, якщо джерело і точка переміщення файлу знаходяться в межах одного логічного розділу, інакше, буде використовуватися еквівалентна комбінація з команд "cp" і "rm", що може призвести до вищеописаної проблеми.)

Зауваження: Використання команди копіювання файлу (cp) не є безпечним методом для додавання .call файлу в директорію сервера Asterisk для його подальшої обробки, тому що він може бути прочитаний іншою програмою в середині процесу його копіювання, коли він ще не повністю скопійований.