Fonction
Ce contexte sert a mettre en attente les appels exterieurs de nuit pour filtrer les erreurs de numéro.
Utilisation
On appelle le contexte d’attente [in-wait] en passant une variable contenant le temps a attendre (duration).
Exemple:
[in-external] include => in-external-day|07:30-21:00|mon-fri include => in-external-night [in-external-day] exten => s,1,Set(DB(lastcallerid/number)=${CALLERID(number)}) exten => s,n,Dial(${PHONES},25,i) exten => s,n,VoiceMail(${PTSN_NUMBER}|u) exten => s,n,Goto(in-end-call,s,1) exten => a,1,VoiceMailMain(${PTSN_NUMBER}) [in-external-night] ; night incoming call from external (ptsn/9talk) exten => s,n,Set(duration=45) exten => s,n,Gosub(in-wait,s,1) exten => s,n,Dial(${PHONES},25,i) exten => s,n,VoiceMail(${PTSN_NUMBER}|u) exten => s,n,Goto(in-end-call,s,1) exten => a,1,VoiceMailMain(${PTSN_NUMBER}) exten => a,n,Goto(in-end-call,s,1)
Contexte
[in-wait] ; in: duration exten => s,1,Wait(1) exten => s,n,Playback(privacy-please-stay-on-line-to-be-connected) exten => s,n,Set(step=18) exten => s,n,Set(elapsed=0) exten => s,n,Playback(est-hold-time-is) exten => s,n,SayNumber(${duration}) exten => s,n,Playback(seconds) exten => s,n,While($[${elapsed} <= ${duration}]) exten => s,n,Wait(1) exten => s,n,Set(elapsed=$[${elapsed} + 1]) exten => s,n,GotoIf($[$[${elapsed} % ${step}] != 0]?loop) exten => s,n,Playback(wait-moment) exten => s,n(loop),EndWhile exten => s,n,Return()