I'm using JEvents to create event registration forms, complete the registration process and charge users appropriately. Users will be given two choices for attending the meeeting - paid and non-paid. It is expected that meetings will occur at any time of the day or night. The paid meetings will require some configuration. meetings can be added or cancelled at any time.
Channels need to be created for a meeting. i have another document that describes that process. A channel is created by providing a user-id and password to another system using JSON. A channel-ID is returned. Functions that can be performed on a channel are: create, start, stop and delete.
A field (Field Name Text - Meeting Provider Advance notice) in the component should provide the number of hours before the start of the meeting that the channel will be created. Once the channel is established then the channel-id must be made available to the meeting owner. ideally, the channel id would be placed in a file on the server for the meeting provider to download. Another option is to make the channel-ID string available on a web page. the meeting provider would be given instructions on copying the channel id, finding the file (on their pc), replacing the string and resaving the file to his machine for use when needed. These options need to be discussed.
Two other fields are also needed in the component - Meeting Set Up (in minutes), Meeting Overage time (in minutes). Meeting start time will be the scheduled meeting start time - meeting setup time. Meeting end time will be scheduled meeting end time + meeting overage time. Meeting duration is the scheduled (meeting start time - meeting end time) plus preview time plus overage time. For example, if there is a 2 hour meeting with 15 minutes for preview time and 15 minutes for overage time then the total duration of the meeting is 2 hours and 30 minutes.
Another action that is needed once the channel-id is established is creating a web page for the meeting's attendees. This web page should be established before the meeting. the amount of time that this should be set up before the meeting is the preview time and off the air time. so if the meeting is set to start at 8:00 with a preview time of 15 minutes and an off the air time of 15 minutes then the web page for needed by the users should be available at 7:30.
Meeting_Setup (table fields)
Now, let's see how this will run:
So, let's look at some meetings and what needs to happen with the application.
Find meetings that need to be set up:
query the jevents table and the Meeting setup table. A meeting_ID that exists in the jevents table but not in the meeting_Set_up table needs to be set up. The query should have a start time of now and an end time of now + Meeting provider setup time. For each meeting found, create a channel and set its status to StopChannel and store the required elements in the meeting set up table.
Find meetings that need to be started:
query the meeting set up table. if now is greater take the calculated_start_time and the channel_status is StopChannel then set channel status to StartChannel and update the table.
Find meetings that need to be stopped/deleted:
query the meeting set up table. if now is greater than the calculated_end_time then stop the channel and delete the channel and move the record to a meeting_setup_history table.
Next step is communicate this information to the meeting provider. this is discussed previously.