Codec Freedom -- Specifications -- Connection Profiles - Cellular GSM

In cellular networks that lack support for the G2 protocol CSD, there may be an alternative approach by modifying the GSM codec itself. This is definately more difficult than the CSD path, and could be a very interesting assignment for a student research project.

See also: Cellular CSD connections

Turning GSM upside-down

The normal use of GSM aims to map voice to voice throug encode (E) and decode (D) phases:

voice.in ---E---> gsm ---D---> voice.out

The goal here is to:

However, if we want to treat GSM as a connection that transports binary data, we need to think differently:

gsm.in ---D---> voice ---E---> gsm.out

Note that the decode phase comes before the encode phase, the opposite of the normal strategy.

The situation becomes even more complex when we want to use bit insertion, because then we need to modify the GSM stream after voice is inserted.

The general picture may look like this, where dashed lines indicate portions that may or may not be desired:

GSM Connection Structure

Uncertainties / Research Questions

The GSM codec is a confusing whole. It is proprietary, and covered with patents. There also appear to be multiple versions.

The advantageous property of the upside-down approach is that the software version inverts the effects of the hardware in the same device, so an optimal coupling can be constructed.

Questions related to platforms, and their GSM-codec enforcement:

Questions due to inverting the encoding and decoding order:

Questions related to GSM bit insertion:

Connection Profile

TODO: Anything below is open for discussion.

GSM provides a bit-insertion platform at best; but at some point, it should be possible to switch it to a bit transport channel, much like CSD. It would then provide an error-corrected service at (presumably) 13 kb/s. Note that error correction is at the level of audio safety, not data safety.

It should nonetheless be possible to construct a packet mode, even if this would require retransmissions in case of failure.

For packet mode, the following profile defines the behaviour of a suitable escaping discipline:

blogroll