You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/07/06 15:24:01 UTC

openmeetings git commit: [OPENMEETINGS-1664] sip room exit seems to be fixed

Repository: openmeetings
Updated Branches:
  refs/heads/3.3.x 18c013459 -> a3f41b241


[OPENMEETINGS-1664] sip room exit seems to be fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/a3f41b24
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/a3f41b24
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/a3f41b24

Branch: refs/heads/3.3.x
Commit: a3f41b2417f319b8bddb9784ea6eb4dd8161342d
Parents: 18c0134
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Thu Jul 6 22:23:50 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Thu Jul 6 22:23:50 2017 +0700

----------------------------------------------------------------------
 .../remote/red5/ScopeApplicationAdapter.java    | 252 +++++++++----------
 .../apache/openmeetings/db/dao/room/SipDao.java |   2 +
 .../openmeetings/web/app/Application.java       |   7 +-
 .../web/room/activities/ActivitiesPanel.java    |  11 +-
 4 files changed, 130 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a3f41b24/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
index 4e18027..267cf91 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
@@ -100,7 +100,7 @@ import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter implements IPendingServiceCallback {
-	private static final Logger log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
+	private static final Logger _log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
 	private static final String SECURITY_CODE_PARAM = "securityCode";
 	private static final String WIDTH_PARAM = "width";
 	private static final String HEIGHT_PARAM = "height";
@@ -141,8 +141,8 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 	@Override
 	public void resultReceived(IPendingServiceCall arg0) {
-		if (log.isTraceEnabled()) {
-			log.trace("resultReceived:: {}", arg0);
+		if (_log.isTraceEnabled()) {
+			_log.trace("resultReceived:: {}", arg0);
 		}
 	}
 
@@ -152,7 +152,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			OmFileHelper.setOmHome(scope.getResource("/").getFile());
 			LabelDao.initLanguageMap();
 
-			log.debug("webAppPath : " + OmFileHelper.getOmHome());
+			_log.debug("webAppPath : " + OmFileHelper.getOmHome());
 
 			// Only load this Class one time Initially this value might by empty, because the DB is empty yet
 			getCryptKey();
@@ -160,7 +160,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			// init your handler here
 
 			for (String scopeName : scope.getScopeNames()) {
-				log.debug("scopeName :: " + scopeName);
+				_log.debug("scopeName :: " + scopeName);
 			}
 
 			InitializationContainer.initComplete = true;
@@ -173,7 +173,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			recordingDao.resetProcessingStatus(); //we are starting so all processing recordings are now errors
 			sessionManager.clearCache(); // 'sticky' clients should be cleaned up from DB
 		} catch (Exception err) {
-			log.error("[appStart]", err);
+			_log.error("[appStart]", err);
 		}
 		return true;
 	}
