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