rfc-5993

RTP Payload Format for Global System for Mobile Communications Half Rate (GSM-HR)

X. Duan, S. Wang, M. Westerlund, K. Hellwig, I. Johansson
date2010-10 streamIETF arearai wgavt statusPROPOSED STANDARD pages18 canonicalhttps://www.rfc-editor.org/rfc/rfc5993 doi10.17487/RFC5993
This document specifies the payload format for packetization of Global System for Mobile Communications Half Rate (GSM-HR) speech codec data into the Real-time Transport Protocol (RTP). The payload format supports transmission of multiple frames per payload and packet loss robustness methods using redundancy. [STANDARDS-TRACK]

Extracted elements (28)

design-rationale §3

SID frames are recommended every 160 ms for IP transport as a compromise: the GSM radio downlink sends SID every 20 ms (too frequent and wasteful over IP), while the 480 ms uplink interval is too sparse for acceptable comfort noise quality.

rtp, realtime

design-rationale §1

The media subtype is named 'audio/GSM-HR-08' rather than 'audio/GSM-HR' to avoid potential conflict with early draft versions of the GSM-HR payload format (circa 1999–2000) that are not bit-compatible with this specification.

rtp, realtime

interoperability-note §4.1

The GSM-HR-specific redundancy scheme (sliding window of frames) works only when both original and redundant representations are GSM-HR frames. When other media coding schemes are needed for redundancy, RFC 2198 audio redundancy coding must be used instead.

rtp, realtime

interoperability-note §1

This payload format (audio/GSM-HR-08) is not compatible with early draft GSM-HR RTP payload types from 1999–2000. RFC 3551 itself did not include any GSM-HR payload format specification, leaving a gap that this document fills.

rtp, realtime

normative-requirement §5 MUST NOT

A given frame MUST NOT be encoded with different voicing modes in different packets, ensuring consistency across all redundant copies.

rtp, realtime

normative-requirement §7.2.1 RECOMMENDED

A media sender using this payload format is RECOMMENDED to always include the 'max-red' parameter in SDP to simplify receiver handling; if no redundancy will be used, 'max-red' SHOULD be set to 0.

rtp, realtime

normative-requirement §5 MUST

A receiver MUST be prepared to receive any speech frame multiple times due to redundant transmission. A given frame MUST NOT be encoded as a speech frame in one packet and as a SID or No_Data frame in another packet.

rtp, realtime

normative-requirement §5.3 MUST

An application implementing this payload format MUST understand all payload parameters defined in this specification, and any mapping to a signaling protocol MUST support all parameters.

rtp, realtime

normative-requirement §7.2.1 SHALL

Any unknown media type parameter in an SDP offer SHALL be removed in the answer, ensuring that future parameter additions do not break interoperability.

rtp, realtime

normative-requirement §5.3.3 SHOULD

If the receiver finds a mismatch between the size of a received payload and the size indicated by the ToC, the receiver SHOULD discard the packet; decoding from erroneous ToC data could severely degrade audio quality.

rtp, realtime

normative-requirement §7.2.2 SHALL

In multicast declarative SDP, the 'max-red' value SHALL be answered using the same value as declared in the offer. Transmissions MUST NOT use more redundancy than what has been declared.

rtp, realtime

normative-requirement §7.2 MUST

In SDP, the RTP clock rate in 'a=rtpmap' MUST be 8000, and the number of channels MUST either be explicitly set to 1 or omitted (defaulting to 1).

rtp, realtime

normative-requirement §5.2 MUST

Reserved bits in the ToC element MUST be set to zero by the sender and MUST be ignored by the receiver, preserving forward compatibility.

rtp, realtime

normative-requirement §7.2.1 MUST

The 'maxptime' SDP parameter MUST be handled in the same way as 'ptime' per RFC 3264. The SDP offerer and answerer MUST generate GSM-HR packets as described by the offered parameters.

rtp, realtime

normative-requirement §5 SHOULD

The payload size rules in Section 3.2 of RFC 5405 (Unicast UDP Usage Guidelines) SHOULD be followed when determining the maximum number of frames per RTP packet.

rtp, realtime, udp

normative-requirement §5.1 SHALL

The RTP marker bit (M) SHALL be set to 1 whenever the first frame in the packet is the first frame in a talkspurt; it SHALL be set to 0 for all other packets.

rtp, realtime

normative-requirement §5.1 SHALL

The RTP timestamp clock frequency SHALL be 8000 Hz, matching the GSM-HR sampling rate. The timestamp is also used to recover the correct decoding order of frames.

rtp, realtime

normative-requirement §5.3.1 SHOULD

The sender SHOULD generate and send SID frames every 160 ms (every 8th frame) during silent periods when operating outside the GSM radio network.

rtp, realtime

protocol-element §4.1

An optional GSM-HR-specific redundancy scheme aggregates previously transmitted frames with new ones using a sliding window. Multiple RTP packets may cover overlapping time intervals; the receiver uses timestamps to identify and apply redundant copies.

rtp, realtime

protocol-element §3

GSM-HR codec produces 20 ms frames at 8000 Hz (160 samples per frame). Each speech frame compresses to 112 bits (5.6 kbit/s). SID frames are transmitted at the end of a talkspurt and periodically during pauses to support comfort noise generation.

rtp, realtime

protocol-element §5.2

The complete payload consists of a ToC section followed by a speech data section. Each ToC element is one octet and corresponds to one speech, SID, or No_Data frame. The timestamp for ToC element N is (RTP timestamp + (N-1)*160) mod 2^32.

rtp, realtime

protocol-element §7.1

The optional 'max-red' media type parameter specifies the maximum duration in milliseconds between primary and redundant transmissions of a frame. Allowed values are integers 0–65535; omission implies no limitation on redundancy.

rtp, realtime

registry §8

This document registers the media type 'audio/GSM-HR-08' in the IANA media types registry for RTP transport of GSM Half Rate speech. The '-08' suffix distinguishes it from earlier incompatible draft formats.

registry, rtp, realtime

security-consideration §10

RTP packets using this payload format require confidentiality, integrity protection, and source authentication. SRTP (RFC 3711) is the recommended security mechanism; IPsec and TLS are identified as alternatives depending on the application and transport.

security, rtp, realtime

security-consideration §10

The GSM-HR RTP payload format does not exhibit significant non-uniformity in receiver-side computational complexity for packet processing, making denial-of-service attacks via pathological data unlikely. The payload contains no active content.

security, rtp, realtime

wire-format §5.2.2

A Good SID frame occupies 14 octets: the first 33 bits carry SID parameters and the remaining 79 bits are all set to '1'. A No_Data frame carries zero octets of payload data.

rtp, realtime

wire-format §5.2.1

A Good Speech frame carries 112 GSM-HR speech bits (b1–b112) packed MSB-first into 14 octets; b1 maps to bit 0 of octet 1 and b112 maps to bit 7 of octet 14.

rtp, realtime

wire-format §5.2

The ToC element is one octet: bit 0 is the Follow flag (F; 1 = more ToC elements follow), bits 1–3 are the Frame Type (FT), and bits 4–7 are reserved (R). FT values: 000 = Good Speech, 010 = Good SID, 111 = No_Data; all other values are reserved.

rtp, realtime