# How to build large-scale end-to-end encrypted group video calls

DevFeed: [How to build large-scale end-to-end encrypted group video calls](<https://devfeed.tech/articles/how-to-build-large-scale-end-to-end-encrypted-group-video-calls-1774.md>)

Original publisher: [Read original article](<https://signal.org/blog/how-to-build-encrypted-group-calls/>)

Published: 2021-12-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Signal Blog](<https://devfeed.tech/sources/signal-blog.md>)

Topics: [End-to-End Encryption](<https://devfeed.tech/topics/end-to-end-encryption.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Server](<https://devfeed.tech/topics/server.md>), [Internet](<https://devfeed.tech/topics/internet.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [architectures](<https://devfeed.tech/tags/architectures.md>), [audio](<https://devfeed.tech/tags/audio.md>), [communication](<https://devfeed.tech/tags/communication.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [flow](<https://devfeed.tech/tags/flow.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [internet](<https://devfeed.tech/tags/internet.md>), [media](<https://devfeed.tech/tags/media.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rust](<https://devfeed.tech/tags/rust.md>), [scale](<https://devfeed.tech/tags/scale.md>), [server](<https://devfeed.tech/tags/server.md>), [video](<https://devfeed.tech/tags/video.md>)

## AI overview

This article explains how Signal scaled end-to-end encrypted group video calls from five to 40 participants by building its own open source Signal Calling Service. It compares full-mesh, server-mixing, and selective-forwarding architectures, then describes the use of a Selective Forwarding Unit (SFU) that forwards encrypted media without viewing or altering it. Signal ultimately implemented a new SFU in Rust after an earlier solution could not scale reliably because of high server CPU usage.

## Source excerpt

Signal released end-to-end encrypted group calls a year ago, and since then we've scaled from support for 5 participants all the way to 40. There is no off the shelf software that would allow us to support calls of that size while ensuring that all communication is end-to-end encrypted, so we built our own open source Signal Calling Service to do the job. This post will describe how it works in more detail. Read more...