KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программное обеспечение » Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джим Меггелен, "Asterisk™: будущее телефонии Второе издание" бесплатно, без регистрации.
Перейти на страницу:

Для параметра nat может быть задано значение yes, no или never. Если задано yes, Asterisk игнорирует IP-адрес в заголовках SIP и SDP и отвечает на адрес и порт, указанные в IP-заголовке. Опция never предназначена для устройств, которые не могут обрабатывать поле rport в SIP-заголовке, такое как Uniden UIP200: nat=yes|no|never permit (для обоих)

См. deny. pickupgroup (для обоих) См. callgroup.

port (равноправный участник)

Этот параметр может использоваться для задания порта, по которому будут слушаться SIP-сигналы, если вы хотите использовать для этого нестандартный порт. (Порт по умолчанию для обмена сигналами по протоколу SIP - 5060.) port=5060 progressinband (для обоих)

Для параметра progressinband может быть задано значение yes, no или never, чтобы определить, должна ли Asterisk самостоятельно генерировать звуковой сигнал вызова для вызываемого абонента. Обычно Asterisk использует для информирования о поступлении вызова несколько методов, таких как 183 Session Progress, 180 Ringing, 486 Busy и т. д. Если задано progressinband=yes, Asterisk будет генерировать тональные сигналы для обозначения поступления вызова по каналу:

progressinband=yes|no|never promiscredir (для обоих)

Для параметра promiscredir могут быть заданы значения yes или no. Обычно при переадресации звонка на телефон Asterisk использует локальный канал (например, local/ [email protected] r). Если задан параметр promiscredir=yes, Asterisk будет использовать SIP-канал, который позволяет переадресовывать вызовы на удаленные серверы: promiscredir=yes|no

Обратите внимание, что, если Asterisk выполняет переадресацию к самой себе, когда promiscredir=yes, система получит сообщение INVITE со своим Caller ID (ID звонящего) и выявит замыкание на саму себя. SIP не может выполнять замкнутые звонки, поэтому канал будет уничтожен.

qualify (равноправный участник)

Для параметра qualify может быть задано значение yes, no или время в миллисекундах. Если задается параметр qualify=yes, удаленным равноправным участникам периодически будут посылаться сообщения NOTIFY для определения, доступны ли они, и установления величины задержки между ответами. Равноправный участник будет признан недоступным в случае непоступления ответа в течение 2000 мс (изменить это значение по умолчанию можно, задав для параметра qualify время ожидания ответа в миллисекундах). Используйте эту опцию в сочетании с nat=yes, чтобы поддерживать канал через NAT-устройство активным: qualify=yes|no|количествосекунд regcontext (равноправный участник)

Задавая контекст, содержащий некоторые команды, можно сконфигурировать Asterisk на выполнение ряда действий при регистрации равноправного участника сети на вашем сервере. Эта опция используется в сочетании с regexten, определяющей, какой добавочный номер должен быть выполнен. Если параметр regexten не задан, в качестве добавочного номера используется имя равноправного участника. Asterisk будет динамически создавать и уничтожать для добавочного номера NoOp в приоритете 1. Все действия, которые следует выполнять при регистрации, должны начинаться с приоритета 2. Может быть задано несколько параметров regexten, разделенных символом &. regcontext задается для каждого равноправного участника или глобально:

regcontext=зарегистрированные_равноправныеучастники regexten (равноправный участник)

Опция regexten используется в сочетании с regcontext для определения добавочного номера, выполняемого в заданном контексте. Если regexten не задана явно, в качестве добавочного номера для сопоставления используется имя равноправного участника сети: regexten=1000 rtpholdtimeout (равноправный участник)

Принимает в качестве аргумента целое число, задается в секундах. Прерывает звонок, если RTP-данные не поступили в течение заданного времени ожидания. Значение rtpholdtimeout должно быть больше значения rtptimeout (см. также rtptimeout): rtpholdtimeout=120 rtpkeepalive (равноправный участник)

Определяет, как часто Asterisk должна посылать сообщения проверки активности установленного соединения в RTP-потоке, в секундах. Значение по умолчанию - нуль. Это означает, что Asterisk не будет посылать сообщения проверки активности RTP. rtpkeepalive=45 rtptimeout (равноправный участник)

Принимает в качестве аргумента целое число, соответствующее времени, в секундах, через которое Asterisk прервет вызов в случае непоступления RTP-данных. rtptimeout=60 secret (для обоих)

