Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metoda.doc
Скачиваний:
65
Добавлен:
01.03.2016
Размер:
8.2 Mб
Скачать
    1. Содержимое отчета

  1. Схема соединений ПК и UA пользователя с IP адресами

  2. Скриншоты настройки фильтра в Wireshark

  3. Скриншоты результатов работы фильтров для 6 сценариев

  4. Анализ и результаты выполнения пункта 9.

  5. Анализ и результаты выполнения пункта 10.

  6. Анализ полученных результатов:

  • использование SIP протокола для установки соединения,

  • особенности аутентификации SIP протокола,

  • особенности пере адресации и постановки вызова на удержание,

  • указать трудности, возникшие при выполнении работы.

  1. Выводы.

    1. Контрольные вопросы

  1. Зачем нужна регистрация? Основные поля, задействованные при регистрации.

  2. Как производиться дерегистрация UA на сервере?

  3. Что такое SIP диалог? Запросы, характеризующие диалог.

  4. Что такое SIP транзакция? Поля, характеризующие транзакцию.

  5. Запросы установления соединения, поля запроса.

  6. Запросы разрыва соединения, поля запроса.

  1. ЛАБОРАТОРНАЯ РАБОТА №4 Изучение интерактивного голосового меню (IVR) и AGI-скриптов.

Цель работы:настроить и изучить возможности сервера Asterisk для создания интерактивного голосового меню (IVR). Научится создавать голосовое меню и настраивать его работу. Научится создавать AGI скрипты и изучить на практике работу AGI-скриптов.

    1. Задание на лабораторную работу

В ходе выполнения лабораторной работы необходимо создать голосовое меню, согласно варианта задания. Настроить сервер Asterisk для записи звуковых сообщений. Проверить работоспособность полученного IVR. Написать простейшие AGI скрипты, которые произносят произвольно введенный символ. Проверить работоспособность полученных скриптов.

    1. Краткие теоретические сведения

Полное расширение файла extensions.conf состоит из трех компонентов:

  • Название (или число) расширения

  • Приоритет (каждое расширение может включать множество шагов; номер шага называют "приоритетом")

  • Приложение (или команда), которое выполнит некоторое действие на звонок.

Эти три компонента разделяются запятыми:

exten => name,priority,application()

exten => login1,1,Dial(SIP/login1,10,t)

Рисунок 4.1 – Пример полного расширения файла extensions.conf

      1. Команда Playback()

Проигрывает заданный звуковой файл. Звуковые файлы, по умолчанию, находятся в директории, путь к которой указан в файле asterisk.conf.

Команда Playback будет проигрывать звуковой файл и, по окончании, возвратит управление. Сравните с командой Background, которая начинает проигрывать файл и сразу же возвращает управление, позволяя выполнять дальнейшие команды для канала Asterisk, проигрывая в фоне музыку из заданного файла.

Обратите внимание: Опции не будут работать, если у вас, при задании аргументов, есть пробелы между именем файла и запятой, а так же между запятой и параметрами.

      1. Команда Background()

Начинает проигрывать заданный звуковой файл и сразу же возвращает управление, проигрывая звуковой файл в фоновом режиме, пока исполняются следующие команды (если они есть). (Сравните с командой Playback, которая также проигрывает звуковой файл, но ожидает, пока не закончится проигрыш звукового файла, перед тем как возвратить управление.)

Если Вы повторно вызовете команду Background, пока проигрывается предыдущий звуковой файл, второй звуковой файл будет просто помещен в очередь и начнет проигрываться после окончания первого файла.

Одно из применений команды Background() - это проигрывание интерактивного выбора пунктов меню ("Нажмите 1, для соединения с отделом продаж, нажмите 2, для соединения с отделом поддержки, и т.д."), без дальнейших команд, определенных для данного екстеншена. Следовательно, Asterisk не имеет команд, которые нужно выполнить, и просто ждет любую DTMF последовательность, которые введет пользователь, пока проигрывается файл. Если пользователь набрал номер, который является правильным в данном контексте, проигрывание звукового файла заканчивается и Asterisk перейдет на номер набранного екстеншена. Если пользователь ничего не набрал, тогда Asterisk закончит проигрывание звукового файла, и в тишине будет ждать, определенное в ResponseTimeout время, ввода пользователя. Если и в течении этого времени пользователь ничего не набрал, управление будет передано на стандартный екстеншен "t" (если он определен в контексте, иначе соединение будет закончено). Если пользователь набрал номер, который является неправильным, в текущем контексте, управление будет передано на стандартный екстеншен "i" (если он определен в контексте, иначе соединение будет закончено).

[incoming]

exten => s,1,Answer

exten => s,2,ResponseTimeout(5)

exten => s,3,Background(mymenu)

exten => s,4,Background(chooseSomething)

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

exten => i,1,Playback(pbx-invalid)

exten => i,2,Goto(s,2)

exten => 1,1,DoSomething

exten => 2,1,DoSomethingElse

exten => 3,1,Dial(...)

Рисунок 4.2 – Пример команд Playback() и Background()

В данном примере, вызов поступает в контекст incoming и сразу же соединение переводится Asterisk в установленное состояние (шаг s,1). Устанавливается таймер ожидания ввода пользователя (ResponseTimeout) в значение 5 секунд (шаг s,2). Потом мы начинаем проигрывать звук из файла "mymenu.gsm" (шаг s,3). Потом мы помещаем в очередь еще один звук (из файла "chooseSomething.gsm"), который будет проигрываться в фоне, когда первый файл закончится (шаг s,4). Так как у нас нет команды с приоритетом s,5, то Asterisk будет продолжать проигрывать файл "mymenu.gsm" пока он не закончиться, а потом и звуковой файл "chooseSomething.gsm" до его окончания, а потом будет ждать ввода пользователя еще 5 секунд. Если в течении всего этого времени (пока проигрываются эти звуковые файлы и в течении заданного времени ожидания) пользователь наберет номер екстеншена ("1", "2" или "3"), тогда Asterisk прекратит проигрывать звуковые файлы и совершит переход на соответствующий екстеншен. А если пользователь наберет любой другой номер, тогда Asterisk перейдет на екстеншен "i" и будет проигран звуковой файл "pbx-invalid.gsm", и будет совершен переход на команду проигрывания первого файла. Если пользователь ничего не ввел, после 5 секунд ожидания ввода, тогда будет совершен переход на екстеншен "t", а уже оттуда вся операция повториться заново, т.к. отсюда совершается переход на проигрывание первого файла.

Если Вам нужно, чтобы Asterisk ждал ввода пользователя без проигрывания каких-либо звуковых файлов, можно сделать чтоб Asterisk проигрывал звуковой файл, содержащий тишину. В директории silence Вы найдете 10 фалов, содержащих от 1 до 10 секунд тишины.

; Ждем ввода в течении 5 секунд

exten => s,1,Background(silence/5)

Рисунок 4.3 – Пример. Asterisk ожидает ввода пользователя 5 секунд

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]