@@ -188,12 +188,12 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 	@Override
 	public boolean roomConnect(IConnection conn, Object[] params) {
-		log.debug("roomConnect : ");
+		_log.debug("roomConnect : ");
 
 		IServiceCapableConnection service = (IServiceCapableConnection) conn;
 		String streamId = conn.getClient().getId();
 
-		log.debug("### Client connected to OpenMeetings, register Client StreamId: " + streamId + " scope " + conn.getScope().getName());
+		_log.debug("### Client connected to OpenMeetings, register Client StreamId: " + streamId + " scope " + conn.getScope().getName());
 
 		// Set StreamId in Client
 		service.invoke("setId", new Object[] { streamId }, this);
@@ -215,7 +215,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		if (!Strings.isEmpty(securityCode)) {
 			//this is for external applications like ffmpeg [OPENMEETINGS-1574]
 			if (rcm.getRoomId() == null) {
-				log.warn("Trying to enter invalid scope using security code, client is rejected:: " + rcm.getRoomId());
+				_log.warn("Trying to enter invalid scope using security code, client is rejected:: " + rcm.getRoomId());
 				return rejectClient();
 			}
 			String _uid = null;
@@ -226,12 +226,12 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 			if (_uid == null) {
-				log.warn("Client is not found by security id, client is rejected");
+				_log.warn("Client is not found by security id, client is rejected");
 				return rejectClient();
 			}
 			Client parent = sessionManager.getClientByPublicSID(_uid, null);
 			if (parent == null || !parent.getScope().equals(rcm.getScope())) {
-				log.warn("Security code is invalid, client is rejected");
+				_log.warn("Security code is invalid, client is rejected");
 				return rejectClient();
 			}
 			rcm.setUsername(parent.getUsername());
@@ -248,7 +248,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			}
 		}
 		if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode) && Strings.isEmpty(parentSid)) {
-			log.warn("No UIDs are provided, client is rejected");
+			_log.warn("No UIDs are provided, client is rejected");
 			return rejectClient();
 		}
 		if (hibernate && "noclient".equals(uid)) {
@@ -258,7 +258,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		if (map.containsKey("screenClient")) {
 			Client parent = sessionManager.getClientByPublicSID(parentSid, null);
 			if (parent == null) {
-				log.warn("Bad parent for screen-sharing client, client is rejected");
+				_log.warn("Bad parent for screen-sharing client, client is rejected");
 				return rejectClient();
 			}
 			SessionVariablesUtil.setIsScreenClient(conn.getClient());
@@ -269,7 +269,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		}
 		rcm.setStreamid(conn.getClient().getId());
 		if (rcm.getRoomId() == null && !hibernate) {
-			log.warn("Bad room specified, client is rejected");
+			_log.warn("Bad room specified, client is rejected");
 			return rejectClient();
 		}
 		if (Boolean.TRUE.equals(connParams.get(SIP_PARAM))) {
@@ -278,7 +278,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		if (connParams.containsKey("mobileClient")) {
 			Sessiondata sd = sessiondataDao.check(parentSid);
 			if (sd.getUserId() == null && !hibernate) {
-				log.warn("Attempt of unauthorized room enter, client is rejected");
+				_log.warn("Attempt of unauthorized room enter, client is rejected");
 				return rejectClient();
 			}
 			rcm.setMobile(true);
@@ -286,7 +286,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			if (rcm.getUserId() != null) {
 				User u = userDao.get(rcm.getUserId());
 				if (u == null) {
-					log.error("Attempt of unauthorized room enter: USER not found, client is rejected");
+					_log.error("Attempt of unauthorized room enter: USER not found, client is rejected");
 					return rejectClient();
 				}
 				rcm.setUsername(u.getLogin());
@@ -307,7 +307,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		}
 		rcm = sessionManager.add(iapp.updateClient(rcm, false), null);
 		if (rcm == null) {
-			log.warn("Failed to create Client on room connect");
+			_log.warn("Failed to create Client on room connect");
 			return false;
 		}
 
@@ -327,7 +327,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				rcm.setFirstname(u.getFirstname());
 				rcm.setLastname(u.getLastname());
 			}
-			log.debug("publishName :: " + rcm.getStreamPublishName());
+			_log.debug("publishName :: " + rcm.getStreamPublishName());
 			sessionManager.updateClientByStreamId(streamId, rcm, false, null);
 		}
 
@@ -341,7 +341,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public Map<String, String> screenSharerAction(Map<String, Object> map) {
 		Map<String, String> returnMap = new HashMap<>();
 		try {
-			log.debug("-----------  screenSharerAction ENTER");
+			_log.debug("-----------  screenSharerAction ENTER");
 			IConnection current = Red5.getConnectionLocal();
 
 			Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
@@ -383,9 +383,9 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					}
 				}
 			}
-			log.debug("-----------  screenSharerAction, return: " + returnMap);
+			_log.debug("-----------  screenSharerAction, return: " + returnMap);
 		} catch (Exception err) {
-			log.error("[screenSharerAction]", err);
+			_log.error("[screenSharerAction]", err);
 		}
 		return returnMap;
 	}
@@ -395,7 +395,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
 
-			log.debug("checkScreenSharing -2- " + streamid);
+			_log.debug("checkScreenSharing -2- " + streamid);
 
 			List<Client> screenSharerList = new LinkedList<>();
 
@@ -410,7 +410,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			return screenSharerList;
 
 		} catch (Exception err) {
-			log.error("[checkScreenSharing]", err);
+			_log.error("[checkScreenSharing]", err);
 		}
 		return null;
 	}
@@ -423,7 +423,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	public Map<String, Object> setConnectionAsSharingClient(Map<String, Object> map) {
 		try {
-			log.debug("-----------  setConnectionAsSharingClient");
+			_log.debug("-----------  setConnectionAsSharingClient");
 			IConnection current = Red5.getConnectionLocal();
 
 			Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
@@ -461,19 +461,19 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					returnMap.put("alreadyPublished", true);
 				}
 
-				log.debug("screen x,y,width,height {},{},{},{}", client.getVX(), client.getVY(), client.getVWidth(), client.getVHeight());
+				_log.debug("screen x,y,width,height {},{},{},{}", client.getVX(), client.getVY(), client.getVWidth(), client.getVHeight());
 
 				if (startStreaming) {
 					if (!alreadyStreaming) {
 						returnMap.put("modus", "startStreaming");
 
-						log.debug("start streamPublishStart Is Screen Sharing ");
+						_log.debug("start streamPublishStart Is Screen Sharing ");
 
 						//Send message to all users
 						sendMessageToCurrentScope("newScreenSharing", client, false);
 						WebSocketHelper.sendRoom(new TextRoomMessage(client.getRoomId(), client.getUserId(), RoomMessage.Type.sharingStarted, client.getStreamPublishName()));
 					} else {
-						log.warn("Streaming is already started for the client id=" + client.getId() + ". Second request is ignored.");
+						_log.warn("Streaming is already started for the client id=" + client.getId() + ". Second request is ignored.");
 					}
 				}
 				if (startRecording) {
@@ -484,7 +484,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 						recordingService.recordMeetingStream(current, client, recordingName, "", false);
 					} else {
-						log.warn("Recording is already started for the client id=" + client.getId() + ". Second request is ignored.");
+						_log.warn("Recording is already started for the client id=" + client.getId() + ". Second request is ignored.");
 					}
 				}
 				if (startPublishing) {
@@ -494,10 +494,10 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 				return returnMap;
 			} else {
-				log.error("[setConnectionAsSharingClient] Could not find Screen Sharing Client " + current.getClient().getId());
+				_log.error("[setConnectionAsSharingClient] Could not find Screen Sharing Client " + current.getClient().getId());
 			}
 		} catch (Exception err) {
-			log.error("[setConnectionAsSharingClient]", err);
+			_log.error("[setConnectionAsSharingClient]", err);
 		}
 		return null;
 	}
