Author: solomax
Date: Tue May 17 17:47:05 2016
New Revision: 1744296

URL: http://svn.apache.org/viewvc?rev=1744296&view=rev
Log:
[OPENMEETINGS-1384] join room should work better

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java?rev=1744296&r1=1744295&r2=1744296&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
 Tue May 17 17:47:05 2016
@@ -44,8 +44,6 @@ public class SipDao {
        private String sipUsername;
        private String sipPassword;
        private ManagerConnectionFactory factory;
-       private ManagerConnection connection;
-       private ManagerConnection eventConnection;
 
        @SuppressWarnings("unused")
        private SipDao() {
@@ -58,61 +56,57 @@ public class SipDao {
                this.sipUsername = sipUsername;
                this.sipPassword = sipPassword;
                factory = new ManagerConnectionFactory(this.sipHostname, 
this.sipPort, this.sipUsername, this.sipPassword);
-               connection = factory.createManagerConnection(); // TODO secure
-               eventConnection = factory.createManagerConnection(); // TODO 
secure
        }
 
        private ManagerResponse exec(ManagerAction action) {
-               if (connection == null) {
+               if (factory == null) {
                        log.warn("There is no Asterisk configured");
                        return null;
                }
-               synchronized (connection) {
+               ManagerConnection con = factory.createManagerConnection(); // 
TODO secure
+               try {
+                       con.login();
+                       ManagerResponse r = con.sendAction(action);
+                       if (log.isDebugEnabled() && r != null) {
+                               log.debug(r.toString());
+                       }
+                       return (r instanceof ManagerError) ? null : r;
+               } catch (Exception e) {
+                       if (log.isDebugEnabled()) {
+                               log.error("Error while executing ManagerAction: 
" + action, e);
+                       }
+               } finally {
                        try {
-                               connection.login();
-                               ManagerResponse r = 
connection.sendAction(action);
-                               if (log.isDebugEnabled() && r != null) {
-                                       log.debug(r.toString());
-                               }
-                               return (r instanceof ManagerError) ? null : r;
+                               con.logoff();
                        } catch (Exception e) {
-                               if (log.isDebugEnabled()) {
-                                       log.error("Error while executing 
ManagerAction: " + action, e);
-                               }
-                       } finally {
-                               try {
-                                       connection.logoff();
-                               } catch (Exception e) {
-                                       // no-op
-                               }
+                               // no-op
                        }
                }
                return null;
        }
 
        private ResponseEvents execEvent(EventGeneratingAction action) {
-               if (eventConnection == null) {
+               if (factory == null) {
                        log.warn("There is no Asterisk configured");
                        return null;
                }
-               synchronized (eventConnection) {
+               ManagerConnection con = factory.createManagerConnection(); // 
TODO secure
+               try {
+                       con.login("on");
+                       ResponseEvents r = 
con.sendEventGeneratingAction(action);
+                       if (log.isDebugEnabled() && r != null) {
+                               log.debug(r.getResponse().toString());
+                       }
+                       return (r == null || r.getResponse() instanceof 
ManagerError) ? null : r;
+               } catch (Exception e) {
+                       if (log.isDebugEnabled()) {
+                               log.error("Error while executing 
EventGeneratingAction: " + action, e);
+                       }
+               } finally {
                        try {
-                               eventConnection.login("on");
-                               ResponseEvents r = 
eventConnection.sendEventGeneratingAction(action);
-                               if (log.isDebugEnabled() && r != null) {
-                                       log.debug(r.getResponse().toString());
-                               }
-                               return (r == null || r.getResponse() instanceof 
ManagerError) ? null : r;
+                               con.logoff();
                        } catch (Exception e) {
-                               if (log.isDebugEnabled()) {
-                                       log.error("Error while executing 
EventGeneratingAction: " + action, e);
-                               }
-                       } finally {
-                               try {
-                                       eventConnection.logoff();
-                               } catch (Exception e) {
-                                       // no-op
-                               }
+                               // no-op
                        }
                }
                return null;

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java?rev=1744296&r1=1744295&r2=1744296&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
 Tue May 17 17:47:05 2016
@@ -44,8 +44,6 @@ public class SipDao {
        private String sipUsername;
        private String sipPassword;
        private ManagerConnectionFactory factory;
-       private ManagerConnection connection;
-       private ManagerConnection eventConnection;
 
        @SuppressWarnings("unused")
        private SipDao() {
@@ -58,61 +56,57 @@ public class SipDao {
                this.sipUsername = sipUsername;
                this.sipPassword = sipPassword;
                factory = new ManagerConnectionFactory(this.sipHostname, 
this.sipPort, this.sipUsername, this.sipPassword);
-               connection = factory.createManagerConnection(); // TODO secure
-               eventConnection = factory.createManagerConnection(); // TODO 
secure
        }
 
        private ManagerResponse exec(ManagerAction action) {
-               if (connection == null) {
+               if (factory == null) {
                        log.warn("There is no Asterisk configured");
                        return null;
                }
-               synchronized (connection) {
+               ManagerConnection con = factory.createManagerConnection(); // 
TODO secure
+               try {
+                       con.login();
+                       ManagerResponse r = con.sendAction(action);
+                       if (log.isDebugEnabled() && r != null) {
+                               log.debug(r.toString());
+                       }
+                       return (r instanceof ManagerError) ? null : r;
+               } catch (Exception e) {
+                       if (log.isDebugEnabled()) {
+                               log.error("Error while executing ManagerAction: 
" + action, e);
+                       }
+               } finally {
                        try {
-                               connection.login();
-                               ManagerResponse r = 
connection.sendAction(action);
-                               if (log.isDebugEnabled() && r != null) {
-                                       log.debug(r.toString());
-                               }
-                               return (r instanceof ManagerError) ? null : r;
+                               con.logoff();
                        } catch (Exception e) {
-                               if (log.isDebugEnabled()) {
-                                       log.error("Error while executing 
ManagerAction: " + action, e);
-                               }
-                       } finally {
-                               try {
-                                       connection.logoff();
-                               } catch (Exception e) {
-                                       // no-op
-                               }
+                               // no-op
                        }
                }
                return null;
        }
 
        private ResponseEvents execEvent(EventGeneratingAction action) {
-               if (eventConnection == null) {
+               if (factory == null) {
                        log.warn("There is no Asterisk configured");
                        return null;
                }
-               synchronized (eventConnection) {
+               ManagerConnection con = factory.createManagerConnection(); // 
TODO secure
+               try {
+                       con.login("on");
+                       ResponseEvents r = 
con.sendEventGeneratingAction(action);
+                       if (log.isDebugEnabled() && r != null) {
+                               log.debug(r.getResponse().toString());
+                       }
+                       return (r == null || r.getResponse() instanceof 
ManagerError) ? null : r;
+               } catch (Exception e) {
+                       if (log.isDebugEnabled()) {
+                               log.error("Error while executing 
EventGeneratingAction: " + action, e);
+                       }
+               } finally {
                        try {
-                               eventConnection.login("on");
-                               ResponseEvents r = 
eventConnection.sendEventGeneratingAction(action);
-                               if (log.isDebugEnabled() && r != null) {
-                                       log.debug(r.getResponse().toString());
-                               }
-                               return (r == null || r.getResponse() instanceof 
ManagerError) ? null : r;
+                               con.logoff();
                        } catch (Exception e) {
-                               if (log.isDebugEnabled()) {
-                                       log.error("Error while executing 
EventGeneratingAction: " + action, e);
-                               }
-                       } finally {
-                               try {
-                                       eventConnection.logoff();
-                               } catch (Exception e) {
-                                       // no-op
-                               }
+                               // no-op
                        }
                }
                return null;


Reply via email to