Revision: 2824
Author: seba.wagner
Date: Thu Jan 21 09:27:32 2010
Log: Update Issue 1094
Add new Wrapper Servlet for SIP switch
http://code.google.com/p/openmeetings/source/detail?r=2824

Added:
 /trunk/singlewebapp/WebContent/sip-applet/webdial_jnt.html
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java
 /trunk/singlewebapp/src/templates/sip_template.vm
Modified:
 /trunk/singlewebapp/WebContent/WEB-INF/web.xml
 /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml
 /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/web.xml
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java

=======================================
--- /dev/null
+++ /trunk/singlewebapp/WebContent/sip-applet/webdial_jnt.html Thu Jan 21 09:27:32 2010
@@ -0,0 +1,135 @@
+<html>
+       <head>
+               <meta http-equiv="cache-control" content="no-cache" />
+        <meta http-equiv="pragma" content="no-cache" />
+        <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
+               <script type="text/javascript" src="uiie.js"></script>
+               <script type="text/javascript" src="blie.js"></script>
+               <script type="text/javascript" src="custom.js"></script>
+    </head>
+    <body onload="initialize();" onunload="logOff();">
+ <applet id="PHDial" archive="idial.jar" code="com.sesca.voip.ua.AppletUANG.class" width="0" height="0">
+    <param name="mayscript" value="true" />
+        <param name="scriptable" value="true" />
+        <param name="callTo" value="" />
+        <param name="username" value="" />
+        <param name="password" value="" />
+        <param name="realm" value="multi.fi" />
+        <param name="port" value="5060" />
+        <param name="proxyname" value="sip.multi.fi" />
+        <param name="tunnel" value="194.79.17.140:443" />
+               <param name="codebaseUrl" 
value="http://192.168.0.4:8080/sip-applet/"; />
+               <param name="forceTunnel" value="true"/>
+               <param name="privacy" value="false"/>
+           <param name="allowOutsideProxyConnections" value="true"/>
+
+    </applet>
+               <div id="signature">-={Applet-Phone}=-</div>
+               <br/>
+                       <div id="login">
+                               Username:
+                               <input id="username" type="text" tabindex="1" 
value="webdial1"/>
+ <input type="checkbox" name="authIdBox" value="auid" onclick="toggleAuthbox();" tabindex="4"/>
+                               Use separate authentication id:
+                               <div style="display: inline" id="authbox">
+                               <input id="authid" type="text" tabindex="2"/>
+                               </div>
+                               <br/>
+                               Password:
+                               <input id="password" type="password" tabindex="3" 
value="******"/>
+                               <div id="registerbuttontext" >
+ <button type="button" onclick="preCustomRegister(); register();">Login</button>
+                               </div>
+                       </div>
+               <div id="callbuttons">
+                       Recipient:
+                       <input id="callto" type="text" 
value="[email protected]">
+                       <br/>
+                       <div id="callbutton">
+                               <div id="startbuttontext" >
+ <button type="button" onclick="preCustomStartCall(); startCall();">Call</button>
+                                       </br/>
+                               </div>
+                       </div>
+                       <div id="stopcallbutton">
+                               <div id="stopbuttontext" ">
+ <button type="button" onclick="preCustomEndCall(); endCall();">Hang up</button>
+                               </div>
+                       </div>
+               </div>
+               <div id="toolbar">
+                       <table>
+                               <tr>
+                                       <td><button type="button" 
onclick="toggleIM();">Chat</button></td>
+                                       <td><button type="button" 
onclick="togglePad();">Keypad</button></td>
+                               </tr>
+                       </table>
+               </div>
+               <!-- div for IM-message -->
+               <div id="immessagewindow">
+                       <form id="immessageform" name="mail" method="post" 
action="">
+                               <table width="300" border="1" cellpadding="0" 
cellspacing="0">
+                                       <tr>
+                                               <td>
+ <div id="immessages" style="width: 300px; height: 150px; overflow-y: scroll;
+                                                                
scrollbar-arrow-color: blue; scrollbar- face-color: #e7e7e7;
+ scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color:#888888">
+                                                   </div>
+                                               </td>
+                                       </tr>
+                                       <tr>
+                                               <td id="typingStateField" align="left" 
valign="top">
+                                                       &nbsp;
+                                               </td>
+                                       </tr>
+                                       <tr>
+                                               <td>
+ <textarea id="imMessageArea" name="message" cols="40" rows="4" maxlength="250"></textarea>
+                                               </td>
+                                       </tr>
+                                       <tr>
+                                               <td>
+ <input id="sendIMButton" type="submit" name="Submit" value="L&auml;het&auml;" onclick="onIMSend(); return false;" />
+                                               </td>
+                                       </tr>
+                               </table>
+                       </form>
+               </div>
+               <!-- /div for IM-message -->
+               <!-- div for keypad -->
+               <div id="keypadwindow">
+                       <form id="keypadform" name="pad" method="post" 
action="">
+                               <table width="300" border="1" cellpadding="0" 
cellspacing="0">
+                                       <tr>
+                                               <td><button type="button" 
onclick="DTMFButton(1);">1</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(2);">2</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(3);">3</button></td>
+                                       </tr>
+                                       <tr>
+                                               <td><button type="button" 
onclick="DTMFButton(4);">4</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(5);">5</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(6);">6</button></td>
+                                       </tr>
+                                       <tr>
+                                               <td><button type="button" 
onclick="DTMFButton(7);">7</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(8);">8</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(9);">9</button></td>
+                                       </tr>
+                                       <tr>
+                                               <td><button type="button" 
onclick="DTMFButton(10);">*</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(0);">0</button></td>
+                                               <td><button type="button" 
onclick="DTMFButton(11);">#</button></td>
+                                       </tr>
+                               </table>
+                       </form>
+               </div>
+               <!-- /div for keypad -->
+               <div id="statusbar">
+               </div>
+      <div id="footer">Make sure that microphone and speakers are connected and turned on.</div>
+    </div>
+    <div id="noscript">Testing browser's JavaScript support... If this message won't go away, check the JavaScript settings of your browser.</div>
+
+
+       </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java Thu Jan 21 09:27:32 2010
@@ -0,0 +1,132 @@
+package org.openmeetings.servlet.outputhandler;
+
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.velocity.Template;
+import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.view.servlet.VelocityViewServlet;
+import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.app.hibernate.beans.basic.Configuration;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class DefaultIndex extends VelocityViewServlet {
+
+ private static final Logger log = Red5LoggerFactory.getLogger(DefaultIndex.class, "openmeetings");
+
+       @Override
+       public Template handleRequest(HttpServletRequest httpServletRequest,
+ HttpServletResponse httpServletResponse, Context ctx) throws ServletException,
+                       IOException {
+
+               try {
+
+                       String template = "sip_template.vm";
+
+                       //SIP_REALM
+ Configuration SIP_REALM = Configurationmanagement.getInstance().getConfKey(3L, "SIP_REALM");
+                       if (SIP_REALM == null) {
+                               ctx.put("SIP_REALM", "");
+                       } else {
+                               ctx.put("SIP_REALM", SIP_REALM.getConf_value());
+                       }
+
+                       //SIP_PORT
+ Configuration SIP_PORT = Configurationmanagement.getInstance().getConfKey(3L, "SIP_PORT");
+                       if (SIP_PORT == null) {
+                               ctx.put("SIP_PORT", "");
+                       } else {
+                               ctx.put("SIP_PORT", SIP_PORT.getConf_value());
+                       }
+
+                       //SIP_PROXYNAME
+ Configuration SIP_PROXYNAME = Configurationmanagement.getInstance().getConfKey(3L, "SIP_PROXYNAME");
+                       if (SIP_PROXYNAME == null) {
+                               ctx.put("SIP_PROXYNAME", "");
+                       } else {
+                               ctx.put("SIP_PROXYNAME", 
SIP_PROXYNAME.getConf_value());
+                       }
+
+                       //SIP_TUNNEL
+ Configuration SIP_TUNNEL = Configurationmanagement.getInstance().getConfKey(3L, "SIP_TUNNEL");
+                       if (SIP_TUNNEL == null) {
+                               ctx.put("SIP_TUNNEL", "");
+                       } else {
+                               ctx.put("SIP_TUNNEL", 
SIP_TUNNEL.getConf_value());
+                       }
+
+                       //SIP_CODEBASE
+ Configuration SIP_CODEBASE = Configurationmanagement.getInstance().getConfKey(3L, "SIP_CODEBASE");
+                       if (SIP_CODEBASE == null) {
+                               ctx.put("SIP_CODEBASE", "");
+                       } else {
+                               ctx.put("SIP_CODEBASE", 
SIP_CODEBASE.getConf_value());
+                       }
+
+                       //SIP_FORCETUNNEL
+ Configuration SIP_FORCETUNNEL = Configurationmanagement.getInstance().getConfKey(3L, "SIP_FORCETUNNEL");
+                       if (SIP_FORCETUNNEL == null) {
+                               ctx.put("SIP_FORCETUNNEL", "");
+                       } else {
+                               ctx.put("SIP_FORCETUNNEL", 
SIP_FORCETUNNEL.getConf_value());
+                       }
+
+                       String swf = httpServletRequest.getParameter("swf");
+                       if (swf == null) {
+                               ctx.put("SWF_URL", "main.swf8.swf");
+                       } else {
+                               ctx.put("SWF_URL", swf);
+                       }
+
+                       String SWF_PARAMS = "";
+                       String SWF_FLASHVARS = "";
+
+                       //We fake oen param that is needed for all
+                       if (httpServletRequest.getParameterMap() != null) {
+ for (Iterator<String> iter = httpServletRequest.getParameterMap().keySet().iterator();iter.hasNext();) {
+                                       String paramKey = iter.next();
+ SWF_FLASHVARS += paramKey+"="+httpServletRequest.getParameterMap().get(paramKey)+"&amp;";
+
+                               }
+                       }
+
+                       HashMap<String,String> defaultValuesMap = new 
HashMap<String,String>();
+
+                       defaultValuesMap.put("lzt","swf");
+                       defaultValuesMap.put("lzproxied","solo");
+                       defaultValuesMap.put("lzr","swf8");
+                       defaultValuesMap.put("bgcolor","%23ffffff");
+                       defaultValuesMap.put("width","100%25");
+                       defaultValuesMap.put("height","100%25");
+ defaultValuesMap.put("__lzurl","maindebug.lzx%3Flzt%3Dswf%26lzproxied%3Dsolo%26lzr%3Dswf8");
+                       defaultValuesMap.put("__lzminimumversion","8");
+                       defaultValuesMap.put("id","lzapp");
+
+ for (Iterator<String> iter = defaultValuesMap.keySet().iterator();iter.hasNext();) {
+                               String paramKey = iter.next();
+                               SWF_PARAMS += 
paramKey+"="+defaultValuesMap.get(paramKey)+"&";
+                               SWF_FLASHVARS += 
paramKey+"="+defaultValuesMap.get(paramKey)+"&amp;";
+                       }
+
+ //SWF_FLASHVARS += "lzt=swf&amp;lzproxied=solo&amp;lzr=swf8&amp;bgcolor=%23ffffff&amp;width=100%25&amp;height=100%25&amp;__lzurl=maindebug.lzx%3Flzt%3Dswf%26lzproxied%3Dsolo%26lzr%3Dswf8&amp;__lzminimumversion=8&amp;id=lzapp";
+
+                       ctx.put("SWF_PARAMS", SWF_PARAMS);
+                       ctx.put("SWF_FLASHVARS", SWF_FLASHVARS);
+
+                       return getVelocityEngine().getTemplate(template);
+
+               } catch (Exception er) {
+                       System.out.println("Error downloading: " + er);
+                       er.printStackTrace();
+                       log.error("[Calendar :: service]",er);
+               }
+               return null;
+       }
+}
=======================================
--- /dev/null
+++ /trunk/singlewebapp/src/templates/sip_template.vm Thu Jan 21 09:27:32 2010
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<head>
+
+<meta http-equiv="cache-control" content="no-cache">
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+<meta name="viewport" content="width=device-width; initial-scale=1.0;">
+<title>OpenLaszlo Application</title>
+<script type="text/javascript">
+  // If loaded bare into a browser, set the browser size to the canvas size
+  if (window === top) {
+    (function (width, height) {
+      // Cf. http://www.quirksmode.org/viewport/compatibility.html
+      if (window.innerHeight) {
+ // Sadly, innerHeight/Width is not r/w on some browsers, and resizeTo is for outerHeight/Width + window.resizeTo(width ? (width + window.outerWidth - window.innerWidth) : window.outerWidth, + height ? (height + window.outerHeight - window.innerHeight) : window.outerHeight); + } else if (document.documentElement && document.documentElement.clientHeight) {
+        if (width) {
+          document.documentElement.clientWidth = width;
+        }
+        if (height) {
+          document.documentElement.clientHeight = height;
+        }
+      } else {
+        if (width) {
+          document.body.clientWidth = width;
+        }
+        if (height) {
+          document.body.clientHeight = height;
+        }
+      }
+    })(null, null);
+  }
+</script>
+
+<script type="text/javascript" src="sip-applet/jquery-1.2.6.min.js"></script>
+<script type="text/javascript" src="sip-applet/uiie.js"></script>
+<script type="text/javascript" src="sip-applet/blie.js"></script>
+<script type="text/javascript" src="sip-applet/custom.js"></script>
+
+<script type="text/javascript"
+       src="embed-compressed.js"></script>
+<script type="text/javascript">
+
+function getBrowserInfo() {
+       //alert(navigator.userAgent);
+       return navigator.userAgent;
+}
+
+</script>
+
+<style type="text/css">
+html,body { /* http://www.quirksmode.org/css/100percheight.html */
+       height: 100%;
+       /* prevent scrollbars */
+       margin: 0;
+       padding: 0;
+       border: 0 none;
+       overflow: hidden;
+}
+
+body {
+       background-color: #ffffff;
+}
+
+img {
+       border: 0 none;
+}
+</style>
+</head>
+<body>
+
+<applet id="PHDial" archive="sip-applet/idial.jar"
+       code="com.sesca.voip.ua.AppletUANG.class" width="0" height="0">
+       <param name="mayscript" value="true" />
+       <param name="scriptable" value="true" />
+       <param name="callTo" value="" />
+       <param name="username" value="" />
+       <param name="password" value="" />
+       <param name="realm" value="$SIP_REALM" />
+       <param name="port" value="$SIP_PORT" />
+       <param name="proxyname" value="$SIP_PROXYNAME" />
+       <param name="tunnel" value="$SIP_TUNNEL" />
+       <param name="codebaseUrl" value="$SIP_CODEBASE" />
+       <param name="forceTunnel" value="$SIP_FORCETUNNEL" />
+       <param name="privacy" value="false" />
+       <param name="allowOutsideProxyConnections" value="true" />
+</applet>
+
+<script type="text/javascript">
+ lz.embed.swf({url: '$SWF_URL?$SWF_PARAMS', allowfullscreen: 'true', bgcolor: '#ffffff', width: '100%', height: '100%', id: 'lzapp', accessible: 'false'});
+
+    lz.embed.lzapp.onloadstatus = function loadstatus(p) {
+      // called with a percentage (0-100) indicating load progress
+    }
+
+    lz.embed.lzapp.onload = function loaded() {
+      // called when this application is done loading
+    }
+    initialize();
+</script>
+
+
+
+<div style="width: 100%; height: 100%;" id="lzappContainer"><embed
+       src="maindebug.lzx-Dateien/maindebug.lzx" quality="high"
+       bgcolor="#ffffff" wmode="window" allowfullscreen="false" id="lzapp"
+       name="lzapp"
+       flashvars="$SWF_FLASHVARS"
+       swliveconnect="true" allowscriptaccess="sameDomain"
+       type="application/x-shockwave-flash"
+       pluginspage="http://www.macromedia.com/go/getflashplayer";
+       align="middle" height="100%" width="100%"></div>
+<noscript>Please enable JavaScript in order to use this
+application.</noscript>
+</body>
+</html>
=======================================
--- /trunk/singlewebapp/WebContent/WEB-INF/web.xml      Mon Nov  2 04:34:03 2009
+++ /trunk/singlewebapp/WebContent/WEB-INF/web.xml      Thu Jan 21 09:27:32 2010
@@ -141,6 +141,12 @@
     <servlet-name>MethodGateway</servlet-name>
