[macro-snap-catch] exten => s, 1, GotoIf($["${CALLERID(num)}" != ""]?2:10); exten => s, 2, GotoIf($[${DB(${CALLERID(num)}/ForwardLimit)}!=0]?3:10); exten => s, 3, GotoIf($[${DB(${CALLERID(num)}/ForwardUntil)}<${EPOCH}]?4:10); exten => s, 4, NoOp(Call caught); exten => s, 5, GotoIf($[${DB(${CALLERID(num)}/ForwardLimit)} != -1] ? 6 : 9); exten => s, 6, Set(newlimit=${MATH(${DB(${CALLERID(num)}/ForwardLimit)} - 1)}); exten => s, 7, Set(DB(${CALLERID(num)}/ForwardLimit)=${newlimit}) exten => s, 8, Set(channel=${DB(${DB(${CALLERID(num)}/ForwardTo)}/Channel)}) exten => s, 9, Dial(${channel},14,tT);