context closerloop { s => { Answer(); SetMusicOnHold(default); Set(ISTRANSFER=TRANSFER); Set(TRANSFER_CONTEXT=closerdispo); Set(AGENTCALLED=${EXTEN}); if (${ISNULL(${CAMPAIGN})}) { Set(CAMPAIGN=INBOUND); }; if (${ISNULL(${LEADID})}) { Set(LEADID=1); }; if (${ISNULL(${PHONENUM})}) { Set(PHONENUM=4085551212); }; // Set(MONITOR_FILENAME=closer-${EXTEN}-${CAMPAIGN}-${PHONENUM}-${EPOCH}); Set(CALLERID(num)=${PHONENUM}); Set(CALLERID(name)=~${CAMPAIGN}-${LEADID}-true~); Set(DYNCONF=\(${PHONENUM}\)); NoOp(Entered CloserLoop - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); WaitExten(1); Playback(one-moment-please); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); Playback(thnk-u-for-patience); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CLOSERCALLBACK - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(pls-hold-while-try); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CLOSERCALLBACK - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(pls-hold-while-try); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CLOSERCALLBACK - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(nbdy-avail-to-take-call); WaitExten(1); Playback(rather-than-hold-thank-you); WaitExten(1); Verbose(3|CloserLoop - DROPPING CLOSERCALLBACK - (NO CLOSER AVAILABLE) - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); Set(FROM=NOCLOSERDROP); Hangup(); }; 699 => { Answer(); SetMusicOnHold(default); Set(ISTRANSFER=TRANSFER); Set(TRANSFER_CONTEXT=closerdispo); Set(AGENTCALLED=${EXTEN}); if (${ISNULL(${CAMPAIGN})}) { Set(CAMPAIGN=INBOUND); }; if (${ISNULL(${LEADID})}) { Set(LEADID=1); }; if (${ISNULL(${PHONENUM})}) { Set(PHONENUM=4085551212); }; // Set(MONITOR_FILENAME=closer-${EXTEN}-${CAMPAIGN}-${PHONENUM}-${EPOCH}); Set(CALLERID(num)=${PHONENUM}); Set(CALLERID(name)=~${CAMPAIGN}-${LEADID}-true~); Set(DYNCONF=\(${PHONENUM}\)); NoOp(Entered CloserLoop - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); WaitExten(1); Playback(one-moment-please); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); Playback(thnk-u-for-patience); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CHECKING FOR CLOSER - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(pls-hold-while-try); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CHECKING FOR CLOSER - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(pls-hold-while-try); for (x=0; ${x} < 3; x=${x} + 1) { Verbose(3|x is ${x} !); Verbose(3|CloserLoop - CHECKING FOR CLOSER - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); UserEvent(Queue${ISTRANSFER}| CallerIDName: ${CALLERID(name)}); WaitMusicOnHold(5); }; Playback(nbdy-avail-to-take-call); WaitExten(1); Playback(rather-than-hold-thank-you); WaitExten(1); Verbose(3|CloserLoop - DROPPING CALL - (NO CLOSER AVAILABLE) - Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); Set(FROM=NOCLOSERDROP); Hangup(); }; _X => { Answer(); Set(ISTRANSFER=TRANSFER); Set(TRANSFER_CONTEXT=closerdispo); Set(AGENTCALLED=${EXTEN}); if (${ISNULL(${CAMPAIGN})}) { Set(CAMPAIGN=INBOUND); }; if (${ISNULL(${LEADID})}) { Set(LEADID=1); }; if (${ISNULL(${PHONENUM})}) { Set(PHONENUM=4085551212); }; // Set(MONITOR_FILENAME=closer-${EXTEN}-${CAMPAIGN}-${PHONENUM}-${EPOCH}); Set(CALLERID(num)=${PHONENUM}); Set(CALLERID(name)=~${CAMPAIGN}-${LEADID}-true~); Set(DYNCONF=\(${PHONENUM}\)); Set(UID=\[${UNIQUEID}\]); NoOp(Entered CloserTransfer - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); // Playback(for-qc-and-training-purposes); // Playback(this-call-may-be-monitored-or-recorded); UserEvent(ClserCalled|Agent/${EXTEN} ${DYNCONF} ${UID} ${CALLERID(name)}); Verbose(3|CloserLoop - BRIDGING TO CLOSER - ${EXTEN} with Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); Dial(Agent/${EXTEN}||t); UserEvent(Unlink|Agent/${EXTEN}); }; _X. => { Answer(); Set(ISTRANSFER=TRANSFER); Set(TRANSFER_CONTEXT=closerdispo); Set(AGENTCALLED=${EXTEN}); if (${ISNULL(${CAMPAIGN})}) { Set(CAMPAIGN=INBOUND); }; if (${ISNULL(${LEADID})}) { Set(LEADID=1); }; if (${ISNULL(${PHONENUM})}) { Set(PHONENUM=4085551212); }; // Set(MONITOR_FILENAME=closer-${EXTEN}-${CAMPAIGN}-${PHONENUM}-${EPOCH}); Set(CALLERID(num)=${PHONENUM}); Set(CALLERID(name)=~${CAMPAIGN}-${LEADID}-true~); Set(DYNCONF=\(${PHONENUM}\)); Set(UID=\[${UNIQUEID}\]); NoOp(Entered CloserTransfer - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); // Playback(for-qc-and-training-purposes); // Playback(this-call-may-be-monitored-or-recorded); UserEvent(ClserCalled|Agent/${EXTEN} ${DYNCONF} ${UID} ${CALLERID(name)}); Verbose(3|CloserLoop - BRIDGING TO CLOSER - ${EXTEN} with Phone: ${PHONENUM} CallerIDName: ${CALLERID(name)}); Dial(Agent/${EXTEN}||t); UserEvent(Unlink|Agent/${EXTEN}); }; h => { NoOp(Left CloserLoop (Hangup) - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); // if( $["${FROM}" = "CLOSERCALLBACK"] || $["${FROM}" = "NOCLOSERDROP"] ) { if( ${FROM} = "CLOSERCALLBACK" || ${FROM} = "NOCLOSERDROP" ) { DeadAGI(printrec.agi|11,699,${CAMPAIGN},${LEADID},CLOSER FAILURE - UnVerified Sale); }; }; t => { NoOp(Left CloserLoop (Timeout) - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); Hangup(); }; }; context closerqueue { _X. => { Answer(); NoOp(Entered CloserQueue - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); Set(ISTRANSFER=TRANSFER); Set(TRANSFER_CONTEXT=closerdispo); Set(CAMPAIGN=INBOUND); Set(LEADID=1); // Set(MONITOR_FILENAME=closer-${EXTEN}-${CAMPAIGN}-${PHONENUM}-${EPOCH}); Set(AGENTCALLED=${EXTEN}); Set(CALLERID(num)=${PHONENUM}); Set(CALLERID(name)=~${CAMPAIGN}-${LEADID}-true~); Playback(for-qc-and-training-purposes); Playback(this-call-may-be-monitored-or-recorded); Wait(1); Playback(thnk-u-for-patience); goto cq|1; }; cq => { Queue(CLOSER|tn|||30); goto t|1; }; h => { NoOp(Left CloserQueue - PHONENUM: ${PHONENUM}, DSPMODE: ${DSPMODE}, CAMPAIGN: ${CAMPAIGN}, LEADID: ${LEADID}, ISTRANSFER: ${ISTRANSFER}); }; i => { Playback(invalid); Playback(pls-hold-while-try); goto cq|1; }; t => { for (x=0; ${x} < 3; x=${x} + 1) { Playback(all-reps-busy); Playback(pls-hold-while-try); goto cq|1; }; Playback(all-reps-busy); Playback(nbdy-avail-to-take-call); Wait(1); ;Playback(something about calling them back); Hangup; }; };