<servlet-class>org.openmeetings.servlet.outputhandler.MethodGateway</servlet-class>
   </servlet>
+  <servlet>
+    <description>DefaultIndex</description>
+    <display-name>DefaultIndex</display-name>
+    <servlet-name>DefaultIndex</servlet-name>
+ <servlet-class>org.openmeetings.servlet.outputhandler.DefaultIndex</servlet-class>
+  </servlet>
   <servlet-mapping>
     <servlet-name>DownloadHandler</servlet-name>
     <url-pattern>/DownloadHandler</url-pattern>
@@ -229,6 +235,10 @@
     <servlet-name>MethodGateway</servlet-name>
     <url-pattern>/MethodGateway</url-pattern>
   </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>DefaultIndex</servlet-name>
+    <url-pattern>/sipindex.html</url-pattern>
+  </servlet-mapping>
   <mime-mapping>
     <extension>inc</extension>
     <mime-type>text/plain</mime-type>
=======================================
--- /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Thu Jan 21 05:58:03 2010 +++ /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Thu Jan 21 09:27:32 2010
@@ -10,13 +10,13 @@

                <!-- User  / Password -->
                <property name="connection.username">root</property>
-               <property name="connection.password"></property>
+               <property name="connection.password">admin</property>

                <!-- Database Settings -->
                <property 
