Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
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
ADSIProg()
Загружает ADSI-сценарий в телефон, поддерживающий ADSI
ADSIProg(сценарий)
Программирует телефон, поддерживающий Analog Display Services Interface (ADSI), с помощью заданного сценария. Если сценарий не задан, используется сценарий по умолчанию, asterisk.adsi. Для сценария указывается относительный путь из папки конфигурации Asterisk (обычно это /etc/asterisk/). Также можно указать полный путь к сценарию.
Для получения CPE ID и другой информации от своего ADSI-телефона используйте приложение GetCPEID():
; программируем ADSI-телефон с помощью сценария telcordia-l.adsi exten => 123,1,ADSIProg(telcordia-1.adsi)
Смотрите также
GetCPEID(), adsi.conf
AgentCallbackLogin()
Регистрация агента с возможностью обратного вызова
AgentCallbackLogln([НомерАгентa][,[опции][,[добaвочныйномер]@контекст]])
Разрешает агенту вызовов, идентифицированному параметром Номер- Агента, регистрироваться в системе очереди вызовов, что позволяет при поступлении вызова для этого агента выполнять обратный вызов к нему.
При поступлении вызова для этого агента Asterisk звонит на заданный добавочный номер (с необязательным контекстом).
Аргумент опции может содержать букву s, что означает скрытую авторизацию:
регистрируется в скрытом режиме как агент номер 42 и определяет, что при поступлении вызова для этого агента Asterisk будет звонить на добавочный номер 123 в контексте internal exten => 123,1,AgentCallbackLogin(42,s,[email protected])
Это приложение является устаревшим, его функциональность замещена логикой диалплана на AEL, размещенного в файле doc/queues-with-callbackmembers.txt в папке исходного кода Asterisk.
Смотрите также
Queue(), AgentLogin(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentLogin()
Регистрация агента вызовов в системе
AgentLogin([НомерАгента][, опции])
Регистрирует текущего вызывающего абонента в системе очереди вызовов как агента обработки вызовов (он может быть идентифицирован параметром НомерАгента). После регистрации агент может принимать вызовы и будет слышать звуковой сигнал в линии при поступлении нового вызова. Агент может прервать текущий вызов, нажав кнопку со звездочкой (*). Если НомерАгента не задан, вызывающему абоненту будет предложено ввести свой номер агента. Агенты описаны в файле agents.conf.
Аргумент опции может содержать букву s, что означает скрытую авторизацию:
; регистрируем в скрытом режиме вызывающего абонента как ; агента номер 42, как определено в agents.conf exten => 123,1,AgentLogin(42,s)
Смотрите также
Queue(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentMonitorOutgoing()
Регистрирует исходящие вызовы агента
AgentMonitorOutgoing([опции])
Регистрирует все исходящие вызовы, производимые агентом обработки вызовов.
Это приложение пытается выяснить ID агента, выполняющего исходящий вызов, на основании сравнения Caller ID (ID звонящего) текущего интерфейса и глобальной переменной, заданной приложением AgentCallbackLogin(). Таким образом, оно должно использоваться только в сочетании (и после него!) с приложением AgentCallbackLogin(). Для записи вызовов оно использует не приложение Monitor(), а функции для записи разговоров модуля chan_agent. Это означает, что процедура записи вызовов должна быть правильно сконфигурирована в файле agents.conf. По умолчанию записанные звонки сохраняются в папке /var/spool/ asterisk/monitor/. Это можно переопределить с помощью параметра savecallsin в файле agents.conf.