Network Working Group A. Melnikov
Internet-Draft Isode Limited
Intended status: Standards Track H. Schulzrinne
Expires: January 4, 2011 Columbia U.
Q. Sun
Huawei Technologies
July 3, 2010
Sieve Notification Mechanism: SIP MESSAGE
draft-ietf-sieve-notify-sip-message-02
Abstract
This document describes a profile of the Sieve extension for
notifications, to allow notifications to be sent over the SIP
MESSAGE.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 4, 2011.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
Melnikov, et al. Expires January 4, 2011 [Page 1]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
1. Conventions Used in this Document . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definition . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Notify parameter "method" . . . . . . . . . . . . . . . . . . 3
3.2. Notify tag ":from" . . . . . . . . . . . . . . . . . . . . . 3
3.3. Notify tag ":options" . . . . . . . . . . . . . . . . . . . . 4
3.4. Notify tag ":importance" . . . . . . . . . . . . . . . . . . 4
3.5. Notify tag ":message" . . . . . . . . . . . . . . . . . . . . 4
3.6. Other Definitions . . . . . . . . . . . . . . . . . . . . . . 4
3.7. Test notify_method_capability . . . . . . . . . . . . . . . . 5
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Requirements Conformance . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
9. Normative References . . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 8
Melnikov, et al. Expires January 4, 2011 [Page 2]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
1. Conventions Used in this Document
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 [RFC2119].
2. Introduction
2.1. Overview
The NOTIFY [NOTIFY] extension to the SIEVE [SIEVE] mail filtering
language is a framework for providing notifications by employing URIs
to specify the notification mechanism. This document defines how SIP
URIs (see RFC 3261 [SIP]) are used to generate notifications via the
SIP MESSAGE (see RFC 3428 [RFC3428]).
2.2. Terminology
This document inherits terminology from NOTIFY [NOTIFY], SIEVE
[SIEVE], and RFC 3261 [SIP].
3. Definition
The SIP MESSAGE mechanism defined in this document results in the
sending of a SIP MESSAGE request to notify a recipient about an email
message.
3.1. Notify parameter "method"
The "method" parameter MUST be a URI that conforms to the SIP (or
SIPS) URI scheme (as specified in RFC 3261 [SIP]) and that identifies
a SIP (or SIPS) recipient of the notification. The URI MAY include
the resource identifier portion of a SIP address and URI parameters.
The URI parameter "method" MUST be included and MUST contain the
value "MESSAGE". (Note that future specifications might extend this
document and define Sieve notifications that use other SIP methods.)
The processing application MUST extract a SIP address from the URI in
accordance with the processing rules specified in RFC 3261 [SIP].
The resulting SIP address MUST be encapsulated in SIP URI syntax as
Request-URI and the value of the "To" header field of the SIP MESSAGE
request.
3.2. Notify tag ":from"
The value of the ":from" tag MUST use the SIP "From" header field
syntax; if the :from value is specified, has valid syntax, and is
Melnikov, et al. Expires January 4, 2011 [Page 3]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
valid according to the implementation-specific security checks (see
Section 3.3 of [NOTIFY]), then the notification SHOULD include the
"From" SIP header field containing the value of the :from notify tag.
If the specified value is not valid, then it is ignored.
3.3. Notify tag ":options"
Handling of the ":options" tag is implementation specific. This
document doesn't require presence of any option and doesn't define
how options are processed.
3.4. Notify tag ":importance"
The value of the ":importance" tag MAY be transformed into SIP
"Priority" header field (in addition to or instead of including in
the default message); if specified, the value of the "Priority"
header field MUST be "urgent" if the value of the ":importance" tag
is "1", "normal" if the value of the ":importance" tag is "2", or
"non-urgent" if the value of the ":importance" tag is "3".
3.5. Notify tag ":message"
If included, the ":message" tag MUST be transformed into the message-
body of a SIP MESSAGE, which MUST have Content-Type value of "text/
plain" with CHARSET="UTF-8". [[anchor10: Should application/
sieve-notification+xml Content type from draft-mahy-sieve-notify-sip
be used instead?]] If not included, the default message body SHOULD
contain values of the "From" and "Subject" header fields of the
triggering email message (and MAY include the value of the
":importance" tag, if one is specified), as shown in one of the
examples below.
3.6. Other Definitions
The value of the SIP "From" header field specified in the SIP
notification message MUST be the SIP address of the notification
service itself.
An implementation MUST ignore any URI parameter it does not
understand (i.e., the URI MUST be processed as if the parameter were
not present). It is RECOMMENDED not to use the hname "body"
parameter value as the message-body of the SIP MESSAGE request. If
hname "body" parameter and ":message" tag are present at the same
time, the "body" parameter MUST be ignored.[[anchor11: Any other SIP
URI parameters that should be used?]]
The policy of retry delivery of a notification is a matter of
implementation and is not specified herein. But it SHOULD follow the
Melnikov, et al. Expires January 4, 2011 [Page 4]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
suggestion for retry in RFC 3261 [SIP].[[anchor12: Is this correct?
When one would possibly want to violate suggestions from RFC 3261?
If this is not correct, then the paragraph should read instead: The
policy of retry delivery of a notification is specified in
[RFC3261].]]
3.7. Test notify_method_capability
The notify_method_capability test for "online" may return "yes" or
"no" only if the Sieve processor can determine with certainty whether
or not the recipient of the notification message is can receive the
notification immediately. Otherwise, the test returns "maybe" for
this notification method. [[anchor13: Add some specific details
regarding determining online status of the recipient.]]
4. Examples
In the following examples, the sender of the email has an address of
juliet@example.org, the entity to be notified has a SIP address of
<sip:romeo@example.com>, and the notification service has a SIP
address <sip:notifier@example.com>.
The following is a basic Sieve notify action with only a method:
notify "sip:romeo@example.com;method=MESSAGE"
The resulting SIP MESSAGE request might be as follows:
MESSAGE sip:romeo@example.com SIP/2.0
Via: SIP/2.0/TCP notifier.example.com;branch=z9hG4bK776sgdkse
Max-Forwards: 70
From: sip:notifier@example.com;tag=32328
To: sip:romeo@example.com
Call-ID: asd88asd77a@1.2.3.4
CSeq: 1 MESSAGE
Content-Type: text/plain
Content-Length: 53
<juliet@example.com> wrote: Contact me immediately!
In the example above the email message was received from
juliet@example.com and had "Subject: Contact me immediately!"
The following is a more advanced Sieve notify action with a method,
importance, subject, and message:
Melnikov, et al. Expires January 4, 2011 [Page 5]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
notify :importance "1"
:message "You got new mail!"
"sip:romeo@example.com;method=MESSAGE?subject=SIEVE"
MESSAGE sip:romeo@example.com SIP/2.0
Via: SIP/2.0/TCP notifier.example.com;branch=z9hG4bK776sgdkse
Max-Forwards: 70
From: sip:notifier@example.com;tag=32328
To: sip:romeo@example.com
Subject: SIEVE
Priority: urgent
Call-ID: asd88asd77a@1.2.3.4
CSeq: 1 MESSAGE
Content-Type: text/plain
Content-Length: 19
You got new mail!
5. Requirements Conformance
Section 3.8 of [NOTIFY] specifies a set of requirements for Sieve
notification methods. The conformance of the SIP MESSAGE
notification mechanism is provided here.[[anchor16: Need to compare
this section with XMPP NOTIFY (RFC 5437) and Email NOTIFY (RFC
5436).]]
1. An implementation of the SIP MESSAGE notification method SHOULD
NOT modify the final notification text (e.g., to limit the
length); however, a given deployment MAY do so. Modification of
characters themselves should not be necessary, since SIP MESSAGE
body is encoded in UTF-8 [RFC3629].
2. An implementation MAY ignore parameters specified in the
":importance", and ":options" tags.
3. If not included, the default message body SHOULD contain values
of the "From" and "Subject" header fields of the triggering email
message (and MAY include the value of the ":importance" tag, if
one is specified), as shown in one of the examples below.
4. A notification sent via the SIP MESSAGE notification method
SHOULD include the Date header field containing the date-time of
the moment when the SIP MESSAGE notification was generated.
5. The value of the Sieve ":from" tag SHOULD be transformed into the
value of an SIP "From" header field, if it has valid syntax and
is valid according to the implementation-specific security checks
(see Section 3.3 of [NOTIFY]. If ":from" is not specified or is
not valid, the SIP "From:" header field of the notification
message SHOULD be set to the SIP address of the notification
service associated with the SIEVE engine.
Melnikov, et al. Expires January 4, 2011 [Page 6]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
6. The value of the SIP "To" header field MUST be the SIP address
specified in the SIP URI contained in the Sieve notify "method"
parameter.
7. An implementation MUST ignore any URI parameters it does not
understand (i.e., the URI MUST be processed as if the action or
parameter were not present). See Section 3.6 for more details.
8. An implementation MUST NOT include any other extraneous
information not specified in parameters to the notify action.
9. The notify_method_capability test for the "online" notification-
capability behaves as described in Section 3.7.
6. Security Considerations
[[anchor17: TBD]]
Depending on the information included, sending a notification can be
comparable to forwarding mail to the notification recipient. Care
must be taken when forwarding mail automatically, to ensure that
confidential information is not sent into an insecure environment or
over an insecure channel.
UAs that support the MESSAGE request MUST implement end-to-end
authentication, body integrity, and body confidentiality mechanisms.
Other security considerations given in [NOTIFY], [SIEVE] and [SIP]
are also relevant to this document.
7. IANA Considerations
The following template provides the IANA registration of the Sieve
notification mechanism specified in this document:
To: iana@iana.org
Subject: Registration of new Sieve notification mechanism
Mechanism name: sip-message
Mechanism URI: SIP/SIPS as specified in RFC 3261 [SIP]
Mechanism-specific options: none
Standards Track/IESG-approved experimental RFC number: [RFC XXXX]
Person and email address to contact for further information:
See authors of [RFC XXXX]
This information should be added to the list of Sieve notification
mechanisms maintained at
<http://www.iana.org/assignments/sieve-notification>.
Melnikov, et al. Expires January 4, 2011 [Page 7]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
8. Acknowledgements
This document borrows some text from draft-ietf-sieve-notify-xmpp.
The authors would like to specially thank Adam Roach and Eric Burger
for their helpful comments.
9. Normative References
[NOTIFY] Melnikov, A., Ed., Leiba, B., Ed., Segmuller, W., and T.
Martin, "Sieve Extension: Notifications", RFC 5435,
January 2009.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, BCP 14, March 1997.
[RFC3428] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C.,
and D. Gurle, "Session Initiation Protocol (SIP) Extension
for Instant Messaging", RFC 3428, December 2002.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[SIEVE] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email
Filtering Language", RFC 5228, January 2008.
[SIP] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
Authors' Addresses
Alexey Melnikov
Isode Limited
5 Castle Business Village
36 Station Road
Hampton, Middlesex TW12 2BX
UK
Email: Alexey.Melnikov@isode.com
URI: http://www.melnikov.ca/
Melnikov, et al. Expires January 4, 2011 [Page 8]
Internet-Draft Sieve Notification: SIP MESSAGE July 2010
Henning Schulzrinne
Columbia U.
Columbia University Department of Computer Science
New York, NY 10027
US
Phone: +1 212 939 7004
Email: hgs@cs.columbia.edu
Qian Sun
Huawei Technologies
Bantian Longgang
Shenzhen, Guandong 518129
P.R China
Phone: +86 755 28780808
Email: sunqian@huawei.com
Melnikov, et al. Expires January 4, 2011 [Page 9]