Ticketsolve Connect Printing: Detailed information for IT administrators

This article is intended for IT professionals installing TS Connect within large organisations with complex network and security systems. For instructions on how to install or perform basic troubleshooting on TS Connect please see the following articles:

What is Ticketsolve Connect/QZ Tray?

Ticketsolve Connect (AKA QZ Tray) is a separate application that can be called securely and authenticated from a browser running Ticketsolve Box Office application. Ticketsolve Connect (TS Connect) mediates the secure authenticated communication between the Ticketsolve Box Office application and POS devices and printers.

The Ticketsolve Box Office uses WebSocket Secure connection to Ticketsolve Connect. Any privileged function Ticketsolve Box Office invokes on Ticketsolve Connect is signed, these include finding printers, printing, communicating with POS. Ticketsolve Box Office requests message is signed via https call to Ticketsolve servers using a private key. Ticketsolve Box Office invokes privileged functions on Ticketsolve Connect using the signed message which Ticketsolve Connect verifies signature using a public key.

PDFs can either be requested directly from Ticketsolve Connect or requested from the Ticketsolve Box Office application and passed to Ticketsolve Connect for printing. This is configured via the base64 printer configuration option - see Firewalls and Proxies for more info.

ts connect detailed image 1.png

Firewalls and Proxies

We don't use fixed IP addresses, they are liable to change without notice. The following URLs are expected to be accessible from the Ticketsolve web app.

https://subdomain.ticketsolve.com:443
wss://localhost:8181
wss://localhost:8282
wss://localhost:8383
wss://localhost:8484
wss://localhost.qz.io:8181
wss://localhost.qz.io:8282
wss://localhost.qz.io:8383
wss://localhost.qz.io:8484

Where subdomain is the the customers subdomain e.g. https://myvenue.ticketsolve.com the Ticketsolve web app communicates with Ticketsolve Connect via wss://localhost:8181 etc.

If the browser uses a proxy exceptions should be added for:

wss://localhost:8181
wss://localhost:8282
wss://localhost:8383
wss://localhost.qz.io:8181
wss://localhost.qz.io:8282
wss://localhost.qz.io:8383
wss://localhost.qz.io:8484

The localhost.qz.io domain noted above is used to workaround an issue on Edge and a Local Intranet Limitation.

If you see the following error, the exceptions above should be added:

WebSocket connection to 'wss://localhost:8181/' failed: Establishing a tunnel via proxy server failed.

Ticketsolve Connect will also make requests to https://subdomain.ticketsolve.com:443 to retrieve PDFs for printing. Ticketsolve Connect can not be configured to use a proxy. In environments where all external traffic must be proxied the Printer Profile setting "base64": true should be used.

With this setting the Ticketsolve Connect is send the PDF data directly from the browser and does not make a request to https://subdomain.ticketsolve.com:443. E.g.,

{
"rotation": 180,
"rasterize": false,
"base64": "true",
"size": {"width": 80, "height": 140}
}

Java

TS Connect requires Java 8 or higher. TS Connect now includes Java within the program file automatically. Older versions of TS Connect required Java to be downloaded and installed separately. If for any reason you are running an older version of TS Connect and cannot update it to the new version with Java included, and need to re-install Java, you can use the following:

Known Issues

BOCA misalignment

Where smaller ticket stock is used than the maximum possible, some BOCAs don't correctly print [test data showing the issue]. By increasing the generated PDF width to the maximum BOCA width and also specifying the same width in the size sent to Ticketsolve Connect tickets are printed correctly. As correctly sized PDFs are still required for manual printing and for other BOCAs without the misalignment issue the size readjustment is dynamic and set for individual printers in their Printer Profile.

For example a common Printer Profile size would be:

{
"size": { "width": 50, "height": 140}
}

And with the size adjustment:

{
"size": { "width": 50, "height": 140},
"sizeAdjustment": { "width": 102, "height": 140 }
}

Windows User Switching

Ticketsolve Connect is setup to run automatically when a user logs in. Ticketsolve Connect stores per user acceptance of the access dialogs. That is each user will be displayed the dialog requesting that ticketsolve.com has access to printers etc. Only a single instance of Ticketsolve Connect can run at a time.

If Bob logs into the computer first, Ticketsolve Connect starts for Bob, Bob can see Ticketsolve Connect in the system tray. Bob can see Ticketsolve access dialogs when Ticketsolve presents them. If Bob signs out and Alice signs in, Ticketsolve Connect start for Alice and Alice can see Ticketsolve Connect in the system tray and and can see access dialogs when Ticketsolve presents them.

If Alice stays signed in and the active user switches to Bob, Ticketsolve Connect remains running for Alice and fails to start for Bob. Bob can use Ticketsolve Connect, that is the Ticketsolve Box Office side will still be able to access printers etc., but Bob can not see any access dialogs when Ticketsolve presents them. This is not an issue as Alice has already allowed ticketsolve.com access and checked the box to remember this.

What happens when Eve powers up the computer and logs in? Ticketsolve Connect starts for Eve, Eve can see Ticketsolve Connect in the system tray and can see Ticketsolve access dialogs when Ticketsolve presents them. If Eve doesn't use Ticketsolve Box Office and doesn't use Ticketsolve Connect, she'll never be presented with the access dialogs from ticketsolve.com to accept. If Eve stays signed in but the active user switches to Alice, Ticketsolve Connect stays running for Eve and doesn't start for Alice. Alice cannot see Ticketsolve Connect in the system tray and cannot see Ticketsolve access dialogs when Ticketsolve Connect presents them. Alice can use Ticketsolve Connect via Box Office but can't accept the access dialogs, so authorisation for Ticketsolve Admin connecting to Ticketsolve Connect can't happen in this scenario.

The solution is to run Ticketsolve Connect as a service. This is slated for QZ-tray 2.2, https://github.com/qzind/tray/issues/116, in the meantime it can be setup manually.

1. Make sure Ticketsolve Connect is downloaded and installed.

2. Make sure you can already print with Ticketsolve Connect (click "Always allow" at least once).

3. Download and extract nssm to the Desktop.

4. Open cmd as Administrator

5. Navigate to the 64-bit version of nssm, cd "%USERPROFILE%\Desktop\nssm-2.24\win64\"

6. Execute the command to install the service using nssm:

nssm install ts-connect javaw "-jar """%PROGRAMFILES%\Ticketsolve Connect\ts-connect.jar""""

7. Disable Automatically start for Ticketsolve Connect in the system tray, if enabled.

8. Exit any currently running instances of Ticketsolve Connect.

9. Copy prefs.properties if present and allowed.dat from location %APPDATA%\ts of the current user to %APPDATA%\ts of the service user.

E.g., Users\Alice\AppData\Roaming\ts to C:\Windows\System32\config\systemprofile\AppData\Roaming\ts\.

If 32 bit Java (the default) is running on a 64bit windows install, use C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\ts

10. Start the service via the service manager in Windows.

11. Test the printing, log can be checked in C:\Windows\System32\config\systemprofile\AppData\Roaming\ts\

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.