Poor Man's Conference Rooms


When the number of conference rooms grew over a handful managing the toll-free numbers that pointed to the individual conference rooms got to be problematic as we had staff changes. When we made the decision to give anyone who requested a conference room their own (or multiple) we needed a way to have just one toll-free number. This dialplan excerpt handles this situation.

include => ext-meetme
exten => s,1,Answer
exten => s,n,Set(CDR(disposition)=“ANSWERED”)
exten => s,n,Set(CDR(accountcode)=${CALLERID(num)})
exten => s,n,Set(CLOOP=0)
exten => s,n,Wait(1)
exten => s,n(repeat),Background(custom/Greeting-ConferenceCenter);
exten => s,n,Goto(w,1)
exten => w,1,WaitExten(,)
exten => w,n,Playback(invalid)
exten => w,n,Set(CLOOP=$[${CLOOP} + 1])
exten => w,n,GotoIf($["${CLOOP}" = “3”]?done)
exten => w,n,Goto(s,repeat)
exten => w,n(done),Goto(h,1)
exten => i,1,Goto(s,repeat)
exten => h,1,Playback(goodbye)

Note that you need to record your customer “Greetings-ConferenceCenter” or update the dialplan appropriately.

Why is this a “Poor Man’s” solution? In this I don’t use the Read() command. Instead I include the ext-meetme context and then use a Background() and call WaitExten() instead. I believe the right way to do this is to actually use Read() where the caller then terminates the conference room collection with a #. By using WaitExten() I don’t wait for a trailing # and once the caller’s digits match a conference room it drops right into the meetme.

I never bothered to rewrite it as it’s worked for the past 5 years unchanged. The only person to notice the nuance of not needing the trailing # was a past company president. He noted that he thought I was being tricky by not waiting for the #.