@@ -533,26 +533,13 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	}
 
 	/**
-	 * this function is invoked directly after initial connecting
-	 *
-	 * @return publicSID of current client
-	 */
-	public String getPublicSID() {
-		log.debug("-----------  getPublicSID");
-		IConnection current = Red5.getConnectionLocal();
-		Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
-		sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
-		return currentClient.getPublicSID();
-	}
-
-	/**
 	 * this function is invoked after a reconnect
 	 *
 	 * @param newPublicSID
 	 */
 	public boolean overwritePublicSID(String newPublicSID) {
 		try {
-			log.debug("-----------  overwritePublicSID");
+			_log.debug("-----------  overwritePublicSID");
 			IConnection current = Red5.getConnectionLocal();
 			IClient c = current.getClient();
 			Client currentClient = sessionManager.getClientByStreamId(c.getId(), null);
@@ -564,7 +551,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			sessionManager.updateClientByStreamId(c.getId(), currentClient, false, null);
 			return true;
 		} catch (Exception err) {
-			log.error("[overwritePublicSID]", err);
+			_log.error("[overwritePublicSID]", err);
 		}
 		return false;
 	}
@@ -577,25 +564,25 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	@Override
 	public void roomLeave(IClient client, IScope room) {
 		try {
-			log.debug("[roomLeave] {} {} {} {}", client.getId(), room.getClients().size(), room.getContextPath(), room.getName());
+			_log.debug("[roomLeave] {} {} {} {}", client.getId(), room.getClients().size(), room.getContextPath(), room.getName());
 
 			Client rcl = sessionManager.getClientByStreamId(client.getId(), null);
 
 			// The Room Client can be null if the Client left the room by using
 			// logicalRoomLeave
 			if (rcl != null) {
-				log.debug("currentClient IS NOT NULL");
+				_log.debug("currentClient IS NOT NULL");
 				roomLeaveByScope(rcl, room);
 			}
 		} catch (Exception err) {
-			log.error("[roomLeave]", err);
+			_log.error("[roomLeave]", err);
 		}
 	}
 
 	public void roomLeaveByScope(String uid, Long roomId) {
 		Client rcl = sessionManager.getClientByPublicSID(uid, null);
 		IScope scope = getRoomScope("" + roomId);
-		log.debug("[roomLeaveByScope] {} {} {} {}", uid, roomId, rcl, scope);
+		_log.debug("[roomLeaveByScope] {} {} {} {}", uid, roomId, rcl, scope);
 		if (rcl != null && scope != null) {
 			roomLeaveByScope(rcl, scope);
 		}
@@ -613,7 +600,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	public void roomLeaveByScope(Client client, IScope scope) {
 		try {
-			log.debug("[roomLeaveByScope] currentClient " + client);
+			_log.debug("[roomLeaveByScope] currentClient " + client);
 			Long roomId = client.getRoomId();
 
 			if (client.isScreenClient() && client.isStartStreaming()) {
@@ -626,13 +613,13 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				whiteBoardService.removeUserFromAllLists(scope, client);
 			}
 
-			log.debug("removing Username " + client.getUsername() + " "
+			_log.debug("removing Username " + client.getUsername() + " "
 					+ client.getConnectedSince() + " streamid: "
 					+ client.getStreamid());
 
 			// stop and save any recordings
 			if (client.getIsRecording()) {
-				log.debug("*** roomLeave Current Client is Recording - stop that");
+				_log.debug("*** roomLeave Current Client is Recording - stop that");
 				if (client.getInterviewPodId() != null) {
 					//interview, TODO need better check
 					_stopInterviewRecording(client, scope);
@@ -648,7 +635,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			// Notify all clients of the same currentScope (room) with domain
 			// and room except the current disconnected cause it could throw an exception
-			log.debug("currentScope " + scope);
+			_log.debug("currentScope " + scope);
 
 			new MessageSender(scope, "roomDisconnect", client, this) {
 				@Override
@@ -672,7 +659,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			}
 			sessionManager.removeClient(client.getStreamid(), null);
 		} catch (Exception err) {
-			log.error("[roomLeaveByScope]", err);
+			_log.error("[roomLeaveByScope]", err);
 		}
 	}
 
@@ -687,7 +674,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	@Override
 	public void streamPublishStart(IBroadcastStream stream) {
 		try {
-			log.debug("-----------  streamPublishStart");
+			_log.debug("-----------  streamPublishStart");
 			IConnection current = Red5.getConnectionLocal();
 			final String streamid = current.getClient().getId();
 			final Client c = sessionManager.getClientByStreamId(streamid, null);
@@ -697,7 +684,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			Client clientObjectSendToSync = c;
 
 			// Notify all the clients that the stream had been started
-			log.debug("start streamPublishStart broadcast start: " + stream.getPublishedName() + " CONN " + current);
+			_log.debug("start streamPublishStart broadcast start: " + stream.getPublishedName() + " CONN " + current);
 
 			// In case its a screen sharing we start a new Video for that
 			if (c.isScreenClient()) {
@@ -715,7 +702,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				sessionManager.updateClientByStreamId(streamid, c, false, null);
 			}
 
-			log.debug("newStream SEND: " + c);
+			_log.debug("newStream SEND: " + c);
 
 			// Notify all users of the same Scope
 			// We need to iterate through the streams to catch if anybody is recording
@@ -725,35 +712,35 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 
 					if (rcl == null) {
-						log.debug("RCL IS NULL newStream SEND");
+						_log.debug("RCL IS NULL newStream SEND");
 						return true;
 					}
 
-					log.debug("check send to "+rcl);
+					_log.debug("check send to "+rcl);
 
 					if (Strings.isEmpty(rcl.getPublicSID())) {
-						log.debug("publicSID IS NULL newStream SEND");
+						_log.debug("publicSID IS NULL newStream SEND");
 						return true;
 					}
 					if (rcl.getIsRecording()) {
-						log.debug("RCL getIsRecording newStream SEND");
+						_log.debug("RCL getIsRecording newStream SEND");
 						recordingService.addRecordingByStreamId(current, c, rcl.getRecordingId());
 					}
 					if (rcl.isScreenClient()) {
-						log.debug("RCL getIsScreenClient newStream SEND");
+						_log.debug("RCL getIsScreenClient newStream SEND");
 						return true;
 					}
 
 					if (rcl.getPublicSID().equals(c.getPublicSID())) {
-						log.debug("RCL publicSID is equal newStream SEND");
+						_log.debug("RCL publicSID is equal newStream SEND");
 						return true;
 					}
-					log.debug("RCL SEND is equal newStream SEND "+rcl.getPublicSID()+" || "+rcl.getUserport());
+					_log.debug("RCL SEND is equal newStream SEND "+rcl.getPublicSID()+" || "+rcl.getUserport());
 					return false;
 				}
 			}.start();
 		} catch (Exception err) {
-			log.error("[streamPublishStart]", err);
+			_log.error("[streamPublishStart]", err);
 		}
 	}
 
@@ -777,7 +764,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	@Override
 	public void streamBroadcastClose(IBroadcastStream stream) {
 		// Notify all the clients that the stream had been closed
-		log.debug("start streamBroadcastClose broadcast close: " + stream.getPublishedName());
+		_log.debug("start streamBroadcastClose broadcast close: " + stream.getPublishedName());
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamId = current.getClient().getId();
@@ -795,10 +782,10 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			}
 			// Notify all the clients that the stream had been started
-			log.debug("streamBroadcastClose : " + rcl + " " + rcl.getStreamid());
+			_log.debug("streamBroadcastClose : " + rcl + " " + rcl.getStreamid());
 			// this close stream event, stop the recording of this stream
 			if (rcl.getIsRecording()) {
-				log.debug("***  +++++++ ######## sendClientBroadcastNotifications Any Client is Recording - stop that");
+				_log.debug("***  +++++++ ######## sendClientBroadcastNotifications Any Client is Recording - stop that");
 				recordingService.stopRecordingShowForClient(current.getScope(), rcl);
 			}
 			if (stream.getPublishedName().equals("" + rcl.getBroadCastID())) {
@@ -810,7 +797,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			// Notify all clients of the same scope (room)
 			sendMessageToCurrentScope("closeStream", rcl, rcl.isMobile());
 		} catch (Exception e) {
-			log.error("[streamBroadcastClose]", e);
+			_log.error("[streamBroadcastClose]", e);
 		}
 	}
 
@@ -826,13 +813,13 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			sendMessageToCurrentScope("newRed5ScreenCursor", cursor, true, false);
 		} catch (Exception err) {
-			log.error("[setNewCursorPosition]", err);
+			_log.error("[setNewCursorPosition]", err);
 		}
 	}
 
 	public long removeModerator(String publicSID) {
 		try {
-			log.debug("-----------  removeModerator: " + publicSID);
+			_log.debug("-----------  removeModerator: " + publicSID);
 
 			Client currentClient = sessionManager.getClientByPublicSID(publicSID, null);
 
@@ -849,14 +836,14 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			sendMessageToCurrentScope("setNewModeratorByList", currentMods, true);
 		} catch (Exception err) {
-			log.error("[removeModerator]", err);
+			_log.error("[removeModerator]", err);
 		}
 		return -1L;
 	}
 
 	public long switchMicMuted(String publicSID, boolean mute) {
 		try {
-			log.debug("-----------  switchMicMuted: " + publicSID);
+			_log.debug("-----------  switchMicMuted: " + publicSID);
 
 			Client currentClient = sessionManager.getClientByPublicSID(publicSID, null);
 			if (currentClient == null) {
@@ -871,7 +858,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			newMessage.put(1, currentClient);
 			sendMessageWithClient(newMessage);
 		} catch (Exception err) {
-			log.error("[switchMicMuted]", err);
+			_log.error("[switchMicMuted]", err);
 		}
 		return 0L;
 	}
@@ -886,7 +873,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			//Put the mod-flag to true for this client
 			return currentClient.getMicMuted();
 		} catch (Exception err) {
-			log.error("[getMicMutedByPublicSID]",err);
+			_log.error("[getMicMutedByPublicSID]",err);
 		}
 		return true;
 	}
