diff --git a/bbb-api-demo/src/main/webapp/bbb_api.jsp b/bbb-api-demo/src/main/webapp/bbb_api.jsp
index ca044029eb..4939e32274 100755
--- a/bbb-api-demo/src/main/webapp/bbb_api.jsp
+++ b/bbb-api-demo/src/main/webapp/bbb_api.jsp
@@ -120,11 +120,18 @@ public String createMeeting(String meetingID, String welcome, String moderatorPa
//
// getJoinMeetingURL() -- get join meeting URL for both viewer and moderator
//
-public String getJoinMeetingURL(String username, String meetingID, String password) {
+public String getJoinMeetingURL(String username, String meetingID, String password, String clientURL) {
String base_url_join = BigBlueButtonURL + "api/join?";
+ String clientURL_param = "";
+
+ if ((clientURL != null) && !clientURL.equals("")) {
+ clientURL_param = "&redirectClient=true&clientURL=" + urlEncode( clientURL );
+ }
+
+
String join_parameters = "meetingID=" + urlEncode(meetingID)
+ "&fullName=" + urlEncode(username) + "&password="
- + urlEncode(password);
+ + urlEncode(password) + clientURL_param;
return base_url_join + join_parameters + "&checksum="
+ checksum("join" + join_parameters + salt);
diff --git a/bbb-api-demo/src/main/webapp/demo11.html b/bbb-api-demo/src/main/webapp/demo11.html
new file mode 100755
index 0000000000..b85c37a6cb
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/demo11.html
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Layout:
+
+ Chat:
+
+
+ Audio:
+
+ Events:
+
+
+
+
+
+
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/demo11.jsp b/bbb-api-demo/src/main/webapp/demo11.jsp
new file mode 100644
index 0000000000..09031f54db
--- /dev/null
+++ b/bbb-api-demo/src/main/webapp/demo11.jsp
@@ -0,0 +1,124 @@
+
+
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+%>
+
+
+
+
+ Join Demo Meeting
+
+
+
+
+<%@ include file="bbb_api.jsp"%>
+
+<%
+if (request.getParameterMap().isEmpty()) {
+ //
+ // Assume we want to create a meeting
+ //
+ %>
+<%@ include file="demo_header.jsp"%>
+
+Join Demo Meeting (JavaScript API Client)
+
+
+
+
+
+<%
+} else if (request.getParameter("action").equals("create")) {
+
+ //
+ // Got an action=create
+ //
+
+ String url = BigBlueButtonURL.replace("bigbluebutton/","demo/");
+ // String preUploadPDF = "";
+ //java.util.Random testIDGen = new java.util.Random();
+ //int userID = testIDGen.nextInt(99999);
+
+ // String joinURL = getJoinURL(request.getParameter("username"), "Demo Meeting", "false", null, null, null);
+
+ String meeting_ID = createMeeting( "Demo Meeting", null, null, null, null, null);
+
+ String clientURL = BigBlueButtonURL.replace("bigbluebutton/","client/demo11.html");
+ String joinURL = getJoinMeetingURL(request.getParameter("username"), "Demo Meeting", "mp", clientURL );
+
+
+ if (joinURL.startsWith("http://")) {
+%>
+
+
+
+<%
+ } else {
+%>
+
+Error: getJoinURL() failed
+
+<%=joinURL %>
+
+<%
+ }
+}
+%>
+
+
+<%@ include file="demo_footer.jsp"%>
+
+
+
diff --git a/bbb-api-demo/src/main/webapp/demo3.jsp b/bbb-api-demo/src/main/webapp/demo3.jsp
index a3da046e3b..b61f2fadc7 100755
--- a/bbb-api-demo/src/main/webapp/demo3.jsp
+++ b/bbb-api-demo/src/main/webapp/demo3.jsp
@@ -273,7 +273,7 @@ Error: createMeeting() failed
// We've got a valid meeting_ID and passoword -- let's join!
//
- String joinURL = getJoinMeetingURL(username, meeting_ID, password);
+ String joinURL = getJoinMeetingURL(username, meeting_ID, password, null);
%>