RFC 4298
RTP Payload Format for BroadVoice Speech Codecs
RFC 4298: RTP Payload Format for BroadVoice Speech Codecs π
Okay bestie, let's start with the title block π This is RFC 4298, and it's on the Standards Track π₯. It was written by J.-H. Chen, W. Lee, and J. Thyssen, all from Broadcom Corporation, and it's dated December 2005 πΈ. The title block doesn't say it obsoletes or updates anything, so it's a fresh one β¨.
Status of This Memo π
This is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements π«Ά. If you want the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited π.
Copyright Notice Β©οΈ
Copyright (C) The Internet Society (2005) π
Abstract π¦
So this doc is all about the RTP payload format for the BroadVoice(R) narrowband and wideband speech codecs π. The narrowband one is called BroadVoice16, or BV16, and CableLabs picked it as a mandatory codec in PacketCable 1.5, with a CableLabs specification to match π. The doc also gives you the specs for using BroadVoice with MIME and the Session Description Protocol (SDP) π.
Table of Contents π§
1. Introduction ....................................................2
2. Background ......................................................2
3. RTP Payload Format for BroadVoice16 Narrowband Codec ............3
3.1. BroadVoice16 Bit Stream Definition .........................4
3.2. Multiple BroadVoice16 Frames in an RTP Packet ..............5
4. RTP Payload Format for BroadVoice32 Wideband Codec ..............6
4.1. BroadVoice32 Bit Stream Definition .........................6
4.2. Multiple BroadVoice32 Frames in an RTP Packet ..............8
5. IANA Considerations .............................................8
5.1. MIME Registration of BroadVoice16 for RTP ..................9
5.2. MIME Registration of BroadVoice32 for RTP ..................9
6. Mapping to SDP Parameters ......................................10
6.1. Offer-Answer Model Considerations .........................11
7. Security Considerations ........................................11
8. Congestion Control .............................................11
9. Acknowledgements ...............................................11
10. References ....................................................12
10.1. Normative References .....................................12
10.2. Informative References ...................................12
1. Introduction β¨
This doc specifies the payload format for sending BroadVoice encoded speech or audio signals using the Real-time Transport Protocol (RTP) [1] π§. The sender can send one or more BroadVoice codec data frames per packet, depending on the application scenario, based on network conditions, bandwidth availability, delay requirements, and packet-loss tolerance π .
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [2] π₯.
2. Background πΈ
BroadVoice is a speech codec family built for VoIP (Voice over Internet Protocol) applications, like Voice over Cable, Voice over DSL, and IP phones π. It gets high speech quality with a low coding delay and relatively low codec complexity, which is honestly iconic π.
The BroadVoice codec family has two versions. The narrowband one, BroadVoice16 [3] (or BV16 for short), encodes 8 kHz-sampled narrowband speech at a bit rate of 16 kilobits/second, or 16 kbit/s π. The wideband one, BroadVoice32 (or BV32 for short), encodes 16 kHz-sampled wideband speech at 32 kbit/s β¨. BV16 and BV32 use very similar (but not identical) coding algorithms, and they share most of their algorithm modules π«Ά.
To keep delay down in real-time two-way calls, both BV16 and BV32 encode speech with a super small frame size of 5 ms and no look ahead π. Since you can use a packet size as small as 5 ms when needed, BroadVoice-based VoIP systems can get a really low end-to-end system delay π¦.
BroadVoice also has relatively low codec complexity next to ITU-T standard speech codecs based on CELP (Coded Excited Linear Prediction), like G.728, G.729, G.723.1, and G.722.2 π . Full-duplex BV16 and BV32 take around 12 and 17 MIPS, respectively, on general-purpose 16-bit fixed-point digital signal processors (DSPs) π₯. Their total memory footprints, including program size, data tables, and data RAM, are around 12 kwords each, or 24 kbytes π.
The PacketCable(TM) project of Cable Television Laboratories, Inc. (CableLabs(R)) picked BV16 for VoIP telephone services from cable operators π. Specifically, BV16 was selected as one of the mandatory audio codecs in the PacketCable(TM) 1.5 Audio/Video Codecs Specification [8], and multiple vendors have implemented it π. The wideband version, BV32, was developed by Broadcom but hasn't shown up in a public specification yet. Since it's technically very similar to BV16, its payload format is defined in this doc too π§.
3. RTP Payload Format for BroadVoice16 Narrowband Codec π
BroadVoice16 uses 5 ms frames and an 8 kHz sampling frequency, so the RTP timestamp MUST be in units of 1/8000 of a second β°. The RTP timestamp marks the sampling instant of the oldest audio sample in the frame(s) inside the payload πΈ. The RTP payload for BroadVoice16 looks like the figure below, and no extra header specific to this payload format is required π.
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 [1] |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| |
| one or more frames of BroadVoice16 |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
If BroadVoice16 is used in apps with silence compression, the first BroadVoice16 packet after a silence period (where packets weren't sent contiguously) SHOULD have the marker bit in the RTP data header set to one π. Every other packet has the marker bit set to zero π. Apps without silence suppression MUST set the marker bit to zero π«Ά.
The assignment of an RTP payload type for this new packet format is outside the scope of this doc, so it won't be specified here π¦. It's expected that the RTP profile for a particular class of applications will assign a payload type for this encoding. If that doesn't happen, then a payload type in the dynamic range shall be chosen β¨.
3.1. BroadVoice16 Bit Stream Definition π
The BroadVoice16 encoder works on speech frames of 5 ms, which is 40 samples at a sampling rate of 8000 samples per second π§. For every 5 ms frame, the encoder turns those 40 consecutive audio samples into 80 bits, or 10 octets π₯. So the 80-bit bit stream BroadVoice16 makes for each 5 ms frame is octet-aligned, and no padding bits are required π . Here's the bit allocation for the encoded parameters of the BroadVoice16 codec π:
Encoded Parameter Codeword Number of bits per frame
------------------------------------------------------------
Line Spectrum Pairs L0,L1 7+7=14
Pitch Lag PL 7
Pitch Gain PG 5
Log-Gain LG 4
Excitation Vectors V0,...,V9 5*10=50
------------------------------------------------------------
Total: 80 bits
The mapping of the encoded parameters in an 80-bit BroadVoice16 data frame is shown in the figure below π¦. It shows the bit packing in "network byte order", also known as big-endian order. The bits of each 32-bit word are numbered 0 to 31, with the most significant bit on the left and numbered 0 π. Each word's octets (bytes) are sent most significant octet first π. The bits of each encoded parameter's data field are numbered in the same order, with the most significant bit on the left πΈ.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L0 | L1 | PL | PG | LG | V0|
| | | | | | |
|0 1 2 3 4 5 6|0 1 2 3 4 5 6|0 1 2 3 4 5 6|0 1 2 3 4|0 1 2 3|0 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V0 | V1 | V2 | V3 | V4 | V5 | V6 |
| | | | | | | |
|2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V| V7 | V8 | V9 |
|6| | | |
|4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: BroadVoice16 bit packing
3.2. Multiple BroadVoice16 Frames in an RTP Packet π
A sender MAY put more than one BroadVoice16 frame in a single RTP packet π. Senders have these extra restrictions:
- SHOULD NOT include more BroadVoice16 frames in a single RTP packet than will fit in the MTU of the RTP β¨.
- MUST NOT split a BroadVoice16 frame between RTP packets π.
- BroadVoice16 frames in an RTP packet MUST be consecutive π«Ά.
Since multiple BroadVoice16 frames in an RTP packet MUST be consecutive, and BroadVoice16 has a fixed frame size of 5 ms, figuring out the timestamps of all frames in a packet is easy π§. The oldest frame in an RTP packet has the same timestamp as the RTP packet, as mentioned above π. To get the timestamp of the frame that's N frames later than the oldest one in the packet, you just add 5*N ms worth of time units to the RTP packet's timestamp π .
It is RECOMMENDED that the number of frames in an RTP packet be consistent with the application π. For example, in a telephony app where delay matters, fewer frames per packet means lower delay π. But for a delay-insensitive streaming or messaging app, lots of frames per packet would be fine π¦.
The number of frames in an RTP packet isn't sent as part of the RTP payload π. The only way to figure out how many BroadVoice16 frames there are is to count the total number of octets in the RTP payload and divide that octet count by 10 π. Bestie, that's the core of it π More parts are coming, so keep an eye out β¨
4. RTP Payload Format for BroadVoice32 Wideband Codec β¨
okay so BroadVoice32 uses 5 ms frames at a 16 kHz sampling frequency π, which means the RTP timestamp MUST be in units of 1/16000 of a second. The RTP timestamp tells you the sampling instant of the oldest audio sample in the frame(s) inside the payload. Here's how the BroadVoice32 payload is laid out π¦. No additional header specific to this payload format is required π .
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 [1] |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| |
| one or more frames of BroadVoice32 |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
bestie, listen π if BroadVoice32 is used in an app with silence compression, the first BroadVoice32 packet after a silence period (where packets weren't sent back to back) SHOULD have the marker bit in the RTP data header set to one πΈ. Every other packet has the marker bit set to zero. Apps without silence suppression MUST set the marker bit to zero π.
the RTP payload type for this packet format is outside the scope of this doc, so it won't be specified here π§. It's expected that the RTP profile for a particular class of apps will assign a payload type for this encoding. If that doesn't happen, then a payload type in the dynamic range shall be chosen π.
4.1. BroadVoice32 Bit Stream Definition
the BroadVoice32 encoder works on speech frames of 5 ms, which is 80 samples at 16000 samples per second π. For every 5 ms frame, those 80 consecutive audio samples get encoded into 160 bits, or 20 octets. The 160-bit stream for each frame is octet-aligned, so no padding bits are needed β¨. Here's how the bits get allocated to each encoded parameter π.
Number of bits
Encoded Parameter Codeword per frame
---------------------------------------------------------------
Line Spectrum Pairs L0,L1,L2 7+5+5=17
Pitch Lag PL 8
Pitch Gain PG 5
Log-Gains (1st & 2nd subframes) LG0,LG1 5+5=10
Excitation Vectors (1st subframe) VA0,...,VA9 6*10=60
Excitation Vectors (2nd subframe) VB0,...,VB9 6*10=60
---------------------------------------------------------------
Total: 160 bits
the mapping of the encoded parameters inside a 160-bit BroadVoice32 data frame is shown in the figure below π«Ά. It uses "network byte order", also called big-endian order. Each 32-bit word has its bits numbered 0 to 31, with the most significant bit on the left and numbered 0 π. The octets (bytes) of each word go out most significant octet first. The bits in each encoded parameter's data field are numbered in the same order, with the most significant bit on the left π.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L0 | L1 | L2 | PL | PG |LG0|
| | | | | | |
|0 1 2 3 4 5 6|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4 5 6 7|0 1 2 3 4|0 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LG0 | LG1 | VA0 | VA1 | VA2 | VA3 |
| | | | | | |
|2 3 4|0 1 2 3 4|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VA4 | VA5 | VA6 | VA7 | VA8 |VA9|
| | | | | | |
|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VA9 | VB0 | VB1 | VB2 | VB3 | VB4 |
| | | | | | |
|2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|VB4| VB5 | VB6 | VB7 | VB8 | VB9 |
| | | | | | |
|4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: BroadVoice32 bit packing
4.2. Multiple BroadVoice32 Frames in an RTP Packet
a sender MAY put more than one BroadVoice32 frame in a single RTP packet π¦. There are a few extra rules senders have to follow, though π:
- senders SHOULD NOT include more BroadVoice32 frames in one RTP packet than will fit in the MTU of the RTP πΈ.
- senders MUST NOT split a BroadVoice32 frame between RTP packets π .
- BroadVoice32 frames in an RTP packet MUST be consecutive π₯.
okay this part is so easy π. Because the frames in a packet MUST be consecutive, and BroadVoice32 has a fixed frame size of 5 ms, figuring out the timestamps of every frame in a packet is simple π§. The oldest frame in a packet has the same timestamp as the RTP packet, as we said earlier. To get the timestamp of the frame N frames after the oldest one, you just add 5*N ms worth of time units to the RTP packet's timestamp β¨.
It is RECOMMENDED that the number of frames in an RTP packet fit the application π. For example, in a telephony app where delay matters, fewer frames per packet means lower delay. For a delay-insensitive streaming or messaging app, lots of frames per packet would be fine π.
the number of frames in an RTP packet is NOT sent as part of the RTP payload, so there's no field for it π. The only way to figure out how many BroadVoice32 frames there are is to count the total octets in the RTP payload and divide that octet count by 20 π.
5. IANA Considerations π
two new MIME sub-types, described in this section, have been registered π¦.
the MIME names for the BV16 and BV32 codecs were allocated from the IETF tree, since these two codecs are expected to be widely used for Voice-over-IP apps, especially Voice over Cable apps π«Ά.
5.1. MIME Registration of BroadVoice16 for RTP
MIME media type name: audio
MIME media subtype name: BV16
Required parameter: none
Optional parameters:
ptime: Defined as usual for RTP audio (see RFC 2327 [4]).
maxptime: See RFC 3267 [7] for its definition. The maxptime
SHOULD be a multiple of the duration of a single codec data
frame (5 ms).
Encoding considerations:
This type is defined for transferring BV16-encoded data via RTP
using the payload format specified in Section 3 of RFC 4298.
Audio data is binary data and must be encoded for non-binary
transport; the Base64 encoding is suitable for Email.
Security considerations:
See Section 7 "Security Considerations" of RFC 4298.
Public specification:
The BroadVoice16 codec has been specified in [3].
Intended usage:
COMMON. It is expected that many VoIP applications, especially
Voice over Cable applications, will use this type.
Person & email address to contact for further information:
Juin-Hwey (Raymond) Chen
rchen@broadcom.com
Author/Change controller:
Author: Juin-Hwey (Raymond) Chen, rchen@broadcom.com
Change Controller: IETF Audio/Video Transport Working Group
delegated from the IESG
5.2. MIME Registration of BroadVoice32 for RTP
MIME media type name: audio
MIME media subtype name: BV32
Required parameter: none
Optional parameters:
ptime: Defined as usual for RTP audio (see RFC 2327 [4]).
maxptime: See RFC 3267 [7] for its definition. The maxptime
SHOULD be a multiple of the duration of a single codec data
frame (5 ms).
Encoding considerations:
This type is defined for transferring BV32-encoded data via RTP
using the payload format specified in Section 4 of RFC 4298.
Audio data is binary data and must be encoded for non-binary
transport; the Base64 encoding is suitable for Email.
Security considerations:
See Section 7 "Security Considerations" of RFC 4298.
Intended usage:
COMMON. It is expected that many VoIP applications, especially
Voice over Cable applications, will use this type.
Person & email address to contact for further information:
Juin-Hwey (Raymond) Chen
rchen@broadcom.com
Author/Change controller:
Author: Juin-Hwey (Raymond) Chen, rchen@broadcom.com
Change Controller: IETF Audio/Video Transport Working Group
delegated from the IESG
6. Mapping to SDP Parameters πΈ
the info in the MIME media type spec maps to specific fields in the Session Description Protocol (SDP) [4], which is commonly used to describe RTP sessions π. When SDP describes a session using BroadVoice16 or BroadVoice32, the mapping goes like this:
- the MIME type ("audio") goes in SDP "m=" as the media name π.
- the MIME subtype (payload format name) goes in SDP "a=rtpmap" as the encoding name. The RTP clock rate in "a=rtpmap" MUST be 8000 for BV16 and 16000 for BV32 β¨.
- the parameters "ptime" and "maxptime" go in the SDP "a=ptime" and "a=maxptime" attributes, respectively π¦.
here's what the SDP media representation for BV16 might look like π§:
m=audio 49120 RTP/AVP 97
a=rtpmap:97 BV16/8000
and here's one for BV32 π:
m=audio 49122 RTP/AVP 99
a=rtpmap:99 BV32/16000
6.1. Offer-Answer Model Considerations
no special considerations are needed for using the SDP Offer/Answer model [5] with the BV16 and BV32 RTP payload formats π«Ά.
7. Security Considerations π₯
RTP packets using the payload format defined in this spec are subject to the security considerations discussed in the RTP specification [1] and any appropriate profile (for example, [6]) π. This means confidentiality of the media streams is achieved by encryption π.
okay, this one's a little spicy π. There's a potential denial-of-service threat for data encoding that uses compression techniques with non-uniform receiver-end computational load π. An attacker can inject pathological datagrams into the stream that are complex to decode, and that can overload the receiver. The good news is that the encodings covered in this document do not show any significant non-uniformity πβ¨.
8. Congestion Control β¨
okay so bestie, congestion control is the stuff that keeps the network from getting flooded π, and the general rules for RTP data totally apply to BV16 and BV32 audio too π (check out RTP [1] and any RTP profile you're using, like AVP [6]). The tea is that BV16 and BV32 don't have a built-in way to lower their bandwidth π₯². What you can do is pack more frames into each RTP payload π¦. That means fewer packets get sent, so you save on the IP/UDP/RTP header overhead, BUT the trade-off is more delay and less protection when packets get lost π. It's a whole vibe check, honestly π .
9. Acknowledgements
the authors wanted to shout out Magnus Westerlund, Colin Perkins, Allison Mankin, and Jean-Francois Mule for reviewing this document π«Άπ. iconic of them π.
10. References
10.1. Normative References
[1] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[3] Cable Television Laboratories, Inc., BroadVoice(TM)16 Speech Codec Specification, Revision 1.2, October 30, 2003.
[4] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998.
[5] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.
[6] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, July 2003.
[7] Sjoberg, J., Westerlund, M., Lakaniemi, A., and Q. Xie, "Real-Time Transport Protocol (RTP) Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs", RFC 3267, June 2002.
10.2. Informative References
[8] Cable Television Laboratories, Inc., PacketCable(TM) 1.5 Audio/Video Codecs Specification, PKT-SP-CODEC1.5-I01-050128, January 28, 2005. http://www.cablelabs.com/specifications/archives/
Authors' Addresses
Juin-Hwey (Raymond) Chen Broadcom Corporation Room A3020 16215 Alton Parkway Irvine, CA 92618 USA
Phone: +1 949 926 6288 EMail: rchen@broadcom.com
Winnie Lee Broadcom Corporation Room A2012E 200-13711 International Place Richmond, British Columbia V6V 2Z8 Canada
Phone: +1 604 233 8605 EMail: wlee@broadcom.com
Jes Thyssen Broadcom Corporation Room A3018 16215 Alton Parkway Irvine, CA 92618 USA
Phone: +1 949 926 5768 EMail: jthyssen@broadcom.com
Full Copyright Statement
Copyright (C) The Internet Society (2005) π.
this document is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights π.
the document and everything in it is provided on an "AS IS" basis, and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE π.
Intellectual Property
ngl this part is about who owns what π§Ύ. the IETF doesn't take a side on whether any Intellectual Property Rights (or other rights) that someone might claim over the tech in this document are valid or how far they reach. it also doesn't say it has searched for any of those rights π. the rules for rights in RFC documents live in BCP 78 and BCP 79.
copies of IPR disclosures sent to the IETF Secretariat, plus any assurances of licenses, or the results of trying to get a general license or permission for implementers or users, can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr.
the IETF also invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. send that info to the IETF at ietf-ipr@ietf.org π¨π¦.
Acknowledgement
Funding for the RFC Editor function is currently provided by the Internet Society π. and that's a wrap on BroadVoice bestie, periodt πβ¨.
π¦ where this page comes from
- ietf: rfc4298 2005-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms