GosubIf() — Conditionally branches to a new location, saving the return address
Based upon the evaluation of
condition, Gosub will branch execution either to
labeliftrue() or
labeliffalse. You may return to this same
place in the dialplan by later calling Return.
The word label is often used
to denote that you may specify a priority;
an extension and a
priority; or a
context, an
extension and a
priority. We use the word label to avoid having to spell out all of
the possible options each time.
; Specify a default outgoing Caller*ID if one is not set by a specific channel. exten => _NXXXXXX,1,GosubIf($["${CALLERID(num)}" = ""]?setcallerid,1) exten => _NXXXXXX,n,Dial(Zap/g1/${EXTEN}) exten => _1NXXNXXXXXX,1,GosubIf($["${CALLERID(num)}" = ""]?setcallerid,1) exten => _1NXXNXXXXXX,n,Dial(Zap/g1/${EXTEN}) exten => setcallerid,1,Set(CALLERID(num)=6152345678) exten => setcallerid,n,Return