I threw together this standard extension and would like some feedback if there is a better way. I didn't want to use priority jumping, and I needed it to handle calling outside numbers also without opening up my whole outside dialing context to incoming callers. It's based on the default standard extension macro in asterisk. ; Standard extension macro: ; ${ARG1} - Device(s) to ring ; ${ARG2} - Voicemail Box exten => s,1,DBget(CFU=CF/${MACRO_EXTEN}/CFU) exten => s,2,DBget(CFB=CF/${MACRO_EXTEN}/CFB) exten => s,3,DBget(CFNA=CF/${MACRO_EXTEN}/CFNA) exten => s,4,GotoIf($["${CFU}" != ""]?s-CFU|1) exten => s,1,Set(DIALNUM=${ARG1}) exten => s,2,GotoIf($[${LEN(${DIALNUM})} >= 7]?s-DIAL|3:s-DIAL|1) exten => s-NOANSWER,1,GotoIf($["${CFNA}" != "" & "${NOANSWER}" != 1]?s-CFNA|1) exten => s-NOANSWER,2,Set(NOANSWER=1) exten => s-NOANSWER,3,Voicemail(u${ARG2}) exten => s-NOANSWER,4,Hangup exten => s-BUSY,1,GotoIf($["${CFB}" != "" & "${BUSY}" != 1]?s-CFB|1) exten => s-BUSY,2,Set(BUSY=1) exten => s-BUSY,3,Voicemail(b${ARG2}) exten => s-BUSY,4,Hangup exten => s-CFU,1,Set(DIALNUM=${CFU}) exten => s-CFU,2,GotoIf($[${LEN(${DIALNUM})} >= 7]?s-DIAL|3:s-DIAL|1) exten => s-CFB,1,Set(DIALNUM=${CFB}) exten => s-CFB,2,GotoIf($[${LEN(${DIALNUM})} >= 7]?s-DIAL|3:s-DIAL|1) exten => s-CFNA,1,Set(DIALNUM=${CFNA}) exten => s-CFNA,2,GotoIf($[${LEN(${DIALNUM})} >= 7]?s-DIAL|3:s-DIAL|1) exten => s-DIAL,1,Dial(Local/${DIALNUM}@extensions/n,20) exten => s-DIAL,2,Goto(s-${DIALSTATUS},1) exten => s-DIAL,3,Dial(Local/${DIALNUM}@outgoing/n,20) exten => s-DIAL,4,Goto(s-${DIALSTATUS},1) exten => _s-.,1,Goto(s-NOANSWER,1)