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.

:/>  Состояние 0xc0000225 сбой меню загрузки 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})

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


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

Оставьте комментарий