idnits 2.17.1
draft-ietf-stox-chat-00.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
-- The document date (July 1, 2013) is 3945 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Outdated reference: A later version (-11) exists of
draft-ietf-stox-core-00
Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group P. Saint-Andre
3 Internet-Draft Cisco Systems, Inc.
4 Intended status: Standards Track S. Loreto
5 Expires: January 2, 2014 E. Gavita
6 N. Hossain
7 Ericsson
8 July 1, 2013
10 Interworking between the Session Initiation Protocol (SIP) and the
11 Extensible Messaging and Presence Protocol (XMPP): One-to-One Text Chat
12 draft-ietf-stox-chat-00
14 Abstract
16 This document defines a bidirectional protocol mapping for the
17 exchange of instant messages in the context of a one-to-one chat
18 session between a user of the Session Initiation Protocol (SIP) and a
19 user of the Extensible Messaging and Presence Protocol (XMPP).
20 Specifically for SIP text chat, this document specifies a mapping to
21 the Message Session Relay Protocol (MSRP).
23 Status of this Memo
25 This Internet-Draft is submitted in full conformance with the
26 provisions of BCP 78 and BCP 79.
28 Internet-Drafts are working documents of the Internet Engineering
29 Task Force (IETF). Note that other groups may also distribute
30 working documents as Internet-Drafts. The list of current Internet-
31 Drafts is at http://datatracker.ietf.org/drafts/current/.
33 Internet-Drafts are draft documents valid for a maximum of six months
34 and may be updated, replaced, or obsoleted by other documents at any
35 time. It is inappropriate to use Internet-Drafts as reference
36 material or to cite them other than as "work in progress."
38 This Internet-Draft will expire on January 2, 2014.
40 Copyright Notice
42 Copyright (c) 2013 IETF Trust and the persons identified as the
43 document authors. All rights reserved.
45 This document is subject to BCP 78 and the IETF Trust's Legal
46 Provisions Relating to IETF Documents
47 (http://trustee.ietf.org/license-info) in effect on the date of
48 publication of this document. Please review these documents
49 carefully, as they describe your rights and restrictions with respect
50 to this document. Code Components extracted from this document must
51 include Simplified BSD License text as described in Section 4.e of
52 the Trust Legal Provisions and are provided without warranty as
53 described in the Simplified BSD License.
55 Table of Contents
57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
59 3. XMPP to MSRP . . . . . . . . . . . . . . . . . . . . . . . . . 4
60 4. MSRP to XMPP . . . . . . . . . . . . . . . . . . . . . . . . . 7
61 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10
62 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
63 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
64 7.1. Normative References . . . . . . . . . . . . . . . . . . . 11
65 7.2. Informative References . . . . . . . . . . . . . . . . . . 12
66 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12
67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
69 1. Introduction
71 Both the Session Initiation Protocol [RFC3261] and the Extensible
72 Messaging and Presence Protocol [RFC6120] can be used for the purpose
73 of one-to-one text chat over the Internet. To ensure interworking
74 between these technologies, it is important to define bidirectional
75 protocol mappings.
77 The architectural assumptions underlying such protocol mappings are
78 provided in [I-D.ietf-stox-core], including mapping of addresses and
79 error conditions. This document specifies mappings for one-to-one
80 text chat sessions (sometimes called "session-mode" messaging); in
81 particular, this document specifies mappings between XMPP messages of
82 type "chat" and the Message Session Relay Protocol [RFC4975].
83 Mappings for single instant messages and groupchat are provided in
84 separate documents.
86 The approach taken here is to directly map syntax and semantics from
87 one protocol to another. The mapping described herein depends on the
88 protocols defined in the following specifications:
90 o XMPP chat sessions using message stanzas of type "chat" are
91 specified in [RFC6121].
92 o SIP-based chat sessions using the SIP INVITE and SEND request
93 types are specified in [RFC4975].
95 In SIMPLE, a chat session is formally negotiated just as any other
96 session type is using SIP. By contrast, a one-to-one chat "session"
97 in XMPP is an informal construct and is not formally negotiated: a
98 user simply sends a message of type "chat" to a contact, the contact
99 then replies to the message, and the sum total of such messages
100 exchanged during a defined period of time is considered to be a chat
101 session. To overcome the disparity between these approaches, a
102 gateway that wishes to map between SIP and XMPP for one-to-one chat
103 sessions needs to maintain some additional state, as described below.
105 The discussion venue for this document is the mailing list of the
106 STOX WG; visit https://www.ietf.org/mailman/listinfo/stox for
107 subscription information and discussion archives.
109 2. Terminology
111 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
112 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
113 "OPTIONAL" in this document are to be interpreted as described in
114 [RFC2119].
116 3. XMPP to MSRP
118 In XMPP, the "informal session" approach is to simply send someone a
119 of type "chat" without starting any session negotiation
120 ahead of time (as described in [RFC6121]). The XMPP "informal
121 session" approach maps very well into a SIP MESSAGE request, as
122 described in [I-D.ietf-stox-core]. However, the XMPP informal
123 session approach can also be mapped to MSRP if the XMPP-to-SIP
124 gateway maintains additional state.
126 The order of events is as follows.
128 XMPP User GW SIP User
129 | | |
130 |(F1) (XMPP) Chat message | |
131 |------------------------->| |
132 | |(F2) (SIP) INVITE |
133 | |------------------------->|
134 | |(F3) (SIP) 200 OK |
135 | |<-------------------------|
136 | |(F4) (SIP) ACK |
137 | |------------------------->|
138 | |(F5) (MSRP) SEND |
139 | |------------------------->|
140 | |(F6) (MSRP) A reply |
141 | |<-------------------------|
142 |(F7) (XMPP) A reply | |
143 |<-------------------------| |
144 | | |
145 . . .
146 . . .
147 . . .
148 | | |
149 | |(F8) (SIP) BYE |
150 | |<-------------------------|
151 | |(F9) (SIP) 200 OK |
152 | |------------------------->|
153 | | |
155 First the XMPP user would generate an XMPP chat message.
157 Example: (F1) Juliet sends an XMPP message
159
162 711609sa
163 Art thou not Romeo, and a Montague?
164
166 The local SIP-to-XMPP gateway at the SIMPLE server would then
167 determine if Romeo supports MSRP. If so, the SIP-to-XMPP gateway
168 would initiate an MSRP session with Romeo on Juliet's behalf.
170 Example: (F2) Gateway starts a formal session on behalf of Juliet
172 INVITE sip:romeo@example.net SIP/2.0
173 To:
174 From:
175 Contact: ;gr=balcony
176 Subject: Open chat with Juliet?
177 Call-ID: 711609sa
178 Content-Type: application/sdp
180 c=IN IP4 x2s.example.com
181 m=message 7654 TCP/MSRP *
182 a=accept-types:text/plain
183 a=lang:en
184 a=lang:it
185 a=path:msrp://x2s.example.com:7654/jshA7weztas;tcp
187 Here we assume that Romeo accepts the MSRP session request.
189 Example: (F3) Romeo accepts the request
191 SIP/2.0 200 OK
192 To: ;gr=balcony
193 From:
194 Contact: ;gr=orchard
195 Call-ID: 711609sa
196 Content-Type: application/sdp
198 c=IN IP4 s2x.example.net
199 m=message 12763 TCP/MSRP *
200 a=accept-types:text/plain
201 a=lang:it
202 a=path:msrp://s2x.example.net:12763/kjhd37s2s20w2a;tcp
204 The XMPP-to-SIP gateway then acknowledges the session acceptance on
205 behalf of Romeo.
207 Example: (F4) Gateway sends ACK to Romeo's UA
209 ACK sip:juliet@example.com SIP/2.0
210 To: ;gr=orchard
211 From:
212 Contact: ;gr=balcony
213 Call-ID: 711609sa
215 The XMPP-to-SIP gateway then transforms the original XMPP chat
216 message into MSRP.
218 Example: (F5) Gateway transforms XMPP message to MSRP
220 MSRP a786hjs2 SEND
221 From-Path: msrp://x2s.example.com:7654/jshA7weztas;tcp
222 To-Path: msrp://s2x.example.net:12763/kjhd37s2s20w2a;tcp
223 Message-ID: 87652491
224 Byte-Range: 1-25/25
225 Content-Type: text/plain
227 Art thou not Romeo, and a Montague?
228 -------a786hjs2$
230 Romeo can then send a reply using his MSRP user agent.
232 Example: (F6) Romeo sends a reply
234 MSRP a786hjs2 SEND
235 To-Path: msrp://x2s.example.com:7654/jshA7weztas;tcp
236 From-Path: msrp://s2x.example.net:12763/kjhd37s2s20w2a;tcp
237 Message-ID: 87652491
238 Byte-Range: 1-25/25
239 Failure-Report: no
240 Content-Type: text/plain
242 Neither, fair saint, if either thee dislike.
243 -------a786hjs2$
245 The SIP-to-XMPP gateway would then transform that message into
246 appropriate XMPP syntax for routing to the intended recipient.
248 Example: (F7) Gateway transforms MSRP message to XMPP
250
253 711609sa
254 Neither, fair saint, if either thee dislike.
255
257 When the MSRP user wishes to end the chat session, the user's MSRP
258 client sends a SIP BYE.
260 Example: (F8) Romeo terminates the chat session
262 BYE juliet@example.com sip: SIP/2.0
263 Max-Forwards: 70
264 From: ;tag=087js
265 To: ;tag=786
266 Call-ID: 711609sa
267 Cseq: 1 BYE
268 Content-Length: 0
270 The BYE is then acknowledged by the XMPP-to-SIP gateway.
272 Example: (F9) Gateway acknowledges termination
274 SIP/2.0 200 OK
275 From: ;tag=786
276 To: ;tag=087js
277 Call-ID: 711609sa
278 CSeq: 1 BYE
279 Content-Length: 0
281 4. MSRP to XMPP
283 When an MSRP client sends messages through a gateway to an XMPP
284 client that does not support formal sessinos, the order of events is
285 as follows.
287 SIP User GW XMPP User
288 | | |
289 |(F1)(SIP) INVITE | |
290 |------------------------>| |
291 |(F2)(SIP) 200 OK | |
292 |<------------------------| |
293 |(F3)(SIP) ACK | |
294 |------------------------>| |
295 |(F4)(MSRP) SEND | |
296 |------------------------>| |
297 | |(F5)(XMPP) A chat message |
298 | |------------------------->|
299 | |(F6)(XMPP) A reply |
300 | |<-------------------------|
301 | | |
302 |(F7)(MSRP) SEND | |
303 |<------------------------| |
304 | | |
305 . . .
306 . . .
307 . . .
308 | | |
309 |(F8)(SIP) BYE | |
310 |------------------------>| |
311 |(F9)(SIP) 200 OK | |
312 |<------------------------| |
313 | | |
315 Example: (F1) SIP user starts the session
317 INVITE sip:juliet@example.com SIP/2.0
318 To:
319 From:
320 Contact: ;gr=orchard
321 Subject: Open chat with Romeo?
322 Call-ID: 742507no
323 Content-Type: application/sdp
325 c=IN IP4 s2x.example.net
326 m=message 7313 TCP/MSRP *
327 a=accept-types:text/plain
328 a=lang:en
329 a=lang:it
330 a=path:msrp://s2x.example.net:7313/ansp71weztas;tcp
331 Example: (F2) Gateway accepts session on Juliet's behalf
333 SIP/2.0 200 OK
334 To: ;gr=orchard
335 From:
336 Contact: ;gr=balcony
337 Call-ID: 742507no
338 Content-Type: application/sdp
340 c=IN IP4 x2s.example.com
341 m=message 8763 TCP/MSRP *
342 a=accept-types:text/plain
343 a=lang:it
344 a=path:msrp://x2s.example.com:8763/lkjh37s2s20w2a;tcp
346 Example: (F3) Romeo sends ACK
348 ACK sip:juliet@example.com SIP/2.0
349 To: ;gr=balcony
350 From:
351 Contact: ;gr=orchard
352 Call-ID: 742507no
354 Example: (F4) Romeo sends a message
356 MSRP ad49kswow SEND
357 To-Path: msrp://x2s.example.com:8763/lkjh37s2s20w2a;tcp
358 From-Path: msrp://s2x.example.net:7313/ansp71weztas;tcp
359 Message-ID: 44921zaqwsx
360 Byte-Range: 1-32/32
361 Failure-Report: no
362 Content-Type: text/plain
364 I take thee at thy word ...
365 -------ad49kswow$
367 Example: (F5) Romeo sends a message (XMPP translation)
369
372 742507no
373 I take thee at thy word ...
374
375 Example: (F6) Juliet sends a reply
377
380 711609sa
381 What man art thou ...?
382
384 Example: (F8) Gateway transforms XMPP message to MSRP
386 MSRP a786hjs2 SEND
387 To-Path: msrp://s2x.example.net:7313/jshA7weztas;tcp
388 From-Path: msrp://x2s.example.com:8763/lkjh37s2s20w2a;tcp
389 Message-ID: 87652491
390 Byte-Range: 1-25/25
391 Failure-Report: no
392 Content-Type: text/plain
394 What man art thou ...?
395 -------a786hjs2$
397 Example: (F9) Romeo terminates the session
399 BYE juliet@example.com sip: SIP/2.0
400 Max-Forwards: 70
401 To: ;gr=balcony
402 From:
403 Contact: ;gr=orchard
404 Call-ID: 742507no
405 Cseq: 1 BYE
406 Content-Length: 0
408 Example: (F10) Gateway acknowledges the termination of the session on
409 behalf of XMPP user
411 SIP/2.0 200 OK
412 To: ;gr=balcony
413 From:
414 Contact: ;gr=orchard
415 Call-ID: 742507no
416 CSeq: 1 BYE
418 5. Security Considerations
420 Detailed security considerations for instant messaging protocols are
421 given in [RFC2779], for SIP-based instant messaging in [RFC3428] (see
422 also [RFC3261]), and for XMPP-based instant messaging in [RFC6121]
423 (see also [RFC6120]).
425 This document specifies methods for exchanging instant messages
426 through a gateway that translates between SIP and XMPP. Such a
427 gateway MUST be compliant with the minimum security requirements of
428 the instant messaging protocols for which it translates (i.e., SIP
429 and XMPP). The addition of gateways to the security model of instant
430 messaging specified in [RFC2779] introduces some new risks. In
431 particular, end-to-end security properties (especially
432 confidentiality and integrity) between instant messaging user agents
433 that interface through a SIMPLE-XMPP gateway can be provided only if
434 common formats are supported. Specification of those common formats
435 is out of scope for this document, although it is recommended to use
436 [RFC3862] for instant messages.
438 6. IANA Considerations
440 This document requests no actions of IANA.
442 7. References
444 7.1. Normative References
446 [I-D.ietf-stox-core]
447 Saint-Andre, P., Houri, A., and J. Hildebrand,
448 "Interworking between the Session Initiation Protocol
449 (SIP) and the Extensible Messaging and Presence Protocol
450 (XMPP): Core", draft-ietf-stox-core-00 (work in progress),
451 July 2013.
453 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
454 Requirement Levels", BCP 14, RFC 2119, March 1997.
456 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
457 A., Peterson, J., Sparks, R., Handley, M., and E.
458 Schooler, "SIP: Session Initiation Protocol", RFC 3261,
459 June 2002.
461 [RFC3862] Klyne, G. and D. Atkins, "Common Presence and Instant
462 Messaging (CPIM): Message Format", RFC 3862, August 2004.
464 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message
465 Session Relay Protocol (MSRP)", RFC 4975, September 2007.
467 [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence
468 Protocol (XMPP): Core", RFC 6120, March 2011.
470 [RFC6121] Saint-Andre, P., "Extensible Messaging and Presence
471 Protocol (XMPP): Instant Messaging and Presence",
472 RFC 6121, March 2011.
474 7.2. Informative References
476 [RFC2779] Day, M., Aggarwal, S., and J. Vincent, "Instant Messaging
477 / Presence Protocol Requirements", RFC 2779,
478 February 2000.
480 [RFC3428] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C.,
481 and D. Gurle, "Session Initiation Protocol (SIP) Extension
482 for Instant Messaging", RFC 3428, December 2002.
484 Appendix A. Acknowledgements
486 Some text in this document was borrowed from [I-D.ietf-stox-core].
488 Thanks to Adrian Georgescu, Saul Ibarra, and Tory Patnoe for their
489 feedback.
491 Authors' Addresses
493 Peter Saint-Andre
494 Cisco Systems, Inc.
495 1899 Wynkoop Street, Suite 600
496 Denver, CO 80202
497 USA
499 Phone: +1-303-308-3282
500 Email: psaintan@cisco.com
502 Salvatore Loreto
503 Ericsson
504 Hirsalantie 11
505 Jorvas 02420
506 Finland
508 Email: Salvatore.Loreto@ericsson.com
509 Eddy Gavita
510 Ericsson
511 Decarie Boulevard
512 Town of Mount Royal, Quebec
513 Canada
515 Email: eddy.gavita@ericsson.com
517 Nazin Hossain
518 Ericsson
519 Decarie Boulevard
520 Town of Mount Royal, Quebec
521 Canada
523 Email: Nazin.Hossain@ericsson.com