Conf_bridge with dynamic PIN


I’m trying to create dynamic conference-rooms that also needs a PIN to access.

What I want to do is:

1: Dial extention 1000.

2: Ask for conference# (1-999)

3: Ask for a PIN.
If you are the only person in the conference the PIN you chose will be used to access this room.
Otherwise if there already is someone in the room check if the PIN you input matches the one the first user in the room chose.

4: After the last member of the room leaves the PIN should be reset again.

Right now I have a simple method for creating dynamic rooms, but I’m not sure how I can create the function with PIN-codes. (I’m using conf_bridge)

This is what I’m using at the moment:

exten => 1000,1,NoOp(Conference test)
same => n,Answer
same => n,Read(room,test/conference,3,3,5)
same => n,ConfBridge(${room})
same => n,Busy(4)
same => n,Hangup

Thank you in advance!

BR Kristofer

I managed to find some information regarding this.

Incase someone else needs help here’s the solution:

exten => 1000,1,NoOp()
same => n,Goto(conference,s,1)
same => n,Busy(4)
same => n,Hangup

exten => s,1,NoOp()
same => n,Ringing
same => n,Answer(500)
same => n,Read(CONFID,digits/1,3,5)
same => n,Set(CONFID=${FILTER(0-9,${CONFID})})
same => n,Playback(digits/2)
same => n,GotoIf($["${CONFID}" = “”]?hangup)
same => n,Read(CONFPIN,digits/3,3,5)
same => n,Set(CONFPIN=${FILTER(0-9,${CONFPIN})})
same => n,GotoIf($["${CONFPIN}" = “”]?hangup)
same => n,Playback(digits/4)
same => n,MacroExclusive(validateconference,${CONFID},${CONFPIN},TMP_CONFOK)
same => n,GotoIf($["${TMP_CONFOK}" != “1”]?hangup
same => n,ConfBridge(${CONFID})
same => n(hangup),NoOp(Conference ${CONFID} hangup)
same => n,Hangup


;The variables CONF_NUM_ and CONF_PIN are set under [global] in the extentions.conf file

exten => s,1,NoOp()
same => n,GotoIf($[${LEN(${ARG1})} < ${CONF_NUM_MINLEN}]?exiterr)
same => n,GotoIf($[${LEN(${ARG1})} > ${CONF_NUM_MAXLEN}]?exiterr)
same => n,GotoIf($[${LEN(${ARG2})} < ${CONF_PIN_MINLEN}]?exiterr)
same => n,GotoIf($[${LEN(${ARG2})} > ${CONF_PIN_MAXLEN}]?exiterr)
same => n,GotoIf($[${GROUP_COUNT(${ARG1}@conference)} > 0]?checkpin)
same => n,Set(DB(conf/${ARG1}/pin)=${ARG2})
same => n,Set(${ARG3}=1)
same => n,Set(GROUP(conference)=${ARG1})
same => n,MacroExit()
same => n(checkpin),NoOp()
same => n,GotoIf($["${DB(conf/${ARG1}/pin)}" != “${ARG2}”]?exiterr)
same => n,Set(${ARG3}=1)
same => n,Set(GROUP(conference)=${ARG1})
same => n,MacroExit()
same => n(exiterr),NoOp()
same => n,Set(${ARG3}=0)
same => n,MacroExit()

Above information is taken from: … ConfBridge

You can close this topic, thank you!