igotcha:technicalguide

iGotcha Signage software technical guide

This guide was written for version 2.14.4.1 other versions may not work exactly the same

This guide is for people who wish to understand how the Windows iGotcha software works. It will explain the parts of the software, the filesystem, the logs, how the CMS is integrated and how it all works together.

Igotcha player windowed after pressing Ctrl+i

The player is the window where content is displayed. It usually starts fullscreen or at the resolution specified in the CMS. To get the window decoration, exit fullscreen and be able to resize and move this window, press CTRL+i.

Video playback is by default handled by libVLC and is able to play any format supported by the hardware it is installed on.

This window has some keyboard hotkeys:

  • Right arrow to go to next media
  • Numbers to switch channels ( formerly layouts ) only 0 will show something if none is set up.

The player is also the window that will hold the browser if you have an interactive kiosk. The browser is a modified Chromium with hardware acceleration and video codec support added.

iGotchaSignage Manager

The manager is the black window with no decoration that sits behind the player. You will see the iGotcha logo top middle, console output scrolling on the bottom left and a hidden close button top right. There is also a pairing ID in the middle in big bold letters. Manager uses a TCP connection to communicate with the player, default port is 8888 and is defined in the file TCPPort.txt in the work folder.

You can use the activation ID to register your player on the platform. If you see “UUID” instead of a partial MD5 checksum, either the service is offline or the server configuration does not support it. This ID is unique per computer and is based on multiple Hardware ID.

It is responsible for most background actions and process. It launches the player process, get info from server, gather statistics and send reports and websockets ping to the server.

The close button will appear when the cursor is close by. It will close both player and manager. The manager is also responsible to keep the player process alive. It will reopen the player window if it's ever close for any reason.

The bottom left console output will give out information about what is going on. Most recent is at the bottom. Common errors will show there as well as Websocket status and communication status, file being downloaded and content changes. A sequence check should appear at regular interval this is the manager checking if anything changed on the server.

The iGotcha logo also hides the software configuration tool. Double click the logo to get access. More details about this window in the next section.

Software version is written under the logo. If it's missing, you have an old version and you can get the version in the Windows properties of iGotchaSignageManager.exe.

Manager config window

Open settings window by double clicking the green iGotcha logo

Configuration of player, manager and server can be done here.

Tabs on the left are as follow:

  • Player Setup
  • Manager logs
  • Advanced settings
Player Setup
  • Server URL : is the address of the iGotcha server you want to use, it is usually the same as the CMS you are using.
  • Reverse proxy (optional) : If there is an iGotcha reverse proxy setup for your network, this is where you would specify the address
  • Player ID : is the ID of your player on the CMS, this is how the manager identify itself on the server. ID must be unique or collision of information will happen and synchronization of medias might not work. Information on the CMS will also be erronous.
  • Use Proxy server : Unchecked by default, check it to use the Reverse proxy address before trying the Server URL.
  • Send status updates : Checked by default, If unchecked, the manager will not send information to the server. Useful to make temporary copies of an ID for debugging. You can use duplicate player ID if this is unchecked without causing issues on the server side. Some features on the player side might not work as expected.
Manager logs

Self explanatory, shows logs of the manager in a live manner, you can filter by log tags.

Advanced Settings
  • Use System Proxy : If checked will use Windows proxy settings
  • Use Media Foundation for Video Playback : Will change the video playback backend to MediaFoundation which is .Net backend, select if VLC does not work properly.
  • Use FFPlay for Video Playback : Will use the FFPlay.exe binary in the install folder to play video, this can be updated and may support more esoteric formats. Unless needed, avoid this one as the process may hangs outside of the player window. Some integration issues.
  • Use VLC for Video Playback : Default, will use libVLC to play video. Most format are supported, there is also a 10 seconds buffer to load videos faster.
  • Enable GPU in internet Explorer : Checked by default, Should not affect anything since we changed for Chromium and IE is not used anymore. Would remove Hardware acceleration in HTML contents. For use with old Matrox cards and triple head to go.
  • Copy XML temperature file to ad directory : Unchecked by default, For system with onboard temperature sensors, will copy the file to be used in template locally.
  • Check for remote controller on the network : Unchecked by default, Will force the manager to listen to the remote controller app's port for network that have one. Leave unchecked to avoid network issues.
  • Enable remote commands to control media : Unchecked by default, will enable the web control interface to access this player.
  • Height when keyboard is up in tablet mode : Default 360, Legacy option for kiosks that have a third party virtual keyboard, will resize the player size to this resolution when keyboard is up.
  • Replace user agent in web browser instances : Check by default, Changes the user agent to iGotcha kiosk Browser.
  • Content WebServer Port : default 8008, port to use for HTML content server, change if conflicting with another process.
  • Enable Secret Token : Checked by default, Enables secret token identification on server. Security feature.

