21  Video Call

21.1 Overview

The Video Call feature provides a live WebRTC peer-to-peer video and audio connection between the AbbyCam desktop and any phone, tablet, or browser on the shop floor. It is designed to let an operator at the machine communicate directly with someone at the workstation — or with a remote supervisor — without leaving the AbbyCam interface.

The connection is fully peer-to-peer once established. Video and audio travel directly between the two devices; only the initial handshake (signaling) passes through the AbbyCam HTTP server.

21.2 Requirements

  • AbbyCam running with the API server started (see Settings → Api Server)
  • A device with a camera and microphone (phone, tablet, or laptop)
  • Both devices on the same network, or HTTPS access via https://abbycam.com/call
  • A modern browser on the remote device (Chrome, Brave, Firefox, or Safari)
Important

Browsers require a secure context (HTTPS) to access the camera and microphone. On the shop floor, always use https://abbycam.com/call rather than a direct IP address — direct HTTP access will block the camera on Android and iOS.

21.3 Architecture

The video call system consists of three components:

Component Role
AbbyCam desktop dock Hosts the call page in an embedded browser (QWebEngineView)
AbbyCam HTTP server Acts as the signaling server (/call/* endpoints)
Remote browser (phone / tablet) Opens https://abbycam.com/call and joins the call

The nginx reverse proxy on abbycam.com forwards /call and all /call/* signaling requests securely over HTTPS to the AbbyCam machine on the local network.

21.4 Opening the Video Call Dock

The Video Call dock can be opened from the main window like any other dock. Once open, it loads the call page automatically from the local API server.

The dock toolbar contains one action:

Button Description
🔄 Reload Reloads the call page — use this if the API server was restarted

21.5 Making a Call

21.5.1 Step 1 — Choose Roles

Every call requires one Caller and one Callee. Either side can take either role.

Role When to use
📲 Call You are initiating the call — click this first
🖥 Answer You are waiting for an incoming call — click this to start listening

A typical shop floor scenario:

  • Phone (operator) → clicks 📲 Call
  • AbbyCam desktop dock → clicks 🖥 Answer

Or reversed — the desktop can initiate and the phone can answer.

21.5.2 Step 2 — Allow Camera and Microphone

The browser will request permission to access the camera and microphone. Allow both. In the AbbyCam desktop dock this happens automatically.

Note

On Android, if you are using the AbbyCam Connect app, camera and microphone permissions are requested automatically when you open the Video Call tab for the first time.

21.5.3 Step 3 — Wait for Connection

The status badge in the header shows the current state:

Badge Meaning
IDLE No call in progress
CALLING… Offer sent — waiting for the other side to answer
WAITING… Listening for an incoming call
CONNECTED Video and audio are live
LOST Connection dropped — hang up and try again

Connection typically takes 2–5 seconds once both sides have chosen their role.

21.6 Controls

Once a call is connected the following controls are available:

Button Description
🎤 Mic Toggle microphone on/off. Turns red when muted.
📷 Camera Toggle camera on/off. Turns red when off.
🔄 Flip Switch between front and rear camera (mobile only)
📵 End Call Hang up and reset the session

The local camera preview is always visible as a small picture-in-picture in the bottom-right corner of the video area.

21.7 Using the AbbyCam Connect App

The AbbyCam Connect Android app includes a dedicated Video Call tab. It opens the same call page configured in Settings → Video Call URL.

21.7.1 Configuring the URL

Open Settings in the app and scroll to the Video Call section. The default URL is:

https://abbycam.com/call

Change this if your AbbyCam server is hosted at a different address. The URL must be HTTPS for camera access to work on Android.

21.8 Ending a Call

Click End Call on either side. This closes the peer connection and resets the signaling session on the server. Both sides return to the idle state and can start a new call immediately.

Warning

If one side closes the browser tab or loses network connectivity without clicking End Call, the other side will show LOST in the status badge. Click End Call to reset and try again.

21.9 Troubleshooting

Problem Check
Camera permission denied on Android Open the browser or app settings and grant Camera and Microphone permissions manually
Status stays at CALLING… or WAITING… Make sure both sides have chosen a role. Only one Caller and one Callee per session.
Black video, no image The other side may have toggled their camera off — check the Camera button
LOST immediately after connecting Both devices must be able to reach each other via STUN. On isolated networks without internet, STUN may fail — contact your network administrator.
End Call does not reset for the other side Reload the page on the other side and try again
Page loads but shows blank in the dock Click the 🔄 Reload button in the dock toolbar
https://abbycam.com/call not reachable Check that the AbbyCam machine is running and connected to the network. The nginx proxy on abbycam.com forwards the request to your local machine.

21.10 Network Notes

For shop floor use on a local network, both devices connect to the same AbbyCam HTTP server for signaling. The video stream is peer-to-peer via WebRTC and does not pass through any server once established.

For remote access (operator calling from outside the building), the signaling passes through https://abbycam.com and the video stream uses STUN to negotiate a direct peer-to-peer path. If the network uses strict NAT or firewall rules that block direct peer connections, the video may fail to connect even if signaling succeeds — in this case a TURN relay server would be required (not currently configured).