@@ -905,10 +892,10 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public long setUserAVSettings(boolean updateBroadcastId) {
 		try {
 			String streamid = Red5.getConnectionLocal().getClient().getId();
-			log.debug("-----------  setUserAVSettings {}", streamid);
+			_log.debug("-----------  setUserAVSettings {}", streamid);
 			Client rcl = sessionManager.getClientByStreamId(streamid, null);
 			if (rcl == null) {
-				log.warn("Failed to find appropriate clients");
+				_log.warn("Failed to find appropriate clients");
 				return -1;
 			}
 			if (updateBroadcastId) {
@@ -917,7 +904,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			}
 			return rcl.getBroadCastID();
 		} catch (Exception err) {
-			log.error("[setUserAVSettings]", err);
+			_log.error("[setUserAVSettings]", err);
 		}
 		return -1;
 	}
@@ -950,7 +937,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			}
 		} catch (Exception err) {
-			log.error("[checkRoomValues]", err);
+			_log.error("[checkRoomValues]", err);
 		}
 		return false;
 	}
@@ -989,7 +976,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	public RoomStatus setRoomValues(Long roomId, boolean becomeModerator, boolean isSuperModerator, String colorObj) {
 		try {
-			log.debug("-----------  setRoomValues");
+			_log.debug("-----------  setRoomValues");
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
 			Client client = sessionManager.getClientByStreamId(streamid, null);
@@ -1055,7 +1042,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			return roomStatus;
 		} catch (Exception err) {
-			log.error("[setRoomValues]", err);
+			_log.error("[setRoomValues]", err);
 		}
 		return null;
 	}
@@ -1072,7 +1059,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	public Client setUsernameAndSession(String SID, Long userId, String username, String firstname, String lastname) {
 		try {
-			log.debug("-----------  setUsernameAndSession");
+			_log.debug("-----------  setUsernameAndSession");
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
 			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
@@ -1083,7 +1070,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			currentClient.setUserObject(userId, username, firstname, lastname);
 
 			// Update Session Data
-			log.debug("UDPATE SESSION " + SID + ", " + userId);
+			_log.debug("UDPATE SESSION " + SID + ", " + userId);
 			sessiondataDao.updateUserWithoutSession(SID, userId);
 
 			User user = userDao.get(userId);
@@ -1104,7 +1091,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 			return currentClient;
 		} catch (Exception err) {
-			log.error("[setUsername]", err);
+			_log.error("[setUsername]", err);
 		}
 		return null;
 	}
@@ -1120,7 +1107,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		Map<String, Client> roomClientList = new HashMap<>();
 		try {
 
-			log.debug("sendMessageByRoomAndDomain " + roomId);
+			_log.debug("sendMessageByRoomAndDomain " + roomId);
 
 			IScope scope = getRoomScope(roomId.toString());
 
@@ -1132,7 +1119,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}.start();
 		} catch (Exception err) {
-			log.error("[getClientListBYRoomAndDomain]", err);
+			_log.error("[getClientListBYRoomAndDomain]", err);
 		}
 		return roomClientList;
 	}
@@ -1147,7 +1134,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				return sessionManager.getCurrentModeratorByRoom(roomId);
 			}
 		} catch (Exception err) {
-			log.error("[getCurrentModerator]", err);
+			_log.error("[getCurrentModerator]", err);
 		}
 		return null;
 	}
@@ -1165,7 +1152,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			Client client = sessionManager.getClientByStreamId(current.getClient().getId(), null);
 			return sendToWhiteboard(client, whiteboardObjParam, whiteboardId);
 		} catch (Exception err) {
-			log.error("[sendVarsByWhiteboardId]", err);
+			_log.error("[sendVarsByWhiteboardId]", err);
 			return -1;
 		}
 	}
@@ -1256,14 +1243,14 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 		} catch (Exception err) {
-			log.error("[copyFileToCurrentRoom] ", err);
+			_log.error("[copyFileToCurrentRoom] ", err);
 		}
 	}
 
 	public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url, boolean clean) {
 		ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid);
 		if (csi == null) {
-			log.warn("No client was found to send Wml:: {}", uid);
+			_log.warn("No client was found to send Wml:: {}", uid);
 			return;
 		}
 		Client client = csi.getRcl();
@@ -1352,7 +1339,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			sendToScope(roomId, "sendVarsToWhiteboardById", new Object[] { showDrawStatus ? client : null, sendObject });
 		} catch (Exception err) {
-			log.error("[sendToWhiteboard]", err);
+			_log.error("[sendToWhiteboard]", err);
 			return -1;
 		}
 		return 1;
@@ -1400,7 +1387,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			sendMessageToCurrentScope("sendVarsToMessage", newMessage, false);
 
 		} catch (Exception err) {
-			log.error("[sendMessage]", err);
+			_log.error("[sendMessage]", err);
 		}
 		return 1;
 	}
@@ -1479,7 +1466,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public void sendMessageToCurrentScope(final String method, final Object msg, final boolean sendSelf, final boolean sendScreen) {
 		IConnection conn = Red5.getConnectionLocal();
 		if (conn == null) {
-			log.warn("[sendMessageToCurrentScope] -> 'Unable to send message using NULL connection' {}, {}", method, msg);
+			_log.warn("[sendMessageToCurrentScope] -> 'Unable to send message using NULL connection' {}, {}", method, msg);
 			return;
 		}
 		sendMessageToCurrentScope(conn.getScope().getName(), method, msg, sendSelf, sendScreen);
@@ -1529,10 +1516,10 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 		public void run() {
 			try {
 				if (scope == null) {
-					log.debug("[MessageSender] -> 'Unable to send message to NULL scope' {}, {}", method, msg);
+					_log.debug("[MessageSender] -> 'Unable to send message to NULL scope' {}, {}", method, msg);
 				} else {
-					if (log.isTraceEnabled()) {
-						log.trace("[MessageSender] -> 'sending message' {}, {}", method, msg);
+					if (_log.isTraceEnabled()) {
+						_log.trace("[MessageSender] -> 'sending message' {}, {}", method, msg);
 					}
 					// Send to all Clients of that Scope(Room)
 					int count = 0;
@@ -1545,12 +1532,12 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 							count++;
 						}
 					}
-					if (log.isTraceEnabled()) {
-						log.trace("[MessageSender] -> 'sending message to {} clients, DONE' {}", count, method);
+					if (_log.isTraceEnabled()) {
+						_log.trace("[MessageSender] -> 'sending message to {} clients, DONE' {}", count, method);
 					}
 				}
 			} catch (Exception err) {
-				log.error(String.format("[MessageSender -> %s, %s]", method, msg), err);
+				_log.error(String.format("[MessageSender -> %s, %s]", method, msg), err);
 			}
 		}
 	}
@@ -1565,7 +1552,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			sendMessageWithClientWithSyncObject(newMessage, true);
 
 		} catch (Exception err) {
-			log.error("[sendMessageWithClient] ", err);
+			_log.error("[sendMessageWithClient] ", err);
 			return -1;
 		}
 		return 1;
@@ -1590,7 +1577,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			sendMessageToCurrentScope("sendVarsToMessageWithClient", hsm, sync);
 
 		} catch (Exception err) {
-			log.error("[sendMessageWithClient] ", err);
+			_log.error("[sendMessageWithClient] ", err);
 			return -1;
 		}
 		return 1;
@@ -1606,7 +1593,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	public int sendMessageById(Object newMessage, String clientId, IScope scope) {
 		try {
-			log.debug("### sendMessageById ###" + clientId);
+			_log.debug("### sendMessageById ###" + clientId);
 
 			Map<String, Object> hsm = new HashMap<>();
 			hsm.put("message", newMessage);
@@ -1622,7 +1609,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 		} catch (Exception err) {
-			log.error("[sendMessageWithClient] ", err);
+			_log.error("[sendMessageWithClient] ", err);
 			return -1;
 		}
 		return 1;
@@ -1651,7 +1638,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 		} catch (Exception err) {
-			log.error("[sendMessageWithClient] ", err);
+			_log.error("[sendMessageWithClient] ", err);
 			return -1;
 		}
 		return 1;
@@ -1660,7 +1647,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public void sendMessageWithClientByPublicSID(Object message, String publicSID) {
 		try {
 			if (publicSID == null) {
-				log.warn("'null' publicSID was passed to sendMessageWithClientByPublicSID");
+				_log.warn("'null' publicSID was passed to sendMessageWithClientByPublicSID");
 				return;
 			}
 
@@ -1692,7 +1679,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				// Scope not yet started
 			}
 		} catch (Exception err) {
-			log.error("[sendMessageWithClientByPublicSID] ", err);
+			_log.error("[sendMessageWithClientByPublicSID] ", err);
 		}
 	}
 
@@ -1717,7 +1704,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 		} catch (Exception err) {
-			log.error("[getInterviewRecordingStatus]", err);
+			_log.error("[getInterviewRecordingStatus]", err);
 		}
 		return false;
 	}
@@ -1729,7 +1716,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	@Deprecated
 	public boolean startInterviewRecording() {
 		try {
-			log.debug("-----------  startInterviewRecording");
+			_log.debug("-----------  startInterviewRecording");
 			IConnection current = Red5.getConnectionLocal();
 
 			for (IConnection conn : current.getScope().getClientConnections()) {
@@ -1760,7 +1747,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 					}
 
 					((IServiceCapableConnection) conn).invoke("interviewStatus", new Object[] { interviewStatus }, this);
-					log.debug("-- startInterviewRecording " + interviewStatus);
+					_log.debug("-- startInterviewRecording " + interviewStatus);
 				}
 			}
 			String recordingName = "Interview " + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date());
@@ -1769,7 +1756,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			return true;
 		} catch (Exception err) {
-			log.debug("[startInterviewRecording]", err);
+			_log.debug("[startInterviewRecording]", err);
 		}
 		return false;
 	}
@@ -1822,7 +1809,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	 */
 	private boolean _stopInterviewRecording(Client currentClient, IScope currentScope) {
 		try {
-			log.debug("-----------  stopInterviewRecording");
+			_log.debug("-----------  stopInterviewRecording");
 			Long clientRecordingId = currentClient.getRecordingId();
 
 			for (IConnection conn : currentScope.getClientConnections()) {
@@ -1832,7 +1819,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 				}
 			}
 			if (clientRecordingId == null) {
-				log.debug("stopInterviewRecording:: unable to find recording client");
+				_log.debug("stopInterviewRecording:: unable to find recording client");
 				return false;
 			}
 
@@ -1845,7 +1832,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 			return true;
 
 		} catch (Exception err) {
-			log.debug("[stopInterviewRecording]", err);
+			_log.debug("[stopInterviewRecording]", err);
 		}
 		return false;
 	}
@@ -1863,7 +1850,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 
 			return sessionManager.getClientListByRoom(currentClient.getRoomId());
 		} catch (Exception err) {
-			log.debug("[getClientListScope]", err);
+			_log.debug("[getClientListScope]", err);
 		}
 		return new ArrayList<>();
 	}
