rfc8817xml2.original.xml | rfc8817.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.2119.xml"> | ||||
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8174.xml"> | ||||
<!ENTITY RFC2736 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.2736.xml"> | ||||
<!ENTITY RFC8088 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8088.xml"> | ||||
<!ENTITY RFC3264 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.3264.xml"> | ||||
<!ENTITY RFC3550 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.3550.xml"> | ||||
<!ENTITY RFC3551 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.3551.xml"> | ||||
<!ENTITY RFC8130 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8130.xml"> | ||||
<!ENTITY RFC3711 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.3711.xml"> | ||||
<!ENTITY RFC4566 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.4566.xml"> | ||||
<!ENTITY RFC4855 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.4855.xml"> | ||||
<!ENTITY RFC5124 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.5124.xml"> | ||||
<!ENTITY RFC6562 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.6562.xml"> | ||||
<!ENTITY RFC6838 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.6838.xml"> | ||||
<!ENTITY RFC8083 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8083.xml"> | ||||
<!ENTITY RFC8085 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.8085.xml"> | ||||
<!ENTITY RFC4585 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.4585.xml"> | ||||
<!ENTITY RFC7201 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.7201.xml"> | ||||
<!ENTITY RFC7202 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
C.7202.xml"> | ||||
]> | ||||
<rfc submissionType="IETF" docName="draft-ietf-payload-tsvcis-05" category="std" | ||||
ipr="trust200902"> | ||||
<!-- Generated by id2xml 1.5.0 on 2020-07-02T22:03:45Z --> | ||||
<?rfc strict="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="no"?> | ||||
<?rfc text-list-symbols="o*+-"?> | ||||
<?rfc toc="yes"?> | ||||
<front> | ||||
<title>RTP Payload Format for TSVCIS Codec</title> | ||||
<author initials="V." surname="Demjanenko" fullname="Victor Demjanenko, P | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" | |||
h.D."> | docName="draft-ietf-payload-tsvcis-05" category="std" ipr="trust200902" | |||
<organization>VOCAL Technologies, Ltd.</organization> | obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" | |||
<address> | tocInclude="true" version="3" number="8817" consensus="yes"> | |||
<postal> | ||||
<street>520 Lee Entrance</street> | ||||
<street>Suite 202</street> | ||||
<city>Buffalo</city><region>NY</region><code>14228</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<phone>+1 716 688 4675</phone> | ||||
<email>victor.demjanenko@vocal.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="J." surname="Punaro" fullname="John Punaro"> | <!-- xml2rfc v2v3 conversion 2.46.0 --> | |||
<organization>VOCAL Technologies, Ltd.</organization> | <!-- Generated by id2xml 1.5.0 on 2020-07-02T22:03:45Z --> | |||
<address> | <front> | |||
<postal> | ||||
<street>520 Lee Entrance</street> | ||||
<street>Suite 202</street> | ||||
<city>Buffalo</city><region>NY</region><code>14228</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<phone>+1 716 688 4675</phone> | ||||
<email>john.punaro@vocal.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="D." surname="Satterlee" fullname="David Satterlee"> | <title abbrev="RTP Payload Format for TSVCIS Codec">RTP Payload Format for | |||
<organization>VOCAL Technologies, Ltd.</organization> | Tactical Secure Voice Cryptographic Interoperability Specification | |||
<address> | (TSVCIS) Codec</title> | |||
<postal> | <seriesInfo name="RFC" value="8817"/> | |||
<street>520 Lee Entrance</street> | <author initials="V." surname="Demjanenko" fullname="Victor Demjanenko, Ph.D | |||
<street>Suite 202</street> | ."> | |||
<city>Buffalo</city><region>NY</region><code>14228</code> | <organization>VOCAL Technologies, Ltd.</organization> | |||
<country>United States of America</country> | <address> | |||
</postal> | <postal> | |||
<phone>+1 716 688 4675</phone> | <street>520 Lee Entrance, Suite 202</street> | |||
<email>david.satterlee@vocal.com</email> | <city>Buffalo</city> | |||
</address> | <region>NY</region> | |||
</author> | <code>14228</code> | |||
<country>United States of America</country> | ||||
</postal> | ||||
<phone>+1 716 688 4675</phone> | ||||
<email>victor.demjanenko@vocal.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="J." surname="Punaro" fullname="John Punaro"> | ||||
<organization>VOCAL Technologies, Ltd.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>520 Lee Entrance, Suite 202</street> | ||||
<city>Buffalo</city> | ||||
<region>NY</region> | ||||
<code>14228</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<phone>+1 716 688 4675</phone> | ||||
<email>john.punaro@vocal.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="D." surname="Satterlee" fullname="David Satterlee"> | ||||
<organization>VOCAL Technologies, Ltd.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>520 Lee Entrance, Suite 202</street> | ||||
<city>Buffalo</city> | ||||
<region>NY</region> | ||||
<code>14228</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<phone>+1 716 688 4675</phone> | ||||
<email>david.satterlee@vocal.com</email> | ||||
</address> | ||||
</author> | ||||
<date year="2020" month="August"/> | ||||
<workgroup>Payload Working Group</workgroup> | ||||
<date year="2020" month="July"/> | <keyword>MELP</keyword> | |||
<workgroup>Payload Working Group</workgroup> | <keyword>MELPe</keyword> | |||
<abstract><t> | <keyword>TSVCIS</keyword> | |||
<keyword>NRLVDR</keyword> | ||||
<keyword>Naval Research Laboratory</keyword> | ||||
<keyword>NRL</keyword> | ||||
<keyword>NATO</keyword> | ||||
<keyword>TSVWG</keyword> | ||||
<keyword>Department of Defense</keyword> | ||||
<keyword>DoD</keyword> | ||||
<keyword>NSA</keyword> | ||||
<keyword>MIL-STD</keyword> | ||||
<abstract> | ||||
<t> | ||||
This document describes the RTP payload format for the Tactical | This document describes the RTP payload format for the Tactical | |||
Secure Voice Cryptographic Interoperability Specification (TSVCIS) | Secure Voice Cryptographic Interoperability Specification (TSVCIS) | |||
speech coder. TSVCIS is a scalable narrowband voice coder supporting | speech coder. TSVCIS is a scalable narrowband voice coder supporting | |||
varying encoder data rates and fallbacks. It is implemented as an | varying encoder data rates and fallbacks. It is implemented as an | |||
augmentation to the Mixed Excitation Linear Prediction Enhanced | augmentation to the Mixed Excitation Linear Prediction Enhanced | |||
(MELPe) speech coder by conveying additional speech coder parameters | (MELPe) speech coder by conveying additional speech coder parameters | |||
for enhancing voice quality. TSVCIS augmented speech data is | to enhance voice quality. TSVCIS augmented speech data is | |||
processed in conjunction with its temporal matched MELP 2400 speech | processed in conjunction with its temporally matched Mixed Excitation Linear | |||
data. The RTP packetization of TSVCIS and MELPe speech coder data is | Prediction (MELP) 2400 speech data. The RTP packetization of TSVCIS and | |||
described in detail.</t> | MELPe speech coder data is described in detail.</t> | |||
</abstract> | ||||
</abstract> | </front> | |||
</front> | <middle> | |||
<section anchor="sect-1" numbered="true" toc="default"> | ||||
<middle> | <name>Introduction</name> | |||
<section title="Introduction" anchor="sect-1"><t> | <t> | |||
This document describes how compressed Tactical Secure Voice | This document describes how compressed Tactical Secure Voice | |||
Cryptographic Interoperability Specification (TSVCIS) speech as | Cryptographic Interoperability Specification (TSVCIS) speech as | |||
produced by the TSVCIS codec <xref target="TSVCIS"/> <xref target="NRLVDR"/> | produced by the TSVCIS codec <xref target="TSVCIS" format="default"/> <xref t | |||
may be formatted for | arget="NRLVDR" format="default"/> may be formatted for | |||
use as an RTP payload. The TSVCIS speech coder (or TSVCIS speech | use as an RTP payload. The TSVCIS speech coder (or TSVCIS speech-aware commu | |||
aware communications equipment on any intervening transport link) may | nications equipment on any intervening transport link) may | |||
adjust to restricted bandwidth conditions by reducing the amount of | adjust to restricted bandwidth conditions by reducing the amount of | |||
augmented speech data and relying on the underlying MELPe speech | augmented speech data and relying on the underlying MELPe speech | |||
coder for the most constrained bandwidth links.</t> | coder for the most constrained bandwidth links.</t> | |||
<t> | ||||
<t> | ||||
Details are provided for packetizing the TSVCIS augmented speech data | Details are provided for packetizing the TSVCIS augmented speech data | |||
along with MELPe 2400 bps speech parameters in a RTP packet. The | along with MELPe 2400 bps speech parameters in an RTP packet. The | |||
sender may send one or more codec data frames per packet, depending | sender may send one or more codec data frames per packet, depending | |||
on the application scenario or based on transport network conditions, | on the application scenario or based on transport network conditions, | |||
bandwidth restrictions, delay requirements, and packet loss | bandwidth restrictions, delay requirements, and packet loss | |||
tolerance.</t> | tolerance.</t> | |||
<section anchor="sect-1.1" numbered="true" toc="default"> | ||||
<section title="Conventions" anchor="sect-1.1"><t> | <name>Conventions</name> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"OPTIONAL" in this document are to be interpreted as described in | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | ", | |||
they appear in all | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
capitals, as shown here.</t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
<t> | be interpreted as | |||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
<t> | ||||
Best current practices for writing an RTP payload format | Best current practices for writing an RTP payload format | |||
specification were followed <xref target="RFC2736"/> <xref target="RFC8088"/> | specification were followed <xref target="RFC2736" format="default"/> <xref t | |||
.</t> | arget="RFC8088" format="default"/>.</t> | |||
</section> | ||||
</section> | ||||
</section> | <section anchor="sect-1.2" numbered="true" toc="default"> | |||
<name>Abbreviations</name> | ||||
<t>The following abbreviations are used in this document.</t> | ||||
<dl newline="false" indent="10" spacing="normal"> | ||||
<dt>AVP:</dt><dd>Audio/Video Profile</dd> | ||||
<dt>AVPF:</dt><dd>Audio/Video Profile Feedback</dd> | ||||
<dt>CELP:</dt><dd>Code-Excited Linear Prediction</dd> | ||||
<dt>FEC:</dt><dd>Forward Error Correction</dd> | ||||
<dt>LPC:</dt><dd>Linear-Predictive Coding</dd> | ||||
<dt>LSB:</dt><dd>Least Significant Bit</dd> | ||||
<dt>MELP:</dt><dd>Mixed Excitation Linear Prediction</dd> | ||||
<dt>MELPe:</dt><dd>Mixed Excitation Linear Prediction Enhanced</dd> | ||||
<dt>MSB:</dt><dd>Most Significant Bit</dd> | ||||
<dt>MTC:</dt><dd>Modified Count</dd> | ||||
<dt>NATO:</dt><dd>North American Treaty Organization</dd> | ||||
<dt>NRL:</dt><dd>Naval Research Lab</dd> | ||||
<dt>PLC:</dt><dd>Packet Loss Concealment</dd> | ||||
<dt>SAVP:</dt><dd>Secure Audio/Video Profile</dd> | ||||
<dt>SAVPF:</dt><dd>Secure Audio/Video Profile Feedback</dd> | ||||
<dt>SDP:</dt><dd>Session Description Protocol</dd> | ||||
<dt>SSRC:</dt><dd>Synchronization Source</dd> | ||||
<dt>SRTP:</dt><dd>Secure Real-Time Transport Protocol</dd> | ||||
<dt>TSVCIS:</dt><dd>Tactical Secure Voice Cryptographic Interoperability Specifi | ||||
cation</dd> | ||||
<dt>VAD:</dt><dd>Voice Activity Detect</dd> | ||||
<dt>VDR:</dt><dd>Variable Date Rate</dd> | ||||
</dl> | ||||
<section title="Background" anchor="sect-2"><t> | </section> | |||
</section> | ||||
<section anchor="sect-2" numbered="true" toc="default"> | ||||
<name>Background</name> | ||||
<t> | ||||
The MELP speech coder was developed by the US military as an upgrade | The MELP speech coder was developed by the US military as an upgrade | |||
from the LPC-based CELP standard vocoder for low-bitrate | from the LPC-based CELP standard vocoder for low-bitrate | |||
communications <xref target="MELP"/>. ("LPC" stands for "Linear-Predictive C oding", | communications <xref target="MELP" format="default"/>. ("LPC" stands for "Li near-Predictive Coding", | |||
and "CELP" stands for "Code-Excited Linear Prediction".) MELP was | and "CELP" stands for "Code-Excited Linear Prediction".) MELP was | |||
further enhanced and subsequently adopted by NATO as MELPe for use by | further enhanced and subsequently adopted by NATO as "MELPe" for use by | |||
its members and Partnership for Peace countries for military and | its members and Partnership for Peace countries for military and | |||
other governmental communications as international NATO Standard | other governmental communications as international NATO Standard | |||
STANAG 4591 <xref target="MELPE"/>.</t> | STANAG 4591 <xref target="MELPE" format="default"/>.</t> | |||
<t> | ||||
<t> | ||||
The Tactical Secure Voice Cryptographic Interoperability | The Tactical Secure Voice Cryptographic Interoperability | |||
Specification (TSVCIS) is a specification written by the Tactical | Specification (TSVCIS) is a specification written by the Tactical | |||
Secure Voice Working Group (TSVWG) for enabling all modern tactical | Secure Voice Working Group (TSVWG) to enable all modern tactical | |||
secure voice devices to be interoperable across the Department of | secure voice devices to be interoperable across the US Department of | |||
Defense <xref target="TSVCIS"/>. One of the most important aspects is that t | Defense <xref target="TSVCIS" format="default"/>. One of the most important | |||
he | aspects is that the | |||
voice modes defined in TSVCIS are based on specific fixed rates of | voice modes defined in TSVCIS are based on specific fixed rates of the Naval | |||
Naval Research Lab's (NRL's) Variable Date Rate (VDR) Vocoder which | Research Lab's (NRL's) Variable Date Rate (VDR) Vocoder, which | |||
uses the MELPe standard as its base <xref target="NRLVDR"/>. A complete TSVC | uses the MELPe standard as its base <xref target="NRLVDR" format="default"/>. | |||
IS | A complete TSVCIS | |||
speech frame consists of MELPe speech parameters and corresponding | speech frame consists of MELPe speech parameters and corresponding | |||
TSVCIS augmented speech data.</t> | TSVCIS augmented speech data.</t> | |||
<t> | ||||
<t> | ||||
In addition to the augmented speech data, the TSVCIS specification | In addition to the augmented speech data, the TSVCIS specification | |||
identifies which speech coder and framing bits are to be encrypted, | identifies which speech coder and framing bits are to be encrypted | |||
and how they are protected by forward error correction (FEC) | and how they are protected by forward error correction (FEC) | |||
techniques (using block codes). At the RTP transport layer, only the | techniques (using block codes). At the RTP transport layer, only the | |||
speech-coder-related bits need to be considered and are conveyed in | speech coder-related bits need to be considered and are conveyed in | |||
unencrypted form. In most IP-based network deployments, standard | unencrypted form. In most IP-based network deployments, standard | |||
link encryption methods (SRTP, VPNs, FIPS 140 link encryptors or Type | link encryption methods (Secure Real-Time Transport Protocol (SRTP), VPNs, FI PS 140 link encryptors, or Type | |||
1 Ethernet encryptors) would be used to secure the RTP speech | 1 Ethernet encryptors) would be used to secure the RTP speech | |||
contents.</t> | contents.</t> | |||
<t> | <t> | |||
TSVCIS augmented speech data is derived from the signal processing | TSVCIS augmented speech data is derived from the signal processing | |||
and data already performed by the MELPe speech coder. For the | and data generated by the MELPe speech coder. For the | |||
purposes of this specification, only the general parameter nature of | purposes of this specification, only the general parameter nature of | |||
TSVCIS will be characterized. Depending on the bandwidth available | TSVCIS will be characterized. Depending on the bandwidth available | |||
(and FEC requirements), a varying number of TSVCIS-specific speech | (and FEC requirements), a varying number of TSVCIS-specific speech | |||
coder parameters need to be transported. These are first byte-packed | coder parameters need to be transported. These are first byte-packed | |||
and then conveyed from encoder to decoder.</t> | and then conveyed from encoder to decoder.</t> | |||
<t> | ||||
<t> | ||||
Byte packing of TSVCIS speech data into packed parameters is | Byte packing of TSVCIS speech data into packed parameters is | |||
processed as per the following example:</t> | processed as per the following example, where</t> | |||
<dl><dt>Three-bit field:</dt><dd>Bits A, B, and C (A is MSB; C is LSB)</dd> | ||||
<figure><artwork><![CDATA[ | <dt>Five-bit field:</dt><dd>Bits D, E, F, G, and H (D is MSB; H is LSB)</dd | |||
Three-bit field: bits A, B, and C (A is MSB, C is LSB) | > | |||
Five-bit field: bits D, E, F, G, and H (D is MSB, H is LSB) | </dl> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| H | G | F | E | D | C | B | A | | | H | G | F | E | D | C | B | A | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | <t> | |||
<t> | ||||
This packing method places the three-bit field "first" in the lowest | This packing method places the three-bit field "first" in the lowest | |||
bits followed by the next five-bit field. Parameters may be split | bits followed by the next five-bit field. Parameters may be split | |||
between octets with the most significant bits in the earlier octet. | between octets with the most significant bits in the earlier octet. | |||
Any unfilled bits in the last octet MUST be filled with zero.</t> | Any unfilled bits in the last octet <bcp14>MUST</bcp14> be filled with | |||
zero.</t> | ||||
<t> | <t> | |||
In order to accommodate a varying amount of TSVCIS augmented speech | In order to accommodate a varying amount of TSVCIS augmented speech | |||
data, an octet count specifies the number of octets representing | data, an octet count specifies the number of octets representing | |||
the packed TSVCIS parameters. The encoding to do so is presented in | the TSVCIS packed parameters. The encoding to do so is presented in | |||
<xref target="sect-3.2"/>. TSVCIS specifically uses the NRL VDR in two | <xref target="sect-3.2" format="default"/>. TSVCIS specifically uses the NRL | |||
configurations using a fixed set of 15 and 35 packed octet | VDR in two | |||
parameters in a standardized order <xref target="TSVCIS"/>.</t> | configurations with a fixed set of 15 and 35 packed octet | |||
parameters in a standardized order <xref target="TSVCIS" format="default"/>.< | ||||
</section> | /t> | |||
</section> | ||||
<section title="Payload Format" anchor="sect-3"><t> | <section anchor="sect-3" numbered="true" toc="default"> | |||
The TSVCIS codec augments the standard MELP 2400, 1200 and 600 | <name>Payload Format</name> | |||
<t> | ||||
The TSVCIS codec augments the standard MELP 2400, 1200, and 600 | ||||
bitrates and hence uses 22.5, 67.5, or 90 ms frames with a sampling | bitrates and hence uses 22.5, 67.5, or 90 ms frames with a sampling | |||
rate clock of 8 kHz, so the RTP timestamp MUST be in units of 1/8000 | rate clock of 8 kHz, so the RTP timestamp <bcp14>MUST</bcp14> be in units of 1/8000 | |||
of a second.</t> | of a second.</t> | |||
<t> | ||||
<t> | The RTP payload for TSVCIS has the format shown in <xref target="fig-1"/>. N | |||
The RTP payload for TSVCIS has the format shown in Figure 1. No | o | |||
additional header specific to this payload format is needed. This | additional header specific to this payload format is needed. This | |||
format is intended for situations where the sender and the receiver | format is intended for situations where the sender and the receiver | |||
send one or more codec data frames per packet.</t> | send one or more codec data frames per packet.</t> | |||
<figure anchor="fig-1"> | ||||
<figure title="Packet Format Diagram" anchor="fig-1"><artwork><![CDATA[ | <name>Packet Format Diagram</name> | |||
0 1 2 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
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 | 0 1 2 3 | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RTP Header | | | RTP Header | | |||
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | |||
| | | | | | |||
+ one or more frames of TSVCIS | | + one or more frames of TSVCIS | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | <t> | |||
The RTP header of the packetized encoded TSVCIS speech has the | The RTP header of the packetized encoded TSVCIS speech has the | |||
expected values as described in <xref target="RFC3550"/>. The usage of the M | expected values as described in <xref target="RFC3550" format="default"/>. T | |||
bit | he usage of the M bit | |||
SHOULD be as specified in the applicable RTP profile -- for example, | <bcp14>SHOULD</bcp14> be as specified in the applicable RTP profile -- for ex | |||
<xref target="RFC3551"/>, where <xref target="RFC3551"/> specifies that if th | ample, | |||
e sender does not | <xref target="RFC3551" format="default"/> specifies that if the sender does n | |||
ot | ||||
suppress silence (i.e., sends a frame on every frame interval), the | suppress silence (i.e., sends a frame on every frame interval), the | |||
M bit will always be zero. When more than one codec data frame is | M bit will always be zero. When more than one codec data frame is | |||
present in a single RTP packet, the timestamp specified is that of | present in a single RTP packet, the timestamp specified is that of | |||
the oldest data frame represented in the RTP packet.</t> | the oldest data frame represented in the RTP packet.</t> | |||
<t> | ||||
<t> | ||||
The assignment of an RTP payload type for this new packet format is | The assignment of an RTP payload type for this new packet format is | |||
outside the scope of this document and will not be specified here. It | outside the scope of this document and will not be specified here. It | |||
is expected that the RTP profile for a particular class of | is expected that the RTP profile for a particular class of | |||
applications will assign a payload type for this encoding, or if that | applications will assign a payload type for this encoding; if that | |||
is not done, then a payload type in the dynamic range shall be chosen | is not done, then a payload type in the dynamic range shall be chosen | |||
by the sender.</t> | by the sender.</t> | |||
<section anchor="sect-3.1" numbered="true" toc="default"> | ||||
<section title="MELPe Bitstream Definitions" anchor="sect-3.1"><t> | <name>MELPe Bitstream Definitions</name> | |||
The TCVCIS speech coder includes all three MELPe coder rates used as | <t> | |||
base speech parameters or as speech coders for bandwidth restricted | The TSVCIS speech coder includes all three MELPe coder rates used as | |||
links. RTP packetization of MELPe follows RFC 8130 and is repeated | base speech parameters or as speech coders for bandwidth-restricted | |||
here for all three MELPe rates <xref target="RFC8130"/> with its recommendati | links. RTP packetization of MELPe follows <xref target="RFC8130"/> and is re | |||
ons now | peated | |||
here for all three MELPe rates <xref target="RFC8130" format="default"/>, wit | ||||
h its recommendations now | ||||
regarded as requirements. The bits previously labeled as RSVA, RSVB, | regarded as requirements. The bits previously labeled as RSVA, RSVB, | |||
and RSVC in RFC 8130 SHOULD be filled with rate coding, CODA, CODB, | and RSVC in <xref target="RFC8130"/> <bcp14>SHOULD</bcp14> be filled with | |||
and CODC, as shown in Table 1 (compatible with Table 7 in Section 3.3 | rate code bits CODA, CODB, | |||
of <xref target="RFC8130"/>).</t> | and CODC, as shown in <xref target="tab-1"/> (compatible with Table 7 in <xre | |||
f target="RFC8130" sectionFormat="of" section="3.3"/>).</t> | ||||
<texttable title="TSVCIS/MELPe Frame Bitrate Indicators and Frame Length" | <table anchor="tab-1" align="center"> | |||
anchor="tab-1" style="all"><ttcol> Coder Bitrate</ttcol> | <name>TSVCIS/MELPe Frame Bitrate Indicators and Frame Length</name> | |||
<ttcol> CODA</ttcol> | <thead> | |||
<ttcol> CODB</ttcol> | <tr> | |||
<ttcol> CODC</ttcol> | <th align="left">Coder Bitrate</th> | |||
<ttcol> Length</ttcol> | <th align="left">CODA</th> | |||
<c>2400 bps</c> | <th align="left">CODB</th> | |||
<c>0</c> | <th align="left">CODC</th> | |||
<c>0</c> | <th align="left">Length</th> | |||
<c>N/A</c> | </tr> | |||
<c>7</c> | </thead> | |||
<c>1200 bps</c> | <tbody> | |||
<c>1</c> | <tr> | |||
<c>0</c> | <td align="left">2400 bps</td> | |||
<c>0</c> | <td align="left">0</td> | |||
<c>11</c> | <td align="left">0</td> | |||
<c>600 bps</c> | <td align="left">N/A</td> | |||
<c>0</c> | <td align="left">7</td> | |||
<c>1</c> | </tr> | |||
<c>N/A</c> | <tr> | |||
<c>7</c> | <td align="left">1200 bps</td> | |||
<c>Comfort Noise</c> | <td align="left">1</td> | |||
<c>1</c> | <td align="left">0</td> | |||
<c>0</c> | <td align="left">0</td> | |||
<c>1</c> | <td align="left">11</td> | |||
<c>2</c> | </tr> | |||
<c>TSVCIS data</c> | <tr> | |||
<c>1</c> | <td align="left">600 bps</td> | |||
<c>1</c> | <td align="left">0</td> | |||
<c>N/A</c> | <td align="left">1</td> | |||
<c>var.</c> | <td align="left">N/A</td> | |||
</texttable> | <td align="left">7</td> | |||
<t> | </tr> | |||
<tr> | ||||
<td align="left">Comfort Noise</td> | ||||
<td align="left">1</td> | ||||
<td align="left">0</td> | ||||
<td align="left">1</td> | ||||
<td align="left">2</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">TSVCIS Data</td> | ||||
<td align="left">1</td> | ||||
<td align="left">1</td> | ||||
<td align="left">N/A</td> | ||||
<td align="left">var.</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t> | ||||
The total number of bits used to describe one MELPe frame of 2400 bps | The total number of bits used to describe one MELPe frame of 2400 bps | |||
speech is 54, which fits in 7 octets (with two rate code bits). For | speech is 54, which fits in 7 octets (with two rate code bits). For | |||
MELPe 1200 bps speech, the total number of bits used is 81, which | MELPe 1200 bps speech, the total number of bits used is 81, which | |||
fits in 11 octets (with three rate code bits and four unused bits). | fits in 11 octets (with three rate code bits and four unused bits). | |||
For MELPe 600 bps speech, the total number of bits used is 54, which | For MELPe 600 bps speech, the total number of bits used is 54, which | |||
fits in 7 octets (with two rate code bits). The comfort noise frame | fits in 7 octets (with two rate code bits). The comfort noise frame | |||
consists of 13 bits, which fits in 2 octets (with three rate code | consists of 13 bits, which fits in 2 octets (with three rate code | |||
bits). TSVCIS packed parameters will use the last code combination | bits). TSVCIS packed parameters will use the last code combination | |||
in a trailing byte as discussed in <xref target="sect-3.2"/>.</t> | in a trailing byte as discussed in <xref target="sect-3.2" format="default"/> | |||
.</t> | ||||
<t> | <t> | |||
It should be noted that CODB for MELPe 600 bps mode MAY deviate from | It should be noted that CODB for MELPe 600 bps mode <bcp14>MAY</bcp14> deviat | |||
the value in Table 1 when bit 55 is used as an alternating 1/0 | e from | |||
the value in <xref target="tab-1"/> when bit 55 is used as an alternating 1/0 | ||||
end-to-end framing bit. Frame decoding would remain distinct as CODA | end-to-end framing bit. Frame decoding would remain distinct as CODA | |||
being zero on its own would indicate a 7-byte frame for either 2400 | being zero on its own would indicate a 7-byte frame for either a 2400 | |||
or 600 bps rate and the use of 600 bps speech coding could be deduced | or 600 bps rate, and the use of 600 bps speech coding could be deduced | |||
from the RTP timestamp (and anticipated by the SDP negotiations).</t> | from the RTP timestamp (and anticipated by the Session Description Protocol | |||
(SDP) negotiations).</t> | ||||
<section title="2400 bps Bitstream Structure" anchor="sect-3.1.1"><t> | <section anchor="sect-3.1.1" numbered="true" toc="default"> | |||
The 2400 bps MELPe RTP payload is constructed as per Figure 2. Note | <name>2400 bps Bitstream Structure</name> | |||
that CODA MUST be filled with 0 and CODB SHOULD be filled with 0 as | <t> | |||
per <xref target="sect-3.1"/>. CODB MAY contain an end-to-end framing bit if | The 2400 bps MELPe RTP payload is constructed as per <xref target="fig-2"/>. | |||
Note | ||||
that CODA <bcp14>MUST</bcp14> be filled with 0 and CODB <bcp14>SHOULD</bcp14> | ||||
be filled with 0 as | ||||
per <xref target="sect-3.1" format="default"/>. CODB <bcp14>MAY</bcp14> cont | ||||
ain an end-to-end framing bit if | ||||
required by the endpoints.</t> | required by the endpoints.</t> | |||
<figure anchor="fig-2"> | ||||
<figure title="Packed MELPe 2400 bps Payload Octets" anchor="fig-2"><artw | <name>Packed MELPe 2400 bps Payload Octets</name> | |||
ork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | | | B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | | | B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | | | CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="sect-3.1.2" numbered="true" toc="default"> | ||||
<section title="1200 bps Bitstream Structure" anchor="sect-3.1.2"><t> | <name>1200 bps Bitstream Structure</name> | |||
The 1200 bps MELPe RTP payload is constructed as per Figure 3. Note | <t> | |||
that CODA, CODB, and CODC MUST be filled with 1, 0, and 0 | The 1200 bps MELPe RTP payload is constructed as per <xref target="fig-3"/>. | |||
respectively as per <xref target="sect-3.1"/>. RSV0 MUST be coded as 0.</t> | Note | |||
that CODA, CODB, and CODC <bcp14>MUST</bcp14> be filled with 1, 0, and 0, | ||||
<figure title="Packed MELPe 1200 bps Payload Octets" anchor="fig-3"><artw | respectively, as per <xref target="sect-3.1" format="default"/>. RSV0 <bcp14 | |||
ork><![CDATA[ | >MUST</bcp14> be coded as 0.</t> | |||
<figure anchor="fig-3"> | ||||
<name>Packed MELPe 1200 bps Payload Octets</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | |||
skipping to change at line 363 ¶ | skipping to change at line 405 ¶ | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_64 | B_63 | B_62 | B_61 | B_60 | B_59 | B_58 | B_57 | | | B_64 | B_63 | B_62 | B_61 | B_60 | B_59 | B_58 | B_57 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_72 | B_71 | B_70 | B_69 | B_68 | B_67 | B_66 | B_65 | | | B_72 | B_71 | B_70 | B_69 | B_68 | B_67 | B_66 | B_65 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_80 | B_79 | B_78 | B_77 | B_76 | B_75 | B_74 | B_73 | | | B_80 | B_79 | B_78 | B_77 | B_76 | B_75 | B_74 | B_73 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| CODA | CODB | CODC | RSV0 | RSV0 | RSV0 | RSV0 | B_81 | | | CODA | CODB | CODC | RSV0 | RSV0 | RSV0 | RSV0 | B_81 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="sect-3.1.3" numbered="true" toc="default"> | ||||
<section title="600 bps Bitstream Structure" anchor="sect-3.1.3"><t> | <name>600 bps Bitstream Structure</name> | |||
The 600 bps MELPe RTP payload is constructed as per Figure 4. Note | <t> | |||
CODA MUST be filled with 0 and CODB SHOULD be filled with 1 as per | The 600 bps MELPe RTP payload is constructed as per <xref target="fig-4"/>. | |||
<xref target="sect-3.1"/>. CODB MAY contain an end-to-end framing bit if req | Note | |||
uired | CODA <bcp14>MUST</bcp14> be filled with 0 and CODB <bcp14>SHOULD</bcp14> be f | |||
illed with 1 as per | ||||
<xref target="sect-3.1" format="default"/>. CODB <bcp14>MAY</bcp14> contain | ||||
an end-to-end framing bit if required | ||||
by the endpoints.</t> | by the endpoints.</t> | |||
<figure anchor="fig-4"> | ||||
<figure title="Packed MELPe 600 bps Payload Octets" anchor="fig-4"><artwo | <name>Packed MELPe 600 bps Payload Octets</name> | |||
rk><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | | B_16 | B_15 | B_14 | B_13 | B_12 | B_11 | B_10 | B_09 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | | B_24 | B_23 | B_22 | B_21 | B_20 | B_19 | B_18 | B_17 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | | B_32 | B_31 | B_30 | B_29 | B_28 | B_27 | B_26 | B_25 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | | | B_40 | B_39 | B_38 | B_37 | B_36 | B_35 | B_34 | B_33 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | | | B_48 | B_47 | B_46 | B_45 | B_44 | B_43 | B_42 | B_41 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | | | CODA | CODB | B_54 | B_53 | B_52 | B_51 | B_50 | B_49 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="sect-3.1.4" numbered="true" toc="default"> | ||||
<section title="Comfort Noise Bitstream Definition" anchor="sect-3.1.4">< | <name>Comfort Noise Bitstream Definition</name> | |||
t> | <t> | |||
The comfort noise MELPe RTP payload is constructed as per Figure 5. | The comfort noise MELPe RTP payload is constructed as per <xref target="fig-5 | |||
Note that CODA, CODB, and CODC MUST be filled with 1, 0, and 1 | "/>. | |||
respectively as per <xref target="sect-3.1"/>.</t> | Note that CODA, CODB, and CODC <bcp14>MUST</bcp14> be filled with 1, 0, and 1 | |||
, | ||||
<figure title="Packed MELPe Comfort Noise Payload Octets" anchor="fig-5"> | respectively, as per <xref target="sect-3.1" format="default"/>.</t> | |||
<artwork><![CDATA[ | <figure anchor="fig-5"> | |||
<name>Packed MELPe Comfort Noise Payload Octets</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | | B_08 | B_07 | B_06 | B_05 | B_04 | B_03 | B_02 | B_01 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| CODA | CODB | CODC | B_13 | B_12 | B_11 | B_10 | B_09 | | | CODA | CODB | CODC | B_13 | B_12 | B_11 | B_10 | B_09 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | ||||
</section> | <section anchor="sect-3.2" numbered="true" toc="default"> | |||
<name>TSVCIS Bitstream Definition</name> | ||||
<section title="TSVCIS Bitstream Definition" anchor="sect-3.2"><t> | <t> | |||
The TSVCIS augmented speech data as packed parameters MUST be placed | The TSVCIS augmented speech data as packed parameters <bcp14>MUST</bcp14> be | |||
placed | ||||
immediately after a corresponding MELPe 2400 bps payload in the same | immediately after a corresponding MELPe 2400 bps payload in the same | |||
RTP packet. The packed parameters are counted in octets (TC). The | RTP packet. The packed parameters are counted in octets (TC). The | |||
preferred placement SHOULD be used for TSVCIS payloads with TC less | preferred placement <bcp14>SHOULD</bcp14> be used for TSVCIS payloads with TC | |||
than or equal to 77 octets, and is shown in Figure 6. In the | less | |||
preferred placement, a single trailing octet SHALL be appended to | than or equal to 77 octets; this is shown in <xref target="fig-6"/>. In the | |||
include a two-bit rate code, CODA and CODB, (both bits set to one) | preferred placement, a single trailing octet <bcp14>SHALL</bcp14> be appended | |||
to | ||||
include a two-bit rate code, CODA and CODB (both bits set to one), | ||||
and a six-bit modified count (MTC). The special modified count value | and a six-bit modified count (MTC). The special modified count value | |||
of all ones (representing a MTC value of 63) SHALL NOT be used for | of all ones (representing an MTC value of 63) <bcp14>SHALL NOT</bcp14> be use d for | |||
this format as it is used as the indicator for the alternate packing | this format as it is used as the indicator for the alternate packing | |||
format shown next. In a standard implementation, the TSVCIS speech | format shown next. In a standard implementation, the TSVCIS speech | |||
coder uses a minimum of 15 octets for parameters in octet packed | coder uses a minimum of 15 octets for parameters in octet packed | |||
form. The modified count (MTC) MUST be reduced by 15 from the full | form. The modified count (MTC) <bcp14>MUST</bcp14> be reduced by 15 from the full | |||
octet count (TC). Computed MTC = TC-15. This accommodates a maximum | octet count (TC). Computed MTC = TC-15. This accommodates a maximum | |||
of 77 parameter octets (maximum value of MTC is 62, 77 is the sum of | of 77 parameter octets (the maximum value of MTC is 62; 77 is the sum of | |||
62+15).</t> | 62+15).</t> | |||
<figure anchor="fig-6"> | ||||
<figure title="Preferred Packed TSVCIS Payload Octets" anchor="fig-6"><ar | <name>Preferred Packed TSVCIS Payload Octets</name> | |||
twork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | | 1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | | 2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
3 | T024 | T023 | T022 | T021 | T020 | T019 | T018 | T017 | | 3 | T024 | T023 | T022 | T021 | T020 | T019 | T018 | T017 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
4 | T032 | T031 | T030 | T029 | T028 | T027 | T026 | T025 | | 4 | T032 | T031 | T030 | T029 | T028 | T027 | T026 | T025 | | |||
skipping to change at line 470 ¶ | skipping to change at line 517 ¶ | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
14 | T112 | T111 | T110 | T109 | T108 | T107 | T106 | T105 | | 14 | T112 | T111 | T110 | T109 | T108 | T107 | T106 | T105 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
15 | T120 | T119 | T118 | T117 | T116 | T115 | T114 | T113 | | 15 | T120 | T119 | T118 | T117 | T116 | T115 | T114 | T113 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| . . . . | | | . . . . | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
TC+1 | CODA | CODB | modified octet count | | TC+1 | CODA | CODB | modified octet count | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | <t> | |||
In order to accommodate all other NRL VDR configurations, an | In order to accommodate all other NRL VDR configurations, an | |||
alternate parameter placement MUST use two trailing bytes as shown in | alternate parameter placement <bcp14>MUST</bcp14> use two trailing bytes as s | |||
Figure 7. The last trailing byte MUST be filled with a two-bit rate | hown in | |||
code, CODA and CODB, (both bits set to one) and its six-bit count | <xref target="fig-7"/>. The last trailing byte <bcp14>MUST</bcp14> be filled | |||
field MUST be filled with ones. The second to last trailing byte | with a two-bit rate | |||
MUST contain the parameter count (TC) in octets (a value from 1 and | code, CODA and CODB (both bits set to one), and its six-bit count | |||
255, inclusive). The value of zero SHALL be considered as reserved.</t> | field <bcp14>MUST</bcp14> be filled with ones. The second to last trailing b | |||
yte | ||||
<figure title="Length Unrestricted Packed TSVCIS Payload Octets" anchor=" | <bcp14>MUST</bcp14> contain the parameter count (TC) in octets (a value from | |||
fig-7"><artwork><![CDATA[ | 1 and | |||
255, inclusive). The value of zero <bcp14>SHALL</bcp14> be considered as rese | ||||
rved.</t> | ||||
<figure anchor="fig-7"> | ||||
<name>Length Unrestricted Packed TSVCIS Payload Octets</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
MSB LSB | MSB LSB | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | | 1 | T008 | T007 | T006 | T005 | T004 | T003 | T002 | T001 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | | 2 | T016 | T015 | T014 | T013 | T012 | T011 | T010 | T009 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
| . . . . | | | . . . . | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
TC+1 | octet count | | TC+1 | octet count | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
TC+2 | CODA | CODB | 1 | 1 | 1 | 1 | 1 | 1 | | TC+2 | CODA | CODB | 1 | 1 | 1 | 1 | 1 | 1 | | |||
+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | ||||
<section title="Multiple TSVCIS Frames in an RTP Packet" anchor="sect-3.3 | </section> | |||
"><t> | <section anchor="sect-3.3" numbered="true" toc="default"> | |||
<name>Multiple TSVCIS Frames in an RTP Packet</name> | ||||
<t> | ||||
A TSVCIS RTP packet payload consists of zero or more consecutive | A TSVCIS RTP packet payload consists of zero or more consecutive | |||
TSVCIS coder frames (each consisting of MELPe 2400 and TSVCIS coder | TSVCIS coder frames (each consisting of MELPe 2400 and TSVCIS coder | |||
data), with the oldest frame first, followed by zero or one MELPe | data), with the oldest frame first, followed by zero or one MELPe | |||
comfort noise frame. The presence of a comfort noise frame can be | comfort noise frame. The presence of a comfort noise frame can be | |||
determined by its rate code bits in its last octet.</t> | determined by its rate code bits in its last octet.</t> | |||
<t> | ||||
<t> | ||||
The default packetization interval is one coder frame (22.5, 67.5, or | The default packetization interval is one coder frame (22.5, 67.5, or | |||
90 ms) according to the coder bitrate (2400, 1200, or 600 bps). For | 90 ms) according to the coder bitrate (2400, 1200, or 600 bps). For | |||
some applications, a longer packetization interval is used to reduce | some applications, a longer packetization interval is used to reduce | |||
the packet rate.</t> | the packet rate.</t> | |||
<t> | ||||
<t> | A TSVCIS RTP packet without coder and comfort noise frames <bcp14>MAY</bcp14> | |||
A TSVCIS RTP packet without coder and comfort noise frames MAY be | be | |||
used periodically by an endpoint to indicate connectivity by an | used periodically by an endpoint to indicate connectivity by an | |||
otherwise idle receiver.</t> | otherwise idle receiver.</t> | |||
<t> | ||||
<t> | TSVCIS coder frames in a single RTP packet <bcp14>MAY</bcp14> have varying TS | |||
TSVCIS coder frames in a single RTP packet MAY have varying TSVCIS | VCIS | |||
parameter octet counts. Its packed parameter octet count (length) is | parameter octet counts. Its packed parameter octet count (length) is | |||
indicated in the trailing byte(s). All MELPe frames in a single RTP | indicated in the trailing byte(s). All MELPe frames in a single RTP | |||
packet MUST be of the same coder bitrate. For all MELPe coder | packet <bcp14>MUST</bcp14> be of the same coder bitrate. For all MELPe coder | |||
frames, the coder rate bits in the trailing byte identify the | frames, the coder rate bits in the trailing byte identify the | |||
contents and length as per Table 1.</t> | contents and length as per <xref target="tab-1"/>.</t> | |||
<t> | ||||
<t> | ||||
It is important to observe that senders have the following additional | It is important to observe that senders have the following additional | |||
restrictions:</t> | restrictions:</t> | |||
<ul> | ||||
<t> | <li>Senders <bcp14>SHOULD NOT</bcp14> include more TSVCIS or MELPe frames in | |||
Senders SHOULD NOT include more TSVCIS or MELPe frames in a single | a single | |||
RTP packet than will fit in the MTU of the RTP transport protocol.</t> | RTP packet than will fit in the MTU of the RTP transport protocol.</li> | |||
<li> | ||||
<t> | Frames <bcp14>MUST NOT</bcp14> be split between RTP packets.</li> | |||
Frames MUST NOT be split between RTP packets.</t> | </ul> | |||
<t> | ||||
<t> | It is <bcp14>RECOMMENDED</bcp14> that the number of frames contained within a | |||
It is RECOMMENDED that the number of frames contained within an RTP packet | n RTP packet | |||
be consistent with the application. For example, in telephony and other | be consistent with the application. For example, in telephony and other | |||
real-time applications where delay is important, then the fewer frames per | real-time applications where delay is important, the fewer frames per | |||
packet the lower the delay, whereas for bandwidth-constrained links or | packet, the lower the delay. However, for bandwidth-constrained links or | |||
delay-insensitive streaming messaging applications, more than one frame per | delay-insensitive streaming messaging applications, more than one frame per | |||
packet or many frames per packet would be acceptable.</t> | packet or many frames per packet would be acceptable.</t> | |||
<t> | ||||
<t> | ||||
Information describing the number of frames contained in an RTP | Information describing the number of frames contained in an RTP | |||
packet is not transmitted as part of the RTP payload. The way to | packet is not transmitted as part of the RTP payload. The way to | |||
determine the number of TSVCIS/MELPe frames is to identify each frame | determine the number of TSVCIS/MELPe frames is to identify each frame | |||
type and length thereby counting the total number of octets within | type and length, thereby counting the total number of octets within | |||
the RTP packet.</t> | the RTP packet.</t> | |||
</section> | ||||
</section> | <section anchor="sect-3.4" numbered="true" toc="default"> | |||
<name>Congestion Control Considerations</name> | ||||
<section title="Congestion Control Considerations" anchor="sect-3.4"><t> | <t> | |||
The target bitrate of TSVCIS can be adjusted at any point in time, | The target bitrate of TSVCIS can be adjusted at any point in time, | |||
thus allowing congestion management. Furthermore, the amount of | thus allowing congestion management. Furthermore, the amount of | |||
encoded speech or audio data encoded in a single packet can be used | encoded speech or audio data encoded in a single packet can be used | |||
for congestion control, since the packet rate is inversely | for congestion control, since the packet rate is inversely | |||
proportional to the packet duration. A lower packet transmission | proportional to the packet duration. A lower packet transmission | |||
rate reduces the amount of header overhead but at the same time | rate reduces the amount of header overhead but at the same time | |||
increases latency and loss sensitivity, so it ought to be used | increases latency and loss sensitivity, so it ought to be used | |||
with care.</t> | with care.</t> | |||
<t> | ||||
<t> | ||||
Since UDP does not provide congestion control, applications that use | Since UDP does not provide congestion control, applications that use | |||
RTP over UDP SHOULD implement their own congestion control above the | RTP over UDP <bcp14>SHOULD</bcp14> implement their own congestion control abo | |||
UDP layer <xref target="RFC8085"/> and MAY also implement a transport circuit | ve the | |||
breaker <xref target="RFC8083"/>. Work in the RMCAT working group <xref targ | UDP layer <xref target="RFC8085" format="default"/> and <bcp14>MAY</bcp14> al | |||
et="RMCAT"/> describes | so implement a transport circuit | |||
breaker <xref target="RFC8083" format="default"/>. Work in the RMCAT Working | ||||
Group <xref target="RMCAT" format="default"/> describes | ||||
the interactions and conceptual interfaces necessary between the | the interactions and conceptual interfaces necessary between the | |||
application components that relate to congestion control, including | application components that relate to congestion control, including | |||
the RTP layer, the higher-level media codec control layer, and the | the RTP layer, the higher-level media codec control layer, and the | |||
lower-level transport interface, as well as components dedicated to | lower-level transport interface, as well as components dedicated to | |||
congestion control functions.</t> | congestion control functions.</t> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="sect-4" numbered="true" toc="default"> | ||||
</section> | <name>Payload Format Parameters</name> | |||
<t> | ||||
<section title="Payload Format Parameters" anchor="sect-4"><t> | ||||
This RTP payload format is identified using the TSVCIS media subtype, | This RTP payload format is identified using the TSVCIS media subtype, | |||
which is registered in accordance with RFC 4855 <xref target="RFC4855"/> and | which is registered in accordance with <xref target="RFC4855" format="default | |||
per the | "/> and per the | |||
media type registration template from RFC 6838 <xref target="RFC6838"/>.</t> | media type registration template from <xref target="RFC6838" format="default" | |||
/>.</t> | ||||
<section title="Media Type Definitions" anchor="sect-4.1"><t> | <section anchor="sect-4.1" numbered="true" toc="default"> | |||
<name>Media Type Definitions</name> | ||||
<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<dt>Type name:</dt> | ||||
<t hangText="Type name:"> audio</t> | <dd> audio</dd> | |||
<dt>Subtype name:</dt> | ||||
<t hangText="Subtype name:"> TSVCIS</t> | <dd> TSVCIS</dd> | |||
<dt>Required parameters:</dt> | ||||
<t hangText="Required parameters:"> N/A</t> | <dd>Clock Rate (Hz): 8000</dd> | |||
</dl> | ||||
<t hangText="Optional parameters:"> | <dl newline="true" spacing="normal"> | |||
<dt>Optional parameters:</dt> | ||||
<list style="hanging" hangIndent="6"> | <dd> | |||
<dl newline="true" spacing="normal"> | ||||
<dt>ptime:</dt> | ||||
<dd> the recommended length of time (in milliseconds) | ||||
represented by the media in a packet. It <bcp14>SHALL</bcp14> | ||||
use the nearest rounded-up ms integer packet duration. For | ||||
TSVCIS, this corresponds to the following values: 23, 45, 68, | ||||
90, 112, 135, 156, and 180. Larger values can be used as long | ||||
as they are properly rounded. See <xref target="RFC4566" | ||||
sectionFormat="of" section="6"/>.</dd> | ||||
<t hangText="ptime:"> the recommended length of time (in milliseconds) | <dt>maxptime:</dt> | |||
represented by the media in a packet. It SHALL use the nearest | <dd> the maximum length of time (in milliseconds) that can be | |||
rounded-up ms integer packet duration. For TSVCIS, this corresponds to | encapsulated in a packet. It <bcp14>SHALL</bcp14> use the | |||
the following values: 23, 45, 68, 90, 112, 135, 156, and 180. Larger | nearest rounded-up ms integer packet duration. For TSVCIS, this | |||
values can be used as long as they are properly rounded. See Section 6 | corresponds to the following values: 23, 45, 68, 90, 112, 135, | |||
of RFC 4566 <xref target="RFC4566"/>.</t> | 156, and 180. Larger values can be used as long as they are | |||
properly rounded. See <xref target="RFC4566" sectionFormat="of" | ||||
section="6"/>.</dd> | ||||
<t hangText="maxptime:"> the maximum length of time (in milliseconds) | <dt>bitrate:</dt> | |||
that can be encapsulated in a packet. It SHALL use the nearest | <dd> specifies the MELPe coder bitrates supported. Possible | |||
rounded-up ms integer packet duration. For TSVCIS, this corresponds to | values are a comma-separated list of rates from the following | |||
the following values: 23, 45, 68, 90, 112, 135, 156, and 180. Larger | set: 2400, 1200, 600. The modes are listed in order of | |||
values can be used as long as they are properly rounded. See Section 6 | preference; the first is preferred. If "bitrate" is not | |||
of RFC 4566 <xref target="RFC4566"/>.</t> | present, the fixed coder bitrate of 2400 <bcp14>MUST</bcp14> be | |||
used. </dd> | ||||
<t hangText="bitrate:"> specifies the MELPe coder bitrates supported. | <dt>tcmax:</dt> | |||
Possible values are a comma-separated list of rates from the following | <dd> specifies the TSVCIS maximum value for the TC supported or | |||
set: 2400, 1200, 600. The modes are listed in order of preference; first | desired, ranging from 1 to 255. If "tcmax" is not present, a | |||
is preferred. If "bitrate" is not present, the fixed coder bitrate of | default value of 35 is used.</dd> | |||
2400 MUST be used. </t> | <dt>Channels:</dt> | |||
<dd>1</dd> | ||||
</dl> | ||||
</dd></dl> | ||||
<dl newline="false" spacing="normal"> | ||||
<dt>Encoding considerations:</dt> | ||||
<dd> This media subtype is framed and binary; see <xref | ||||
target="RFC6838" sectionFormat="of" section="4.8"/>.</dd> | ||||
<dt>Security considerations:</dt> | ||||
<dd> Please see <xref target="sect-8"/> of RFC 8817.</dd> | ||||
<dt>Interoperability considerations:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Published specification:</dt> | ||||
<dd> | ||||
<xref target="TSVCIS" format="default"/></dd> | ||||
<dt>Applications that use this media type:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Fragment identifier considerations:</dt> | ||||
<dd>N/A</dd> | ||||
<t hangText="tcmax:"> specifies the TSVCIS maximum value for TC supported | <dt>Additional information:</dt><dd> | |||
or desired ranging from 1 to 255. If "tcmax" is not present, a default | <t><br/></t> | |||
value of 35 is used.</t> | <dl spacing="compact"> | |||
<dt>Deprecated alias names for this type:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Magic number(s):</dt> | ||||
<dd>N/A</dd> | ||||
<dt>File extension(s):</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Macintosh file type code(s):</dt> | ||||
<dd>N/A</dd> | ||||
</dl> | ||||
</dd> | ||||
</list> | <dt>Person & email address to contact for further information:</dt | |||
> | ||||
<dd><t><br/><contact fullname="Victor Demjanenko, Ph.D."/> | ||||
<victor.demjanenko@vocal.com> | ||||
</t> | </t> | |||
</dd> | ||||
<t hangText="Encoding considerations:"> This media subtype is framed and bi | <dt>Intended usage:</dt> | |||
nary; see | <dd>COMMON</dd> | |||
Section 4.8 of RFC 6838 <xref target="RFC6838"/>.</t> | <dt>Restrictions on usage:</dt> | |||
<dd> The media subtype depends on RTP | ||||
<t hangText="Security considerations:"> Please see Section 8 of RFC XXXX.</ | framing and hence is only defined for transfer via RTP <xref target="RFC35 | |||
t> | 50" format="default"/>. Transport within other framing protocols is not | |||
defined at this time.</dd> | ||||
<!-- [EDITOR NOTE - please replace XXXX with the RFC number of this document.] - | <dt>Author:</dt> | |||
-> | <dd><t><contact fullname="Victor Demjanenko, Ph.D."/></t></dd> | |||
<dt>Change controller:</dt> | ||||
<t hangText="Interoperability considerations:"> N/A</t> | <dd> IETF; contact <avt@ietf.org></dd> | |||
<dt>Provisional registration? (standards tree only):</dt> | ||||
<t hangText="Published specification:"> <xref target="TSVCIS"/></t> | <dd> No</dd> | |||
</dl> | ||||
<t hangText="Applications that use this media type:"> N/A</t> | </section> | |||
<section anchor="sect-4.2" numbered="true" toc="default"> | ||||
<t hangText="Fragment identifier considerations:"> N/A</t> | <name>Mapping to SDP</name> | |||
<t> | ||||
<t hangText="Additional information:"> | ||||
<list style="hanging" hangIndent="9"> | ||||
<?rfc subcompact="yes"?> | ||||
<t hangText="Clock Rate (Hz):"> 8000</t> | ||||
<t hangText="Channels:"> 1</t> | ||||
<?rfc subcompact="no"?> | ||||
</list> | ||||
</t> | ||||
<t hangText="Deprecated alias names for this type:"> N/A</t> | ||||
<t hangText="Magic number(s):"> N/A</t> | ||||
<t hangText="File extension(s):"> N/A</t> | ||||
<t hangText="Macintosh file type code(s):"> N/A</t> | ||||
<t hangText="Person & email address to contact for further information: | ||||
"> | ||||
<list> | ||||
<?rfc subcompact="yes"?> | ||||
<t>Victor Demjanenko, Ph.D.</t> | ||||
<t>VOCAL Technologies, Ltd.</t> | ||||
<t>520 Lee Entrance, Suite 202</t> | ||||
<t>Buffalo, NY 14228</t> | ||||
<t>United States of America</t> | ||||
<t>Phone: +1 716 688 4675</t> | ||||
<t>Email: victor.demjanenko@vocal.com</t> | ||||
<?rfc subcompact="no"?> | ||||
</list> | ||||
</t> | ||||
<t hangText="Intended usage:"> COMMON</t> | ||||
<t hangText="Restrictions on usage:"> The media subtype depends on RTP | ||||
framing and hence is only defined for transfer via RTP <xref | ||||
target="RFC3550"/>. Transport within other framing protocols is not | ||||
defined at this time.</t> | ||||
<t hangText="Author:">Victor Demjanenko</t> | ||||
<t hangText="Change controller:"> IETF, contact <avt@ietf.org></t> | ||||
<t hangText="Provisional registration? (standards tree only):"> No</t> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section title="Mapping to SDP" anchor="sect-4.2"><t> | ||||
The mapping of the above-defined payload format media subtype and its | The mapping of the above-defined payload format media subtype and its | |||
parameters SHALL be done according to Section 3 of RFC 4855 | parameters <bcp14>SHALL</bcp14> be done according to <xref target="RFC4855" s | |||
<xref target="RFC4855"/>.</t> | ectionFormat="of" section="3"/>.</t> | |||
<t> | ||||
<t> | ||||
The information carried in the media type specification has a | The information carried in the media type specification has a | |||
specific mapping to fields in the Session Description Protocol (SDP) | specific mapping to fields in the Session Description Protocol (SDP) | |||
<xref target="RFC4566"/>, which is commonly used to describe RTP sessions. W hen SDP | <xref target="RFC4566" format="default"/>, which is commonly used to describe RTP sessions. When SDP | |||
is used to specify sessions employing the TSVCIS codec, the mapping | is used to specify sessions employing the TSVCIS codec, the mapping | |||
is as follows:</t> | is as follows:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"><t>The media type ("audio") goes in SDP "m=" as | <li>The media type ("audio") goes in SDP "m=" as the media name.</li> | |||
the media name.</t> | <li>The media subtype (payload format name) goes in SDP "a=rtpmap" as | |||
the encoding name.</li> | ||||
<t>The media subtype (payload format name) goes in SDP "a=rtpmap" as | <li>The parameter "bitrate" goes in the SDP "a=fmtp" attribute by | |||
the encoding name.</t> | copying it as a "bitrate=<value>" string.</li> | |||
<li>The parameter "tcmax" goes in the SDP "a=fmtp" attribute by | ||||
<t>The parameter "bitrate" goes in the SDP "a=fmtp" attribute by | copying it as a "tcmax=<value>" string.</li> | |||
copying it as a "bitrate=<value>" string.</t> | <li>The parameters "ptime" and "maxptime" go in the SDP "a=ptime" and | |||
"a=maxptime" attributes, respectively.</li> | ||||
<t>The parameter "tcmax" goes in the SDP "a=fmtp" attribute by | </ul> | |||
copying it as a "tcmax=<value>" string.</t> | <t> | |||
When conveying information via SDP, the encoding name <bcp14>SHALL</bcp14> be | ||||
<t>The parameters "ptime" and "maxptime" go in the SDP "a=ptime" and | ||||
"a=maxptime" attributes, respectively.</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
When conveying information via SDP, the encoding name SHALL be | ||||
"TSVCIS" (the same as the media subtype).</t> | "TSVCIS" (the same as the media subtype).</t> | |||
<t> | ||||
<t> | ||||
An example of the media representation in SDP for describing TSVCIS | An example of the media representation in SDP for describing TSVCIS | |||
might be:</t> | might be:</t> | |||
<sourcecode type="sdp"><![CDATA[ | ||||
<figure><artwork><![CDATA[ | ||||
m=audio 49120 RTP/AVP 96 | m=audio 49120 RTP/AVP 96 | |||
a=rtpmap:96 TSVCIS/8000 | a=rtpmap:96 TSVCIS/8000 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | <t> | |||
<t> | The optional media type parameter "bitrate", when present, <bcp14>MUST</bcp14 | |||
The optional media type parameter "bitrate", when present, MUST be | > be | |||
included in the "a=fmtp" attribute in the SDP, expressed as a media | included in the "a=fmtp" attribute in the SDP, expressed as a media | |||
type string in the form of a semicolon-separated list of | type string in the form of a semicolon-separated list of | |||
parameter=value pairs. The string "value" can be one or more of | parameter=value pairs. The string "value" can be one or more of | |||
2400, 1200, and 600, separated by commas (where each bitrate value | 2400, 1200, and 600, separated by commas (where each bitrate value | |||
indicates the corresponding MELPe coder). An example of the media | indicates the corresponding MELPe coder). An example of the media | |||
representation in SDP for describing TSVCIS when all three coder | representation in SDP for describing TSVCIS when all three coder | |||
bitrates are supported might be:</t> | bitrates are supported might be:</t> | |||
<sourcecode type="sdp"><![CDATA[ | ||||
<figure><artwork><![CDATA[ | ||||
m=audio 49120 RTP/AVP 96 | m=audio 49120 RTP/AVP 96 | |||
a=rtpmap:96 TSVCIS/8000 | a=rtpmap:96 TSVCIS/8000 | |||
a=fmtp:96 bitrate=2400,600,1200 | a=fmtp:96 bitrate=2400,600,1200 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | <t> | |||
<t> | The optional media type parameter "tcmax", when present, <bcp14>MUST</bcp14> | |||
The optional media type parameter "tcmax", when present, MUST be | be | |||
included in the "a=fmtp" attribute in the SDP, expressed as a media | included in the "a=fmtp" attribute in the SDP, expressed as a media | |||
type string in the form of a semicolon-separated list of | type string in the form of a semicolon-separated list of | |||
parameter=value pairs. The string "value" is an integer number in | parameter=value pairs. The string "value" is an integer number in | |||
the range of 1 to 255 representing the maximum number of TSVCIS | the range of 1 to 255 representing the maximum number of TSVCIS | |||
parameter octets supported. An example of the media representation | parameter octets supported. An example of the media representation | |||
in SDP for describing TSVCIS with a maximum of 101 octets supported | in SDP for describing TSVCIS with a maximum of 101 octets supported | |||
is as follows:</t> | is as follows:</t> | |||
<sourcecode type="sdp"><![CDATA[ | ||||
<figure><artwork><![CDATA[ | ||||
m=audio 49120 RTP/AVP 96 | m=audio 49120 RTP/AVP 96 | |||
a=rtpmap:96 TSVCIS/8000 | a=rtpmap:96 TSVCIS/8000 | |||
a=fmtp:96 tcmax=101 | a=fmtp:96 tcmax=101 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | <t> | |||
<t> | ||||
The parameter "ptime" cannot be used for the purpose of specifying | The parameter "ptime" cannot be used for the purpose of specifying | |||
the TSVCIS operating mode, due to the fact that for certain values it | the TSVCIS operating mode due to the fact that, for certain values, it | |||
will be impossible to distinguish which mode is about to be used | will be impossible to distinguish which mode is about to be used | |||
(e.g., when ptime=68, it would be impossible to distinguish if the | (e.g., when ptime=68, it would be impossible to distinguish whether the | |||
packet is carrying one frame of 67.5 ms or three frames of 22.5 ms).</t> | packet is carrying one frame of 67.5 ms or three frames of 22.5 ms).</t> | |||
<t> | ||||
<t> | ||||
Note that the payload format (encoding) names are commonly shown in | Note that the payload format (encoding) names are commonly shown in | |||
upper case. Media subtypes are commonly shown in lower case. These | upper case. Media subtypes are commonly shown in lower case. These | |||
names are case insensitive in both places. Similarly, parameter | names are case insensitive in both places. Similarly, parameter | |||
names are case insensitive in both the media subtype name and the | names are case insensitive in both the media subtype name and the | |||
default mapping to the SDP a=fmtp attribute.</t> | default mapping to the SDP a=fmtp attribute.</t> | |||
</section> | ||||
</section> | <section anchor="sect-4.3" numbered="true" toc="default"> | |||
<name>Declarative SDP Considerations</name> | ||||
<section title="Declarative SDP Considerations" anchor="sect-4.3"><t> | <t> | |||
For declarative media, the "bitrate" parameter specifies the possible | For declarative media, the "bitrate" parameter specifies the possible | |||
bitrates used by the sender. Multiple TSVCIS rtpmap values (such as | bitrates used by the sender. Multiple TSVCIS rtpmap values (such as | |||
97, 98, and 99, as used below) MAY be used to convey TSVCIS-coded | 97, 98, and 99, as used below) <bcp14>MAY</bcp14> be used to convey TSVCIS-co ded | |||
voice at different bitrates. The receiver can then select an | voice at different bitrates. The receiver can then select an | |||
appropriate TSVCIS codec by using 97, 98, or 99.</t> | appropriate TSVCIS codec by using 97, 98, or 99.</t> | |||
<sourcecode type="sdp"><![CDATA[ | ||||
<figure><artwork><![CDATA[ | ||||
m=audio 49120 RTP/AVP 97 98 99 | m=audio 49120 RTP/AVP 97 98 99 | |||
a=rtpmap:97 TSVCIS/8000 | a=rtpmap:97 TSVCIS/8000 | |||
a=fmtp:97 bitrate=2400 | a=fmtp:97 bitrate=2400 | |||
a=rtpmap:98 TSVCIS/8000 | a=rtpmap:98 TSVCIS/8000 | |||
a=fmtp:98 bitrate=1200 | a=fmtp:98 bitrate=1200 | |||
a=rtpmap:99 TSVCIS/8000 | a=rtpmap:99 TSVCIS/8000 | |||
a=fmtp:99 bitrate=600 | a=fmtp:99 bitrate=600 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | <t> | |||
<t> | ||||
For declarative media, the "tcmax" parameter specifies the maximum | For declarative media, the "tcmax" parameter specifies the maximum | |||
number of TSVCIS packed parameter octets used by the sender or the | number of octets of TSVCIS packed parameters used by the sender or the | |||
sender's communications channel.</t> | sender's communications channel.</t> | |||
</section> | ||||
</section> | <section anchor="sect-4.4" numbered="true" toc="default"> | |||
<name>Offer/Answer SDP Considerations</name> | ||||
<section title="Offer/Answer SDP Considerations" anchor="sect-4.4"><t> | <t> | |||
In the Offer/Answer model <xref target="RFC3264"/>, "bitrate" is a bidirectio | In the Offer/Answer model <xref target="RFC3264" format="default"/>, "bitrate | |||
nal | " is a bidirectional | |||
parameter. Both sides MUST use a common "bitrate" value or values. | parameter. Both sides <bcp14>MUST</bcp14> use a common "bitrate" value or va | |||
lues. | ||||
The offer contains the bitrates supported by the offerer, listed in | The offer contains the bitrates supported by the offerer, listed in | |||
its preferred order. The answerer MAY agree to any bitrate by | its preferred order. The answerer <bcp14>MAY</bcp14> agree to any bitrate by | |||
listing the bitrate first in the answerer response. Additionally, | listing the bitrate first in the answerer response. Additionally, | |||
the answerer MAY indicate any secondary bitrate or bitrates that it | the answerer <bcp14>MAY</bcp14> indicate any secondary bitrate or bitrates th | |||
supports. The initial bitrate used by both parties SHALL be the | at it | |||
supports. The initial bitrate used by both parties <bcp14>SHALL</bcp14> be t | ||||
he | ||||
first bitrate specified in the answerer response.</t> | first bitrate specified in the answerer response.</t> | |||
<t> | <t> | |||
For example, if offerer bitrates are "2400,600" and answer bitrates | For example, if offerer bitrates are "2400,600" and answerer bitrates | |||
are "600,2400", the initial bitrate is 600. If other bitrates are | are "600,2400", the initial bitrate is 600. If other bitrates are | |||
provided by the answerer, any common bitrate between the offer and | provided by the answerer, any common bitrate between the offer and | |||
answer MAY be used at any time in the future. Activation of these | answer <bcp14>MAY</bcp14> be used at any time in the future. Activation of t hese | |||
other common bitrates is beyond the scope of this document.</t> | other common bitrates is beyond the scope of this document.</t> | |||
<t> | ||||
<t> | ||||
The use of a lower bitrate is often important for a case such as when | The use of a lower bitrate is often important for a case such as when | |||
one endpoint utilizes a bandwidth-constrained link (e.g., 1200 bps | one endpoint utilizes a bandwidth-constrained link (e.g., 1200 bps | |||
radio link or slower), where only the lower coder bitrate will work.</t> | radio link or slower), where only the lower coder bitrate will work.</t> | |||
<t> | ||||
<t> | In the Offer/Answer model <xref target="RFC3264" format="default"/>, "tcmax" | |||
In the Offer/Answer model <xref target="RFC3264"/>, "tcmax" is a bidirectiona | is a bidirectional | |||
l | parameter. Both sides <bcp14>SHOULD</bcp14> use a common "tcmax" value. The | |||
parameter. Both sides SHOULD use a common "tcmax" value. The offer | offer | |||
contains the tcmax supported by the offerer. The answerer MAY agree | contains the tcmax supported by the offerer. The answerer <bcp14>MAY</bcp14> | |||
to any tcmax equal or less than this value by stating the desired | agree | |||
tcmax in the answerer response. The answerer alternatively MAY | to any tcmax equal to or less than this value by stating the desired | |||
tcmax in the answerer response. The answerer alternatively <bcp14>MAY</bcp14 | ||||
> | ||||
identify its own tcmax and rely on TSVCIS ignoring any augmented data | identify its own tcmax and rely on TSVCIS ignoring any augmented data | |||
it cannot use.</t> | it cannot use.</t> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="sect-5" numbered="true" toc="default"> | ||||
</section> | <name>Discontinuous Transmissions</name> | |||
<t> | ||||
<section title="Discontinuous Transmissions" anchor="sect-5"><t> | ||||
A primary application of TSVCIS is for radio communications of voice | A primary application of TSVCIS is for radio communications of voice | |||
conversations, and discontinuous transmissions are normal. When | conversations, and discontinuous transmissions are normal. When | |||
TSVCIS is used in an IP network, TSVCIS RTP packet transmissions may | TSVCIS is used in an IP network, TSVCIS RTP packet transmissions may | |||
cease and resume frequently. RTP synchronization source (SSRC) | cease and resume frequently. RTP synchronization source (SSRC) | |||
sequence number gaps indicate lost packets to be filled by Packet | sequence number gaps indicate lost packets to be filled by Packet | |||
Loss Concealment (PLC), while abrupt loss of RTP packets indicates | Loss Concealment (PLC), while abrupt loss of RTP packets indicates | |||
intended discontinuous transmissions. Resumption of voice | intended discontinuous transmissions. Resumption of voice | |||
transmission SHOULD be indicated by the RTP marker bit (M) set to 1.</t> | transmission <bcp14>SHOULD</bcp14> be indicated by the RTP marker bit (M) set | |||
to 1.</t> | ||||
<t>If a TSVCIS coder so desires, it may send a MELPe comfort noise frame as | <t>If a TSVCIS coder so desires, it may send a MELPe comfort noise frame a | |||
per Appendix B of <xref target="SCIP210"/> prior to ceasing transmission. A | s | |||
per Appendix B of <xref target="SCIP210" format="default"/> prior to ceasing | ||||
transmission. A | ||||
receiver may optionally use comfort noise during its silence periods. No | receiver may optionally use comfort noise during its silence periods. No | |||
SDP negotiations are required. | SDP negotiations are required. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section anchor="sect-6" numbered="true" toc="default"> | |||
<name>Packet Loss Concealment</name> | ||||
<section title="Packet Loss Concealment" anchor="sect-6"><t> | <t> | |||
TSVCIS packet loss concealment (PLC) uses the special properties and | TSVCIS packet loss concealment (PLC) uses the special properties and | |||
coding for the pitch/voicing parameter of the MELPe 2400 bps coder. | coding for the pitch/voicing parameter of the MELPe 2400 bps coder. | |||
The PLC erasure indication utilizes any of the errored encodings of a | The PLC erasure indication utilizes any of the errored encodings of a | |||
non-voiced frame as identified in Table 1 of <xref target="MELPE"/>. For the sake of | non-voiced frame as identified in Table 1 of <xref target="MELPE" format="def ault"/>. For the sake of | |||
simplicity, it is preferred that a code value of 3 for the | simplicity, it is preferred that a code value of 3 for the | |||
pitch/voicing parameter be used. Hence, set bits P0 and P1 to one | pitch/voicing parameter be used. Hence, set bits P0 and P1 to one | |||
and bits P2, P3, P4, P5, and P6 to zero.</t> | and bits P2, P3, P4, P5, and P6 to zero.</t> | |||
<t> | ||||
<t> | ||||
When using PLC in 1200 bps or 600 bps mode, the MELPe 2400 bps | When using PLC in 1200 bps or 600 bps mode, the MELPe 2400 bps | |||
decoder is called three or four times, respectively, to cover the | decoder is called three or four times, respectively, to cover the | |||
loss of a low bitrate MELPe frame.</t> | loss of a low bitrate MELPe frame.</t> | |||
</section> | ||||
</section> | <section anchor="sect-7" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | ||||
<section title="IANA Considerations" anchor="sect-7"><t> | <t> | |||
This memo requests that IANA registers TSVCIS as specified in <xref target="s | IANA has registered TSVCIS as specified in <xref target="sect-4.1" | |||
ect-4.1"/>. The media type is also requested to be added to the IANA | format="default"/>. The media type has been added to the IANA | |||
registry for "RTP Payload Format MIME types" | registry for "RTP Payload Format Media Types" | |||
(<eref target="http://www.iana.org/assignments/rtp-parameters"/>).</t> | (<eref target="https://www.iana.org/assignments/rtp-parameters"/>).</t> | |||
</section> | ||||
</section> | <section anchor="sect-8" numbered="true" toc="default"> | |||
<name>Security Considerations</name> | ||||
<section title="Security Considerations" anchor="sect-8"><t> | <t> | |||
RTP packets using the payload format defined in this specification | RTP packets using the payload format defined in this specification | |||
are subject to the security considerations discussed in the RTP | are subject to the security considerations discussed in the RTP | |||
specification <xref target="RFC3550"/> and in any applicable RTP profile such | specification <xref target="RFC3550" format="default"/> and in any applicable | |||
as | RTP profile such as | |||
RTP/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP | RTP/AVP <xref target="RFC3551" format="default"/>, RTP/AVPF <xref target="RFC | |||
<xref target="RFC3711"/>, or | 4585" format="default"/>, RTP/SAVP <xref target="RFC3711" format="default"/>, or | |||
RTP/SAVPF <xref target="RFC5124"/>. However, as discussed in <xref target="R | RTP/SAVPF <xref target="RFC5124" format="default"/>. However, as discussed i | |||
FC7202"/>, it is not | n <xref target="RFC7202" format="default"/>, it is not | |||
an RTP payload format's responsibility to discuss or mandate what | an RTP payload format's responsibility to discuss or mandate what | |||
solutions are used to meet such basic security goals as | solutions are used to meet such basic security goals as | |||
confidentiality, integrity, and source authenticity for RTP in | confidentiality, integrity, and source authenticity for RTP in | |||
general. This responsibility lies with anyone using RTP in an | general. This responsibility lies with anyone using RTP in an | |||
application. They can find guidance on available security mechanisms | application. They can find guidance on available security mechanisms | |||
and important considerations in <xref target="RFC7201"/>. Applications SHOUL D use | and important considerations in <xref target="RFC7201" format="default"/>. A pplications <bcp14>SHOULD</bcp14> use | |||
one or more appropriate strong security mechanisms. The rest of this | one or more appropriate strong security mechanisms. The rest of this | |||
section discusses the security-impacting properties of the payload | section discusses the security-impacting properties of the payload | |||
format itself.</t> | format itself.</t> | |||
<t> | ||||
<t> | ||||
This RTP payload format and the TSVCIS decoder, to the best of our | This RTP payload format and the TSVCIS decoder, to the best of our | |||
knowledge, do not exhibit any significant non-uniformity in the | knowledge, do not exhibit any significant non-uniformity in the | |||
receiver-side computational complexity for packet processing and thus | receiver-side computational complexity for packet processing and thus | |||
are unlikely to pose a denial-of-service threat due to the receipt of | are unlikely to pose a denial-of-service threat due to the receipt of | |||
pathological data. Additionally, the RTP payload format does not | pathological data. Additionally, the RTP payload format does not | |||
contain any active content.</t> | contain any active content.</t> | |||
<t> | ||||
<t> | Please see the security considerations discussed in <xref target="RFC6562" fo | |||
Please see the security considerations discussed in <xref target="RFC6562"/> | rmat="default"/> | |||
regarding Voice Activity Detect (VAD) and its effect on bitrates.</t> | regarding Voice Activity Detect (VAD) and its effect on bitrates.</t> | |||
</section> | ||||
</section> | </middle> | |||
<back> | ||||
</middle> | <references> | |||
<name>References</name> | ||||
<back> | <references> | |||
<references title="Normative References"> | <name>Normative References</name> | |||
&RFC2119; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8174; | FC.2119.xml"/> | |||
&RFC2736; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8088; | FC.8174.xml"/> | |||
&RFC3264; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC3550; | FC.2736.xml"/> | |||
&RFC3551; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8130; | FC.8088.xml"/> | |||
&RFC3711; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC4566; | FC.3264.xml"/> | |||
&RFC4855; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC5124; | FC.3550.xml"/> | |||
&RFC6562; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC6838; | FC.3551.xml"/> | |||
&RFC8083; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8085; | FC.8130.xml"/> | |||
<reference anchor="NRLVDR"><front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<title>Universal Vocoder Using Variable Data Rate Vocoding</title> | FC.3711.xml"/> | |||
<author initials="D." surname="Heide" fullname="D. Heide"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.4566.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<author initials="A." surname="Cohen" fullname="A. Cohen"> | FC.4855.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
FC.5124.xml"/> | ||||
<author initials="Y." surname="Lee" fullname="Y. Lee"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.6562.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
<author initials="T." surname="Moran" fullname="T. Moran"> | FC.6838.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
FC.8083.xml"/> | ||||
<date month="June" year="2013"/> | <xi:include | |||
</front> | href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8085.x | |||
ml"/> | ||||
<seriesInfo name="Naval Research Lab" value="NRL/FR/5555-13-10, 239"/> | <reference anchor="NRLVDR"> | |||
</reference> | <front> | |||
<reference anchor="MELP"><front> | <title>Universal Vocoder Using Variable Data Rate Vocoding</title> | |||
<title>Analog-to-Digital Conversion of Voice by 2,400 Bit/Second Mixed Ex | <seriesInfo name="DOI" value="10.21236/ada588068"/> | |||
citation Linear Prediction (MELP)</title> | <seriesInfo name="Naval Research Lab" value="NRL/FR/5555--13-10, 239 | |||
<author> | "/> | |||
<organization>Department of Defense Telecommunications Standard</organiza | <author initials="D." surname="Heide" fullname="David Heide"> | |||
tion> | ||||
</author> | ||||
<date month="December" year="1999"/> | ||||
</front> | ||||
<seriesInfo name="" value="MIL-STD-3005"/> | ||||
</reference> | ||||
<reference anchor="MELPE"><front> | ||||
<title>The 600 Bit/S, 1200 Bit/S and 2400 Bit/S NATO Interoperable Narrow | ||||
Band Voice Coder</title> | ||||
<author> | ||||
<organization>North Atlantic Treaty Organization (NATO)</organization> | ||||
</author> | </author> | |||
<author initials="A." surname="Cohen" fullname="Aaron Cohen"> | ||||
<date month="January" year="2006"/> | ||||
</front> | ||||
<seriesInfo name="STANAG" value="No. 4591"/> | ||||
</reference> | ||||
<reference anchor="SCIP210"><front> | ||||
<title>SCIP Signaling Plan</title> | ||||
<author> | ||||
<organization>National Security Agency</organization> | ||||
</author> | </author> | |||
<author initials="Y." surname="Lee" fullname="Yvette Lee"> | ||||
<date month="December" year="2007"/> | ||||
</front> | ||||
<seriesInfo name="" value="SCIP-210"/> | ||||
</reference> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<reference anchor="TSVCIS"><front> | ||||
<title>Tactical Secure Voice Cryptographic Interoperability Specification | ||||
(TSVCIS) Version 3.1</title> | ||||
<author> | ||||
<organization>National Security Agency</organization> | ||||
</author> | </author> | |||
<author initials="T." surname="Moran" fullname="Thomas Moran"> | ||||
<date month="March" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="NSA" value="09-01A"/> | ||||
</reference> | ||||
&RFC4585; | ||||
&RFC7201; | ||||
&RFC7202; | ||||
<reference anchor="RMCAT" target="https://datatracker.ietf.org/wg/rmcat/a | ||||
bout/"><front> | ||||
<title>RTP Media Congestion Avoidance Techniques (rmcat) Working Group</t | ||||
itle> | ||||
<author> | ||||
<organization>IETF</organization> | ||||
</author> | </author> | |||
<date month="June" year="2013"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MELP"> | ||||
<front> | ||||
<title>Analog-to-Digital Conversion of Voice by 2,400 Bit/Second Mix | ||||
ed Excitation Linear Prediction (MELP)</title> | ||||
<seriesInfo name="Department of Defense Telecommunications Standard" | ||||
value="MIL-STD-3005"/> | ||||
<author> | ||||
<organization>Department of Defense</organization> | ||||
</author> | ||||
<date month="December" year="1999"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MELPE"> | ||||
<front> | ||||
<title>The 600 Bit/S, 1200 Bit/S and 2400 Bit/S NATO Interoperable N | ||||
arrow Band Voice Coder</title> | ||||
<seriesInfo name="STANAG" value="No. 4591"/> | ||||
<author> | ||||
<organization>North Atlantic Treaty Organization (NATO)</organizat | ||||
ion> | ||||
</author> | ||||
<date month="October" year="2008"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="SCIP210"> | ||||
<front> | ||||
<title>SCIP Signaling Plan</title> | ||||
<author> | ||||
<organization>National Security Agency</organization> | ||||
</author> | ||||
<date month="January" year="2013"/> | ||||
</front> | ||||
<refcontent>SCIP-210</refcontent> | ||||
</reference> | ||||
</references> | ||||
<date/> | <references> | |||
</front> | <name>Informative References</name> | |||
<reference anchor="TSVCIS"> | ||||
</reference> | <front> | |||
</references> | <title>Tactical Secure Voice Cryptographic Interoperability Specific | |||
</back> | ation (TSVCIS) Version 3.1</title> | |||
<seriesInfo name="NSA" value="09-01A"/> | ||||
</rfc> | <author> | |||
<organization>National Security Agency</organization> | ||||
</author> | ||||
<date month="March" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4585.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7201.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7202.xml"/> | ||||
<reference anchor="RMCAT" target="https://datatracker.ietf.org/wg/rmcat/ | ||||
about/"> | ||||
<front> | ||||
<title>RTP Media Congestion Avoidance Techniques (rmcat) Working Gro | ||||
up</title> | ||||
<author> | ||||
<organization>IETF</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
</back> | ||||
</rfc> | ||||
End of changes. 117 change blocks. | ||||
683 lines changed or deleted | 701 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |