Hi all,
I'm using openmeetnis 2.0.
I want my client directly enter the conference room by using SOAP API.


/**********************************utility**********************************
/
package com.ron.openmeetings.util;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.openmeetings.axis.services.UserServiceStub;
import org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
import
org.apache.openmeetings.axis.services.UserServiceStub.GetSessionResponse;
import org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
import
org.apache.openmeetings.axis.services.UserServiceStub.LoginUserResponse;
import
org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAndGenera
teRoomHash;
import
org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAndGenera
teRoomHashResponse;

public class meetingManager{
        
        public static String generateSecureLoginUrl(String userName, int
roomId){
                        try {
                                //generate sessionId
                                UserServiceStub userServiceStub = new
UserServiceStub("http://192.168.202.14:5080/openmeetings/services/UserServic
e");
                                GetSession getSession = new GetSession();
                                GetSessionResponse session =
userServiceStub.getSession(getSession);
                                String sessionId =
session.get_return().getSession_id();
//                              log.debug("Meeting SessionId:" + sessionId);
        
                                LoginUser loginUser = new LoginUser();
                                loginUser.setSID(sessionId);
                                loginUser.setUsername("admin");
                                loginUser.setUserpass("pass");
                                LoginUserResponse loginUserResponse =
userServiceStub.loginUser(loginUser);
                                long loginResult =
loginUserResponse.get_return();
//                              log.debug("Meeting LoginResult:"  +
loginResult);
                                if(loginResult < 0){
                                        return null;
                                }
                                //secure room hash
                                SetUserObjectAndGenerateRoomHash
userObjectAndGenerateRoomHash = new SetUserObjectAndGenerateRoomHash();
        
userObjectAndGenerateRoomHash.setSID(sessionId);
        
userObjectAndGenerateRoomHash.setUsername(userName);
        
userObjectAndGenerateRoomHash.setFirstname(userName);
        
userObjectAndGenerateRoomHash.setLastname("");
        
userObjectAndGenerateRoomHash.setProfilePictureUrl("");
                                userObjectAndGenerateRoomHash.setEmail("");
        
userObjectAndGenerateRoomHash.setExternalUserId("");
        
userObjectAndGenerateRoomHash.setExternalUserType("");
        
userObjectAndGenerateRoomHash.setRoom_id(roomId);
        
userObjectAndGenerateRoomHash.setBecomeModeratorAsInt(0);
        
userObjectAndGenerateRoomHash.setShowAudioVideoTestAsInt(1);
                                SetUserObjectAndGenerateRoomHashResponse
userObjectAndGenerateRoomHashResponse =
userServiceStub.setUserObjectAndGenerateRoomHash(userObjectAndGenerateRoomHa
sh);
                                String roomHash =
userObjectAndGenerateRoomHashResponse.get_return();
//                              log.debug("Meeting secure roomHash:" +
roomHash);
                                String ssoUrl =
"http://192.168.202.14:5080/openmeetings/main.as3.swf11.swf?secureHash=";  +
roomHash +  "&language=11&lzproxied=solo&lc_SID=139032";
//                              log.debug("Final secure login url:" +
ssoUrl);
                                return ssoUrl;
                        }catch(Exception e) {
//                              log.error(e.getMessage(),e);
//                              throw new TSharkException(e);
                        }
                        return null;
        }       

}


/************************servlet*********************************/
package com.ron.openmeetings.servlet;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ron.openmeetings.util.meetingManager;

/**
 * Servlet implementation class Room
 */
public class Room extends HttpServlet {
        private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Room() {
        super();
        // TODO Auto-generated constructor stub
    }

        /**
         * @see Servlet#init(ServletConfig)
         */
        public void init(ServletConfig config) throws ServletException {
                // TODO Auto-generated method stub
        }

        /**
         * @see Servlet#destroy()
         */
        public void destroy() {
                // TODO Auto-generated method stub
                super.destroy();
        }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
                // TODO Auto-generated method stub
                doPost(request,response);
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
                // TODO Auto-generated method stub      
                try{
                        room(request, response);
                }catch(Exception e){
                        
                }
                
        }
        
        
//      @RequestMapping(value = "/room/admin")
        public void room(HttpServletRequest request, HttpServletResponse
response) throws Exception {
//              String roomId = request.getParameter("roomId");
                
//              String roomSecureLoginUrl =
meetingManager.generateSecureLoginUrl("renjiao", Integer.valueOf(roomId));
                String roomSecureLoginUrl =
meetingManager.generateSecureLoginUrl("renjiao", 6);
                response.sendRedirect(roomSecureLoginUrl);
        }

}


Everything goes correctly except whiteboad don't work.

I search on the internet and find it's a bug.
On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx, 
On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
parent view was already destroyed

Someone suggests modify method reconnectSuccess, like this:
<method name="reconnectSuccess" args="isInterview">  
    if ($debug) Debug.write("Send reconnectSuccess to
",canvas.rtmp_lc_name);  
    canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "reconnectSuccess",
[canvas.thishib.src, canvas.publicSID, hib.userobject, isInterview]);  
    //add secure remote login  
    if(canvas.secureRemoteUserLogin){  
        if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");  
        this.parent.as3ConnectionSuccess();//using SOAP API login, miss
this.  
    }  
</method>

It doesn't work and cause other error. How to fix it?


Thanks a lot!

Ron Sun.

Reply via email to