"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14, RFC 2119 [1] and indicate requirement levels for
compliant implementations.
3. ANAT Semantics
We define a new "semantics" attribute within the SDP grouping
framework [4]: ANAT (Alternative Network Address Types).
Media lines grouped using ANAT semantics provide alternative network
addresses of different types for a single logical media stream. The
entity creating a session description with an ANAT group MUST be
ready to receive (or send) media over any of the grouped 'm' lines.
The ANAT semantics MUST NOT be used to group media streams whose
network addresses are of the same type.
4. Preference
The entity generating a session description may have an order of
preference for the alternative network address types offered. The
identifiers of the media streams MUST be listed in order of
preference in the group line. For example, in the session
description in Section 6, the 'm' line with mid=1 has a higher
preference than the 'm' line with mid=2.
5. Offer/Answer and ANAT
An offerer using SIP [3] to send its offer SHOULD place the sdp-anat
option-tag [5] in a Require header field.
An answerer receiving a session description that uses the ANAT
semantics SHOULD use the address with the highest priority it
understands and set the ports of the rest of the 'm' lines of the
group to zero.
6. Example
The session description below contains an IPv4 address and an IPv6
address grouped using ANAT. The format corresponding to the mapping
of ICE into SDP [6] can be used in both 'm' lines to provide
additional addresses.
v=0
o=bob 280744730 28977631 IN IP4 host.example.com
s=
t=0 0
a=group:ANAT 1 2
m=audio 25000 RTP/AVP 0
c=IN IP6 2001:DB8::1
a=
a=mid:1
m=audio 22334 RTP/AVP 0
c=IN IP4 192.0.2.1
a=
a=mid:2
7. Security Considerations
An attacker adding group lines, using the ANAT semantics, to an SDP
session description could make an end-point use only one out of all
the streams offered by the remote end, when the intention of the
remote-end might have been to establish all the streams.