Vocantly adds peer-to-peer voice and video to any conversation using WebRTC. The platform brokers the signaling; media flows directly between participants (relayed through a TURN server when a direct path isn’t possible).
The fastest way to add calls is the SDK — see Voice & Video Calls (SDK). This page explains what happens under the hood.

The pieces

A TURN server is required for reliable calls. STUN alone fails for many users behind strict NATs. Configure TURN for your app so GET /apps/:id/ice-servers returns a turn: entry with credentials.

Call lifecycle

1

Invite

The caller starts a call. Everyone else in the conversation receives a call_invite with the call type (voice or video) and caller info.
2

Accept / reject

A callee accepts or rejects. Rejecting ends the invite for that participant.
3

Negotiate

Accepting participants exchange SDP offers/answers and ICE candidates over the WebSocket until a peer connection is established (call_connected).
4

In call

Media flows peer-to-peer. Mute/unmute and camera on/off are broadcast to peers.
5

Hang up

Any participant can end the call; the rest receive call_hangup.

Call types

  • voice — audio only.
  • video — audio + video.
Both one-to-one and small group calls are supported (a peer connection per participant).

Signaling messages

Call signaling is a set of WebSocket message types (call_invite, call_accept, call_join, call_offer, call_answer, call_ice_candidate, call_reject, call_hangup, call_mute, video_off, …). The SDK sends and handles these for you. If you’re implementing WebRTC directly, see the Call Signaling protocol reference.

Active call

You can check whether a conversation currently has a call in progress:

Call quality

After a call, clients can submit quality metrics (duration, packet loss, jitter, round-trip time) which surface in your dashboard:
The SDK submits these automatically when a call ends (and exposes them via conversation.getCallStats()).

Add calls with the SDK

startCall, accept, mute, streams, and events.

ICE servers endpoint

Fetch STUN/TURN config for WebRTC.