[conf] exten => join,1,Set(CONFCOUNT=1) exten => join,n,Set(PINCOUNT=1) exten => join,n(begin),Read(CONF,enter-conf-call-number,4,,3,6) exten => join,n(begin1),Set(CONFen=${DB(conf/${CONF}en)}) exten => join,n,GotoIf($["${CONFen}" = "1"]?pin:invalidconf) exten => join,n(pin),Read(CONFPin,enter-conf-pin-number,12,,3,6) exten => join,n(pin1),Set(CONFDBPin=${DB(conf/${CONF}pin)}) exten => join,n,GotoIf($["${CONFPin}" = "${CONFDBPin}"]?connect:invalidpin) exten => join,n(connect),Playback(vm-rec-name) exten => join,n,Set(FNAME=${SHA1(RAND(0,65535)RAND(0,65535)))}) exten => join,n,Set(FNAME2=${SHA1(${UNIQUEID}))}) exten => join,n,Record(/tmp/ast-conf-${FNAME}.gsm,2,4) exten => join,n,System(mv /tmp/ast-conf-${FNAME}.gsm /tmp/ast-conf-${SHA1(${UNIQUEID})}.gsm) exten => join,n,System(/usr/local/bin/conference-announce ${CONF} in ${SHA1(${UNIQUEID}}) exten => join,n,GotoIf($[ "${CONF${CONF}}" = "" ]?:have) exten => join,n(first),Set(GLOBAL(CONF${CONF})=0) exten => join,n(have),GotoIf($[${CONF${CONF}}+1 = 1]?single:plural) exten => join,n(plural),Playback(conf-thereare) exten => join,n,SayNumber($[${CONF${CONF}}+1]) exten => join,n,Playback(conf-peopleinconf) exten => join,n,Playback(beep) exten => join,n,Conference(${CONF}/S/1) exten => join,n(single),Playback(conf-onlyperson) exten => join,n,Playback(beep) exten => join,n,Conference(${CONF}/S/1) exten => join,n(invalidconf),Set(CONFCOUNT=$[${CONFCOUNT} + 1]) exten => join,n,GotoIf($[${CONFCOUNT} < 4]?:bye) exten => join,n,Read(CONF,conf-invalid,4,,3,6) exten => join,n,Goto(conf,join,begin1) exten => join,n(invalidpin),Set(PINCOUNT=$[${PINCOUNT} + 1]) exten => join,n,GotoIf($[${PINCOUNT} < 4]?:bye) exten => join,n,Read(CONFPin,conf-invalidpin,12,,3,6) exten => join,n,Goto(conf,join,pin1) exten => join,n(bye),Playback(please-hang-up-and-try-again) exten => join,n,Hangup exten => h,1,System(/usr/local/bin/conference-announce ${CONF} out ${SHA1(${UNIQUEID})}) [confhelper] exten => conf,1,Conference(${CONF}/S/1) exten => in,1,Answer() exten => in,n,Playback(/tmp/ast-conf-${FNAME}) exten => in,n,Playback(conf-hasentered) exten => in,n,Playback(beep) exten => in,n,GotoIf($[ "${CONF${CONF}}" = "" ]?:have) exten => in,n(first),Set(GLOBAL(CONF${CONF})=0) exten => in,n(have),GotoIf($[${CONF${CONF}} < 0]?first:) exten => in,n,Set(GLOBAL(CONF${CONF})=$[${CONF${CONF}} + 1]) exten => in,n,Set(GLOBAL(JOINED${FNAME})=1) exten => in,n,Hangup() exten => out,1,Answer() exten => out,n,Playback(/tmp/ast-conf-${FNAME}) exten => out,n,Playback(conf-hasleft) exten => out,n,Playback(beep) exten => out,n,System(rm /tmp/ast-conf-${FNAME}.gsm) exten => out,n,GotoIf($["${JOINED${FNAME}}" = "1"]?:hangup) exten => out,n,Set(GLOBAL(CONF${CONF})=$[${CONF${CONF}} - 1]) exten => out,n(hangup),Hangup()