rfc-8817

RTP Payload Format for Tactical Secure Voice Cryptographic Interoperability Specification (TSVCIS) Codec

V. Demjanenko, J. Punaro, D. Satterlee
date2020-08 streamIETF areawit wgavtcore statusPROPOSED STANDARD pages20 canonicalhttps://www.rfc-editor.org/rfc/rfc8817 doi10.17487/RFC8817
This document describes the RTP payload format for the Tactical Secure Voice Cryptographic Interoperability Specification (TSVCIS) speech coder. TSVCIS is a scalable narrowband voice coder supporting varying encoder data rates and fallbacks. It is implemented as an augmentation to the Mixed Excitation Linear Prediction Enhanced (MELPe) speech coder by conveying additional speech coder parameters to enhance voice quality. TSVCIS augmented speech data is processed in conjunction with its temporally matched Mixed Excitation Linear Prediction (MELP) 2400 speech data. The RTP packetization of TSVCIS and MELPe speech coder data is described in detail.

Extracted elements (32)

design-rationale §3.3

The number of frames in an RTP packet is not transmitted explicitly; the receiver determines frame count by identifying each frame type and length from the rate code bits, then summing octets across the packet. This avoids a redundant count field.

rtp, realtime

design-rationale §3.2

The preferred TSVCIS packing format uses MTC = TC − 15 (minimum parameter set is 15 octets) to extend the 6-bit MTC field's effective range to 77 octets; the alternate two-trailing-byte format accommodates all other NRL VDR configurations without an upper bound.

rtp, realtime

design-rationale §2

TSVCIS is designed as an augmentation to MELPe rather than a standalone codec: a complete TSVCIS speech frame always pairs TSVCIS augmented data with temporally matched MELPe 2400 bps parameters, enabling graceful fallback to MELPe alone on severely bandwidth-constrained links.

rtp, realtime

interoperability-note §3.1

CODB for MELPe 600 bps MAY deviate from Table 1 when bit 55 is used as an alternating 1/0 end-to-end framing bit; frame decoding remains distinct because CODA=0 alone identifies a 7-byte frame, and 600 bps can be deduced from the RTP timestamp and SDP negotiation.

rtp, realtime

interoperability-note §4.2

The SDP 'ptime' parameter cannot be used to specify the TSVCIS operating mode because certain values are ambiguous; for example, ptime=68 cannot distinguish one 67.5 ms frame from three 22.5 ms frames.

rtp, realtime

interoperability-note §3.1

TSVCIS RTP packetization of MELPe follows RFC 8130, with RFC 8130 recommendations now treated as requirements. The bits previously labeled RSVA, RSVB, RSVC in RFC 8130 SHOULD be filled with rate code bits CODA, CODB, CODC as defined in Table 1.

rtp, realtime

normative-requirement §2 MUST

Any unfilled bits in the last octet of a byte-packed TSVCIS parameter field MUST be filled with zero. Parameters may be split between octets with the most significant bits in the earlier octet.

rtp

normative-requirement §3.4 SHOULD

Applications using RTP over UDP SHOULD implement their own congestion control above the UDP layer per RFC 8085, and MAY also implement a transport circuit breaker per RFC 8083. TSVCIS supports congestion management by adjusting the target bitrate or frames per packet.

rtp, congestion, udp

normative-requirement §3.3 MUST

Frames MUST NOT be split between RTP packets. All MELPe frames within a single RTP packet MUST be of the same coder bitrate.

rtp, realtime

normative-requirement §4.1 MUST

If the 'bitrate' parameter is absent from the SDP fmtp attribute, the fixed MELPe coder bitrate of 2400 bps MUST be used.

rtp, realtime

normative-requirement §4.2 MUST

If the optional 'bitrate' or 'tcmax' parameters are present, they MUST be included in the SDP 'a=fmtp' attribute as semicolon-separated parameter=value pairs. When 'tcmax' is absent, a default value of 35 is used.

rtp, realtime

normative-requirement §4.4 MUST

In the Offer/Answer model, 'bitrate' is bidirectional: both sides MUST use a common value. The initial bitrate SHALL be the first bitrate specified in the answerer's response; any other common bitrate from the offer/answer exchange MAY be used at any future time.

rtp, realtime

normative-requirement §4.4 SHOULD

In the Offer/Answer model, 'tcmax' is bidirectional: both sides SHOULD use a common tcmax value. The answerer MAY agree to any tcmax equal to or less than the offerer's value, or MAY state its own tcmax and rely on TSVCIS ignoring augmented data it cannot use.

rtp, realtime

normative-requirement §3.3 SHOULD NOT

Senders SHOULD NOT include more TSVCIS or MELPe frames in a single RTP packet than will fit in the MTU of the RTP transport protocol.

rtp, realtime

normative-requirement §3 MUST

The RTP timestamp MUST be in units of 1/8000 of a second, consistent with the TSVCIS codec's 8 kHz sampling rate clock and its frame durations of 22.5, 67.5, or 90 ms.

rtp, realtime

normative-requirement §3.2 MUST

