Предопределенные переменные специфичные для каналов
Ниже приведен список специфичных для каналов переменных устанавливаемых самим Asterisk, значения которых Вы можете использовать в плане набора. В отличии от переменных определенных пользователем, переменные определяемые самим Asterisk- регистрозависимые.
- ${ACCOUNTCODE}: Код аккаунта, если назначен - см. Asterisk billing. (объявлена устаревшей, начиная с версии 1.2.0 и удалена в версии 1.4.0. Используйте ${CDR(accountcode)} .
- ${ANSWEREDTIME}: Время, когда на вызов ответили.
- ${BLINDTRANSFER}: Активный канал SIP, который совершает вызов. Тут будет определено имя SIP канала, который совершает вызов при трансфере вызова типа blind - см. BLINDTRANSFER?
- ${CALLERID(all)} : Текущее значение имени и номера из CallerID - Смотри раздел Установка Callerid?, посвященный работе с CallerID в Asterisk версии 1.4
- ${CALLERID(name)} : Текущее значение имени из CallerID - Переменная ${CALLERIDNAME} использовалась в Asterisk до версии 1.2.0, она объявлена УСТАРЕВШЕЙ, начиная с версии 1.2.0 и удалена в версии 1.4.
- ${CALLERID(num)} : Текущее значение номера из CallerID - Переменная :${CALLERIDNUM} использовалась в Asterisk до версии 1.2.0, она объявлена УСТАРЕВШЕЙ, начиная с версии 1.2.0 и удалена в версии 1.4. (Обратите внимание: значения этой переменной не обязательно должно быть цифровым, как это может показаться из названия, и вполне законно ее значением может быть символ пробела. Для команд, которые оперируют значением этой переменной, (Например, 'GotoIf') должен учитываться этот момент).
- ${CALLINGPRES}: Переменная, содержащая PRI Call ID Presentation, для входящих вызовов (См. callingpres )
- ${CHANNEL}: Текущее имя канала
- ${CONTEXT}: Текущее имя контекста
- ${DATETIME}: Текущее время и дата в формате: DDMMYYYY-HH:MM:SS Эта переменная объявлена устаревшей в версии Asterisk 1.2, вместо нее используйте конструкцию: ${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)})
- ${DIALEDPEERNAME}: Имя вызываемого абонента. В данный момент не работает, см DIALEDPEERNAME?
- ${DIALEDPEERNUMBER}: Номер вызываемого абонента. В данный момент не работает, см DIALEDPEERNUMBER?
- ${DIALEDTIME}: Время, когда был набран номер. (Работает, только, если вызываемый абонент ответил на вызов?!)
- ${DIALSTATUS}: Статус вызова. См. DIALSTATUS
- ${DNID}: Dialed Number Identifier. Для поддержки ограничений на исходящие вызовы, см. DNID?
- ${EPOCH}: Текущее время в UNIX формате (количество секунд прошедшее с 1 января 1970 года)
- ${EXTEN}: Текущий екстеншен
- ${HANGUPCAUSE}: Последний код возврата, возвращенный по окончании соединения для Zap канала, соединенного с интерфейсом PRI
- ${INVALID_EXTEN}: Запрашиваемый екстеншен, для случаев, когда он переадресуется на обработку i (неправильного) екстеншена
- ${LANGUAGE}: Текущий язык сообщений. См. Asterisk multi-language?
- ${MEETMESECS}: Количество секунд, в течении которых пользователь участвовал в конференции MeetMe?.
- ${PRIORITY}: Текущее значение приоритета.
- ${RDNIS}: Caller ID, для абонента совершающего переадресацию DNIS. Для поддержки ограничений на исходящие вызовы, см. RDNIS?
- ${SIPDOMAIN}: Домен назначения для исходящего SIP вызова (если присутствует)
- ${SIP_CODEC}: Используется для установки кодека, для вызова через SIP канал (предположительно не работает в версии 1.0.1, ok в 1.0.3 & 1.0.4, нет уверенности насчет 1.0.2)
- ${SIPCALLID}: Значение заголовочного поля Call-ID: в сообщениях SIP диалога.
- ${SIPUSERAGENT}: Значение заголовочного поля "user agent" в сообщениях SIP диалога.
- ${TIMESTAMP}: Текущая дата и время в формате: YYYYMMDD-HHMMSS Эта переменная объявлена устаревшей в версии Asterisk 1.2, вместо нее используйте конструкцию: ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
- ${TRANSFERCAPABILITY}: Тип канала.
- ${TXTCIDNAME}: Результат работы приложения TXTCIDName (см. ниже)
- ${UNIQUEID}: Текущий уникальный идентификатор вызова
- ${TOUCH_MONITOR}: используется для "записи одним нажатием" (см. features.conf, и флаги wW для команды dial). Если установлена на обоих концах связи, тогда эта переменная содержит app_args (аргументы) для приложения app_monitor, иначе для нее будут использоваться аргументы по умолчанию: WAV||m
- ${CONTEXT}: Имя текущего контекста
- ${DATETIME}: Текущая дата и время в формате: !YYYY-MM-DD_HH:MM:SS
- ${TIMESTAMP}: Текущая дата и время в формате: YYYYMMDD-HHMMSS
- ${EPOCH}: Текущее время UNIX-овой эпохи (число секунд с 1 Jan 1970)
- ${EXTEN}: Текущий телефонный номер (extension)
- ${INVALID_EXTEN}: Набранный телефонный номер при переадресации на i (invalid) extension
- ${LANGUAGE}: Текущее значения языка. Смотри поддержку национальных языков в Астериске
- ${PRIORITY}: Текущий приоритет
- ${CALLINGPRES}: PRI Call ID Presentation variable for incoming calls (See callingpres)
- ${CALLERID}: Идентификатор вызывающего (имя и номер)
- ${CALLERIDNAME}: Идентификатор вызывающего: имя
- ${CALLERIDNUM}: Идентификатор вызывающего: номер
- ${CHANNEL}: Имя текущего канала
- ${RDNIS}: The current redirecting DNIS, Caller ID that redirected the call. See RDNIS
- ${SIPDOMAIN}: SIP destination domain of an inbound call (if appropriate)
- ${SIP_CODEC}: Used to set the SIP codec for a call
- ${SIPCALLID}: The SIP dialog Call-ID: header
- ${SIPUSERAGENT}: The SIP user agent header
- ${UNIQUEID}: Current SIP call unique ID
- ${HANGUPCAUSE}: The last hangup return code on a Zap channel connected to a PRI interface
- ${DNID}: Dialed Number Identifier
- ${ACCOUNTCODE}: Account code, if specified - see Asterisk billing
Переменные, используемые различными приложениями
Команды некоторых приложений используют значения "канальных" переменных или возвращают в них результат своей работы.
- Команда AgentCallbackLogin? возвращает в ${AGENTBYCALLERID_${CALLERID}}: ID успешно авторизированного агента.
- Команда ChanIsAvail возвращает в ${AVAILCHAN}: первый доступный канал
- Команда Dial использует значение переменной ${VXML_URL}: для отправки XML Url в телефон Cisco 7960.
- Команда Dial использует значение переменной ${ALERT_INFO}: для передачи информации о типе звонка в телефоны Cisco.
- Команда Dial возвращает в ${CAUSECODE}: Код ошибки, если вызов не удался.
- Команда Dial возвращает в ${DIALSTATUS}: текстовый код результата последней попытки вызова абонента.
- Команда Dial использует значение переменной ${TRANSFER_CONTEXT}: Если установлена эта переменная, при выполнении процедуры перевода вызова (#transfer), то будет использоваться для выполнения команд экстеншен из указанного контекста.
- Команда EnumLookup возвращает в переменной ${ENUM}: результат поиска.
- Команда Hangup использует значение переменной ${PRI_CAUSE} для установки кодов возврата PRI интерфейса.
- Команда MeetMe использует значение переменной {MEETME_AGI_BACKGROUND}: для определения AGI скрипта, который необходимо выполнить.
- Команда MeetMe возвращает в переменной ${MEETMESECS}: количество секунд, которое пользователь провел в конференции.
- Команда Playback возвращает в переменной ${PLAYBACKSTATUS}: Результат выполнения команды (FAILED|SUCCESS).
- Команда Queue возвращает в переменной ${QUEUESTATUS}: Причину, по которой, помещенный в очередь, вызов, покинул ее.
- Команда TXTLookup возвращает в переменной ${TXTCIDNAME}: результат поиска в DNS.
- Команда VoiceMail возвращает в переменной ${VMSTATUS}: результат выполнения приложения VoiceMail?. Возможные значения: SUCCESS | USEREXIT | FAILED .
Переменные, специфичные для макросов
При использовании контекстов в качестве макросов, доступны дополнительные специфичные для макросов "канальные" переменные.
- ${ARG1}: первый аргумент, переданный макросу
- ${ARG2}: второй аргумент, переданный макросу (и так далее ...)
- ${MACRO_CONTEXT}: Имя контекста екстеншена, вызвавшего данный макрос
- ${MACRO_EXTEN}: Екстеншен, вызвавший данный макрос
- ${MACRO_OFFSET}: Устанавливается макросом, для определения приоритета, с которого продолжится выполнение команд, после завершения работы макроса
- ${MACRO_PRIORITY}: Приоритет екстеншена, на момент вызова данного макроса
Переменные окружения
Вы можете получить доступ к переменным окружения unix, используя следующий синтакс:
${ENV(''foo'')}
