I am using the following command to impose 20 minutes wait to re-dial the same number
I'm starting in this world
[custom-dialplan] exten => X.,1,NoOp(Checking for previous call) exten => X.,n,Set(last_call_time=${DB(custom-dialplan/${CALLERID(num)})}) exten => X.,n,Set(current_time=${EPOCH}) exten => X.,n,Set(minimum_interval=1200) ;
exten => _X.,n,Set(allowed_to_dial=0) ;
exten => _X.,n,GotoIf($[${current_time}-${last_call_time}<${minimum_interval}]?not-allowed:allowed)
exten => X.,n(allowed),NoOp(Allowed to call) exten => X.,n,Set(allowed_to_dial=1) exten => X.,n,Set(DB(custom-dialplan/${CALLERID(num)})=${current_time}) exten => X.,n,Dial(SIP/seu_tronco/${EXTEN}) exten => _X.,n,Hangup()
exten => X.,n(not-allowed),NoOp(Not allowed to call) exten => X.,n,GotoIf($[ ${allowed_to_dial} = 0 ]?play-message:allow-call) exten => X.,n(play-message),Playback(your-message-to-caller) exten => X.,n,Wait(1) exten => X.,n,Hangup() exten => X.,n(allow-call),Set(allowed_to_dial=1) exten => _X.,n,Goto(allowed)