RFC Errata
Found 3 records.
Status: Verified (3)
RFC 4867, "RTP Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs", April 2007
Source of RFC: avt (rai)
Errata ID: 4347
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Thomas Belling
Date Reported: 2015-04-27
Verifier Name: Ben Campbell
Date Verified: 2016-05-25
Section 4.3.1 says:
CMR (4 bits): Indicates a codec mode request sent to the speech encoder at the site of the receiver of this payload. The value of the CMR field is set to the frame type index of the corresponding speech mode being requested. The frame type index may be 0-7 for AMR, as defined in Table 1a in [2], or 0-8 for AMR-WB, as defined in Table 1a in [4]. CMR value 15 indicates that no mode request is present, and other values are for future use. The codec mode request received in the CMR field is valid until the next codec mode request is received, i.e., a newly received CMR value corresponding to a speech mode, or NO_DATA overrides the previously received CMR value corresponding to a speech mode or NO_DATA. Therefore, if a terminal continuously wishes to receive frames in the same mode X, it needs to set CMR=X for all its outbound payloads, and if a terminal has no preference in which mode to receive, it SHOULD set CMR=15 in all its outbound payloads. If receiving a payload with a CMR value that is not a speech mode or NO_DATA, the CMR MUST be ignored by the receiver.
It should say:
CMR (4 bits): Indicates a codec mode request sent to the speech encoder at the site of the receiver of this payload. The value of the CMR field is set to the frame type index of the corresponding speech mode being requested. The frame type index may be 0-7 for AMR, as defined in Table 1a in [2], or 0-8 for AMR-WB, as defined in Table 1a in [4]. CMR value 15 indicates that the receiver has no preference in which mode within the negotiated mode set to receive, and other values are for future use. The codec mode request received in the CMR field is valid until the next codec mode request is received, i.e., a newly received CMR value corresponding to a speech mode, or CMR=15 overrides the previously received CMR value corresponding to a speech mode or CMR=15. Therefore, if a terminal continuously wishes to receive frames not higher than mode X, it needs to set CMR=X for all its outbound payloads, and if a terminal has no preference in which mode within the negotiated mode set to receive, it SHOULD set CMR=15 in all its outbound payloads. If receiving a payload with a CMR value that is not a speech mode or CMR=15, the CMR MUST be ignored by the receiver.
Notes:
The definition of CMR 15 as "no mode request is present", could be understood to suggest that other previously received CMR values remain applicable. However, this contradicts text in the subsequent paragraphs suggesting CMR=15 should be used when the "terminal has no preference in which mode to receive", and stating that any previously received CMR value is overridden by CMR=15.
It is thus unclear for a receiving entity that has previously received a CMR value requesting a lower AMR mode and then receives a CMR value 15 if it should continue to send using the lower AMR mode or if it can select a higher mode within the negotiated mode set based on own preferences.
CMR 15 is referred to as "NO_DATA" in subsequent text, but "NO_DATA" is not well defined. This value appears in the quoted references, but these references are only quoted for CMR values 0 to 7/8.
It is also not perfectly clear if CMR=15 allows for any mode, or only modes within the negotiated mode set. However, the definition of the mode-set parameter in Clause 8.1 suggests that only modes within the negotiated mode-set can be sent when a mode-set has been negotiated.
The text "if a terminal continuously wishes to receive frames in the same mode X, it needs to set CMR=X for all its outbound payloads" seems to suggest that the receiver will always follow the request, although it may also choose to send lower modes, as explained in text further below.
This erratum has been discussed and endorsed by the 3GPP SA4 group before submission to IETF.
Errata ID: 4348
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Thomas Belling
Date Reported: 2015-04-27
Verifier Name: Ben Campbell
Date Verified: 2016-05-25
Section 4.3.1 says:
The encoder SHOULD follow a received codec mode request, but MAY change to a lower-numbered mode if it so chooses, for example, to control congestion.
It should say:
The encoder MUST follow a received codec mode request as soon as possible. It SHOULD use the requested mode, but MAY change to a lower-numbered mode if it so chooses, for example, to control congestion. However, the encoder MUST NOT use a higher-numbered mode than the received codec mode request.
Notes:
This seems to be the intention of the existing text, but is not explicitly stated. It is essential for the end-to-end mode control and interoperability with 3GPP CS networks that a peer does not send higher modes than requested.
This erratum has been discussed and endorsed by the 3GPP SA4 group before submission to IETF.
Errata ID: 4349
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Thomas Belling
Date Reported: 2015-04-27
Verifier Name: Ben Campbell
Date Verified: 2016-05-25
Section 8.1 says:
mode-set: Restricts the active codec mode set to a subset of all modes, for example, to be able to support transport channels such as GSM networks in gateway use cases. Possible values are a comma separated list of modes from the set: 0,...,7 (see Table 1a [2]). The SID frame type 8 and NO_DATA (frame type 15) are never included in the mode set, but can always be used. If mode-set is specified, it MUST be abided, and frames encoded with modes outside of the subset MUST NOT be sent in any RTP payload or used in codec mode requests. If not present, all codec modes are allowed for the payload type.
It should say:
mode-set: Restricts the active codec mode set to a subset of all modes, for example, to be able to support transport channels such as GSM networks in gateway use cases. Possible values are a comma separated list of modes from the set: 0,...,7 (see Table 1a [2]). The SID frame type 8 and NO_DATA (frame type 15) are never included in the mode set, but can always be used. If mode-set is specified, it MUST be abided, i.e. frames encoded with modes outside of the subset MUST NOT be sent in any RTP payload and codec mode requests MUST only use modes within the mode-set or CMR=15. If the mode-set parameter is not present, then all codec modes are allowed for the payload type.
Notes:
The existing text rules out that CMR=15 is used when a mode-set has been negotiated. However, this contradicts a statement in .clause 4.3.1 that if a terminal has no preference in which mode to receive, it SHOULD set CMR=15 in all its outbound payloads.
This erratum has been discussed and endorsed by the 3GPP SA4 group before submission to IETF.