Title: SIMPLE MSRP Chat draft-niemi-simple-chat-06.txt
1SIMPLE MSRP Chatdraft-niemi-simple-chat-06.txt
- 68th IETF
- Prague, Check Republic
- SIMPLE WG
- 21/22-March-2007
- Miguel Garcia ltmiguel.an.garcia_at_nokia.comgt
- Aki Niemi ltaki.niemi_at_nokia.comgt
2History and scope
- Version -00 of this draft appeared in January
2004. - Since then, the draft has been bouncing back and
forth between SIMPLE and XCON - XCON was even fed with requirements in (expired)
draft-garcia-xcon-private-messaging-reqs - Goals of the draft-niemi-simple-chat-06
- Leverage the SIP conference framework (RFC 4353)
and the conference event package (RFC 4575) with
MSRP chats - Provide MSRP-specific mechanisms to enable
private messaging and rudimentary pseudonyms
through nicknames with MSRP chats - Provide solutions that are forward-compatible
with the conference management protocol
eventually coming out of XCON - Aim at the same level of functionality as with
other standard chat protocols (e.g., IRC,
XMPP/Jabber)
3Architecture
Chat room server
SIP
SIP
Conference focus
Participant
Participant
MSRP
SIP
MSRP
SIP
MSRP mixer
MSRP
MSRP
Participant
Participant
4Main functions
- SDP negotiation
- Ability to learn of support and ability to use
the chat extensions at the conference focus
MSRP mixer - Nickname handling
- Ability to set a unique nickname for the duration
of the session - The MSRP mixer can decline and in case of
collisions, even suggest other (similar)
nicknames - Regular messaging
- Ability to exchange messages with all
participants in the chat room - Private messaging
- Ability to send and receive private messages with
selected participants through the MSRP mixer - Outside the scope
- Sidebars
- Control
- Roles and policies
5Joining a conference
- Participants sent INVITE requests to join
- The draft advocates the usage of message/cpim
- So the SDP in the INVITE should contain
- aaccept-typesmessage/cpim
- The draft defines a new media-level chatroom
attribute in SDP, which is included in the SDP - Used to learn support between the participant and
the chat room server - And to discover policies for usage of nicknames
and private messages - achatroomnickname private-messages
6Nicknames
- A nickname is defined as the combination of a
Display-Name and a SIP URI formatted according to
a special naming convention - The Display-Name need not be unique in the chat
room - The SIP URI part is scoped to the chatroom URI.
- The SIP URI must contain the chatroom URI.
- Examples
- "Alice" ltsipalice40wonderland_at_chats.example.comgt
- "Beer Lover" ltsipbeerlover40chat34_at_example.comgt
- Properties
- The nickname URI is not publicly connected to the
real SIP identity of the user - The nickname URI resolves to the chat room server
-gt It provides pseudonimity - The URI is globally unique (but the Display-Name
is necessarily not)
7Setting a nickname
Chat room server
Participant
- New MSRP method NICKNAME
- Two new MSRP headers Set-Nickname and
Proposed-Nickname - Reuse of the existing 423 response code
- By default, nicknames are valid for the duration
of the session - Nicknames are advertised through the conference
event package - Extension not yet defined, but could be a new
ltnicknamegt element child of ltusergt - ltconference-infogt
- ltusersgt
- ltuser entity"sipuser_at_example.com"gt
- ltdisplay-namegtAlice Brownlt/display-namegt
- ltnickname entity"sipalice_at_chat22.ex.com"gt
- ltdisplay-namegtAlice in Wonderlandlt/display-
namegt - lt/nicknamegt
- ltendpointgt ... lt/endpointgt
- lt/usergt
- lt/usersgt
- lt/conference-infogt
MSRP d93kswow NICKNAME Set-Nickname "Alice"
ltsipalice40chatroom22_at_chat.example.comgt
MSRP d93kswow 423 Nickname already in
use Proposed-Nickname "Alice 2"
ltsipalice240chatroom22_at_chat.example.comgt
MSRP d93kswow NICKNAME Set-Nickname "Alice
Two" ltsipalice240chatroom22_at_chat.example.comgt
MSRP d93kswow 200 Set-Nickname "Alice Two"
ltsipalice240chatroom22_at_chat.example.comgt
8Sending instant messages
Chat room server
Participant
- Sender MUST wrap message in CPIM
- CPIM To header set to chatroom URI
- CPIM From header set to any senders URI
- SIP URI
- TEL URL
- IM URI
- Nickname URI
- ... and send it in a SEND request
- MSRP mixer does not alter bodies when forwarding
to other participants - No reports of errors on the other side of the
mixer
MSRP d93kswow SEND Content-Type
message/cpim To ltsipchat34.example.comgt From
Bob" ltsipbob_at_chat34.example.comgt Content-Type
text/plain Hello -------d93kswow
MSRP d93kswow 200
9Sending private instant messages
Chat room server
Participant
- Sender MUST wrap message in CPIM
- CPIM To header set to any recipient(s) URI
- SIP URI
- TEL URL
- IM URI
- Nickname URI
- CPIM From header set to any senders URI
- SIP URI
- TEL URL
- IM URI
- Nickname URI
- ... and send it in a SEND request
- MSRP mixer does not alter bodies when forwarding
to other participants - No reports of errors on the other side of the
mixer
MSRP d93kswow SEND Content-Type
message/cpim To Alice ltsipalice_at_chat34.exampl
e.comgt From Bob" ltsipbob_at_chat34.example.comgt
Content-Type text/plain Hello -------d93kswow
MSRP d93kswow 200
10Dropping the Big One
- Will you marryHHHHH work on this?