Команда Goto()
Назначение
Переход на указанный приоритет, екстеншен или контекстОписание
Goto([[[context|]extension|]priority)Устанавливает текущей приоритет выполнения команды в заданное значение, дополнительно можно указать екстеншен и контекст для совершения перехода. Специальное имя екстеншена BYEXTENSION используется в тех случаях, когда Вы хотите совершить переход с использованием текущего имени екстеншена, в другой контекст. Обратите внимание, что можно опустить необязательные параметры команды только в КОНЦЕ списка аргументов, нельзя опустить необязательный аргумент, идущий до или между заданными параметрами.
Варианты использования:
Goto(context,extension,priority)Goto(extension,priority)
Goto(priority)
Замечание
Использование пробелов в параметрах, разделенных запятыми, может привести к непредсказуемым результатам.Например:
Goto(confexisting, 1, 1)
Команда будет искать екстеншен " 1", т.е. с ведущим пробелом в имени екстеншена.
Коды возврата:
Всегда возвращает 0, даже если задан неправильный контекст, приоритет или екстеншен.Примеры:
exten => 1,1,Goto(submenu,s,1) ; переход в контекст "submenu", на екстеншен "s", к команде с приоритетом 1exten => 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})
Ссылки по теме:
- Команда GotoIf: Условный переход
- Команда Random: Перехода в плане набора с определенной вероятностью
- Переменные Asterisk
Список команд