Codec Freedom -- Specifications
Below are the specifications for Codec Freedom. This is work in progress. We hope for a healthy interaction with the projects defined on this page, as well as others.
The protocol names used below are:
- G.711 is the codec used for ISDN, VoIP, Cat-Iq and the POTS backbone
- G.722 is known as "HD Audio" -- finally used after a 25 years of patent delay
- G.726 is the DECT codec -- although modern DECT is Cat-Iq and uses G.722
- CSD is Carrier Switched Data -- a mobile protocol for realtime data calls
- ZRTP is the end-to-end encryption mode of RFC 6189
An overview picture of codec freedom for landlines; the cellular variation is a bit simpler. Don't be alarmed by the number of blocks, they are simply a sign of a clear structure. In reality the blocks perform pretty simple functions:
Introduction
Connection Profiles
These are the connection profiles that are currently considered useful. Their design is made with the intention of supporting future expansion.
- Landline Connections
- Cellular Connections based on CSD
- Cellular Connections based on GSM (currently more questions than answers)
Bit-insertion modes
These modes are used with codecs that deliver a continuous flow of samples; these are best delivered promptly, and any data traveling alongside should be inserted on the fly, a sample at a time.
The data inserted is sent as RS-232 bit sequences, with 8 bit data, no parity and at least 1 stop bit. This results in an 8-bit clean data interface. A break (10 or more zeroes in a sequence) leads to a RESET being delivered to higher layers.
- Bit-insertion mode for G.711
- Bit-insertion mode for G.722
- Bit-insertion mode for G.726
- RS-232 bit-shifting protocol
Packet modes
These modes are used with codecs that deliver bursts that hold a sequence of samples, probably compressed as a whole; packet modes support a continuous flow of data that can be interrupted at any time to deliver such data as fast as possible, without expansion with extra bits for data.
The data offered here is sent with escapes for characters that would otherwise get distorted. This results in an 8-bit clean data interface. The remote side may send a special escape code to have a RESET delivered to higher layers.
- Modern codecs send bursty packets
- Finding the end-to-end bandwidth
- Escaping in packet mode
- Codec Frames in packet mode
AMQP Transport, Encryption and Authentication
- Using AMQP to carry data
- AMQP Transactions and Error Recovery
- AMQP over TLS with STARTTLS (optional)
- AMQP over GSS-API with STARTGSS (optional)