Asterisk. Команда StackPop.

StackPop() - Удаляет последний адрес из стека Gosub().

StackPop()

Удаляет последний адрес из стека Gosub(). Часто используется при обработке ошибок в рамках подпрограмм Gosub(), когда больше нет необходимости возвращать управление в точку диалплана, из которой была вызвана подпрограмма Gosub().

Пример:

exten => s,1,Read(input,get-input)
exten => s,n,Gosub(validate,1)
exten => s,n,Dial(SIP/${input})
; Гарантируем ввод номеров в диапазоне от 400 до 499
exten => validate,1,GotoIf($[ ${input} > 499 ]?error,1)510
exten => validate,n,GotoIf($[ ${input} < 400 ]?error,1)
exten => validate,n,Return
exten => error,1,StackPop()
exten => error,2,Goto(s,1)

 

См. также: Return(), Gosub()