rfc-5365

Multiple-Recipient MESSAGE Requests in the Session Initiation Protocol (SIP)

M. Garcia-Martin, G. Camarillo
date2008-10 streamIETF arearai wgsip statusPROPOSED STANDARD pages18 canonicalhttps://www.rfc-editor.org/rfc/rfc5365 doi10.17487/RFC5365
This document specifies a mechanism that allows a SIP User Agent Client (UAC) to send a SIP MESSAGE request to a set of destinations, by using a SIP URI-list (Uniform Resource Identifier list) service. The UAC sends a SIP MESSAGE request that includes the payload along with the URI list to the MESSAGE URI-list service, which sends a MESSAGE request including the payload to each of the URIs included in the list. [STANDARDS-TRACK]

Extracted elements (29)

design-rationale §7.2

A new Call-ID is recommended for outgoing MESSAGE requests because the incoming Call-ID may contain addressing information the sender wants private, and since the MESSAGE URI-list service acts as a UAC there is no need to preserve the original Call-ID across the service boundary.

sip, realtime, privacy

design-rationale §1

The MESSAGE URI-list service is designed for pager-mode instant messages to ad hoc groups, explicitly avoiding the overhead of establishing a session (e.g., via MSRP), which is considered unnecessary when a user simply wants to send a small one-time message to multiple recipients.

sip, realtime

design-rationale §4

The MESSAGE URI-list service only uses flat resource list documents without hierarchical lists or XCAP-relative entry references, because the service only needs to transfer a simple flat list of URIs and these more complex features are unnecessary.

sip, realtime

interoperability-note §6

The UAC SHOULD use flat lists (no hierarchical lists) and SHOULD NOT use <entry-ref> elements when using the default resource list document format, as the MESSAGE URI-list service defined here does not require or use those features.

sip, realtime

normative-requirement §7.2 MUST

A MESSAGE URI-list service MUST include a From header field in the outgoing MESSAGE request whose value is the same as the From header field in the incoming MESSAGE request, subject to privacy requirements. Failure to do so results in unacceptable security and privacy failures.

sip, realtime, security, privacy

normative-requirement §7.3 MUST NOT

A MESSAGE URI-list service MUST NOT copy any security body (e.g., S/MIME encrypted body) addressed to the MESSAGE URI-list service to the outgoing MESSAGE request, as such bodies are intended to be read by the URI-list service itself.

sip, realtime, security

normative-requirement §6 MUST

A UAC creating a multiple-recipient MESSAGE request MUST format it according to RFC 3428 Section 4, MUST include a 'recipient-list' body with Content-Disposition 'recipient-list', and MUST include the 'recipient-list-message' option-tag in a Require header field.

sip, realtime

normative-requirement §7.2 MUST

If a P-Asserted-Identity header was present in the incoming MESSAGE and the request was from a trusted source and the first hop of the outgoing request is also trusted, the MESSAGE URI-list service MUST include P-Asserted-Identity with the same value in the outgoing request.

sip, realtime, security

normative-requirement §7.2 MUST NOT

If the first hop of the outgoing MESSAGE request is not trusted and the incoming request included a Privacy header field with a value other than 'none', the MESSAGE URI-list service MUST NOT include a P-Asserted-Identity header field in the outgoing request.

sip, realtime, privacy, security

normative-requirement §7.2 MUST

If the incoming MESSAGE contains an Authorization or Proxy-Authorization header whose realm matches the MESSAGE URI-list server's realm, the service SHOULD NOT copy it to the outgoing request; if the realm differs, the service MUST copy the value.

sip, realtime, security

normative-requirement §7.3 MUST

If the MESSAGE URI-list service includes a URI list in an outgoing MESSAGE request, it MUST include a Content-Disposition header field set to 'recipient-list-history' with a 'handling' parameter set to 'optional'.

sip, realtime

normative-requirement §7.3 SHOULD

If the URI list includes resources tagged with 'copyControl' set to 'to' or 'cc', the URI-list service SHOULD include a URI list in each outgoing MESSAGE request formatted as per RFC 4826 and RFC 5364, following procedures for 'anonymize', 'count', and 'copyControl' attributes.

