-
Notifications
You must be signed in to change notification settings - Fork 8
Protocol SRTP
The video and audio for Watch Live calls is carried over six SRTP streams, each with an accompanying RTCP channel. These are all proxied via the cloud services:
┌────────────┐ ┌─────┐ ┌─────────────┐
│ SkyBell HD │ │ AWS │ │ iOS/Android │
└─────┬──────┘ └──┬──┘ └──────┬──────┘
│ │ │
│ ┌─┴─┐ │
│Camera (SRTP) Port X│ │Port X+4 (SRTP) Video in│
├──────────────────────────►│ ├───────────────────────────►│
│ (RTCP) Port X+1│ S │Port X+5 (RTCP) │
├──────────────────────────►│ R ├───────────────────────────►│
│ │ T │ │
│Microphone (SRTP) Port X+2│ P │Port X+6 (SRTP) Audio in│
├──────────────────────────►│ ├───────────────────────────►│
│ (RTCP) Port X+3│ p │Port X+7 (RTCP) │
├──────────────────────────►│ r ├───────────────────────────►│
│ │ o │ │
│Speaker (SRTP) Port X+2│ x │Port X+6 (SRTP) Audio out│
│◄──────────────────────────┤ y │◄───────────────────────────┤
│ (RTCP) Port X+3│ │Port X+7 (RTCP) │
│◄──────────────────────────┤ │◄───────────────────────────┤
│ └─┬─┘ │
│ │ │
Refer to the overview and HTTPS requests for details of how these streams are established.
The video and audio codecs are:
Media | SkyBell | RTCP PT | Codec |
---|---|---|---|
Video | Camera | 96 |
H.264/MPEG-4 AVC 1080, 720p, or 480p up to 30 fps |
Audio | Microphone & Speaker | 97 |
16-bit LPCM 8ksps little-endian (not L16) |
Different SSRC values are used for the camera, microphone and speaker streams. The same SSRC values are used for the same stream between the doorbell and cloud, and between the cloud and app.
The SRTP streams are protected using the AES_CM_128_HMAC_SHA1_80
crypto-suite.
The same key and salt values are used for all six streams. This enables the cloud servers to simply forward the SRTP packets without decrypting and re-encrypting them. However, since the cloud services know the key/salt values this cannot be considered end-to-end encryption.
Copyright © 2017-2020 Alexander Thoukydides