Calls: Is it you or is it me?

Slack Calls are now in beta, on Mac, Windows, iOS, Android and Chrome. If you haven’t given it a try yet, please do (and let us know how it goes)! Our help center article on Calls has more details on the feature. We wanted to answer the age-old question that we have all asked each other…

Faraz Khan
8 min readintermediate
--
View Original

Overview

The article discusses the implementation of Slack Calls, focusing on how to determine the quality of voice calls through real-time control protocol (RTCP) feedback. It explains the architecture used for group calls and the analysis of upload and download losses to provide users with accurate feedback about their connection quality.

What You'll Learn

1

How to analyze RTCP Receiver Reports for real-time voice call quality

2

Why using a Selective Forwarding Unit (SFU) improves group call performance

3

How to implement accurate UI warnings for call quality issues

Prerequisites & Requirements

  • Understanding of real-time communication protocols like RTP and RTCP
  • Familiarity with WebRTC and Janus(optional)

Key Questions Answered

How does Slack determine if call quality issues are due to user connections?
Slack uses RTCP feedback to analyze both upload and download losses during calls. By calculating realistic losses from the sender's upload and the receiver's download, it can accurately inform users about their connection quality, rather than providing vague warnings about network issues.
What is the role of a Selective Forwarding Unit (SFU) in Slack Calls?
An SFU broadcasts audio from each participant to all others without mixing streams, allowing for better management of call quality. This architecture helps isolate issues in the upload and download paths, improving the overall user experience during group calls.
What threshold is used to trigger UI warnings for call quality?
UI warnings are triggered when download loss exceeds 20%. This threshold is based on the capabilities of the Opus audio codec, which can handle packet loss below this level without significant degradation in perceived audio quality.

Key Statistics & Figures

Download loss threshold for UI warnings
20%
This threshold is based on the performance characteristics of the Opus audio codec.

Technologies & Tools

Backend
Webrtc
Used for voice chat and provides standardized RTCP feedback.
Backend
Janus
Acts as the Selective Forwarding Unit (SFU) for managing audio streams.

Key Actionable Insights

1
Implementing accurate feedback mechanisms for call quality can significantly enhance user experience.
By providing specific warnings about connection issues rather than generic messages, users can better understand and address their connectivity problems.
2
Utilizing SFUs can optimize group call performance by reducing bandwidth usage and improving audio clarity.
This architecture allows participants to connect only to the media server, minimizing the impact of individual network issues on the overall call quality.
3
Regularly analyze RTCP packets to maintain and improve call quality.
Understanding the data within RTCP reports can help identify and rectify issues in real-time, ensuring a smoother communication experience.

Common Pitfalls

1
Failing to accurately interpret RTCP feedback can lead to incorrect assumptions about call quality.
Without a proper understanding of how to analyze the data, teams may misdiagnose issues and provide ineffective solutions to users.

Related Concepts

Real-time Communication Protocols
Selective Forwarding Units
Audio Codec Performance