Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
17
Добавлен:
18.03.2015
Размер:
2.48 Mб
Скачать

Метки приоритетов

Начиная с версии 1.2 в Asterisk стало общепринятой практикой при-сваивать приоритетам текстовые метки. Это обеспечивает возможность ссылаться на приоритет не по номеру, который может быть неизвес-тен, потому что теперь в диалпланах, как правило, используются нену-мерованные приоритеты. Чтобы присвоить приоритету текстовую мет-ку, просто добавляем ее в круглых скобках после приоритета:

exten => 123,n(метка),приложение()

Очень распространенной ошибкой является использование за-пятой между символами n и (, как в данном примере:

exten => 123,n,(метка),приложение() ;<-- ЭТО НЕ БУДЕТ РАБОТАТЬ

Это приведет к нарушению данной части диалплана, будет вы-дано сообщение об ошибке, из-за того что приложение не найдено.

Приложения

Приложения – это рабочие лошадки диалплана. Каждое приложение выполняет определенное действие над данным каналом, например воспроизведение звука, прием тонального ввода, вызов канала, разрыв соединения и т. д. В предыдущем примере было представлено два простых приложения: Answer() и Hangup(). Сейчас мы подробнее рассмот-рим, как они работают.

Для выполнения некоторых приложений, таких как Answer() и Hangup(), не требуется никаких дополнительных инструкций. Некоторым приложениям необходима дополнительная информация. Эти данные, называемые аргументами, могут передаваться в приложения, чтобыоказывать влияние на то, как они выполняют свои действия. Чтобы передать аргументы в приложение, разместите их через запятую в круглых скобках, следующих за именем приложения.

Простой диалплан

Теперь мы готовы создать наш первый диалплан. Давайте начнем с очень простого примера. Asterisk должна будет ответить на звонок, воспроизвести звуковой файл и разорвать соединение. Используем этот простой пример, чтобы обозначить наиболее важные концепции диалплана.

Предложенные примеры разработаны исходя из предположения, что был создан и сконфигурирован по крайней мере один канал (SIP или IAX2 – неважно) и что все вызовы, поступающие на этот канал, направляются в контекст диалплана [incoming]. Если к какому-то из предыдущих примеров вы подошли творчески, вероятно, вам придется вносить некоторые поправки, чтобы обеспечить соответствие имен каналов.

Добавочный номер s

В наших каналах мы применяем определенную технологию, и поэтому, прежде чем приступить к настройке диалплана, придется остановиться еще на одном вопросе. Необходимо рассмотреть добавочный номер s. Когда в контекст поступают вызовы, для которых не указан конкретный добавочный номер, они передаются на добавочный номер s. (s – сокращение от start (начало), поскольку именно здесь начнется обработка вызова, если с ним не передана информация о добавочном номере.)

Поскольку это именно то, что требуется для нашего диалплана, перейдем к делу. Для каждого вызова будет выполняться три действия (ответ на него, воспроизведение звукового файла и разъединение), поэтому добавочному номеру s понадобится три приоритета. Поместимтри приоритета в контекст [incoming], поскольку было принято решение о том, что все входящие вызовы должны обрабатываться в этом контексте.

[incoming]

exten => s,1,приложение()

exten =>s,n,приложение()

exten =>s,n,приложение()

Теперь осталось только вставить приложения – и наш первый диалплан готов.

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

[incoming]

exten => s,1,приложение()

exten => s,2,приложение()

exten => s,3,приложение()

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