The TSVCIS Modified Count (MTC) MUST be reduced by 15 from the full octet count (TC), i.e., MTC = TC − 15, accommodating a maximum of 77 parameter octets in the preferred format.

rtp

normative-requirement §3.2 MUST

TSVCIS augmented speech data (packed parameters) MUST be placed immediately after the corresponding MELPe 2400 bps payload in the same RTP packet.

rtp, realtime

protocol-element §3.3

A TSVCIS RTP packet payload consists of zero or more consecutive TSVCIS coder frames (each pairing MELPe 2400 data with TSVCIS augmented data), oldest frame first, optionally followed by zero or one MELPe comfort noise frame. An empty packet (no frames) MAY be sent periodically to indicate connectivity.

rtp, realtime

protocol-element §5 SHOULD

For discontinuous transmissions, resumption of voice SHOULD be indicated by setting the RTP marker bit (M) to 1. SSRC sequence number gaps indicate lost packets for PLC, while abrupt RTP packet loss indicates intended silence. A MELPe comfort noise frame MAY be sent before ceasing transmission.

rtp, realtime

protocol-element §6

Packet Loss Concealment (PLC) uses MELPe 2400 bps pitch/voicing parameter: the erasure indication is any errored encoding of a non-voiced frame; preferred code is value 3 (P0=P1=1, P2–P6=0). For 1200 or 600 bps mode, the MELPe 2400 bps decoder is called 3 or 4 times respectively to cover the lost frame.

rtp, realtime

protocol-element §3.1

Rate code bits CODA, CODB, and CODC in the trailing byte of each frame identify the frame type and length: 2400 bps (0,0,N/A, 7 octets), 1200 bps (1,0,0, 11 octets), 600 bps (0,1,N/A, 7 octets), comfort noise (1,0,1, 2 octets), TSVCIS data (1,1,N/A, variable).

rtp, realtime

protocol-element §4.1

The audio/TSVCIS media type defines required parameter Clock Rate = 8000 Hz and optional parameters: ptime and maxptime (packet duration in ms, rounded up), bitrate (comma-separated list of MELPe rates 2400/1200/600 in preference order), tcmax (maximum TSVCIS packed parameter octets, 1–255).

rtp, realtime

registry §7

IANA has registered the 'audio/TSVCIS' media subtype in the 'RTP Payload Format Media Types' registry per RFC 4855 and RFC 6838. Required clock rate is 8000 Hz; the media type is framed and binary and is only defined for transfer via RTP.

registry, rtp, realtime

security-consideration §8 SHOULD

Applications using this RTP payload format SHOULD use one or more appropriate strong security mechanisms such as SRTP (RFC 3711), VPNs, FIPS 140 link encryptors, or Type 1 Ethernet encryptors. Security responsibility lies with the application, not the payload format.

security, rtp

security-consideration §8

Implementations using Voice Activity Detection (VAD) should consult RFC 6562 regarding its effect on variable bitrates and the resulting security implications when used with Secure RTP.

security, rtp, privacy

security-consideration §8

The TSVCIS RTP payload format and decoder do not exhibit significant non-uniformity in receiver-side computational complexity for packet processing and are unlikely to pose a denial-of-service threat from pathological data. The payload contains no active content.

security, rtp

wire-format §3.2

In the alternate TSVCIS packing format (for TC > 77 or any NRL VDR configuration), two trailing bytes are appended: the penultimate byte contains the full octet count TC (1–255; zero is reserved), and the final byte contains CODA=1, CODB=1, and six bits all set to one.

rtp, realtime

wire-format §3.2

In the preferred TSVCIS packing format (for TC ≤ 77 octets), a single trailing octet is appended after the TC packed parameter octets containing CODA=1, CODB=1, and a 6-bit Modified Count (MTC = TC − 15). The MTC value of all-ones (63) is reserved for the alternate format.

rtp, realtime

wire-format §3.1.2

The MELPe 1200 bps frame occupies 11 octets (81 speech bits plus three rate code bits CODA=1, CODB=0, CODC=0 and four RSV0 bits set to zero in the final octet). CODA, CODB, CODC, and RSV0 MUST be filled with 1, 0, 0, and 0 respectively.

rtp, realtime

wire-format §3.1.1

The MELPe 2400 bps frame occupies 7 octets (54 speech bits plus CODA=0 and CODB rate code bits in the final octet). CODA MUST be 0; CODB SHOULD be 0 but MAY carry an end-to-end framing bit.

rtp, realtime

wire-format §3.1.3

The MELPe 600 bps frame occupies 7 octets (54 speech bits plus CODA=0 and CODB rate code bits). CODA MUST be 0; CODB SHOULD be 1 but MAY carry an end-to-end framing bit.

rtp, realtime

wire-format §3.1.4

The MELPe comfort noise frame occupies 2 octets (13 bits: 10 speech bits plus CODA=1, CODB=0, CODC=1 rate code bits). CODA, CODB, and CODC MUST be filled with 1, 0, and 1 respectively.

rtp, realtime