public class ScopeApplicationAdapter
extends org.red5.server.adapter.ApplicationAdapter
implements org.red5.server.api.service.IPendingServiceCallback
Modifier and Type | Class and Description |
---|---|
class |
ScopeApplicationAdapter.MessageSender |
schedulingService
Constructor and Description |
---|
ScopeApplicationAdapter() |
Modifier and Type | Method and Description |
---|---|
Long |
addModerator(String publicSID)
Adds a Moderator by its publicSID
|
Long |
applyForModeration(String publicSID)
Invoked by a User whenever he want to become moderator this is needed,
cause if the room has no moderator yet there is no-one he can ask to get
the moderation, in case its a Non-Moderated Room he should then get the
Moderation without any confirmation needed
|
boolean |
appStart(org.red5.server.api.scope.IScope scope) |
Boolean |
checkRoomValues(Long roomId) |
List<org.apache.openmeetings.db.entity.room.Client> |
checkScreenSharing() |
List<Long> |
getActiveRoomIds() |
long |
getBroadCastId()
there will be set an attribute called "broadCastCounter" this is the name
this user will publish his stream
|
org.red5.server.api.scope.IBroadcastScope |
getBroadcastScope(org.red5.server.api.scope.IScope scope,
String name) |
List<org.apache.openmeetings.db.entity.room.Client> |
getClientListScope()
Get all ClientList Objects of that room and domain Used in
lz.applyForModeration.lzx
|
String |
getCryptKey() |
List<org.apache.openmeetings.db.entity.room.Client> |
getCurrentModeratorList() |
boolean |
getInterviewRecordingStatus()
Deprecated.
this method should be reworked to use a single SQL query in
the cache to get any client in the current room that is
recording instead of iterating through connections!
|
Boolean |
getMicMutedByPublicSID(String publicSID) |
String |
getPublicSID()
this function is invoked directly after initial connecting
|
org.red5.server.api.scope.IScope |
getRoomScope(String room) |
String |
getSipNumber(Long roomId) |
Long |
giveExclusiveAudio(String publicSID) |
void |
joinToConfCall(String number)
Perform call to specified phone number and join to conference
|
List<Integer> |
listRoomBroadcast() |
boolean |
loadTestSyncMessage(String remoteMethodName,
Object newMessage,
boolean sendSelf)
Deprecated.
|
void |
logicalRoomLeave()
this means a user has left a room but only logically, he didn't leave the
app he just left the room
FIXME: Is this really needed anymore if you re-connect to another scope?
Exit Room by Application
|
boolean |
overwritePublicSID(String newPublicSID)
this function is invoked after a reconnect
|
Long |
removeModerator(String publicSID) |
void |
resultReceived(org.red5.server.api.service.IPendingServiceCall arg0) |
boolean |
roomConnect(org.red5.server.api.IConnection conn,
Object[] params) |
void |
roomLeave(org.red5.server.api.IClient client,
org.red5.server.api.scope.IScope room)
Logic must be before roomDisconnect cause otherwise you cannot throw a
message to each one
|
void |
roomLeaveByScope(org.apache.openmeetings.db.entity.room.Client currentClient,
org.red5.server.api.scope.IScope currentScope,
boolean removeUserFromSessionList)
Removes the Client from the List, stops recording, adds the Room-Leave
event to running recordings, clear Polls and removes Client from any list
This function is kind of private/protected as the client won't be able
to call it with proper values.
|
Map<String,String> |
screenSharerAction(Map<String,Object> map) |
int |
sendBrowserMessageToMembers(Object newMessage)
send status for shared browsing to all members except self
|
int |
sendMessage(Object newMessage) |
int |
sendMessageAll(Object newMessage) |
int |
sendMessageById(Object newMessage,
String clientId,
org.red5.server.api.scope.IScope scope)
Function is used to send the kick Trigger at the moment,
it sends a general message to a specific clientId
|
HashMap<String,org.apache.openmeetings.db.entity.room.Client> |
sendMessageByRoomAndDomain(Long roomId,
Object message)
used by the Screen-Sharing Servlet to trigger events
|
void |
sendMessageToCurrentScope(String remoteMethodName,
Object newMessage,
boolean sendSelf)
General sync mechanism for all messages that are send from within the
scope of the current client, but:
optionally do not send to self (see param: sendSelf)
do not send to clients that are screen sharing clients
do not send to clients that are audio/video clients (or potentially ones)
do not send to connections where no RoomClient is registered
|
void |
sendMessageToCurrentScope(String remoteMethodName,
Object newMessage,
boolean sendSelf,
boolean sendScreen)
General sync mechanism for all messages that are send from within the
scope of the current client, but:
optionally do not send to self (see param: sendSelf)
send to clients that are screen sharing clients based on parameter
do not send to clients that are audio/video clients (or potentially ones)
do not send to connections where no RoomClient is registered
|
void |
sendMessageToMembers(Object newMessage)
wrapper method
|
int |
sendMessageWithClient(Object newMessage)
wrapper method
|
int |
sendMessageWithClientById(Object newMessage,
String clientId)
Sends a message to a user in the same room by its clientId
|
void |
sendMessageWithClientByPublicSID(Object message,
String publicSID) |
int |
sendMessageWithClientWithSyncObject(Object newMessage,
boolean sync)
wrapper method
|
boolean |
sendRemoteCursorEvent(String streamid,
Map messageObj) |
int |
sendVarsByWhiteboardId(ArrayList whiteboardObjParam,
Long whiteboardId)
This Function is triggered from the Whiteboard
|
int |
sendVarsModeratorGeneral(Object vars) |
Long |
setBroadCastingFlag(String publicSID,
boolean value,
boolean canVideo,
Integer interviewPodId) |
Map<String,Object> |
setConnectionAsSharingClient(Map<String,Object> map) |
void |
setNewCursorPosition(Object item) |
org.apache.openmeetings.db.dto.room.RoomStatus |
setRoomValues(Long roomId,
Boolean becomeModerator,
Boolean isSuperModerator,
String colorObj)
This function is called once a User enters a Room
It contains several different mechanism depending on what roomtype and
what options are available for the room to find out if the current user
will be a moderator of that room or not
Some rules: If it is a room that was created through the calendar, the user that organized the room will be moderator, the param Boolean becomeModerator will be ignored then In regular rooms you can use the param Boolean becomeModerator to set any user to become a moderator of the room If a new moderator is detected a Push Call to all current users of the room is invoked "setNewModeratorByList" to notify them of the new moderator At the end of the mechanism a push call with the new client-object and all the informations about the new user is send to every user of the current conference room |
void |
setSipTransport(Long roomId,
String publicSID,
String broadCastId) |
org.apache.openmeetings.db.entity.room.Client |
setUserAVSettings(String avsettings,
Object newMessage,
Integer vWidth,
Integer vHeight,
long roomId,
String publicSID,
Integer interviewPodId)
this must be set _after_ the Video/Audio-Settings have been chosen (see
editrecordstream.lzx) but _before_ anything else happens, it cannot be
applied _after_ the stream has started! avsettings can be: av - video and
audio a - audio only v - video only n - no a/v only static image
furthermore
|
org.apache.openmeetings.db.entity.room.Client |
setUsernameAndSession(String SID,
Long userId,
String username,
String firstname,
String lastname)
this is set initial directly after login/loading language
|
org.apache.openmeetings.db.entity.room.Client |
setUsernameReconnect(String SID,
Long userId,
String username,
String firstname,
String lastname,
String picture_uri)
This method is invoked when the user has disconnected and reconnects to
the Gateway with the new scope
|
boolean |
startInterviewRecording()
Deprecated.
|
Boolean |
stopInterviewRecording()
Stop the recording of the streams and send event to connected users of scope
|
void |
streamBroadcastClose(org.red5.server.api.stream.IBroadcastStream stream)
This method handles the Event after a stream has been removed all
connected Clients in the same room will get a notification
|
void |
streamPublishStart(org.red5.server.api.stream.IBroadcastStream stream)
This method handles the Event after a stream has been added all connected
Clients in the same room will get a notification
|
Long |
switchMicMuted(String publicSID,
boolean mute) |
int |
updateSipTransport() |
connect, disconnect, join, leave, start, stop
addListener, addScheduledJob, addScheduledJobAfterDelay, addScheduledOnceJob, addScheduledOnceJob, appConnect, appDisconnect, appJoin, appLeave, appStop, cancelGhostConnectionsCleanup, clearSharedObjects, createSharedObject, FCPublish, FCSubscribe, FCUnpublish, FCUnpublish, getBroadcastStream, getBroadcastStreamNames, getClientTTL, getGhostConnsCleanupPeriod, getListeners, getOnDemandStream, getScheduledJobNames, getSharedObject, getSharedObject, getSharedObjectNames, getSharedObjectSecurity, getStreamLength, getStreamPlaybackSecurity, getStreamPublishSecurity, getSubscriberStream, handleEvent, hasBroadcastStream, hasOnDemandStream, hasSharedObject, killGhostConnections, measureBandwidth, measureBandwidth, pauseScheduledJob, registerSharedObjectSecurity, registerStreamPlaybackSecurity, registerStreamPublishSecurity, rejectClient, rejectClient, removeListener, removeScheduledJob, resumeScheduledJob, roomDisconnect, roomJoin, roomStart, roomStop, scheduleGhostConnectionsCleanup, setClientTTL, setGhostConnsCleanupPeriod, startTransmit, stopTransmit, stopTransmit, streamBroadcastStart, streamPlayItemPause, streamPlayItemPlay, streamPlayItemResume, streamPlayItemSeek, streamPlayItemStop, streamRecordStart, streamRecordStop, streamSubscriberClose, streamSubscriberStart, unregisterSharedObjectSecurity, unregisterStreamPlaybackSecurity, unregisterStreamPublishSecurity
createChildScope, getAttribute, getAttribute, getAttributeNames, getAttributes, getChildScope, getChildScopeNames, getClients, getConnections, getContext, getDepth, getName, getParent, getPath, getPlugins, getResource, getResources, getScope, hasAttribute, hasChildScope, hasParent, lookupConnections, removeAttribute, removeAttributes, setAttribute, setAttributes, setAttributes, setPlugins, setScope, size
addChildScope, checkBandwidth, checkBandwidthUp, removeChildScope, serviceCall, setCanCallService, setCanConnect, setCanStart, setJoin
public void resultReceived(org.red5.server.api.service.IPendingServiceCall arg0)
resultReceived
in interface org.red5.server.api.service.IPendingServiceCallback
public boolean appStart(org.red5.server.api.scope.IScope scope)
appStart
in interface org.red5.server.jmx.mxbeans.ApplicationMXBean
appStart
in class org.red5.server.adapter.MultiThreadedApplicationAdapter
public boolean roomConnect(org.red5.server.api.IConnection conn, Object[] params)
roomConnect
in interface org.red5.server.jmx.mxbeans.ApplicationMXBean
roomConnect
in class org.red5.server.adapter.MultiThreadedApplicationAdapter
public List<org.apache.openmeetings.db.entity.room.Client> checkScreenSharing()
public Map<String,Object> setConnectionAsSharingClient(Map<String,Object> map)
map
- public String getPublicSID()
public boolean overwritePublicSID(String newPublicSID)
newPublicSID
- public void roomLeave(org.red5.server.api.IClient client, org.red5.server.api.scope.IScope room)
roomLeave
in interface org.red5.server.jmx.mxbeans.ApplicationMXBean
roomLeave
in class org.red5.server.adapter.MultiThreadedApplicationAdapter
public void logicalRoomLeave()
public void roomLeaveByScope(org.apache.openmeetings.db.entity.room.Client currentClient, org.red5.server.api.scope.IScope currentScope, boolean removeUserFromSessionList)
currentClient
- currentScope
- public void streamPublishStart(org.red5.server.api.stream.IBroadcastStream stream)
streamPublishStart
in interface org.red5.server.api.stream.IStreamAwareScopeHandler
streamPublishStart
in class org.red5.server.adapter.MultiThreadedApplicationAdapter
public org.red5.server.api.scope.IBroadcastScope getBroadcastScope(org.red5.server.api.scope.IScope scope, String name)
public void streamBroadcastClose(org.red5.server.api.stream.IBroadcastStream stream)
streamBroadcastClose
in interface org.red5.server.api.stream.IStreamAwareScopeHandler
streamBroadcastClose
in class org.red5.server.adapter.MultiThreadedApplicationAdapter
public Long addModerator(String publicSID)
publicSID
- public void setNewCursorPosition(Object item)
public Long setBroadCastingFlag(String publicSID, boolean value, boolean canVideo, Integer interviewPodId)
public Long applyForModeration(String publicSID)
public long getBroadCastId()
public org.apache.openmeetings.db.entity.room.Client setUserAVSettings(String avsettings, Object newMessage, Integer vWidth, Integer vHeight, long roomId, String publicSID, Integer interviewPodId)
avsettings
- newMessage
- vWidth
- vHeight
- roomId
- publicSID
- interviewPodId
- public org.apache.openmeetings.db.dto.room.RoomStatus setRoomValues(Long roomId, Boolean becomeModerator, Boolean isSuperModerator, String colorObj)
roomId
- - id of the roombecomeModerator
- - is user will become moderatorisSuperModerator
- - is user super moderatorgroupId
- - group id of the usercolorObj
- - some colorpublic org.apache.openmeetings.db.entity.room.Client setUsernameReconnect(String SID, Long userId, String username, String firstname, String lastname, String picture_uri)
SID
- userId
- username
- firstname
- lastname
- picture_uri
- public org.apache.openmeetings.db.entity.room.Client setUsernameAndSession(String SID, Long userId, String username, String firstname, String lastname)
SID
- - id of the sessionuserId
- - id of the user being setusername
- - username of the userfirstname
- - firstname of the userlastname
- - lastname of the userpublic HashMap<String,org.apache.openmeetings.db.entity.room.Client> sendMessageByRoomAndDomain(Long roomId, Object message)
roomId
- message
- public List<org.apache.openmeetings.db.entity.room.Client> getCurrentModeratorList()
public int sendVarsByWhiteboardId(ArrayList whiteboardObjParam, Long whiteboardId)
whiteboardObjParam
- - array of parameters being sended to whiteboardwhiteboardId
- - id of whiteboard parameters will be send topublic int sendVarsModeratorGeneral(Object vars)
public int sendMessage(Object newMessage)
public int sendMessageAll(Object newMessage)
public int sendBrowserMessageToMembers(Object newMessage)
newMessage
- public void sendMessageToMembers(Object newMessage)
newMessage
- public void sendMessageToCurrentScope(String remoteMethodName, Object newMessage, boolean sendSelf)
remoteMethodName
- The method to be callednewMessage
- parameterssendSelf
- send to the current client as well@Deprecated public boolean loadTestSyncMessage(String remoteMethodName, Object newMessage, boolean sendSelf)
remoteMethodName
- newMessage
- sendSelf
- public void sendMessageToCurrentScope(String remoteMethodName, Object newMessage, boolean sendSelf, boolean sendScreen)
remoteMethodName
- The method to be callednewMessage
- parameterssendSelf
- send to the current client as wellsendScreen
- send to the current client as wellpublic int sendMessageWithClient(Object newMessage)
newMessage
- public int sendMessageWithClientWithSyncObject(Object newMessage, boolean sync)
newMessage
- sync
- public int sendMessageById(Object newMessage, String clientId, org.red5.server.api.scope.IScope scope)
newMessage
- clientId
- public int sendMessageWithClientById(Object newMessage, String clientId)
newMessage
- clientId
- public void sendMessageWithClientByPublicSID(Object message, String publicSID)
public boolean getInterviewRecordingStatus()
public boolean startInterviewRecording()
getInterviewRecordingStatus()
public Boolean stopInterviewRecording()
public List<org.apache.openmeetings.db.entity.room.Client> getClientListScope()
public String getCryptKey()
public org.red5.server.api.scope.IScope getRoomScope(String room)
public int updateSipTransport()
public void joinToConfCall(String number)
number
- to callCopyright © 2012–2016 Apache Software Foundation. All rights reserved.