rendered paste body [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);