name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- for performance reasons changed to MyISAM from org.hibernate.dialect.MySQLInnoDBDialect --> <property name="dialect">org.hibernate.dialect.MySQLMyISAMDialect</property> - <property name="connection.url">jdbc:mysql://localhost/openmeetings?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8</property> + <property name="connection.url">jdbc:mysql://192.168.0.3/openmeetings_max_test4?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8</property>

                <property name="hibernate.connection.CharSet">utf8</property>
                <property 
name="hibernate.connection.characterEncoding">utf8</property>
=======================================
--- /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/web.xml Tue Jan 5 08:27:13 2010 +++ /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/web.xml Thu Jan 21 09:27:32 2010
@@ -172,6 +172,12 @@
         <servlet-name>MethodGateway</servlet-name>
<servlet-class>org.openmeetings.servlet.outputhandler.MethodGateway</servlet-class>
     </servlet>
+    <servlet>
+        <description>DefaultIndex</description>
+        <display-name>DefaultIndex</display-name>
+        <servlet-name>DefaultIndex</servlet-name>
+ <servlet-class>org.openmeetings.servlet.outputhandler.DefaultIndex</servlet-class>
+    </servlet>
     <servlet-mapping>
         <servlet-name>DownloadHandler</servlet-name>
         <url-pattern>/DownloadHandler</url-pattern>
@@ -261,6 +267,10 @@
         <servlet-name>MethodGateway</servlet-name>
         <url-pattern>/MethodGateway</url-pattern>
     </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>DefaultIndex</servlet-name>
+        <url-pattern>/sipindex.html</url-pattern>
+    </servlet-mapping>
     <mime-mapping>
         <extension>inc</extension>
         <mime-type>text/plain</mime-type>
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Sat Jan 9 04:21:42 2010 +++ /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Thu Jan 21 09:27:32 2010
@@ -115,7 +115,7 @@
                                ctx.put("rtmphostlocal", rtmphostlocal); 
//rtmphostlocal
                            ctx.put("red5httpport", red5httpport); 
//red5httpport

-                           System.out.println("httpRootKey "+httpRootKey);
+                           log.debug("httpRootKey "+httpRootKey);

String codebase = "http://"+rtmphostlocal+":"+red5httpport+httpRootKey+"screen";;

-- 
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.


Reply via email to