sip, realtime

normative-requirement §7.3 MUST

If there is only one body left after composing the outgoing MESSAGE request, the MESSAGE URI-list service MUST remove the multipart/mixed wrapper.

sip, realtime

normative-requirement §7.3 MUST

MESSAGE URI-list services MUST generate only MESSAGE requests regardless of any 'method' parameter present in the URIs in the list; the 'method' parameter MUST be ignored.

sip, realtime

normative-requirement §4 MUST

MESSAGE URI-list services MUST support both the resource list document format (RFC 4826) and the copy control extension (RFC 5364) for 'recipient-list-history' bodies; UASs MAY support these formats.

sip, realtime

normative-requirement §7.1 MUST

MESSAGE URI-list services MUST take actions specified in RFC 5363 to avoid sending duplicated requests to the same recipient when duplicate URIs appear in the URI list.

sip, realtime

normative-requirement §6 MUST NOT

The UAC MUST NOT use the special 'body' hname in the '?' URI mechanism to encode a body, since the body is already present in the MESSAGE request itself.

sip, realtime

normative-requirement §4 MUST

UACs and MESSAGE URI-list services handling 'recipient-list' bodies MUST support the resource list document format (RFC 4826) extended with copy control attributes (RFC 5364), and MAY support other formats.

sip, realtime

normative-requirement §6 SHOULD

UAs able to receive and process MESSAGEs with a recipient-list body SHOULD include the 'recipient-list-message' option-tag in a Supported header field when responding to OPTIONS requests.

sip, realtime

protocol-element §2

An incoming MESSAGE request is a SIP MESSAGE created by a UAC addressed to a MESSAGE URI-list service, containing both the regular instant message payload and a URI list body with Content-Disposition 'recipient-list'.

sip, realtime

protocol-element §2

An outgoing MESSAGE request is created by the MESSAGE URI-list service for each intended recipient, containing the instant message payload and optionally a 'recipient-list-history' body to support Reply-To-All functionality.

sip, realtime

protocol-element §7

The MESSAGE URI-list service answers the UAC with a 202 (Accepted) response upon receiving a MESSAGE with a URI list. This response does not indicate delivery success to the individual recipients; it only confirms the service received and will attempt delivery.

sip, realtime

protocol-element §2

The MESSAGE URI-list service receives a SIP MESSAGE request containing a URI list and instant message payload, then sends a separate MESSAGE request to each URI in the list. It behaves as a specialized B2BUA (Back-to-Back User Agent).

sip, realtime

protocol-element §5

The 'recipient-list-message' option-tag is defined for use in Require and Supported SIP header fields to ensure a server can process the 'recipient-list' body in a MESSAGE request and to advertise this capability in OPTIONS responses.

sip, realtime, registry

registry §11

This document registers the SIP option tag 'recipient-list-message' in the IANA SIP Parameter Registry 'Option Tags' section, indicating that the body contains a list of URIs identifying recipients of a SIP MESSAGE request.

sip, realtime, registry

security-consideration §10

If the instant message content must remain private, the UAC SHOULD use S/MIME (RFC 3851) to encrypt the message body with a content encryption key, and SHOULD encrypt that key with each receiver's public key and attach it to the MESSAGE request.

sip, realtime, security, crypto

security-consideration §10

Implementations of MESSAGE URI-list services MUST follow the security-related rules in RFC 5363, including opt-in lists and mandatory authentication and authorization of clients, to prevent abuse of the service.

sip, realtime, security

wire-format §7.3

Each outgoing MESSAGE request body is multipart/mixed containing: (1) the instant message payload copied from the incoming request and (2) an application/resource-lists+xml body with Content-Disposition 'recipient-list-history; handling=optional' containing non-anonymous 'to' and 'cc' recipients.

sip, realtime

wire-format §3

The incoming MESSAGE request body is multipart/mixed containing: (1) the instant message payload (e.g., text/plain) and (2) an application/resource-lists+xml body with Content-Disposition 'recipient-list' encoding the URI list with optional 'copyControl' and 'anonymize' attributes.

sip, realtime