Codec Freedom -- Specifications -- Introduction
The G.711 specification is commonly used for ISDN and is the de facto codec for many VoIP systems. VoIP connections may negotiate better codecs, but not when connected over ISDN networks. This specification details a method to overcome this limitation.
Most usecases of ISDN have been replaced by Internet-based applications, but the G.711 codec for ISDN's voice channels is present in most telephony solutions, serving as a "least common denominator” or default codec. After the expiration of patents on G.722 we are now seeing that codec being adopted in telephony as well. In addition, the IETF has defined more modern codecs, such as Speex and OPUS.
Choices between codec options can be negotiated with protocols like SIP/SDP, but only when the end points involved are connected through the Internet. This specification therefore resolves the issue of codec negotiation and general data exchange between telephone endpoints, even with ISDN connectivity separating these end points. One possible applications is a change of codec, which also work across such ISDN call legs.
This specification modifies G.711 to enable a number of things that are impossible over plain G.711 connections:
Assume no control over the G.711-carrying session
Submit data files across modified G.711 voice connections
Switch the G.711 channel content to another codec
Retain backward compatibility with plain G.711 voice connections
Opportunistic detection through noise-level data transmission
Operate across any sequence of translations between u-Law and A-law variants of G.711
To meet these targets, two modes of operation are proposed, The first mode is bit-insertion mode, where data bits are inserted into an existing audio codec. The second mode is packet mode, in which byte sequences are toggled between codec values and data streaming.
This specification is based on G.711 ("ISDN", "VoIP", "PSTN") plus a description of how to use the same principles for G.722 ("HD Audio", "CAT-iq") and G.726 ("DECT"). These protocols start in bit-insertion mode, but may at some point switch to packet mode when upgrading to a codec for which this is sensible.
The GSM codec is both closed as an algorithm, and in implementations. If mobile telephony is to follow this path and permit codec upgrades, its best hope may be to setup a realtime connection for data modems ("CSD") and start in packet mode, negotiating a codec that fits in the available bandwidth. Except for the lower throughput and therefore reduced set of available codecs, there should be no perceivable distinction between the G.711 and CSD approaches to Codec Freedom.