The iGotcha Software is portable. It can be extracted anywhere and will work from there. Default install consist of 3 folders ( 4 after first launch ) a bunch of dlls and some exe. The three folders are libvlc, locales, and swiftshader use for features in the software. The main exes are :

  • iGotchaSignageManager.exe : This is the main application, launch this.
  • iGotchaSignage.exe : Player application, gets launched by the manager.
  • ffplay.exe : use for ffplay playback and live streaming.
  • updater.exe : application updater.

All other files are use by the application for feature specific things.

After launching the manger and set it with an ID either by manually entering it or by Activation ID, the work folder will be created. Anything that is specific to this player is stored there.

Content of the work folder explained

Folders

  • Content folder : Folder that hold all the media files use by this player. These are the files that were uploaded to the CMS. They are separated by folder named after their respective media ID.
  • ErrorLogs older : Hold error logs file before sending them to the server.
  • Logs : Logs are saved here, they are text files named either player or manager debug with a date following for older files.
  • Portal : a file called player_info.xml will be created here, it also serve as a non-media file upload folder.
  • ReportingLogs folder : Playback statistics are recorded here

Files

  • .CurrentlyPlayingAdId.txt : text file containing the last played ad ID. Used for screenshots/ad CMS feature and to restart where left off if interrupted.
  • .CurrentlyPlayingLayoutId.txt : text file containing last layout ID used.
  • .RunningIEVersion.txt : Text file with highest IE compatibility version. Legacy feature.
  • chromiumdebug.log : Chromium browser will output error in that file.
  • Connection.xml : Configuration save file. The Configuration tool will write and modify this file.
  • lastClosingHoursEvent.txt : Last event called before closing hour is reached. Unsure
  • screenshot.jpg : screenshot file, taken every 15 minutes, retaken 3 times if completely black
  • Sequence.xml : File downloaded from the CMS, contains all files, MD5, addesses, and configurations set on the CMS.
  • TCPPort.txt : TCP port the manager uses to communicate with the player. Default is 8888

The logs are pretty straight forward they are divided into two files and separated by day by adding the date after the filename.

They are located in Work/Logs.

Log structure looks like this:

28-04-2020 10:28:14,797  INFO [MainThread] ------- 2020-04-28 10:28:14 AM ------- (IGotchaSignageManager:0)

There are 5 parts to it, time, flag, Thread, message, process.

  • Time is the date in format day-month-year hour:minute:second,millisecond
  • Flags are capitalised and can be, INFO, DEBUG, ERROR
  • Thread is inside square brackets [] and is the name of the thread writing to the log
  • Message is the log message
  • Process is in parenthesis () and is the process where the message occured

The logs for the managers are saved in the file named manager_debug.txt and players player_debug.txt

Common messages and errors

  • Messages like this ——- 2020-04-28 10:28:14 AM ——- denotes the process starting. You can find a restart by searching for this entry. They are usually followed by some INFO about the process startup.
  • Any logs coming from [MainThread-child] should not be blocking and are most often related to system information or device status.
  • At first launch, you will get a lot of <File> doesn't exist message, this is normal. The manager should create these files if they are missing.
  • Websockets state is also logged and should say something along the lines of Websocket Connected and Websocket is alive, pinging… Those are good, it means that the client can reach our websocket server. If you have messages about it disconnecting or unage to connect, check your network security.
    • Websocket is use for instant messaging between server and client it is not essential for functionality, just a really nice to have
  • Errors will often dump the C# error log in the message of the log line. They are important to include if you send error logs to the devs team.
  • The players logs will have information about what is playing and the timer events setting that triggers various events, mainly changing content. You can trace back errors in playback by looking at these.

Right now, the software requires DotNet 4.7.8 or above and Visual C++ 2019 to function properly. It will not launch without DotNet, you will get a message saying that the version you have is not compatible and to get the one from Microsoft which will redirect you to the latest version of DotNet.

OS: either Win7 or Win10, XP is not supported and Win8/8.1 is impractical to use due to the UI. Both x86 and x64 will work but some features are only x64. You can also expect higher resolution and smoother playback on x64. We recommend x64.

  • igotcha/technicalguide.txt
  • Last modified: 2023/08/11 12:18
  • by 127.0.0.1