; ${ARG1}=StationA1 ; ${ARG2}=StationB1 ; ${ARG3}=StationC1 ; ${ARG4}=Ring Time ; ${ARG5}=Roll To ; ${ARG6}=Dial Options exten => s,1,NoOp(Ringing ${ARG1} then ${ARG2} then ${ARG3} for ${ARG4} seconds then rolling to ${ARG5) - ${MACRO_EXTEN} from ${MACRO_CONTEXT} ${SIP_CODEC} ${CALLERIDNUM}) exten => s,n,Macro(cnamfixup,${MACRO_EXTEN}) exten => s,n,SetAMAFlags(BILLING) exten => s,n,execif($["${CALLERIDNAME}" = ""],agi,calleridname.agi) exten => s,n,Macro(CheckMaxCalls2,${ACCOUNTCODE}) exten => s,n,Set(RINGME=${ARG1}) exten => s,n(goDial),Dial(${RINGME},${ARG4},${ARG6}) exten => s,n,GotoIf($["${RINGME}" = "${ARG3}"]?Roll3:Roll12) exten => s,n(Roll12),GotoIf($["${RINGME}" = "${ARG2}"]?Roll2:Roll1) exten => s,n(Roll1),Set(RINGME=${ARG2}) exten => s,n,Goto(goDial) exten => s,n(Roll2),Set(RINGME=${ARG3}) exten => s,n,Goto(goDial) exten => s,n(Roll3),Goto(${MACRO_CONTEXT},${ARG5},1) exten => s,n,Hangup exten => BUSY,1,Voicemail(b${ARG3}) exten => BUSY,n,Hangup exten => CHANUNAVAIL,1,Voicemail(u${ARG3}) exten => CHANUNAVAIL,n,Hangup exten => NOANSWER,1,Voicemail(u${ARG3}) exten => NOANSWER,n,Hangup exten => CONGESTION,1,Voicemail(u${ARG3}) exten => CONGESTION,n,Hangup exten => CANCEL,1,Hangup