Variables in Manager Action: Originate Channel: Local/15555555555@dialoutconf/n Callerid: 555555555 Context: dialoutconf Exten: dialoutconf Variable: CallInitiate_person=someone Variable: CallInitiate_phonenumber=15555555555 extensions.conf [dialoutconf] exten => outbound,1,Answer() exten => outbound,2,NoOp(Chanel name is ${CHANNEL}) exten => outbound,3,NoOp(called number is ${CallInitiate_phonenumber} exten => _1NXXNXXXXXX,1,Set(NOJOIN=0) ; exten => _1NXXNXXXXXX,1,Dial(SIP/${EXTEN}@vitel-conference|20|gM(conf-connect^${CallInitiate_conferenceName}^${CallInitiate_person})) exten => _1NXXNXXXXXX,1,Dial(SIP/ernie|20|gM(conf-connect^${CallInitiate_conferenceName}^${CallInitiate_person})) exten => _1NXXNXXXXXX,2,NoOp(Dial status on exit from Macro is ${DIALSTATUS}) exten => _1NXXNXXXXXX,3,Set(NOJOIN=1) exten => _1NXXNXXXXXX,4,Goto(102) exten => _1NXXNXXXXXX,102,Hangup() exten => h,1,GoToIf($[${CALLERIDNUM} = 5555555555]?5:3) exten => h,3,GoToIf($[${NOJOIN} = 1]?5:4) exten => h,4,System(/opt/asterisk/conference-announce ${CallInitiate_conferenceName} out ${CallInitiate_person}) exten => h,5,NoOp(Hung up outbound ${CHANNEL}) [macro-conf-connect] exten => s,1,Answer() exten => s,2,agi(swift.agi|${ARG2}) exten => s,3,Wait(1.5) ;exten => s,4,NoOp(Channel in macro is ${CHANNEL}) exten => s,4,Playback(to-join-a-meeting) exten => s,5,Playback(conference-call) exten => s,6,Read(NUMBER,press-9,1,,1,10) exten => s,7,GotoIf($[${NUMBER} = 9]?9:13) exten => s,8,SetVar(MACRO_RESULT=BUSY) exten => s,9,System(/opt/asterisk/conference-announce ${ARG1} in ${ARG2}) exten => s,10,Conference(${ARG1}/S/1) exten => s,11,Goto(dialoutconf,outbnd-handler,102) exten => s,12,Playback(vm-goodbye) exten => s,13,SetVar(MACRO_RESULT=CONTINUE) sip.conf [ernie] type=friend secret=blahbla qualify=yes nat=yes host=dynamic callerid=Ellingson <5555555555> canreinvite=no context=internal Callgroup=1 pickupgroup=1 [provider-conference] ;(exact format/casing required) type=friend host=outbound1.provider.net context=dialoutconf ;(generated by conf call) username=ernieboy fromuser=ernieboy trustrpid=yes sendrpid=yes nat=no secret=blahblah allow=all canreinvite=yes [confhelper] ; make one of these extensions per seperate conference bridge exten => conf-establish,1,Conference(${ConferenceName}/S/1) exten => in,1,Answer() exten => in,2,agi(swift.agi|${ConferencePerson}) exten => in,3,Playback(conf-hasjoin) ;exten => in,4,ResponseTimeout(5) exten => in,5,Hangup() exten => out,1,Answer() exten => out,2,agi(swift.agi|${ConferencePerson}) exten => out,3,Playback(conf-hasleft) exten => out,4,Hangup()