Skip to main content

HD Video Calls

A one-to-one video call running beside the conversation: the other participant fills the call panel, the viewer's own camera sits in a small corner preview, and the settings, mic, camera and hang-up controls line the bottom

The WebSocket version enables HD 1-on-1 video calls between users using WebRTC technology. Initiate from any conversation. Quality is high (720p+ on capable networks), latency is low, and screen sharing is available during the call.

WebSocket version

Video calls are a WebSocket-version feature. For multi-party video, see group video chat.

What it adds#

  • 1-on-1 HD video calls between any two users in any conversation
  • WebRTC peer-to-peer streaming — media travels directly between participants when possible
  • Low latency, high-quality video (adaptive 720p+) and audio (Opus codec)
  • Screen sharing available during the call
  • Initiate calls with one click from the conversation header
  • Works in all modern browsers (Chrome, Firefox, Edge, Safari, mobile equivalents)
  • Built-in call UI with mute, camera toggle, hang up, and timer
  • Device settings to test and pick the camera, microphone and speaker, with background blur, virtual backgrounds and AI Noise Removal
  • Keyboard shortcuts for every control
  • Steady sound and video on weak connections, and a clear sign when someone's video or sound stops arriving

How it works#

When a user clicks the Video Call button:

  1. The WebSocket relay carries SDP and ICE signaling between the two browsers
  2. The browsers negotiate codecs and establish a direct WebRTC peer connection
  3. Video and audio streams flow peer-to-peer between the participants
  4. If direct P2P fails (corporate firewall, symmetric NAT), a TURN relay forwards the encrypted streams
Network scenarioWhat happens
Normal home/office networkDirect peer-to-peer. Minimal latency
One participant behind a strict firewallTURN relay forwards encrypted media
Both behind corporate proxiesTURN relay (slight added latency)

All media is DTLS-SRTP encrypted between participants even when relayed.

Device settings#

The Device Settings button in the call controls, the gear (Alt+C, ⌥C on a Mac), opens Device Settings over the call, in one-to-one calls and group calls alike:

Device Settings open over a call: the camera in use in a field, its preview marked Only you see this with an office picture behind the person, the background choices, Effect Settings, the microphone in a field with its Test and AI Noise Removal, and the speaker in a field with its Test
  • Camera: Preview shows the camera in its row, only to the person testing it, with Only you see this on it. While the camera is on in the call it says Everyone sees this, and it shows the camera as everyone sees it even where the person hides their own picture in the call
  • Background: none, blur, a picture, or a picture of their own, with Effect Settings to tune the edge. See video effects
  • Microphone: Test shows its level while they speak, and nobody else hears it. Play Back plays the same seconds back, without and then with AI Noise Removal where it is on
  • AI Noise Removal: takes typing, fans and other sounds out of the microphone. See video effects
  • Speaker: Test plays a short sound
  • Each device in use is a field under its name, and pressing the field opens the menu of the browser with the others, so a headset or another camera can be picked during the call
  • A line under the camera and the microphone says whether the other person sees and hears them, or in a group call whether everyone does, and why not when the browser blocks a device or a moderator muted the microphone

Nothing in the settings sends the camera or the microphone to the call. They go live only from the camera and microphone buttons of the call controls, so a test is never shown to the others by mistake. The browser asks for its permission only when the person presses a button, never as the call opens. Where the browser blocks a device, the settings say so, with Allow Access or Try Again.

The browser keeps the background and AI Noise Removal for the next calls.

Keyboard shortcuts#

Every control of a call has a keyboard shortcut: Alt (⌥ Option on a Mac) and a letter. Each is named in the tooltip of its button, or at the end of its row in More. The shortcuts never act while the person is typing in a field, such as the reply box beside the call.

The call controls with the tooltip of Share Screen, which names its keyboard shortcut, Option and S on a Mac
ShortcutWhat it does
Alt+ATurns the microphone on or off
Alt+VTurns the camera on or off
Alt+YRaises or lowers a hand
Alt+SShares the screen
Alt+UShows the participants
Alt+COpens the device settings
Alt+HShows or hides the chat
Alt+EExpands the call
Alt+FTakes the call to the whole screen
Alt+MOpens Host Controls, for moderators
Alt+OOpens More
Alt+PStarts picture in picture
Alt+IAdds a person
Alt+JAnswers a ringing call
Alt+BSwitches the camera of a phone
Alt+RStarts or stops the recording, after asking
Alt+QLeaves the call, after asking
Hold SpaceTalks while muted, as long as it is held

A shortcut works only where its control is offered, so Host Controls answers moderators only, and recording only where it is turned on. The letters follow the position of the key, so they work on keyboards in other languages too.

