idnits 2.17.1 draft-demjanenko-payload-tsvcis-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 13, 2017) is 2380 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) -- Possible downref: Non-RFC (?) normative reference: ref. 'NRLVDR' -- Possible downref: Non-RFC (?) normative reference: ref. 'MELP' -- Possible downref: Non-RFC (?) normative reference: ref. 'MELPE' -- Possible downref: Non-RFC (?) normative reference: ref. 'SCIP210' Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Payload Working Group Victor Demjanenko 3 Internet-Draft John Punaro 4 Intended Status: Standards Track David Satterlee 5 VOCAL Technologies, Ltd. 6 Expires: April 16, 2018 October 13, 2017 8 RTP Payload Format for TSVCIS Codec 9 draft-demjanenko-payload-tsvcis-00 11 Status of This Memo 13 Copyright (c) 2017 IETF Trust and the persons identified as the 14 document authors. All rights reserved. 16 This Internet-Draft is submitted in full conformance with the 17 provisions of BCP 78 and BCP 79. 19 This document is subject to BCP 78 and the IETF Trust's Legal 20 Provisions Relating to IETF Documents 21 (http://trustee.ietf.org/license-info) in effect on the date of 22 publication of this document. Please review these documents 23 carefully, as they describe your rights and restrictions with respect 24 to this document. Code Components extracted from this document must 25 include Simplified BSD License text as described in Section 4.e of 26 the Trust Legal Provisions and are provided without warranty as 27 described in the Simplified BSD License. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at http://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 Abstract 41 This document describes the RTP payload format for the Tactical 42 Secure Voice Cryptographic Interoperability Specification (TSVCIS) 43 speech coder. TSVCIS is a scalable narrowband voice coder supporting 44 varying encoder data rates and fallbacks. It is implemented as an 45 augmentation to the Mixed Excitation Linear Prediction Enhanced 46 (MELPe) speech coder by conveying additional speech coder parameters 47 for enhancing voice quality. TSVCIS augmented speech data is 48 processed in conjunction with its temporal matched MELP 2400 speech 49 data. The RTP packetization of TSVCIS and MELPe speech coder data is 50 described in detail. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 55 1.1. Conventions . . . . . . . . . . . . . . . . . . . . . . . 3 56 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3 57 3. Payload Format . . . . . . . . . . . . . . . . . . . . . . . . 4 58 3.1. MELPe Bitstream Definitions . . . . . . . . . . . . . . . 5 59 3.1.1. 2400 bps Bitstream Structure . . . . . . . . . . . . . 6 60 3.1.2. 1200 bps Bitstream Structure . . . . . . . . . . . . . 6 61 3.1.3. 600 bps Bitstream Structure . . . . . . . . . . . . . 7 62 3.1.4. Comfort Noise Bitstream Definition . . . . . . . . . . 8 63 3.2. TSVCIS Bitstream Definition . . . . . . . . . . . . . . . 8 64 3.3. Multiple TSVCIS Frames in an RTP Packet . . . . . . . . . 10 65 3.4. Congestion Control Considerations . . . . . . . . . . . . 11 66 4. Payload Format Parameters . . . . . . . . . . . . . . . . . . 11 67 4.1. Media Type Definitions . . . . . . . . . . . . . . . . . . 11 68 4.2. Mapping to SDP . . . . . . . . . . . . . . . . . . . . . . 13 69 4.3. Declarative SDP Considerations . . . . . . . . . . . . . . 14 70 4.4. Offer/Answer SDP Considerations . . . . . . . . . . . . . 15 71 5. Discontinuous Transmissions . . . . . . . . . . . . . . . . . 15 72 6. Packet Loss Concealment . . . . . . . . . . . . . . . . . . . 16 73 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 74 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 75 9. RFC Editor Considerations . . . . . . . . . . . . . . . . . . 17 76 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 77 10.1. Normative References . . . . . . . . . . . . . . . . . . 17 78 10.2. Informative References . . . . . . . . . . . . . . . . . 19 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19 81 1. Introduction 83 This document describes how compressed Tactical Secure Voice 84 Cryptographic Interoperability Specification (TSVCIS) speech as 85 produced by the TSVCIS codec may be formatted for use as an RTP 86 payload. The TSVCIS speech coder (or TSVCIS speech aware 87 communications equipment on any intervening transport link) may 88 adjust to restricted bandwidth conditions by reducing the amount of 89 augmented speech data and relying on the underlying MELPe speech 90 coder for the most constrained bandwidth links. 92 Details are provided for packetizing the TSVCIS augmented speech data 93 along with MELPe 2400 bps speech parameters in a RTP packet. The 94 sender may send one or more codec data frames per packet, depending 95 on the application scenario or based on transport network conditions, 96 bandwidth restrictions, delay requirements, and packet loss 97 tolerance. 99 1.1. Conventions 101 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 102 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 103 document are to be interpreted as described in RFC 2119 [RFC2119]. 105 Best current practices for writing an RTP payload format 106 specification were followed [RFC2736]. 108 2. Background 110 The MELP speech coder was developed by the US military as an upgrade 111 from the LPC-based CELP standard vocoder for low-bitrate 112 communications [MELP]. ("LPC" stands for "Linear-Predictive Coding", 113 and "CELP" stands for "Code-Excited Linear Prediction".) MELP was 114 further enhanced and subsequently adopted by NATO as MELPe for use by 115 its members and Partnership for Peace countries for military and 116 other governmental communications as international NATO Standard 117 STANAG 4591 [MELPE]. 119 The Tactical Secure Voice Cryptographic Interoperability 120 Specification (TSVCIS) is a specification written by the Tactical 121 Secure Voice Working Group (TSVWG) for enabling all modern tactical 122 secure voice devices to be interoperable across the Department of 123 Defense [TSVCIS]. One of the most important aspects is that the 124 voice modes defined in TSVCIS are based on a fixed rate variant of 125 Naval Research Lab's (NRL's) Variable Date Rate (VDR) Vocoder which 126 uses the MELPe standard as its base [NRLVDR]. A complete TSVCIS 127 speech frame consists of MELPe speech parameters and corresponding 128 TSVCIS augmented speech data. 130 In addition to the augmented speech data, the TSVCIS specification 131 identifies which speech coder and framing bits are to be encrypted, 132 and how they are protected by forward error correction (FEC) 133 techniques (using block codes). At the RTP transport layer, only the 134 speech coder related bits need to be considered and are conveyed in 135 unencrypted form. In most IP-based network deployments, standard 136 link encryption methods (SRTP, VPNs, FIPS 140 link encryptors or Type 137 1 Ethernet encryptors) would be used to secure the RTP speech 138 contents. Further, it is desirable to support the highest voice 139 quality between endpoint which is only possible without the overhead 140 of FEC. 142 TSVCIS augmented speech data is derived from the signal processing 143 and data already performed by the MELPe speech coder. For the 144 purposes of this specification, only the general parameter nature of 145 TSVCIS will be characterized. Depending on the bandwidth available 146 (and FEC requirements), a varying number of TSVCIS specific speech 147 coder parameters need to be transported. These are first byte-packed 148 and then conveyed from encoder to decoder. 150 Byte packing of TSVCIS speech data into packed parameters is 151 processed as per the following example: 153 Two-bit field: bits A and B (A is MSB, B is LSB) 154 Six-bit field: bits C, D, E, F, G, and H (C is MSB, H is LSB) 156 MSB LSB 157 0 1 2 3 4 5 6 7 158 +------+------+------+------+------+------+------+------+ 159 | H | G | F | E | D | C | B | A | 160 +------+------+------+------+------+------+------+------+ 162 This packing method places the two-bit field "first" in the lowest 163 bits followed by the next six-bit field. Parameters may be split 164 between octets with the most significant bits in the earlier octet. 165 Any unfilled bits in the last octet SHOULD be filled with zero. 167 In order to accommodate a varying amount of TSVCIS augmented speech 168 data, it is only necessary to specify the number of octets containing 169 the packed TSVCIS parameters. The encoding to do so is presented in 170 Section 3.2. The preferred sets of TSVCIS parameters is specified in 171 the speech coder specification [TSVCIS] and is beyond the scope of 172 this RFC to describe or limit. 174 3. Payload Format 176 The TSVCIS codec augments the standard MELP 2400, 1200 and 600 177 bitrates and hence uses 22.5, 67.5, or 90 ms frames with a sampling 178 rate clock of 8 kHz, so the RTP timestamp MUST be in units of 1/8000 179 of a second. 181 The RTP payload for TSVCIS has the format shown in Figure 1. No 182 additional header specific to this payload format is needed. This 183 format is intended for situations where the sender and the receiver 184 send one or more codec data frames per packet. 186 0 1 2 3 187 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 189 | RTP Header | 190 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 191 | | 192 + one or more frames of TSVCIS | 193 | | 194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 196 Figure 1: Packet Format Diagram 198 The RTP header of the packetized encoded TSVCIS speech has the 199 expected values as described in [RFC3550]. The usage of the M bit 200 SHOULD be as specified in the applicable RTP profile -- for example, 201 [RFC3551], where [RFC3551] specifies that if the sender does not 202 suppress silence (i.e., sends a frame on every frame interval), the 203 M bit will always be zero. When more than one codec data frame is 204 present in a single RTP packet, the timestamp is, as always, that of 205 the oldest data frame represented in the RTP packet. 207 The assignment of an RTP payload type for this new packet format is 208 outside the scope of this document and will not be specified here. It 209 is expected that the RTP profile for a particular class of 210 applications will assign a payload type for this encoding, or if that 211 is not done, then a payload type in the dynamic range shall be chosen 212 by the sender. 214 3.1. MELPe Bitstream Definitions 216 The TCVCIS speech coder includes all three MELPe coder rates used as 217 base speech parameters or as speech coders for bandwidth restricted 218 links. RTP packetization of MELPe follows RFC 8130 and is repeated 219 here for all three MELPe rates [RFC8130] which with promoted 220 suggestions or recommendations now regarded as requirements. The 221 bits previously labeled as RSVA, RSVB, and RSVC in RFC 8130 SHOULD be 222 filled with rate coding, CODA, CODB, and CODC, as shown in Table 1 223 (compatible with Table 7 in Section 3.3 of [RFC8130]). 225 +-------------------+------+------+------+------+ 226 | Coder Bitrate | CODA | CODB | CODC |Length| 227 +-------------------+------+------+------+------+ 228 | 2400 bps | 0 | 0 | N/A | 7 | 229 +-------------------+------+------+------+------+ 230 | 1200 bps | 1 | 0 | 0 | 11 | 231 +-------------------+------+------+------+------+ 232 | 600 bps | 0 | 1 | N/A | 7 | 233 +-------------------+------+------+------+------+ 234 | Comfort Noise | 1 | 0 | 1 | 2 | 235 +-------------------+------+------+------+------+ 236 | TSVCIS data | 1 | 1 | N/A | var. | 237 +-------------------+------+------+------+------+ 239 Table 1: TSVCIS/MELPe Frame Bitrate Indicators and Frame Length 241 The total number of bits used to describe one MELPe frame of 2400 bps 242 speech is 54, which fits in 7 octets (with two rate code bits). For 243 MELPe 1200 bps speech, the total number of bits used is 81, which 244 fits in 11 octets (with three rate code bits and four unused bits). 245 For MELPe 600 bps speech, the total number of bits used is 54, which 246 fits in 7 octets (with two rate code bits). The comfort nosie frame 247 consists of 13 bits, which fits in 2 octets (with three rate code 248 bits). TSVCIS packed parameters will use the last code combination 249 in a trailing byte as discussed in Section 3.2. 251 It should be noted that CODB for both the 2400 and 600 bps modes MAY 252 deviate from the values in Table 1 when bit 55 is used as an end-to- 253 end framing bit. Frame decoding would remain distinct as CODA being 254 zero on its own would indicate a 7-byte frame for either rate and the 255 use of 600 bps speech coding could be deduced from the RTP timestamp 256 (and anticipated by the SDP negotiations). 258 3.1.1. 2400 bps Bitstream Structure 260 The 2400 bps MELPe RTP payload is constructed as per Figure 2. Note 261 that CODA must be filled with 0 and CODB SHOULD be filled with 0 as 262 per Section 3.1. CODB MAY contain an end-to-end framing bit if 263 required by the endpoints. 265 MSB LSB 266 0 1 2 3 4 5 6 7 267 +------+------+------+------+------+------+------+------+ 268 | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | 269 +------+------+------+------+------+------+------+------+ 270 | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | 271 +------+------+------+------+------+------+------+------+ 272 | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | 273 +------+------+------+------+------+------+------+------+ 274 | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | 275 +------+------+------+------+------+------+------+------+ 276 | B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | 277 +------+------+------+------+------+------+------+------+ 278 | B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | 279 +------+------+------+------+------+------+------+------+ 280 | CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | 281 +------+------+------+------+------+------+------+------+ 283 Figure 2: Packed MELPe 2400 bps Payload Octets 285 3.1.2. 1200 bps Bitstream Structure 286 The 1200 bps MELPe RTP payload is constructed as per Figure 3. Note 287 that CODA, CODB, and CODC MUST be filled with 1, 0, and 0 288 respectively as per Section 3.1. RSV0 SHOULD be coded as 0. 290 MSB LSB 291 0 1 2 3 4 5 6 7 292 +------+------+------+------+------+------+------+------+ 293 | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | 294 +------+------+------+------+------+------+------+------+ 295 | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | 296 +------+------+------+------+------+------+------+------+ 297 | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | 298 +------+------+------+------+------+------+------+------+ 299 | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | 300 +------+------+------+------+------+------+------+------+ 301 | B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | 302 +------+------+------+------+------+------+------+------+ 303 | B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | 304 +------+------+------+------+------+------+------+------+ 305 | B_56 | B_55 | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | 306 +------+------+------+------+------+------+------+------+ 307 | B_64 | B_63 | B_62 | B_61 | B_60 | B_59 | B_58 | B_57 | 308 +------+------+------+------+------+------+------+------+ 309 | B_72 | B_71 | B_70 | B_69 | B_68 | B_67 | B_66 | B_65 | 310 +------+------+------+------+------+------+------+------+ 311 | B_80 | B_79 | B_78 | B_77 | B_76 | B_75 | B_74 | B_73 | 312 +------+------+------+------+------+------+------+------+ 313 | CODA | CODB | CODC | RSV0 | RSV0 | RSV0 | RSV0 | B_81 | 314 +------+------+------+------+------+------+------+------+ 316 Figure 3: Packed MELPe 1200 bps Payload Octets 318 3.1.3. 600 bps Bitstream Structure 320 The 600 bps MELPe RTP payload is constructed as per Figure 4. Note 321 CODA must be filled with 0 and CODB SHOULD be filled with 1 as per 322 Section 3.1. CODB MAY contain an end-to-end framing bit if required 323 by the endpoints. 325 MSB LSB 326 0 1 2 3 4 5 6 7 327 +------+------+------+------+------+------+------+------+ 328 | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | 329 +------+------+------+------+------+------+------+------+ 330 | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | 331 +------+------+------+------+------+------+------+------+ 332 | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | 333 +------+------+------+------+------+------+------+------+ 334 | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | 335 +------+------+------+------+------+------+------+------+ 336 | B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | 337 +------+------+------+------+------+------+------+------+ 338 | B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | 339 +------+------+------+------+------+------+------+------+ 340 | CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | 341 +------+------+------+------+------+------+------+------+ 343 Figure 4: Packed MELPe 600 bps Payload Octets 345 3.1.4. Comfort Noise Bitstream Definition 347 The comfort noise MELPe RTP payload is constructed as per Figure 5. 348 Note that CODA, CODB, and CODC MUST be filled with 1, 0, and 1 349 respectively as per Section 3.1. 351 MSB LSB 352 0 1 2 3 4 5 6 7 353 +------+------+------+------+------+------+------+------+ 354 | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | 355 +------+------+------+------+------+------+------+------+ 356 | CODA | CODB | CODC | B_13 | B_12 | B_11 | B_10 | B_09 | 357 +------+------+------+------+------+------+------+------+ 359 Figure 5: Packed MELPe Comfort Noise Payload Octets 361 3.2. TSVCIS Bitstream Definition 363 The TSVCIS augmented speech data as packed parameters MUST be placed 364 immediately after a corresponding MELPe 2400 bps payload. The packed 365 parameters are counted in octets (TC). In the preferred placement, 366 shown in Figure 6, a single trailing octet SHALL be appended to 367 include a two-bit rate code, CODA and CODB, (both bits set to one) 368 and a six-bit modified count (MTC). The special modified count value 369 of all ones (representing a MTC value of 63) SHALL NOT be used for 370 this format as it is used as the indicator for the alternate packing 371 format shown next. In a standard implementation, the TSVCIS speech 372 coder uses a minimum of 15 octets for parameters in octet packed 373 form. The modified count (MTC) MUST be reduced by 15 from the full 374 octet count (TC). Computed MTC = TC-15. This accommodates a maximum 375 of 77 parameter octets (maximum value of MTC is 62, 77 is the sum of 376 62+15). 378 MSB LSB 379 0 1 2 3 4 5 6 7 380 +------+------+------+------+------+------+------+------+ 381 1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | 382 +------+------+------+------+------+------+------+------+ 383 2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | 384 +------+------+------+------+------+------+------+------+ 385 3 | T024 | T023 | T022 | T021 | T020 | T019 | T018 | T017 | 386 +------+------+------+------+------+------+------+------+ 387 4 | T032 | T031 | T030 | T029 | T028 | T027 | T026 | T025 | 388 +------+------+------+------+------+------+------+------+ 389 5 | T040 | T039 | T038 | T037 | T036 | T035 | T034 | T033 | 390 +------+------+------+------+------+------+------+------+ 391 6 | T048 | T047 | T046 | T045 | T044 | T043 | T042 | T041 | 392 +------+------+------+------+------+------+------+------+ 393 7 | TO56 | TO55 | T054 | T053 | T052 | T051 | T050 | T049 | 394 +------+------+------+------+------+------+------+------+ 395 8 | T064 | T063 | T062 | T061 | T060 | T059 | T058 | T057 | 396 +------+------+------+------+------+------+------+------+ 397 9 | T072 | T071 | T070 | T069 | T068 | T067 | T066 | T065 | 398 +------+------+------+------+------+------+------+------+ 399 10 | T080 | T079 | T078 | T077 | T076 | T075 | T074 | T073 | 400 +------+------+------+------+------+------+------+------+ 401 11 | T088 | T087 | T086 | T085 | T084 | T083 | T082 | T081 | 402 +------+------+------+------+------+------+------+------+ 403 12 | TO96 | TO95 | T094 | T093 | T092 | T091 | T090 | T089 | 404 +------+------+------+------+------+------+------+------+ 405 13 | T104 | T103 | T102 | T101 | T100 | T099 | T098 | T097 | 406 +------+------+------+------+------+------+------+------+ 407 14 | T112 | T111 | T110 | T109 | T108 | T107 | T106 | T105 | 408 +------+------+------+------+------+------+------+------+ 409 15 | T120 | T119 | T118 | T117 | T116 | T115 | T114 | T113 | 410 +------+------+------+------+------+------+------+------+ 411 | . . . . | 412 +------+------+------+------+------+------+------+------+ 413 TC+1 | CODA | CODB | modified octet count | 414 +------+------+------+------+------+------+------+------+ 416 Figure 6: Preferred Packed TSVCIS Payload Octets 418 In order to accommodate all other NRL VDR configurations for TSVCIS, 419 an alternate parameter placement MUST use two trailing bytes as shown 420 in Figure 7. The last trailing byte MUST be filled with a two-bit 421 rate code, CODA and CODB, (both bits set to one) and its six-bit 422 count field MUST be filled with ones. The second to last trailing 423 byte MUST contain the parameter count (TC) in octets and MAY 424 represent any value from one to 255. The value of zero SHALL be 425 considered as reserved. 427 MSB LSB 428 0 1 2 3 4 5 6 7 429 +------+------+------+------+------+------+------+------+ 431 1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | 432 +------+------+------+------+------+------+------+------+ 433 2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | 434 +------+------+------+------+------+------+------+------+ 435 | . . . . | 436 +------+------+------+------+------+------+------+------+ 437 TC+1 | octet count | 438 +------+------+------+------+------+------+------+------+ 439 TC+2 | CODA | CODB | 1 | 1 | 1 | 1 | 1 | 1 | 440 +------+------+------+------+------+------+------+------+ 442 Figure 7: Length Unrestricted Packed TSVCIS Payload Octets 444 3.3. Multiple TSVCIS Frames in an RTP Packet 446 A TSVCIS RTP packet MAY consist of zero or more TSVCIS coder frames 447 (each consisting of MELPe and TSVCIS coder data) followed by zero or 448 one MELPe comfort noise frame. The presence of a comfort noise frame 449 can be determined by its rate code bits in its last octet. 451 The default packetization interval is one coder frame (22.5, 67.5, or 452 90 ms) according to the coder bitrate (2400, 1200, or 600 bps). For 453 some applications, a longer packetization interval is used to reduce 454 the packet rate. 456 A TSVCIS RTP packet comprised of no coder frame and no comfort noise 457 frame MAY be used periodically by an endpoint to indicate 458 connectivity by an otherwise idle receiver. 460 TSVCIS coder frames in a single RTP packet MAY be of different coder 461 bitrates. With the exception for the variable length TSVCIS 462 parameter frames, the coder rate bits in the trailing byte identify 463 the contents and length as per Table 1. 465 It is important to observe that senders have the following additional 466 restrictions: 468 Senders SHOULD NOT include more TSVCIS or MELPe frames in a single 469 RTP packet than will fit in the MTU of the RTP transport protocol. 471 Frames MUST NOT be split between RTP packets. 473 It is RECOMMENDED that the number of frames contained within an RTP 474 packet be consistent with the application. For example, in telephony 475 and other real-time applications where delay is important, then the 476 fewer frames per packet the lower the delay, whereas for bandwidth- 477 constrained links or delay-insensitive streaming messaging 478 applications, more than one frame per packet or many frames per 479 packet would be acceptable. 481 Information describing the number of frames contained in an RTP 482 packet is not transmitted as part of the RTP payload. The way to 483 determine the number of TSVCIS/MELPe frames is to identify each frame 484 type and length thereby counting the total number of octets within 485 the RTP packet. 487 3.4. Congestion Control Considerations 489 The target bitrate of TSVCIS can be adjusted at any point in time, 490 thus allowing congestion management. Furthermore, the amount of 491 encoded speech or audio data encoded in a single packet can be used 492 for congestion control, since the packet rate is inversely 493 proportional to the packet duration. A lower packet transmission 494 rate reduces the amount of header overhead but at the same time 495 increases latency and loss sensitivity, so it ought to be used 496 with care. 498 Since UDP does not provide congestion control, applications that use 499 RTP over UDP SHOULD implement their own congestion control above the 500 UDP layer [RFC8085] and MAY also implement a transport circuit 501 breaker [RFC8083]. Work in the RMCAT working group [RMCAT] describes 502 the interactions and conceptual interfaces necessary between the 503 application components that relate to congestion control, including 504 the RTP layer, the higher-level media codec control layer, and the 505 lower-level transport interface, as well as components dedicated to 506 congestion control functions. 508 4. Payload Format Parameters 510 This RTP payload format is identified using the TSVCIS media subtype, 511 which is registered in accordance with RFC 4855 [RFC4855] and per the 512 media type registration template from RFC 6838 [RFC6838]. 514 4.1. Media Type Definitions 516 Type name: audio 518 Subtype names: TSVCIS 520 Required parameters: N/A 522 Optional parameters: 524 ptime: the recommended length of time (in milliseconds) 525 represented by the media in a packet. It SHALL use the nearest 526 rounded-up ms integer packet duration. For TSVCIS, this 527 corresponds to the following values: 23, 45, 68, 90, 112, 135, 528 156, and 180. Larger values can be used as long as they are 529 properly rounded. See Section 6 of RFC 4566 [RFC4566]. 531 maxptime: the maximum length of time (in milliseconds) that can be 532 encapsulated in a packet. It SHALL use the nearest rounded-up 533 ms integer packet duration. For TSVCIS, this corresponds to 534 the following values: 23, 45, 68, 90, 112, 135, 156, and 180. 535 Larger values can be used as long as they are properly rounded. 536 See Section 6 of RFC 4566 [RFC4566]. 538 bitrate: specifies the MELPe coder bitrates supported. Possible 539 values are a comma-separated list of rates from the following 540 set: 2400, 1200, 600. The modes are listed in order of 541 preference; first is preferred. If "bitrate" is not present, 542 the fixed coder bitrate of 2400 MUST be used. 544 tcmax: specifies the TSVCIS maximum value for TC supported or 545 desired ranging from 1 to 255. If "tcmax" is not present, a 546 default value of TBD is used. 548 [EDITOR NOTE - the value for TBD is to be discussed and stated. 549 A value of 35 is suggested.] 551 Encoding considerations: This media subtype is framed and binary; see 552 Section 4.8 of RFC 6838 [RFC6838]. 554 Security considerations: Please see Section 8 of RFCxxxx (this RFC). 556 Interoperability considerations: N/A 558 Published specification: N/A 560 Applications that use this media type: N/A 562 Additional information: N/A 564 Deprecated alias names for this type: N/A 566 Magic number(s): N/A 568 File extension(s): N/A 570 Macintosh file type code(s): N/A 572 Person & email address to contact for further information: 574 Victor Demjanenko, Ph.D. 576 VOCAL Technologies, Ltd. 577 520 Lee Entrance, Suite 202 578 Buffalo, NY 14228 579 United States of America 580 Phone: +1 716 688 4675 581 Email: victor.demjanenko@vocal.com 583 Intended usage: COMMON 585 Restrictions on usage: The media subtype depends on RTP framing and 586 hence is only defined for transfer via RTP [RFC3550]. Transport 587 within other framing protocols is not defined at this time. 589 Author: Victor Demjanenko 591 Change controller: IETF Payload working group delegated from the 592 IESG. 594 Provisional registration? (standards tree only): No 596 4.2. Mapping to SDP 598 The mapping of the above-defined payload format media subtype and its 599 parameters SHALL be done according to Section 3 of RFC 4855 600 [RFC4855]. 602 The information carried in the media type specification has a 603 specific mapping to fields in the Session Description Protocol (SDP) 604 [RFC4566], which is commonly used to describe RTP sessions. When SDP 605 is used to specify sessions employing the TSVCIS codec, the mapping 606 is as follows: 608 o The media type ("audio") goes in SDP "m=" as the media name. 610 o The media subtype (payload format name) goes in SDP "a=rtpmap" as 611 the encoding name. 613 o The parameter "bitrate" goes in the SDP "a=fmtp" attribute by 614 copying it as a "bitrate=" string. 616 o The parameter "tcmax" goes in the SDP "a=fmtp" attribute by 617 copying it as a "tcmax=" string. 619 o The parameters "ptime" and "maxptime" go in the SDP "a=ptime" and 620 "a=maxptime" attributes, respectively. 622 When conveying information via SDP, the encoding name SHALL be 623 "TSVCIS" (the same as the media subtype). 625 An example of the media representation in SDP for describing TSVCIS 626 might be: 628 m=audio 49120 RTP/AVP 96 629 a=rtpmap:96 TSVCIS/8000 631 The optional media type parameter "bitrate", when present, MUST be 632 included in the "a=fmtp" attribute in the SDP, expressed as a media 633 type string in the form of a semicolon-separated list of 634 parameter=value pairs. The string "value" can be one or more of 635 2400, 1200, and 600, separated by commas (where each bitrate value 636 indicates the corresponding MELPe coder). An example of the media 637 representation in SDP for describing TSVCIS when all three coder 638 bitrates are supported might be: 640 m=audio 49120 RTP/AVP 96 641 a=rtpmap:96 TSVCIS/8000 642 a=fmtp:96 bitrate=2400,600,1200 644 The optional media type parameter "tcmax", when present, MUST be 645 included in the "a=fmtp" attribute in the SDP, expressed as a media 646 type string in the form of a semicolon-separated list of 647 parameter=value pairs. The string "value" is an integer number in 648 the range of 1 to 255 representing the maximum number of TSVCIS 649 parameter octets supported. An example of the media representation 650 in SDP for describing TSVCIS with a maximum of 101 octets supported 651 is as follows: 653 m=audio 49120 RTP/AVP 96 654 a=rtpmap:96 TSVCIS/8000 655 a=fmtp:96 tcmax=101 657 Parameter "ptime" cannot be used for the purpose of specifying the 658 TSVCIS operating mode, due to the fact that for certain values it 659 will be impossible to distinguish which mode is about to be used 660 (e.g., when ptime=68, it would be impossible to distinguish if the 661 packet is carrying one frame of 67.5 ms or three frames of 22.5 ms). 663 Note that the payload format (encoding) names are commonly shown in 664 upper case. Media subtypes are commonly shown in lower case. These 665 names are case insensitive in both places. Similarly, parameter 666 names are case insensitive in both the media subtype name and the 667 default mapping to the SDP a=fmtp attribute. 669 4.3. Declarative SDP Considerations 671 For declarative media, the "bitrate" parameter specifies the possible 672 bitrates used by the sender. Multiple TSVCIS rtpmap values (such as 673 97, 98, and 99, as used below) MAY be used to convey TSVCIS-coded 674 voice at different bitrates. The receiver can then select an 675 appropriate TSVCIS codec by using 97, 98, or 99. 677 m=audio 49120 RTP/AVP 97 98 99 678 a=rtpmap:97 TSVCIS/8000 679 a=fmtp:97 bitrate=2400 680 a=rtpmap:98 TSVCIS/8000 681 a=fmtp:98 bitrate=1200 682 a=rtpmap:99 TSVCIS/8000 683 a=fmtp:99 bitrate=600 685 For declarative media, the "tcmax" parameter specifies the maximum 686 number of TSVCIS packed parameter octets used by the sender or the 687 sender's communications channel. 689 4.4. Offer/Answer SDP Considerations 691 In the Offer/Answer model [RFC3264], "bitrate" is a bidirectional 692 parameter. Both sides MUST use a common "bitrate" value or values. 693 The offer contains the bitrates supported by the offerer, listed in 694 its preferred order. The answerer MAY agree to any bitrate by 695 listing the bitrate first in the answerer response. Additionally, 696 the answerer MAY indicate any secondary bitrate or bitrates that it 697 supports. The initial bitrate used by both parties SHALL be the 698 first bitrate specified in the answerer response. 700 For example, if offerer bitrates are "2400,600" and answer bitrates 701 are "600,2400", the initial bitrate is 600. If other bitrates are 702 provided by the answerer, any common bitrate between the offer and 703 answer MAY be used at any time in the future. Activation of these 704 other common bitrates is beyond the scope of this document. 706 The use of a lower bitrate is often important for a case such as when 707 one endpoint utilizes a bandwidth-constrained link (e.g., 1200 bps 708 radio link or slower), where only the lower coder bitrate will work. 710 In the Offer/Answer model [RFC3264], "tcmax" is a bidirectional 711 parameter. Both sides SHOULD use a common "tcmax" value. The offer 712 contains the tcmax supported by the offerer. The answerer MAY agree 713 to any tcmax equal or less than this value by stating the desired 714 tcmax in the answerer response. The answerer alternatively MAY 715 identify its own tcmax and rely on TSVCIS ignoring any augmented data 716 it cannot use. 718 5. Discontinuous Transmissions 720 A primary application of TSVCIS is for radio communications of voice 721 conversations, and discontinuous transmissions are normal. When 722 TSVCIS is used in an IP network, TSVCIS RTP packet transmissions may 723 cease and resume frequently. RTP synchronization source (SSRC) 724 sequence number gaps indicate lost packets to be filled by PLC, while 725 abrupt loss of RTP packets indicates intended discontinuous 726 transmissions. 728 If a TSVCIS coder so desires, it may send a MELPe comfort noise frame 729 as per Appendix B of [SCIP210] prior to ceasing transmission. A 730 receiver may optionally use comfort noise during its silence periods. 731 No SDP negotiations are required. 733 6. Packet Loss Concealment 735 TSVCIS packet loss concealment (PLC) uses the special properties and 736 coding for the pitch/voicing parameter of the MELPe 2400 bps coder. 737 The PLC erasure indication utilizes any of the errored encodings of a 738 non-voiced frame as identified in Table 1 of [MELPE]. For the sake of 739 simplicity, it is preferred that a code value of 3 for the 740 pitch/voicing parameter be used. Hence, set bits P0 and P1 to one 741 and bits P2, P3, P4, P5, and P6 to zero. 743 When using PLC in 1200 bps or 600 bps mode, the MELPe 2400 bps 744 decoder is called three or four times, respectively, to cover the 745 loss of a low bitrate MELPe frame. 747 7. IANA Considerations 749 This memo requests that IANA registers TSVCIS as specified in Section 750 4.1. The media type is also requested to be added to the IANA 751 registry for "RTP Payload Format MIME types" 752 (http://www.iana.org/assignments/rtp-parameters). 754 8. Security Considerations 756 RTP packets using the payload format defined in this specification 757 are subject to the security considerations discussed in the RTP 758 specification [RFC3550] and in any applicable RTP profile such as 759 RTP/AVP [RFC3551], RTP/AVPF [RFC4585], RTP/SAVP [RFC3711], or 760 RTP/SAVPF [RFC5124]. However, as discussed in [RFC7202], it is not 761 an RTP payload format's responsibility to discuss or mandate what 762 solutions are used to meet such basic security goals as 763 confidentiality, integrity, and source authenticity for RTP in 764 general. This responsibility lies with anyone using RTP in an 765 application. They can find guidance on available security mechanisms 766 and important considerations in [RFC7201]. Applications SHOULD use 767 one or more appropriate strong security mechanisms. The rest of this 768 section discusses the security-impacting properties of the payload 769 format itself. 771 This RTP payload format and the TSVCIS decoder do not exhibit any 772 significant non-uniformity in the receiver-side computational 773 complexity for packet processing and thus are unlikely to pose a 774 denial-of-service threat due to the receipt of pathological data. 775 Additionally, the RTP payload format does not contain any active 776 content. 778 Please see the security considerations discussed in [RFC6562] 779 regarding VAD and its effect on bitrates. 781 9. RFC Editor Considerations 783 Note to RFC Editor: This section may be removed after carrying out 784 all the instructions of this section. 786 10. References 788 10.1. Normative References 790 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 791 Requirement Levels", BCP 14, RFC 2119, 792 DOI 10.17487/RFC2119, March 1997, 793 . 795 [RFC2736] Handley, M. and C. Perkins, "Guidelines for Writers of RTP 796 Payload Format Specifications", BCP 36, RFC 2736, 797 DOI 10.17487/RFC2736, December 1999, 798 . 800 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 801 with Session Description Protocol (SDP)", RFC 3264, 802 DOI 10.17487/RFC3264, June 2002, 803 . 805 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 806 Jacobson, "RTP: A Transport Protocol for Real-Time 807 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 808 July 2003, . 810 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 811 Video Conferences with Minimal Control", STD 65, RFC 3551, 812 DOI 10.17487/RFC3551, July 2003, 813 . 815 [RFC8130] Demjanenko, V., and D. Satterlee, "RTP Payload Format for 816 the Mixed Excitation Linear Prediction Enhanced (MELPe) 817 Codec", RFC 8130, DOI 10.tbd/RFC8130, March 2017, 818 . 820 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 821 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 822 RFC 3711, DOI 10.17487/RFC3711, March 2004, 823 . 825 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 826 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 827 July 2006, . 829 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 830 Formats", RFC 4855, DOI 10.17487/RFC4855, February 2007, 831 . 833 [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for 834 Real-time Transport Control Protocol (RTCP)-Based Feedback 835 (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, 836 February 2008, . 838 [RFC6562] Perkins, C. and JM. Valin, "Guidelines for the Use of 839 Variable Bit Rate Audio with Secure RTP", RFC 6562, 840 DOI 10.17487/RFC6562, March 2012, 841 . 843 [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type 844 Specifications and Registration Procedures", BCP 13, 845 RFC 6838, DOI 10.17487/RFC6838, January 2013, 846 . 848 [RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control: 849 Circuit Breakers for Unicast RTP Sessions", RFC 8083, 850 DOI 10.17487/RFC8083, March 2017, 851 . 853 [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage 854 Guidelines", RFC 8085, DOI 10.17487/RFC8085, March 2017, 855 . 857 [NRLVDR] Heide, D., Cohen, A., Lee, Y., and T. Moran, "Universal 858 Vocoder Using Variable Data Rate Vocoding", Naval Research 859 Lab, NRL/FR/5555-13-10,239, June 2013. 861 [MELP] Department of Defense Telecommunications Standard, 862 "Analog-to-Digital Conversion of Voice by 2,400 Bit/Second 863 Mixed Excitation Linear Prediction (MELP)", MIL-STD-3005, 864 December 1999. 866 [MELPE] North Atlantic Treaty Organization (NATO), "The 600 Bit/S, 867 1200 Bit/S and 2400 Bit/S NATO Interoperable Narrow Band 868 Voice Coder", STANAG No. 4591, January 2006. 870 [SCIP210] National Security Agency, "SCIP Signaling Plan", SCIP-210, 871 December 2007. 873 10.2. Informative References 875 [TSVCIS] National Security Agency, "Tactical Secure Voice 876 Cryptographic Interoperability Specification (TSVCIS) 877 Version 2.1", NSA 09-01A, July 2012. 879 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 880 "Extended RTP Profile for Real-time Transport Control 881 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 882 DOI 10.17487/RFC4585, July 2006, 883 . 885 [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP 886 Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014, 887 . 889 [RFC7202] Perkins, C. and M. Westerlund, "Securing the RTP 890 Framework: Why RTP Does Not Mandate a Single Media 891 Security Solution", RFC 7202, DOI 10.17487/RFC7202, 892 April 2014, . 894 [RMCAT] IETF, RTP Media Congestion Avoidance Techniques (rmcat) 895 Working Group, 896 . 898 Authors' Addresses 900 Victor Demjanenko, Ph.D. 901 VOCAL Technologies, Ltd. 902 520 Lee Entrance, Suite 202 903 Buffalo, NY 14228 904 United States of America 906 Phone: +1 716 688 4675 907 Email: victor.demjanenko@vocal.com 909 John Punaro 910 VOCAL Technologies, Ltd. 911 520 Lee Entrance, Suite 202 912 Buffalo, NY 14228 913 United States of America 915 Phone: +1 716 688 4675 916 Email: john.punaro@vocal.com 918 David Satterlee 919 VOCAL Technologies, Ltd. 920 520 Lee Entrance, Suite 202 921 Buffalo, NY 14228 922 United States of America 924 Phone: +1 716 688 4675 925 Email: david.satterlee@vocal.com