Screen recording

Screen recording consists of several components:

  • ScreenWeb - Server application for storing/loading screen recordings

  • CaptureClient - Client application for capturing the user’s screen

  • Player - Client application for playing screen and audio recordings

  • MediaService - Server application for handling screen and audio recordings

Screen Web

Used for storing/loading screen recordings sent from user workstations. Communication is done via REST interface.

User authentication

CaptureClient

To store screen recordings, NTML authentication of the user sending the recordings via the CaptureClient application is required, i.e., the user must be logged in via a Windows domain account. No further settings in Frontstage administration are needed.

Player

To load screen recordings, the user must be logged in and have the appropriate permissions set in Frontstage Administration:

Configuration

File appsettings.json

  • ConnectionStrings:DbDataContextConnectionString - connection string for connecting to Frontstage DB

  • DatabaseType - type of DB (MsSql, PgSql …)

  • Logging:LogLevel:Default - application logging level (default Information)

  • InstanceKey - under which DeviceRank the screen recordings will be stored (one must exist)

Device table

In the Device table, you need to define a storage for screen recordings, the storage type is SRecScreenFileHierarchyStorage, currently blob storage is not used, but a local path to the screen recordings.

Field ConfigurationJson - custom storage configuration, based on FileHierarchyStorage.

Example:

{
"RootDirectoryPath": "c:\\\\Atlantis\\\\ScreenArchive",
"IsArchive": false
}

The IsArchive flag determines whether it is an archive storage or not. Archive storage serves as the target storage within the “Archiving” rule.

The InstanceKey field is used to determine the correct storage, e.g., for ScreenWeb applications.

../../_images/srec-1.nol10n.png

Storing screen recordings

Screen recordings are stored in the data storage and their summary metadata in the ScreenRecord table.

Description of data in storage

The following files are stored in the data storage:

  • snapshots.xml - contains metadata for individual snapshots

  • records.desc - file with positions of individual snapshots in the image data file

  • records.mpd - file with image data; data is stored in binary using the MessagePack library

ScreenRecord table

Meaning of individual table fields:

  • ScreenRecordId - PK

  • RecordGuid - ID of the screen block (this ID is created in the “CaptureClient” application or in “ServiceMedia” when manipulating snapshots)

  • FileName - relative folder containing image data and metadata

  • AgentName - “Sysname” of the user account under which the screen recordings were created

  • StationName - name of the station where the screen recordings were created

  • ExecutedHorizon - determines the level at which the screen recording is within the MediaReduction rules [integer]

  • CurrentReductionRate - reduction rate of snapshots in the data block, not used yet

  • StartTimeUtc - start time of the data block

  • EndTimeUtc - end time of the data block

  • FirstIndex - starting index in the data block

  • LastIndex - ending index of the data block

  • RecordTime - time of recording storage or time of last manipulation with the recording

  • TeamName - team name; assigned from the Agent table at the time of recording storage

  • Complete - flag indicating the completed transfer of the block (the block is fully transferred from the client)

  • AgentId - agent ID assigned according to “Sysname” at the time of recording storage (if such exists)

  • DeviceRank - storage ID from the Device table

../../_images/srec-2.nol10n.png

CaptureClient

Configuration

Parameters in the CaptureClient.exe.config file

  • BlockSize - size of blocks in which screen data will be sent to the server

  • TempDir - directory for storing data that failed to be sent to the server

  • CaptureMode - screen capture mode (currently only “CPP” - using a native library is supported)

  • RecordScreenCount - number of snapshots in one complete block (with the same RecordGuid), default value = 600

  • FrameRate - screen capture interval [sec]

  • Processing - list of processing operations to be performed on the screen recording; used to reduce screen data:

    • grayscale - convert color component to grayscale

    • depth8 - only 8-bit color depth

    • diffscreen - only a differential snapshot is created (graphically accelerated function)

    • diffrect - calculates the intersection between consecutive snapshots and sends it

      • TempFileSize - max. size of the temp folder, after which recordings stop being stored

      • OnlyPrimaryMonitor - if true - only the primary monitor is captured; if false all monitors are captured

      • FullScreenInterval - after how many snapshots a key (full) snapshot is inserted, used for faster playback/cropping…

      • ServiceMode - if 1, allows the user to terminate the application (by right-clicking on the notification icon)

      • WebRootUrl - URL to which screen recordings will be sent

      • ValidIPList - list of IP ranges that the station must be assigned to send screen recordings to the server

Player

Configuration

Parameters in the Player.exe.config file

  • AvgLeftTreshold, AvgRightTreshold - parameters for voice recording visualization

  • DebugIndicators - indicators for logging, can be logged using e.g. DebugView

  • Bookmarks - if true, a window with notes is displayed

  • RankingUrl - URL for displaying the ranking page in the application

  • ExternalRanking - if true, an external rating application is used

  • WebRootUrl - URL of the server from which voice and screen data and metadata are drawn

  • PlayerMode - the player can run in two modes:

    • screen - default application layout; adapted for playing screen and voice recordings simultaneously

    • voice - default application layout; adapted only for playing voice recordings

      • Monitors - number of displayed screens for monitor data (this setting must match the number of captured monitors)

  • DefaultDockConfig - default application window layout (layout can be adjusted in the application); the layout is saved to the user’s AppData/Local folder when the application is closed (e.g. c:\Users\Admin\AppData\Local\www.atlantis.cz\FrontStage.SRec\7.5.9060.26896).

Media Service

Configuration

File appsettings.json

  • ConnectionStrings:DbDataContextConnectionString - connection string for connecting to Frontstage DB

  • DatabaseType - type of DB (MsSql, PgSql …)

  • Logging:LogLevel:Default - application logging level (default Information)

  • InstanceKey - identification of the active storage; if 0 - works on all corresponding storages

The following keys determine what types of operations ServiceMedia will process:

  • ConvertRulesProcessing - if true - voice recordings are converted (according to the set InstanceKey)

  • ChangeRequestProcessing - if true - conversion/creation of voice recording visualization data is performed

  • MediaReductionProcessing - if true - manipulation with screen recordings is performed (according to the set InstanceKey)

Device table

See Device table.

MediaReduction table

The MediaReduction database table is used to define screen recordings.

There are 3 reduction operations:

Trimming Operation (field ReductionRate=1)

According to the records from the InboundCall, OutboundCall, and Message tables, only those screen intervals in which communication took place are preserved. The database fields Lead and Tail determine the time in seconds by which the interval is extended at the beginning (Lead) or at the end (Tail).

Archiving Operation (ReductionRate=98) Used for archiving screen recordings (moving them to another storage). The archival storage is specified in the Device database table, see Device table.

Deletion Operation (ReductionRate=99) Used for deleting screen recordings.

Operations are triggered according to the TimeHorizon field setting, which determines how many days after the record is created the operation will be performed. The fields Channel, ProjectGroupMask, ProjectId, TeamsMask, AgentId, and LanguageId are used to create specific rules based on these conditions.

../../_images/srec-3.nol10n.png

For each time horizon, there should be a non-specific (default) rule (Channel, ProjectGroupMask, ProjectId, TeamsMask, AgentId, LanguageId set to NULL) that is used if no specific rule exists for the screen recording.