Описание
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.
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})
Тестовый звонок через консоль
Иногда в процессе настройки возникает вопрос «как позвонить из консоли», для того что бы проверить внесенные изменения.
С этим может помочь следующая команда: