+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("enter")) {
+ //
+ // The user is now attempting to joing the meeting
+ //
+ String meetingID = request.getParameter("meetingID");
+ String username = request.getParameter("username");
+
+ String enterURL = BigBlueButtonURL
+ + "demo/create.jsp?action=join&username="
+ + URLEncoder.encode(username, "UTF-8") + "&meetingID="
+ + URLEncoder.encode(meetingID, "UTF-8");
+
+ if (isMeetingRunning(meetingID).equals("true")) {
+ //
+ // The meeting has started -- bring the user into the meeting.
+ //
+%>
+
+<%
+ } else {
+ //
+ // The meeting has not yet started, so check until we get back the status that the meeting is running
+ //
+ String checkMeetingStatus = getURLisMeetingRunning(meetingID);
+%>
+
+
+
+
+
<%=meetingID%> has not yet started.
+
+
+
+
+
+
+
+
+
Hi <%=username%>,
+
Now waiting for the moderator to start <%=meetingID%>.
+
+
(Your browser will automatically refresh and join the meeting
+ when it starts.)
+
+
+
+
+
+
+
+<%
+}
+ } else if (request.getParameter("action").equals("invite")) {
+ //
+ // We have an invite to an active meeting. Ask the person for their name
+ // so they can join.
+ //
+ String meetingID = request.getParameter("meetingID");
+%>
+
+
+
Invite
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("join")) {
+ //
+ // We have an invite request to join an existing meeting and the meeting is running
+ //
+ // We don't need to pass a meeting descritpion as it's already been set by the first time
+ // the meeting was created.
+ String joinURL = getJoinURLViewer(request.getParameter("username"), request.getParameter("meetingID"));
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%>
+
+<%
+ }
+ }
+ %>
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/bbb-web/demo1.jsp b/bbb-api-demo/src/main/webapp/bbb-web/demo1.jsp
new file mode 100755
index 0000000000..1d8f36a620
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/bbb-web/demo1.jsp
@@ -0,0 +1,119 @@
+
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+ Join a Course
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+ %>
+<%@ include file="demo_header.jsp"%>
+
+
Demo #1: Join a Course
+
+
+
+
+
+<%
+} else if (request.getParameter("action").equals("create")) {
+
+ //
+ // Got an action=create
+ //
+
+ //
+ // Request a URL to join a meeting called "Demo Meeting"
+ // Pass null for welcome message to use the default message (see defaultWelcomeMessage in bigbluebutton.properties)
+ // Update: Added record parameter, default: false
+ //
+ String joinURL = getJoinURL(request.getParameter("username"), "Demo Meeting", "false", null, null);
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+
+<%=joinURL %>
+
+<%
+ }
+}
+%>
+
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/bbb-web/demo2.jsp b/bbb-api-demo/src/main/webapp/bbb-web/demo2.jsp
new file mode 100755
index 0000000000..e1bc45a47a
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/bbb-web/demo2.jsp
@@ -0,0 +1,130 @@
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+Join a Selected Course
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+ if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+%>
+
+<%@ include file="demo_header.jsp"%>
+
+
Demo #2: Join a Selected Course
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("create")) {
+ //
+ // Got an action=create
+ //
+
+ String username = request.getParameter("username");
+ String meetingID = request.getParameter("meetingID");
+
+ // String joinURL = getJoinURL(username, meetingID, "Welcome to " + meetingID );
+ // Update: added record parameter, default false
+ String joinURL = getJoinURL(username, meetingID,"false", " Welcome to course: %%CONFNAME%%. ", null );
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%> <%
+ }
+ }
+ %> <%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/bbb-web/demo3.jsp b/bbb-api-demo/src/main/webapp/bbb-web/demo3.jsp
new file mode 100755
index 0000000000..457ebbcc96
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/bbb-web/demo3.jsp
@@ -0,0 +1,293 @@
+
+
<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+ Join a Course (Password Required)
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+
+//
+// We're going to define some sample courses (meetings) below. This API exampe shows how you can create a login page for a course.
+// The password below are not available to users as they are compiled on the server.
+//
+
+HashMap allMeetings = new HashMap();
+HashMap meeting;
+
+String welcome = " Welcome to %%CONFNAME%%!
To join the voice bridge for this meeting: (1) click the headset icon in the upper-left, or (2) dial xxx-xxx-xxxx (toll free:1-xxx-xxx-xxxx) and enter conference ID: %%CONFNUM%%.
";
+
+
+//
+// English courses
+//
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2013: Research Methods in English", meeting ); // The title that will appear in the drop-down menu
+ meeting.put("welcomeMsg", welcome); // The welcome mesage
+ meeting.put("moderatorPW", "prof123"); // The password for moderator
+ meeting.put("viewerPW", "student123"); // The password for viewer
+ meeting.put("voiceBridge", "72013"); // The extension number for the voice bridge (use if connected to phone system)
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp"); // The logout URL (use if you want to return to your pages)
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2213: Drama Production I", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72213");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2023: Survey of English Literature", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72023");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+//
+// Law Courses
+//
+
+meeting = new HashMap();
+allMeetings.put( "LAW-1323: Fundamentals of Advocacy ", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "71232");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "LAW-2273: Business Organizations", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72273");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "LAW-3113: Corporate Finance", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "theprof");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "71642");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+
+//
+// Professor's Virtaul Office Hours
+//
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Steve Stoyan", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70001");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Michael Bailetti", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70002");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Tony Weiss", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70003");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+
+meeting = null;
+
+Iterator meetingIterator = new TreeSet(allMeetings.keySet()).iterator();
+
+if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to join a course
+ //
+ %>
+<%@ include file="demo_header.jsp"%>
+
+
Demo #3: Join a Course (password required)
+
+
+
+
+Passwords:
+
+
prof123 - login as professor (moderator privlidges)
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("enter")) {
+ //
+ // The user is now attempting to joing the meeting
+ //
+ String meetingID = request.getParameter("meetingID");
+ String username = request.getParameter("username");
+
+ String enterURL = BigBlueButtonURL
+ + "demo/demo5.jsp?action=join&username="
+ + URLEncoder.encode(username, "UTF-8") + "&meetingID="
+ + URLEncoder.encode(meetingID, "UTF-8");
+
+ if (isMeetingRunning(meetingID).equals("true")) {
+ //
+ // The meeting has started -- bring the user into the meeting.
+ //
+%>
+
+<%
+ } else {
+ //
+ // The meeting has not yet started, so check until we get back the status that the meeting is running
+ //
+ String checkMeetingStatus = getURLisMeetingRunning(meetingID);
+%>
+
+
+
+
+
<%=meetingID%> has not yet started.
+
+
+
+
+
+
+
+
+
Hi <%=username%>,
+
Now waiting for the moderator to start <%=meetingID%>.
+
+
(Your browser will automatically refresh and join the meeting
+ when it starts.)
+
+
+
+
+
+
+
+<%
+}
+ } else if (request.getParameter("action").equals("invite")) {
+ //
+ // We have an invite to an active meeting. Ask the person for their name
+ // so they can join.
+ //
+ String meetingID = request.getParameter("meetingID");
+%>
+
+
+
Invite
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("join")) {
+ //
+ // We have an invite request to join an existing meeting and the meeting is running
+ //
+ // We don't need to pass a meeting descritpion as it's already been set by the first time
+ // the meeting was created.
+ String joinURL = getJoinURLViewer(request.getParameter("username"), request.getParameter("meetingID"));
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%>
+
+<%
+ }
+ }
+ %>
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/bbb-web/demo6.jsp b/bbb-api-demo/src/main/webapp/bbb-web/demo6.jsp
new file mode 100644
index 0000000000..c784673d45
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/bbb-web/demo6.jsp
@@ -0,0 +1,263 @@
+
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+
+ Recording Meeting Demo
+
+
+
+
+
+<%@ include file="bbb_api.jsp"%>
+<%@ page import="java.util.regex.*"%>
+
+<%@ include file="demo_header.jsp"%>
+
+<%
+ if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+%>
+
Demo Recording
+
+
+
+<%
+ } else if (request.getParameter("action").equals("create")) {
+
+ String confname=request.getParameter("confname");
+ String username = request.getParameter("username1");
+
+ //metadata
+ Map metadata=new HashMap();
+
+ metadata.put("title",request.getParameter("meta_title"));
+ metadata.put("subject",request.getParameter("meta_subject"));
+ metadata.put("description",request.getParameter("meta_description"));
+ metadata.put("creator",request.getParameter("meta_creator"));
+ metadata.put("contributor",request.getParameter("meta_contributor"));
+ metadata.put("language",request.getParameter("meta_language"));
+ metadata.put("identifier",request.getParameter("meta_identifier"));
+
+ //
+ // This is the URL for to join the meeting as moderator
+ //
+ String joinURL = getJoinURL(username, confname, "true", null, metadata);
+
+
+ String inviteURL = BigBlueButtonURL + "demo/demo6.jsp?action=invite&confname=" + URLEncoder.encode(confname, "UTF-8");
+%>
+
+
+
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("enter")) {
+ //
+ // The user is now attempting to joing the meeting
+ //
+ String meetingID = request.getParameter("meetingID");
+ String username = request.getParameter("username");
+
+ String enterURL = BigBlueButtonURL
+ + "demo/create.jsp?action=join&username="
+ + URLEncoder.encode(username, "UTF-8") + "&meetingID="
+ + URLEncoder.encode(meetingID, "UTF-8");
+
+ if (isMeetingRunning(meetingID).equals("true")) {
+ //
+ // The meeting has started -- bring the user into the meeting.
+ //
+%>
+
+<%
+ } else {
+ //
+ // The meeting has not yet started, so check until we get back the status that the meeting is running
+ //
+ String checkMeetingStatus = getURLisMeetingRunning(meetingID);
+%>
+
+
+
+
+
<%=meetingID%> has not yet started.
+
+
+
+
+
+
+
+
+
Hi <%=username%>,
+
Now waiting for the moderator to start <%=meetingID%>.
+
+
(Your browser will automatically refresh and join the meeting
+ when it starts.)
+
+
+
+
+
+
+
+<%
+}
+ } else if (request.getParameter("action").equals("invite")) {
+ //
+ // We have an invite to an active meeting. Ask the person for their name
+ // so they can join.
+ //
+ String meetingID = request.getParameter("meetingID");
+%>
+
+
+
Invite
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("join")) {
+ //
+ // We have an invite request to join an existing meeting and the meeting is running
+ //
+ // We don't need to pass a meeting descritpion as it's already been set by the first time
+ // the meeting was created.
+ String joinURL = getJoinURLViewer(request.getParameter("username"), request.getParameter("meetingID"));
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%>
+
+<%
+ }
+ }
+ %>
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/target/bbb-api-demo/bbb-web/demo1.jsp b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo1.jsp
new file mode 100644
index 0000000000..1d8f36a620
--- /dev/null
+++ b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo1.jsp
@@ -0,0 +1,119 @@
+
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+ Join a Course
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+ %>
+<%@ include file="demo_header.jsp"%>
+
+
Demo #1: Join a Course
+
+
+
+
+
+<%
+} else if (request.getParameter("action").equals("create")) {
+
+ //
+ // Got an action=create
+ //
+
+ //
+ // Request a URL to join a meeting called "Demo Meeting"
+ // Pass null for welcome message to use the default message (see defaultWelcomeMessage in bigbluebutton.properties)
+ // Update: Added record parameter, default: false
+ //
+ String joinURL = getJoinURL(request.getParameter("username"), "Demo Meeting", "false", null, null);
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+
+<%=joinURL %>
+
+<%
+ }
+}
+%>
+
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/target/bbb-api-demo/bbb-web/demo2.jsp b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo2.jsp
new file mode 100644
index 0000000000..e1bc45a47a
--- /dev/null
+++ b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo2.jsp
@@ -0,0 +1,130 @@
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+Join a Selected Course
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+ if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+%>
+
+<%@ include file="demo_header.jsp"%>
+
+
Demo #2: Join a Selected Course
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("create")) {
+ //
+ // Got an action=create
+ //
+
+ String username = request.getParameter("username");
+ String meetingID = request.getParameter("meetingID");
+
+ // String joinURL = getJoinURL(username, meetingID, "Welcome to " + meetingID );
+ // Update: added record parameter, default false
+ String joinURL = getJoinURL(username, meetingID,"false", " Welcome to course: %%CONFNAME%%. ", null );
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%> <%
+ }
+ }
+ %> <%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/target/bbb-api-demo/bbb-web/demo3.jsp b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo3.jsp
new file mode 100644
index 0000000000..457ebbcc96
--- /dev/null
+++ b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo3.jsp
@@ -0,0 +1,293 @@
+
+
<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+ Join a Course (Password Required)
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+
+
+<%
+
+//
+// We're going to define some sample courses (meetings) below. This API exampe shows how you can create a login page for a course.
+// The password below are not available to users as they are compiled on the server.
+//
+
+HashMap allMeetings = new HashMap();
+HashMap meeting;
+
+String welcome = " Welcome to %%CONFNAME%%!
To join the voice bridge for this meeting: (1) click the headset icon in the upper-left, or (2) dial xxx-xxx-xxxx (toll free:1-xxx-xxx-xxxx) and enter conference ID: %%CONFNUM%%.
";
+
+
+//
+// English courses
+//
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2013: Research Methods in English", meeting ); // The title that will appear in the drop-down menu
+ meeting.put("welcomeMsg", welcome); // The welcome mesage
+ meeting.put("moderatorPW", "prof123"); // The password for moderator
+ meeting.put("viewerPW", "student123"); // The password for viewer
+ meeting.put("voiceBridge", "72013"); // The extension number for the voice bridge (use if connected to phone system)
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp"); // The logout URL (use if you want to return to your pages)
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2213: Drama Production I", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72213");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "ENGL-2023: Survey of English Literature", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72023");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+//
+// Law Courses
+//
+
+meeting = new HashMap();
+allMeetings.put( "LAW-1323: Fundamentals of Advocacy ", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "71232");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "LAW-2273: Business Organizations", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "72273");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "LAW-3113: Corporate Finance", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "theprof");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "71642");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+
+//
+// Professor's Virtaul Office Hours
+//
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Steve Stoyan", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70001");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Michael Bailetti", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70002");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+meeting = new HashMap();
+allMeetings.put( "Virtual Office Hours - Tony Weiss", meeting );
+ meeting.put("welcomeMsg", welcome);
+ meeting.put("moderatorPW", "prof123");
+ meeting.put("viewerPW", "student123");
+ meeting.put("voiceBridge", "70003");
+ meeting.put("logoutURL", "/bigbluebutton/demo/demo3.jsp");
+
+
+meeting = null;
+
+Iterator meetingIterator = new TreeSet(allMeetings.keySet()).iterator();
+
+if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to join a course
+ //
+ %>
+<%@ include file="demo_header.jsp"%>
+
+
Demo #3: Join a Course (password required)
+
+
+
+
+Passwords:
+
+
prof123 - login as professor (moderator privlidges)
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("enter")) {
+ //
+ // The user is now attempting to joing the meeting
+ //
+ String meetingID = request.getParameter("meetingID");
+ String username = request.getParameter("username");
+
+ String enterURL = BigBlueButtonURL
+ + "demo/demo5.jsp?action=join&username="
+ + URLEncoder.encode(username, "UTF-8") + "&meetingID="
+ + URLEncoder.encode(meetingID, "UTF-8");
+
+ if (isMeetingRunning(meetingID).equals("true")) {
+ //
+ // The meeting has started -- bring the user into the meeting.
+ //
+%>
+
+<%
+ } else {
+ //
+ // The meeting has not yet started, so check until we get back the status that the meeting is running
+ //
+ String checkMeetingStatus = getURLisMeetingRunning(meetingID);
+%>
+
+
+
+
+
<%=meetingID%> has not yet started.
+
+
+
+
+
+
+
+
+
Hi <%=username%>,
+
Now waiting for the moderator to start <%=meetingID%>.
+
+
(Your browser will automatically refresh and join the meeting
+ when it starts.)
+
+
+
+
+
+
+
+<%
+}
+ } else if (request.getParameter("action").equals("invite")) {
+ //
+ // We have an invite to an active meeting. Ask the person for their name
+ // so they can join.
+ //
+ String meetingID = request.getParameter("meetingID");
+%>
+
+
+
Invite
+
+
+
+
+
+
+
+<%
+ } else if (request.getParameter("action").equals("join")) {
+ //
+ // We have an invite request to join an existing meeting and the meeting is running
+ //
+ // We don't need to pass a meeting descritpion as it's already been set by the first time
+ // the meeting was created.
+ String joinURL = getJoinURLViewer(request.getParameter("username"), request.getParameter("meetingID"));
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+<%=joinURL%>
+
+<%
+ }
+ }
+ %>
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/target/bbb-api-demo/bbb-web/demo6.jsp b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo6.jsp
new file mode 100644
index 0000000000..c784673d45
--- /dev/null
+++ b/bbb-api-demo/target/bbb-api-demo/bbb-web/demo6.jsp
@@ -0,0 +1,263 @@
+
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+
+
+ Recording Meeting Demo
+
+
+
+
+
+<%@ include file="bbb_api.jsp"%>
+<%@ page import="java.util.regex.*"%>
+
+<%@ include file="demo_header.jsp"%>
+
+<%
+ if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+%>
+
Demo Recording
+
+
+
+<%
+ } else if (request.getParameter("action").equals("create")) {
+
+ String confname=request.getParameter("confname");
+ String username = request.getParameter("username1");
+
+ //metadata
+ Map metadata=new HashMap();
+
+ metadata.put("title",request.getParameter("meta_title"));
+ metadata.put("subject",request.getParameter("meta_subject"));
+ metadata.put("description",request.getParameter("meta_description"));
+ metadata.put("creator",request.getParameter("meta_creator"));
+ metadata.put("contributor",request.getParameter("meta_contributor"));
+ metadata.put("language",request.getParameter("meta_language"));
+ metadata.put("identifier",request.getParameter("meta_identifier"));
+
+ //
+ // This is the URL for to join the meeting as moderator
+ //
+ String joinURL = getJoinURL(username, confname, "true", null, metadata);
+
+
+ String inviteURL = BigBlueButtonURL + "demo/demo6.jsp?action=invite&confname=" + URLEncoder.encode(confname, "UTF-8");
+%>
+
+
+