draft-ietf-sieve-notify-xmpp-07.txt   draft-ietf-sieve-notify-xmpp-08.txt 
Sieve Working Group P. Saint-Andre Sieve Working Group P. Saint-Andre
Internet-Draft XMPP Standards Foundation Internet-Draft XMPP Standards Foundation
Intended status: Standards Track A. Melnikov Intended status: Standards Track A. Melnikov
Expires: June 7, 2008 Isode Limited Expires: July 2, 2008 Isode Limited
December 5, 2007 December 30, 2007
Sieve Notification Mechanism: xmpp Sieve Notification Mechanism: xmpp
draft-ietf-sieve-notify-xmpp-07 draft-ietf-sieve-notify-xmpp-08
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on June 7, 2008. This Internet-Draft will expire on July 2, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document describes a profile of the Sieve extension for This document describes a profile of the Sieve extension for
notifications, to allow notifications to be sent over the Extensible notifications, to allow notifications to be sent over the Extensible
Messaging and Presence Protocol (XMPP), also known as Jabber. Messaging and Presence Protocol (XMPP), also known as Jabber.
skipping to change at page 2, line 28 skipping to change at page 2, line 28
3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Basic action . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Basic action . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Action with body . . . . . . . . . . . . . . . . . . . . . 6 3.2. Action with body . . . . . . . . . . . . . . . . . . . . . 6
3.3. Action with body, importance, message, and subject . . . . 7 3.3. Action with body, importance, message, and subject . . . . 7
3.4. Action with from, message, importance, body, and 3.4. Action with from, message, importance, body, and
subject . . . . . . . . . . . . . . . . . . . . . . . . . 8 subject . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Requirements Conformance . . . . . . . . . . . . . . . . . . . 9 4. Requirements Conformance . . . . . . . . . . . . . . . . . . . 9
5. Internationalization Considerations . . . . . . . . . . . . . 10 5. Internationalization Considerations . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1. Normative References . . . . . . . . . . . . . . . . . . . 11 8.1. Normative References . . . . . . . . . . . . . . . . . . . 12
8.2. Informative References . . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . . . 14
1. Introduction 1. Introduction
1.1. Overview 1.1. Overview
The [NOTIFY] extension to the [SIEVE] mail filtering language is a The [NOTIFY] extension to the [SIEVE] mail filtering language is a
framework for providing notifications by employing URIs to specify framework for providing notifications by employing URIs to specify
skipping to change at page 4, line 7 skipping to change at page 4, line 7
In response to a notify_method_capability test for the "online" In response to a notify_method_capability test for the "online"
notification-capability, an implementation SHOULD return a value of notification-capability, an implementation SHOULD return a value of
"yes" if it has knowledge of an active presence session (see "yes" if it has knowledge of an active presence session (see
[XMPP-IM]) for the specified XMPP notification-uri; otherwise it [XMPP-IM]) for the specified XMPP notification-uri; otherwise it
SHOULD return a value of "maybe" (since typical XMPP systems may not SHOULD return a value of "maybe" (since typical XMPP systems may not
allow a SIEVE engine to gain knowledge about the presence of XMPP allow a SIEVE engine to gain knowledge about the presence of XMPP
entities). entities).
2.3. Notify tag ":from" 2.3. Notify tag ":from"
The ":from" tag has no special meaning for this notification If included, the ":from" tag MUST be an email address. The value of
mechanism, and this specification puts no restriction on its use. the ":from" tag MAY be included in the human-readable XML character
The value of the ":from" tag MAY be transformed into XMPP syntax; if data of the XMPP notification; alternatively or in addition, it MAY
so, it SHOULD be encapsulated as the value of an XMPP Stanza Headers be transformed into formal XMPP syntax, in which case it MUST be
and Internet Metadata [SHIM] header named "Reply-To". encapsulated as the value of an XMPP Stanza Headers and Internet
Metadata [SHIM] header named "Resent-From".
2.4. Notify tag ":importance" 2.4. Notify tag ":importance"
The ":importance" tag has no special meaning for this notification The ":importance" tag has no special meaning for this notification
mechanism, and this specification puts no restriction on its use. mechanism, and this specification puts no restriction on its use.
The value of the ":importance" tag MAY be transformed into XMPP The value of the ":importance" tag MAY be transformed into XMPP
syntax (in addition to or instead of including appropriate text in syntax (in addition to or instead of including appropriate text in
the XML character data of the XMPP <body/> element); if so, it SHOULD the XML character data of the XMPP <body/> element); if so, it SHOULD
be encapsulated as the value of an XMPP Stanza Headers and Internet be encapsulated as the value of an XMPP Stanza Headers and Internet
Metadata [SHIM] header named "Urgency", where the XML character of Metadata [SHIM] header named "Urgency", where the XML character of
skipping to change at page 4, line 46 skipping to change at page 4, line 47
mechanism. Any handling of this tag is the responsibility of an mechanism. Any handling of this tag is the responsibility of an
implementation. implementation.
2.7. XMPP syntax 2.7. XMPP syntax
The xmpp mechanism results in the sending of an XMPP message to The xmpp mechanism results in the sending of an XMPP message to
notify a recipient about an email message. The general XMPP syntax notify a recipient about an email message. The general XMPP syntax
is as follows: is as follows:
o The notification MUST be an XMPP <message/> stanza. o The notification MUST be an XMPP <message/> stanza.
o The value of the XMPP 'from' attribute MUST be the XMPP address of o The value of the XMPP 'from' attribute SHOULD be the XMPP address
the notification service associated with the SIEVE engine. of the notification service associated with the SIEVE engine or
the XMPP address of the entity to be notified. The value of the
XMPP 'from' attribute MUST NOT be generated from the Sieve ":from"
tag.
o The value of the XMPP 'to' attribute MUST be the XMPP address o The value of the XMPP 'to' attribute MUST be the XMPP address
specified in the XMPP URI contained in the "method" notify specified in the XMPP URI contained in the "method" notify
parameter. parameter.
o The value of the XMPP 'type' attribute MUST be 'headline' or o The value of the XMPP 'type' attribute MUST be 'headline' or
'normal'. 'normal'.
o The XMPP <message/> stanza MUST include a <body/> child element. o The XMPP <message/> stanza MUST include a <body/> child element.
If the ":message" tag is included in the Sieve script, that string If the ":message" tag is included in the Sieve script, that string
MUST be used as the XML character data of the <body/> element. If MUST be used as the XML character data of the <body/> element. If
not and if the XMPP URI contained in the "method" notify parameter not and if the XMPP URI contained in the "method" notify parameter
specified a "body" parameter in the query component, that value specified a "body" parameter in the query component, that value
SHOULD be used. Otherwise the XML character data SHOULD be some SHOULD be used. Otherwise the XML character data SHOULD be some
configurable text indicating that the message is a Sieve configurable text indicating that the message is a Sieve
notification. notification.
skipping to change at page 5, line 35 skipping to change at page 5, line 38
qualified by the 'jabber:x:oob' namespace as specified in [OOB]. qualified by the 'jabber:x:oob' namespace as specified in [OOB].
If included, the URI SHOULD be an Internet Message Access Protocol If included, the URI SHOULD be an Internet Message Access Protocol
[IMAP] URL that specifies the location of the message as defined [IMAP] URL that specifies the location of the message as defined
in [IMAP-URL], but MAY be another URI type that can specify or in [IMAP-URL], but MAY be another URI type that can specify or
hint at the location of an email message, such as a URI for an hint at the location of an email message, such as a URI for an
HTTP resource [HTTP] or a POP3 mailbox [POP-URL] at which the HTTP resource [HTTP] or a POP3 mailbox [POP-URL] at which the
message can be accessed. It is not expected that an XMPP user message can be accessed. It is not expected that an XMPP user
agent shall directly handle such a URI, but instead that it shall agent shall directly handle such a URI, but instead that it shall
invoke an appropriate helper application to handle the URI. invoke an appropriate helper application to handle the URI.
o The XMPP <message/> stanza MAY include an XMPP Stanza Headers and o The XMPP <message/> stanza MAY include an XMPP Stanza Headers and
Internet Metadata [SHIM] header named "Reply-To", which Internet Metadata [SHIM] header named "Resent-From". If the Sieve
encapsulates the value of the ":from" tag. script included a ":from" tag, the "Resent-From" value MUST be the
o The XMPP <message/> stanza MAY include an XMPP Stanza Headers and value of the ":from" tag; otherwise the "Resent-From" value SHOULD
Internet Metadata [SHIM] header named "Resent-From", which be the envelope recipient address of the original email message
encapsulates the value of the envelope recipient address of the that triggered the notification.
original email message that triggered the notification.
3. Examples 3. Examples
In the following examples, the sender of the email has an address of In the following examples, the sender of the email has an address of
<mailto:juliet@example.org>, the entity to be notified has an email <mailto:juliet@example.org>, the entity to be notified has an email
address of <mailto:romeo@example.com> and an XMPP address of address of <mailto:romeo@example.com> and an XMPP address of
romeo@im.example.com (resulting in an XMPP URI of romeo@im.example.com (resulting in an XMPP URI of
<xmpp:romeo@im.example.com>), and the notification service associated <xmpp:romeo@im.example.com>), and the notification service associated
with the SIEVE engine has an XMPP address of notify.example.com. with the SIEVE engine has an XMPP address of notify.example.com.
skipping to change at page 8, line 33 skipping to change at page 8, line 33
3.4. Action with from, message, importance, body, and subject 3.4. Action with from, message, importance, body, and subject
The following action specifies a ":from" tag, an ":importance" tag, The following action specifies a ":from" tag, an ":importance" tag,
and a ":message" tag in the Sieve script, as well as a "body" and a ":message" tag in the Sieve script, as well as a "body"
parameter and a "subject" parameter in the query component of the parameter and a "subject" parameter in the query component of the
XMPP URI. As a result, the ":message" tag from the Sieve script XMPP URI. As a result, the ":message" tag from the Sieve script
overrides the "body" parameter from the XMPP URI when generating the overrides the "body" parameter from the XMPP URI when generating the
XML character data of the XMPP <body/> element. In addition, the XML character data of the XMPP <body/> element. In addition, the
Sieve engine includes a URI pointing to the message, as well as an Sieve engine includes a URI pointing to the message, as well as an
XMPP Stanza Headers and Internet Metadata [SHIM] header named XMPP Stanza Headers and Internet Metadata [SHIM] header named
"Reply-To" (which encapsulates the value of the ":from" tag) and a "Resent-From" (which encapsulates the value of the ":from" tag).
SHIM header named "Resent-From" (which encapsulates the value of the
original email message that triggered the notification).
Action with body, from, importance, message, and subject (Sieve Action with body, from, importance, message, and subject (Sieve
syntax) syntax)
notify :from "bill.shakespeare@example.com" notify :from "romeo.my.romeo@example.com"
:importance "1" :importance "1"
:message "Contact Juliet immediately!" :message "Contact Juliet immediately!"
"xmpp:romeo@im.example.com?message "xmpp:romeo@im.example.com?message
;body=You%27re%20in%20trouble ;body=You%27re%20in%20trouble
;subject=ALERT%21" ;subject=ALERT%21"
The resulting XMPP <message/> stanza might be as follows. The resulting XMPP <message/> stanza might be as follows.
Action with body, from, importance, message, and subject (XMPP Action with body, from, importance, message, and subject (XMPP
syntax) syntax)
<message from='notify.example.com' <message from='notify.example.com'
to='romeo@im.example.com' to='romeo@im.example.com'
type='headline' type='headline'
xml:lang='en'> xml:lang='en'>
<subject>ALERT!</subject> <subject>ALERT!</subject>
<body>Contact Juliet immediately!</body> <body>Contact Juliet immediately!</body>
<headers xmlns='http://jabber.org/protocol/shim'> <headers xmlns='http://jabber.org/protocol/shim'>
<header name='Reply-To'>bill.shakespeare@example.net</header> <header name='Resent-From'>romeo.my.romeo@example.com</header>
<header name='Resent-From'>romeo@example.com</header>
<header name='Urgency'>high</header> <header name='Urgency'>high</header>
</headers> </headers>
<x xmlns='jabber:x:oob'> <x xmlns='jabber:x:oob'>
<url> <url>
imap://romeo@example.com/INBOX;UIDVALIDITY=385759045/;UID=21 imap://romeo@example.com/INBOX;UIDVALIDITY=385759045/;UID=21
</url> </url>
</x> </x>
</message> </message>
4. Requirements Conformance 4. Requirements Conformance
skipping to change at page 10, line 21 skipping to change at page 10, line 21
<body/> and <subject/> child elements of the XMPP <message/> <body/> and <subject/> child elements of the XMPP <message/>
stanza, respectively. However, if included then the Sieve stanza, respectively. However, if included then the Sieve
notify ":message" parameter MUST be mapped to the XMPP <body/> notify ":message" parameter MUST be mapped to the XMPP <body/>
element, overriding the "body" parameter (if any) included in element, overriding the "body" parameter (if any) included in
the XMPP URI. the XMPP URI.
8. An implementation MUST NOT include any other extraneous 8. An implementation MUST NOT include any other extraneous
information not specified in parameters to the notify action. information not specified in parameters to the notify action.
9. In response to a notify_method_capability test for the "online" 9. In response to a notify_method_capability test for the "online"
notification-capability, an implementation SHOULD return a value notification-capability, an implementation SHOULD return a value
of "yes" if it has knowledge of an active presence session (see of "yes" if it has knowledge of an active presence session (see
[XMPP-IM]) for the specified XMPP notification-uri; otherwise it [XMPP-IM]) for the specified XMPP notification-uri but only if
the entity that requested the test is authorized to know the
presence of the associated XMPP entity (e.g., via explicit
presence subscription as specified in [XMPP-IM]); otherwise it
SHOULD return a value of "maybe" (since typical XMPP systems may SHOULD return a value of "maybe" (since typical XMPP systems may
not allow a SIEVE engine to gain knowledge about the presence of not allow a SIEVE engine to gain knowledge about the presence of
XMPP entities). XMPP entities).
10. An implementation SHOULD NOT attempt to retry delivery of a 10. An implementation SHOULD NOT attempt to retry delivery of a
notification if it receives an XMPP error of type "auth" or notification if it receives an XMPP error of type "auth" or
"cancel", MAY attempt to retry delivery if it receives an XMPP "cancel", MAY attempt to retry delivery if it receives an XMPP
error of type "wait", and MAY attempt to retry delivery if it error of type "wait", and MAY attempt to retry delivery if it
receives an XMPP error of "modify" but only if it makes receives an XMPP error of "modify" but only if it makes
appropriate modifications to the notification (see [XMPP]); in appropriate modifications to the notification (see [XMPP]); in
any case the number of retries SHOULD be limited to a any case the number of retries SHOULD be limited to a
skipping to change at page 11, line 14 skipping to change at page 11, line 14
6. Security Considerations 6. Security Considerations
Depending on the information included, sending a notification can be Depending on the information included, sending a notification can be
comparable to forwarding mail to the notification recipient. Care comparable to forwarding mail to the notification recipient. Care
must be taken when forwarding mail automatically, to ensure that must be taken when forwarding mail automatically, to ensure that
confidential information is not sent into an insecure environment. confidential information is not sent into an insecure environment.
In particular, implementations MUST conform to the security In particular, implementations MUST conform to the security
considerations given in [NOTIFY], [SIEVE], and [XMPP]. considerations given in [NOTIFY], [SIEVE], and [XMPP].
[NOTIFY] specifies that a notification method MUST provide mechanisms
for avoiding notification loops. One type of notification loop can
be caused by message forwarding; however, such loops are prevented
because XMPP does not support forwarding of messages from one XMPP
address to another. Another type of notification loop can be caused
by auto-replies to XMPP messages received by the XMPP notification
service associated with the Sieve engine; therefore such a service
MUST NOT auto-reply to XMPP messages it receives.
The XMPP notification service associated with a Sieve engine MUST NOT
leak presence (network availability) information regarding users of
the service. In particular, the service MUST NOT reveal presence
information via a notify_method_capability test to entities that are
not authorized to know such information (e.g., via a presence
subscription as specified in [XMPP-IM]).
7. IANA Considerations 7. IANA Considerations
The following template provides the IANA registration of the Sieve The following template provides the IANA registration of the Sieve
notification mechanism specified in this document: notification mechanism specified in this document:
To: iana@iana.org To: iana@iana.org
Subject: Registration of new Sieve notification mechanism Subject: Registration of new Sieve notification mechanism
Mechanism name: xmpp Mechanism name: xmpp
Mechanism URI: draft-saintandre-rfc4622bis Mechanism URI: draft-saintandre-rfc4622bis
Mechanism-specific options: none Mechanism-specific options: none
 End of changes. 13 change blocks. 
27 lines changed or deleted 46 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/