[Standards-JIG] Re: Syntax for forwarding messages

Stephen Marquard scm at marquard.net
Thu Jan 20 17:50:47 UTC 2005

Peter Saint-Andre wrote:

>>>Though please can we have some mechanism to detect & prevent forwarding  
>>>loops, e.g. jid A is set to autoforward to jid B, which is set to  
>>>autoforward to jid A.
>>>There needs to be a forwarding history in the message (with each  
>>>forwarding action adding a new entry) and/or a hop count. Servers should  
>>>stop forwarding and bounce the message (or take other action) when the  
>>>hop count exceeds a certain threshold and/or a forwarding loop is  
>>>The email equivalent is to check the number of Received: lines (in most  
>>>SMTP servers) or use unstandardised header extensions like X-Loop:.
>>Well, there's an idea. Just use the same headers as email using SHIM. Then  
>>you don't have to modify JEP-33, which is more for for addresses that  
>>affect the routing at the XMPP level rather than the application level.  
>>Plus you'll get compatibility with email for free.
> Sure, we'd use the Received SHIM header as mentioned in JEP-0131 and 
> defined in RFC 2822.

Looks reasonable. I have 2 questions:

1. Where JEP-0131 says:

"3.1 Protocol Support. In order to discover whether another entity 
supports this protocol, an entity MUST use Service Discovery [8]."

does that mean that it's mandatory to discovery whether another entity 
supports the protocol before using, or just that should one wish to 
discover whether another entity supports the protocol, one must use 
service discovery to do so?

If a server is going to forward a message on to another user on another 
server, it doesn't seem reasonable to have to decide whether the other 
entity supports the protocol before adding forwarding info.

2. For a header that's mentioned in JEP-0131 and defined by RFC 2822, is 
it understood that the value is an email address or can a JID be used ? 
Should a prefix be specified, e.g. xmpp:user at server/resource ?

So if A sends a message to B, who has an autoforward to C, who has an 
autoforward to D, then the message as it arrives at D could look like:

<message from='c at server3'
          to='d at server4'>
   <body>A well-travelled message</body>
   <headers xmlns='http://jabber.org/protocol/shim'>
     <header name='resent-from'>b at server2</header>
     <header name='resent-date'>Thu, 20 Jan 2005 17:42:49 +0200</header>
     <header name='resent-from'>a at server1</header>
     <header name='resent-date'>Thu, 20 Jan 2005 17:42:47 +0200</header>
     <header name='reply-to'>a at server1</header>

? Or should the resent-from have xmpp: e.g.

     <header name='resent-from'>xmpp:b at server2</header>


More information about the Standards mailing list