- change AGI to just query for the conference and have meetme executed in the dialplan. This allows us to handle more calls as the AGI ends right away.

- Put in dialplan entry (extensions.conf) in INSTALL text

git-svn-id: http://bigbluebutton.googlecode.com/svn/trunk@1712 af16638f-c34d-0410-8cfa-b39d5352b314
This commit is contained in:
Richard Alam 2009-06-19 14:43:33 +00:00
parent 847b9e7bce
commit 120750bd97
4 changed files with 36 additions and 6 deletions

View File

@ -9,3 +9,34 @@
mysql> create database vo_prod; mysql> create database vo_prod;
mysql> grant all on vo_dev.* to 'vo'@'localhost' identified by 'secret'; mysql> grant all on vo_dev.* to 'vo'@'localhost' identified by 'secret';
====
Dialplan
[default]
exten => s,1,Set(TRIES=1)
exten => s,n,Goto(prompt,s,1)
[prompt]
exten => s,1,Read(CONF_NUM,conf-getconfno,6,,3,10)
exten => s,n,Set(CONF_LEN=${LEN(${CONF_NUM})})
exten => s,n,GotoIf($[${CONF_LEN} = 4]?vo,${CONF_NUM},1:others,${CONF_NUM},1)
[vo]
exten => _XXXX,1,Agi(agi://192.168.0.199/findConference?conference=${EXTEN})
exten => _XXXX,n,GotoIf($[${EXTEN} = ${CONFERENCE_FOUND}]?valid:invalid)
exten => _XXXX,n(valid),Playback(conf-placeintoconf)
exten => _XXXX,n,MeetMe(${CONFERENCE_FOUND},dMq)
exten => _XXXX,n(invalid),Goto(handle-invalid-conference,s,1)
[others]
exten => _XXXX.,1,MeetMe(${EXTEN},cMqsT)
[handle-invalid-conference]
exten => s,1,Playback(conf-invalid)
exten => s,n,GotoIf($[${TRIES} < 3]?try-again:do-not-try-again)
exten => s,n(try-again),Set(TRIES=$[${TRIES} + 1])
exten => s,n,Goto(prompt,s,1)
exten => s,n(do-not-try-again),Hangup

View File

@ -6,7 +6,7 @@
// "file:${userHome}/.grails/${appName}-config.properties", // "file:${userHome}/.grails/${appName}-config.properties",
// "file:${userHome}/.grails/${appName}-config.groovy"] // "file:${userHome}/.grails/${appName}-config.groovy"]
grails.config.locations = [ "classpath:vo.properties", "file:${userHome}/.volunteerottawa/vo.properties"] grails.config.locations = [ "classpath:vo.properties", "file:${userHome}/.volunteerottawa/vo2.properties"]
// if(System.properties["${appName}.config.location"]) { // if(System.properties["${appName}.config.location"]) {
// grails.config.locations << "file:" + System.properties["${appName}.config.location"] // grails.config.locations << "file:" + System.properties["${appName}.config.location"]

View File

@ -9,7 +9,7 @@ class ConferenceController extends BaseController {
def allowedMethods = [delete:'POST', save:'POST', update:'POST'] def allowedMethods = [delete:'POST', save:'POST', update:'POST']
def list = { def list = {
if(!params.max) params.max = 10 if(!params.max) params.max = 50
def email = session.email.toString() def email = session.email.toString()
if (params.past) if (params.past)
return [ conferenceList: Conference.findAllByEmailAndStartDateTimeLessThan(email, new Date())] return [ conferenceList: Conference.findAllByEmailAndStartDateTimeLessThan(email, new Date())]
@ -93,7 +93,7 @@ class ConferenceController extends BaseController {
if (highestConfId) { if (highestConfId) {
nextConfId = highestConfId[0].conferenceNumber + 1 nextConfId = highestConfId[0].conferenceNumber + 1
} else { } else {
nextConfId = 8000 + 1 nextConfId = 6000 + 1
} }
conference.conferenceNumber = nextConfId conference.conferenceNumber = nextConfId
conference.email = session.email conference.email = session.email

View File

@ -35,12 +35,11 @@ class FindConferenceAgi implements AgiScript {
channel.setVariable("CONFERENCE_FOUND", number) channel.setVariable("CONFERENCE_FOUND", number)
} else { } else {
println ("CONFERENCE_FOUND=") println ("CONFERENCE_FOUND=")
channel.setVariable("CONFERENCE_FOUND", '') channel.setVariable("CONFERENCE_FOUND", "0")
} }
} else { } else {
println ("CONFERENCE_INVALID=TRUE") println ("CONFERENCE_INVALID=TRUE")
channel.setVariable("CONFERENCE_FOUND", '') channel.setVariable("CONFERENCE_FOUND", "0")
} }
} }
} }