AEL examples

Описание

Goto([[context|]extension|]priority)

Устанавливает текущей приоритет выполнения команды в заданное значение, дополнительно можно указать екстеншен и контекст для совершения перехода. Специальное имя екстеншена BYEXTENSION используется в тех случаях, когда Вы хотите совершить переход с использованием текущего имени екстеншена, в другой контекст.

Asterisk app: execiftime

Краткий обзор

Условное выполнение приложения Asterisk на основе текущего времени.

Описание

Это приложение выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени.

Синтаксис

ExecIfTime(times,weekdays,mdays,months[,timezone]?appname[(appargs)])

Пример

exten => 100,1,ExecIfTime(08:00-20:00,mon-fri,1-31,jan-dec?Verbose(test text))

Смотри также

Команда Asterisk Exec()

Команда Asterisk ExecIf()

Команда Asterisk TryExec()

Команда Asterisk GotoIfTime()


Команды диалплана Asterisk

Asterisk -rx


Иногда удобно дать команду, или получить информацию, не подключаясь непосредственно к консоли. Для этого используется ключ ‘-x’. Например, получить список sip пиров:

# asterisk -rx 'sip show peers'

Команда может заключаться, как в одинарные, так и в двойные кавычки.

Также можно отфильтровать полученные данные командой grep:

 # asterisk -rx "sip show peers" | grep unreachebale

Iftime

context time {
_X. => {
ifTime (10:00-21:00|*|*|*) { NoOp(***Dial***); Dial(SIP/${EXTEN},,); }
ifTime (21:00-10:00|*|*|*) { NoOp(***hangup***); hangup; } }
}
 -- Executing [1001@from-test:1] GotoIfTime("SIP/1000-0000014f", "10:00-21:00,*,*,*?3") in new stack -- Executing [1001@from-test:2] Goto("SIP/1000-0000014f", "5") in new stack -- Goto (from-test,1001,5) -- Executing [1001@from-test:5] NoOp("SIP/1000-0000014f", "Finish iftime_test123_32") in new stack -- Executing [1001@from-test:6] GotoIfTime("SIP/1000-0000014f", "21:00-10:00,*,*,*?8") in new stack -- Goto (from-test,1001,8) -- Executing [1001@from-test:8] NoOp("SIP/1000-0000014f", "***hangup***") in new stack -- Executing [1001@from-test:9] Hangup("SIP/1000-0000014f", "") in new stack == Spawn extension (from-test, 1001, 9) exited non-zero on 'SIP/1000-0000014f'

Logger.conf

Консоль является объектом модуля логов в Asterisk. Что должно отображаться в консоли при подключении, настраивается в конфиге logger.conf

Настройка Asterisk

Pjsip

 Aor: <Aor..............................................> <MaxContact> Contact: <Aor/ContactUri.................................> <Status....> <RTT(ms)..> ========================================================================================= Aor: 1000 1 Contact: 1000/sip:1000@192.168.1.32:5060;transport=UDP;rin Avail 9.645 Aor: 1001 1
localhost*CLI> pjsip show aor 1000 Aor: <Aor..............................................> <MaxContact> Contact: <Aor/ContactUri.................................> <Status....> <RTT(ms)..> ========================================================================================= Aor: 1000 1 Contact: 1000/sip:1000@192.168.1.32:5060;transport=UDP;rin Avail 13.017 ParameterName : ParameterValue ========================================================================================== authenticate_qualify : false contact : sip:1000@192.168.1.32:5060;transport=UDP;rinstance=56471484e9cd2c68 default_expiration : 3600 mailboxes : max_contacts : 1 maximum_expiration : 7200 minimum_expiration : 60 outbound_proxy : qualify_frequency : 60 remove_existing : true support_path : false

Run linux shell commands from the asterisk cli

Восклицательный знак перед командой позволяет предавать команды оболочке Linux.

:/>  Установить просмотрщик фотографий windows 7

 localhost*CLI> !whoami root localhost*CLI>

Варианты использования:

Goto(context,extension,priority)

Goto(extension,priority)

Goto(priority)

Замечание

Использование пробелов в параметрах, разделенных запятыми, может привести к непредсказуемым результатам.

Например:

Goto(confexisting, 1, 1)

Команда будет искать екстеншен ” 1″, т.е. с ведущим пробелом в имени екстеншена.

Коды возврата:

Всегда возвращает 0, даже если задан неправильный контекст, приоритет или екстеншен.

Назначение


Переход на указанный приоритет, екстеншен или контекст

Повторение предыдущих команд.

Для просмотра ранее введенных команд, нажмите стрелочку вверх, таким образом можно пролистать всю историю назад и вперед.

Примеры:

exten => 1,1,Goto(submenu,s,1) ; переход в контекст “submenu”, на екстеншен “s”, к команде с приоритетом 1

exten => 600,4,Goto(s,6) ; переход в текущем контексте, к екстеншену “s”, к команде с приоритетом 6

exten => s,1,Dial(${ARG2},20,r)exten => s,2,Goto(s-${DIALSTATUS},1)exten => s-NOANSWER,1,Voicemail(u${ARG1})exten => s-CHANUNAVAIL,1,Voicemail(b${ARG1})exten => s-BUSY,1,Voicemail(b${ARG1})exten => _s-.,1,Voicemail(u${ARG1})

Тестовый звонок через консоль


Иногда в процессе настройки возникает вопрос «как позвонить из консоли», для того что бы проверить внесенные изменения.
С этим может помочь следующая команда: