All pastes #639825 Raw Edit

Mine

public text v1 · immutable
#639825 ·published 2007-07-30 21:40 UTC
rendered paste body
[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()