@@ -1915,7 +1902,7 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	public String getSipNumber(Double roomId) {
 		Room r = roomDao.get(roomId.longValue());
 		if (r != null && r.getConfno() != null) {
-			log.debug("getSipNumber: roomId: {}, sipNumber: {}", new Object[]{roomId, r.getConfno()});
+			_log.debug("getSipNumber: roomId: {}, sipNumber: {}", new Object[]{roomId, r.getConfno()});
 			return r.getConfno();
 		}
 		return null;
@@ -1931,45 +1918,34 @@ public class ScopeApplicationAdapter extends MultiThreadedApplicationAdapter imp
 	}
 
 	public synchronized int updateSipTransport() {
-		log.debug("-----------  updateSipTransport");
+		_log.debug("-----------  updateSipTransport");
 		IConnection current = Red5.getConnectionLocal();
 		String streamid = current.getClient().getId();
 		Client client = sessionManager.getClientByStreamId(streamid, null);
 		Long roomId = client.getRoomId();
 		Integer count = roomManager.getSipConferenceMembersNumber(roomId);
 		String newNumber = getSipTransportLastname(count);
-		log.debug("getSipConferenceMembersNumber: " + newNumber);
+		_log.debug("getSipConferenceMembersNumber: " + newNumber);
 		if (!newNumber.equals(client.getLastname())) {
 			client.setLastname(newNumber);
 			sessionManager.updateClientByStreamId(streamid, client, false, null);
-			log.debug("updateSipTransport: {}, {}, {}, {}, {}", new Object[] { client.getPublicSID(), client.getRoomId(),
+			_log.debug("updateSipTransport: {}, {}, {}, {}, {}", new Object[] { client.getPublicSID(), client.getRoomId(),
 					client.getFirstname(), client.getLastname(), client.getAvsettings() });
 			sendMessageWithClient(new String[] { "personal", client.getFirstname(), client.getLastname() });
 		}
 		return count != null && count > 0 ? count - 1 : 0;
 	}
 
-	public void setSipTransport(Long roomId, String publicSID, String broadCastId) {
-		log.debug("-----------  setSipTransport");
+	public void setSipTransport(String broadCastId) {
+		_log.debug("-----------  setSipTransport");
 		IConnection current = Red5.getConnectionLocal();
-		IClient c = current.getClient();
-		String streamid = c.getId();
+		String streamid = current.getClient().getId();
 		// Notify all clients of the same scope (room)
-		Client currentClient = sessionManager.getClientByStreamId(streamid, null);
-		currentClient.setSipTransport(true);
-		currentClient.setRoomId(roomId);
-		currentClient.setRoomEnter(new Date());
-		currentClient.setFirstname("SIP Transport");
-		currentClient.setLastname(getSipTransportLastname(roomId));
-		currentClient.setBroadCastID(Long.parseLong(broadCastId));
-		currentClient.setIsBroadcasting(true);
-		currentClient.setPublicSID(publicSID);
-		currentClient.setVWidth(120);
-		currentClient.setVHeight(90);
-		currentClient.setPicture_uri("phone.png");
-		sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
-		SessionVariablesUtil.initClient(c, publicSID);
-
-		sendMessageToCurrentScope("addNewUser", currentClient, false);
+		Client c = sessionManager.getClientByStreamId(streamid, null);
+		c.setLastname(getSipTransportLastname(c.getRoomId()));
+		c.setBroadCastID(Long.parseLong(broadCastId));
+		sessionManager.updateClientByStreamId(streamid, c, false, null);
+
+		sendMessageToCurrentScope("addNewUser", c, false);
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a3f41b24/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
index c9865f4..0192b9a 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
@@ -40,6 +40,8 @@ public class SipDao {
 	private static final Logger log = Red5LoggerFactory.getLogger(SipDao.class);
 	public static final String ASTERISK_OM_FAMILY = "openmeetings";
 	public static final String ASTERISK_OM_KEY = "rooms";
+	public static final Long SIP_USER_ID = -1L;
+	public static final String SIP_USER_NAME = "SIP Transport";
 	private String sipHostname;
 	private int sipPort;
 	private String sipUsername;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a3f41b24/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index add10f2..2a5e608 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.web.app;
 
 import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
+import static org.apache.openmeetings.db.dao.room.SipDao.SIP_USER_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_XFRAME_SAMEORIGIN;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
@@ -325,9 +326,11 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 					if (!getBean(SipDao.class).getUid().equals(rcl.getPublicSID())) {
 						return null;
 					}
+					rcl.setPicture_uri("phone.png");
 					//SipTransport enters the room
-					User u = new User(); //fake
-					u.setFirstname("SIP Transport"); //TODO check this
+					User u = new User();
+					u.setId(SIP_USER_ID);
+					u.setFirstname(SipDao.SIP_USER_NAME);
 					client = new Client(rcl, u);
 					addOnlineUser(client);
 					client.setCam(0);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a3f41b24/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 7797bc7..b4b056e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -19,6 +19,8 @@
 package org.apache.openmeetings.web.room.activities;
 
 import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
+import static org.apache.openmeetings.db.dao.room.SipDao.SIP_USER_ID;
+import static org.apache.openmeetings.db.dao.room.SipDao.SIP_USER_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.Application.getOnlineClient;
@@ -179,8 +181,13 @@ public class ActivitiesPanel extends BasePanel {
 					decline.setVisible(false);
 					break;
 			}
-			User u = getBean(UserDao.class).get(a.getSender());
-			String name = self ? getString("1362") : String.format("%s %s", u.getFirstname(), u.getLastname());
+			String name;
+			if (SIP_USER_ID.equals(a.getSender())) {
+				name = SIP_USER_NAME;
+			} else {
+				User u = getBean(UserDao.class).get(a.getSender());
+				name = self ? getString("1362") : String.format("%s %s", u.getFirstname(), u.getLastname());
+			}
 			switch (a.getType()) {
 				case roomEnter:
 					text = ""; // TODO should this be fixed?