Talking while muted#

Someone who mutes their microphone and then starts talking is told so. Two switches, both on by default, control it:

  • WP Admin → Better Messages → Settings → Calls → Talking While Muted for one-to-one calls
  • WP Admin → Better Messages → Settings → Group Calls → During the Call → Talking While Muted for group video and audio chats
A group video call where the person talks with the microphone muted: a You are muted pill above the call controls with an Unmute button and a close button

With the switch on:

  • When someone talks with their microphone muted, a You are muted pill appears above the call controls, with an Unmute button and a × that hides it for the rest of the call
  • It needs about half a second of speech, so a quiet room, a cough or typing does not show it, and neither does sound heard while someone else in the call is speaking
  • It does not show to someone a moderator muted, or to a listener in broadcast mode, as they cannot unmute themselves
  • It starts only once the person had their microphone on in the call and muted it. Someone who joins a group chat with the microphone off did not mute it, so no microphone opens for the hint
The microphone stays open while muted

To notice talking, the microphone has to stay open on the device of the person while they are muted. The sound is only measured in their browser and never reaches the call or any server until they press Unmute. The browser still sees an open microphone, though, and keeps its microphone or recording icon on while they stay muted, as video meeting apps with the same hint do. Some people read that as still being recorded. With the switch off, muting turns the microphone off completely and no hint shows.

  • It opens only a microphone the browser has already allowed for the site, so it never brings up a permission prompt
  • Unmute, the ×, or leaving the call closes that microphone
  • The native mobile apps do not show the hint: muting there always turns the microphone off completely

Video interrupted and reconnecting#

When the video or the sound of someone stops arriving, the call says so within seconds, instead of a frozen picture until they leave:

  • Video interrupted, over their blurred last picture, or over their avatar where no picture came, while their video does not arrive. It comes back by itself
  • Reconnecting... when their sound stopped too
A group video call where one person's video stopped arriving: their tile shows their last picture blurred with Video interrupted over it, the others' cameras still playing
Video interrupted
A group video call where one person's video and sound both stopped arriving: their tile shows their last picture blurred with Reconnecting... over it
Reconnecting...

This works in one-to-one and group calls, in the browser and in the mobile app. On a connection that cannot carry everyone's video, a group call pauses videos and keeps the sound, and says so.

One-to-one calls also hold out better on weak connections. The microphone is sent with redundant audio, so a lost packet is played from the next one instead of breaking up the voice. The browser holds the picture a moment before it plays, longer while it keeps freezing and shorter once it plays smoothly, with the sound kept in step. When the connection of one side stalls for a while, as on a weak mobile network, the call waits for it and stays directly between the two.

On an upload too slow for both the sound and the picture, in one-to-one and group calls alike, the microphone gives way to the camera, so the picture freezes less. It goes back once the upload recovers.

When 1-on-1 video calls fit#

Use casePattern
Coaching sessionCoach-client face-to-face session in the existing thread
Customer support escalationVideo helps when explaining visual problems
Marketplace high-value dealsBuyer wants to see the product / vendor in person
Telemedicine consultationPractitioner-patient with optional screen-share for charts/notes
Sales / consulting demoDemo a product with screen-share during the call
Dating communityVideo call as a verification / connection step

Requirements#

  • Website must use HTTPS (browsers require secure context for camera + microphone)
  • Each participant needs a working webcam + microphone
  • Modern browser with WebRTC support
  • WebSocket-version license

Frequently asked questions#

Why does the call fail on HTTP sites?#

Browsers block camera and microphone access on non-HTTPS pages — a security requirement. There's no workaround. HTTPS is mandatory.

Can I restrict who can place video calls?#

Yes — WP Admin → Better Messages → Settings → Calls has per-role permissions. Common pattern: paid members can call, free members can't.

What if the recipient is offline?#

The caller sees a "user offline" notice. Better Messages doesn't queue ringing for offline users.

Are calls recorded?#

One-to-one calls are never recorded. Group calls can be recorded by moderators where the site turns it on, and everyone in the call is told. See Call recording.

Can I blur my background or use a virtual background?#

Yes, in the device settings of the call, where the site has downloaded the effects. See Video effects.

Does video quality adapt to poor networks?#

Yes — WebRTC adapts bitrate and resolution automatically based on bandwidth. Even on cellular, calls remain usable. For very poor connections, the video may downgrade to audio-only briefly.

Does the mobile app support video calls?#

Yes. Video calls work in the browser on phones and tablets, and the native iOS and Android apps have their own call screens, with the device settings, the moderator controls and calls that ring like a phone call. See Calls in the mobile app.

See also#