Video calls became infrastructure for professional firms in a single year, and most of them adopted whichever service their clients already had. For a law firm, that decision has a cost that does not appear on the invoice: a privileged conversation now passes through, and may be recorded by, a third party's servers under a third party's terms. This post follows a managing partner comparing Zoom, Teams and a self-hosted Jitsi Meet server on MassiveGRID PaaS, which is built on Virtuozzo Application Platform, formerly Jelastic.
The firm is a 60-lawyer commercial practice we will call Fairbanks & Osei. Its needs are specific: clients join from a link without installing anything or creating an account, calls between two and twenty participants, occasional recording that stays inside the firm, and a clear answer for the client's own compliance team about where the media went. The Jitsi Video Conferencing package deploys a complete Jitsi Meet server with a public IP in one click.
What Jitsi Meet is, in the terms a partner cares about
Jitsi Meet is open-source video conferencing that runs in the browser using WebRTC. Participants click a link; there is no account, no download and no client software. A server consists of four parts: the web front end, an XMPP server (Prosody) that handles signalling, a conference focus (Jicofo) that manages rooms, and the Jitsi Videobridge, which relays the audio and video streams between participants. The package installs all four on a dedicated node with its own public IP, which WebRTC media needs to reach participants behind office firewalls and home routers.
The property that matters for a law firm is where the media flows. Every stream goes to the firm's own videobridge and to the participants, and nowhere else. There is no vendor in the path, no vendor recording, and no vendor terms governing the content.
The comparison the partner actually made
| Question | Zoom / Teams | Self-hosted Jitsi on PaaS |
|---|---|---|
| Can a client join with only a link, no account, no install? | Zoom: browser join with limits; Teams: browser join, account often prompted | Yes, by design |
| Where does the media pass through? | Vendor's global infrastructure | The firm's videobridge in London or Frankfurt |
| Who can record, and where is it stored? | Host; vendor's cloud or local | Firm's own recording component, stored on the firm's storage |
| Data processing agreement | Vendor's standard terms | The firm's hosting provider under GDPR, ISO 9001 |
| Meeting creation | Licensed users | Lawyers authenticate; guests join a room a lawyer opened |
| Cost model | Per licensed host per month | Server resources per hour |
| Breakout rooms, polls, chat, screen share | Yes | Yes |
| Phone dial-in | Included on paid plans | Requires an additional SIP gateway component |
The row that decided it was the second. When a client's compliance team asks where the call went, "our server in London" is a complete answer. The row the partner flagged as a real loss was dial-in, which Jitsi supports only with extra components; the firm kept a small number of Teams licences for the clients who insist on it.
Making meetings private, not merely self-hosted
A fresh Jitsi server lets anyone who knows the URL create a room, which is fine for a community project and wrong for a law firm. The firm's IT contractor configures Jitsi's secure domain mode: creating a meeting requires a lawyer's credentials, while guests join an existing room without one. Rooms use lobby mode so the host admits each participant, and meeting names are random strings generated by the firm's booking system rather than guessable words. Recording, when needed, uses Jitsi's recording component writing to the firm's own storage, and it is switched on per meeting by the host.
On the platform side the server's container firewall exposes exactly what Jitsi needs: 443 for the web interface and signalling, and UDP 10000 for media. The Let's Encrypt add-on issues the certificate for meet.fairbanksosei.example, which browsers require before they will grant camera access.
What it costs, and why the shape of the cost matters
A videobridge's cost is bandwidth first and CPU second. The bridge forwards each participant's stream to every other participant, so a twelve-person call at typical quality is on the order of 20 to 30 Mbps outbound, and the server's CPU work is modest because Jitsi does not transcode. The firm's calls are mostly two to six people and rarely more than three at once, so the node runs at a few cloudlets most of the day (a cloudlet is 128 MiB of RAM plus 400 MHz of CPU) and climbs to perhaps 16 when three calls overlap, with the platform's vertical scaling allocating and releasing them by the hour.
Across a month the node averages about 8 cloudlets, roughly $20 at MassiveGRID's published $0.003372 per cloudlet-hour before discounts, plus the public IP's hourly charge and outbound traffic. Sixty Zoom or Teams host licences at a per-user monthly price run to many hundreds of dollars a month; the exact figure depends on the plan, and the partner used the vendors' published list prices in her spreadsheet. The point was not the size of the difference but its shape: the Jitsi bill rises with minutes actually spent in calls, and never with headcount.
What the firm told its clients
A one-page note now goes to new clients: video consultations use the firm's own conferencing server hosted in London by an ISO 9001-certified provider under a GDPR data processing agreement; media is not routed through or stored by any third party; recordings, if any, are made only with consent and stored on the firm's systems. Two clients' compliance teams have asked follow-up questions. Both were answered from the platform dashboard's region and environment details in an afternoon.
Frequently Asked Questions
How many participants can one Jitsi server handle?
It depends on bandwidth and call size more than on participant count. A single videobridge on a well-connected node comfortably serves dozens of concurrent participants across several small meetings; very large single meetings are limited by the outbound bandwidth per participant. Raise the node's cloudlet limit for CPU and RAM headroom, and for sustained large events add videobridges.
Do participants need to install anything?
No. Jitsi Meet runs in current desktop and mobile browsers over WebRTC. Mobile users can optionally use the Jitsi Meet app, which the firm can point at its own server, but the browser works.
Is the call encrypted?
Media between each participant and the videobridge is encrypted with DTLS-SRTP, and signalling runs over HTTPS. The bridge decrypts and re-encrypts streams to forward them, which is why running your own bridge matters. Jitsi also offers optional end-to-end encryption for supported browsers, at some cost to features such as recording.
Video calls that never leave your server
The Jitsi Video Conferencing package deploys a complete Jitsi Meet server with a public IP in one click on MassiveGRID PaaS, in London, Frankfurt, New York or Singapore, billed per cloudlet-hour with a 100% uptime SLA. Free 14-day trial.
Jitsi Meet on MassiveGRID PaaS