Задает пароль, используемый для аутентификации: secret=welcome setvar (для обоих)

Задает переменную канала, которая будет доступна с момента создания канала с равноправным участником или пользователем и уничтожена по завершении звонка. Например, чтобы задать переменную канала foo со значением bar, используйте следующую запись: setvar=foo=bar

username (равноправный участник)

Поле username позволяет выполнять попытки соединения с равноправным участником до того, как он зарегистрировался в вашей системе. При регистрации SIP-устройство сообщает Asterisk, какой SIP URI использовать для связи с ним. Имя пользователя используется в сочетании с defaultip для создания SIP URI в заголовке SIP- сообщения INVITE. Это может пригодиться для выполнения вызова после перезагрузки. Конечные точки не будут пытаться повторно зарегистрироваться на сервере до истечения срока их регистрации, поэтому вы не будете знать их местоположений. Для нединамических хостов потребуется, чтобы имя пользователя было задано, поскольку оно используется для создания имени пользователя для авторизации:

username=john_smith

B

Справочник по приложениям

Приложения являются основными функциональными элементами диалплана. И приложения, и функции, описанные в приложении F, выполняют некоторые операции с каналом, но функции просто возвращают значения, которые могут быть использованы приложениями. Очень немногие приложения по-прежнему просто возвращают значения, но они, вероятно, будут признаны устаревшими в будущих версиях, их заменят функции диалплана.

Необходимо помнить о некоторых особенностях приложений. Во-первых, они могут завершаться нормально и аварийно. Практически всегда аварийное завершение выполняется, когда приложение выявляет разрыв соединения по каналу (или, если не выявляет, диалплан обнаружит это несколько позже). Приложение также может завершиться аварийно, когда необходимо указать диалплану на то, что некоторое условие не удовлетворено и что необходимо выполнить принудительный разрыв соединения. Во всех остальных случаях приложение будет завершаться нормально, а это свидетельствует о том, что выполнение должно продолжиться в следующем приоритете диалплана. Часто при необходимости переопределить поведение приложения, обусловливающее разрыв соединения, для него создают оболочку TryExec(). В данном справочнике часто встречается описание метка. Это сокращенная запись для описания точки диалплана, будь то просто приоритет, добавочный номер и приоритет или контекст, добавочный номер и приоритет. Обратите внимание, что, если текстовая метка определена для конкретного приоритета, приоритет может быть заменен этой текстовой меткой в любом из упомянутых случаев. Больше информации и пример можно найти в описании приложения GotoIf().

Во многих примерах данного приложения используются нумерованные приоритеты, что не рекомендуется при написании диалплана. Мы предпочитаем использовать n для обозначения всех приоритетов, кроме первого (нумерация которого является обязательной), но решили прибегнуть к нумерованным приоритетам, чтобы сделать некоторые примеры более наглядными.

AddQueueMember()

Динамически добавляет участников в очередь для заданной очереди вызовов

AddQueueMember(имяочереди[, интерфейс[, приоритет,[опция ,[имяучастник.а]]]])

Динамически добавляет заданный интерфейс в существующую очередь под именем имяочереди, которое определено в файле queues.conf. Если задан, приоритет определяет для очередей приоритет данного участника. Участники вызываются в порядке увеличения приоритетов. По завершении выполнения приложение AddQueueMember() задает переменную канала AQMSTATUS.

Переменной AQMSTATUS будет присвоено одно из следующих значений:

ADDED

MEMBERALREADY NOSUCHQUEUE

При вызове AddQueueMember() без аргумента интерфейс будет использоваться интерфейс, которым в настоящее время пользуется вызывающий абонент.

Если аргументу опция задано значение j, Asterisk не может добавлять интерфейс в указанную очередь и существует приоритет n + 101 (где n - номер текущего приоритета), вызов перейдет в этот приоритет. Посредством аргумента имяучастника может быть задано имя участника очереди. Таким образом, это имя будет использоваться в записях queue_ log и событиях интерфейса Asterisk Manager, что упростит идентификацию агента при формировании отчетов:

; добавляем SIP/3000 с приоритетом 1 в очередь techsupport exten => 123,1,AddQueueMember(techsupport,SIP/3000,1)

Смотрите также

Queue(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AgentLogin(), queues.conf

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*