230 likes | 366 Views
SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE). Reporter : Allen. Outline. Introduction IMPP Model SIP for presence SIP for instant messaging Conclusion. Introduction. WHAT IS PRESENCE?
E N D
SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) Reporter : Allen
Outline • Introduction • IMPP Model • SIP for presence • SIP for instant messaging • Conclusion
Introduction • WHAT IS PRESENCE? • Also known as presence information, conveys the ability and willingness of a user to communicate across a set of devices • WHAT IS Instant Message? • “Real-time email”
FETCHER POLLER IMPP ModelPresence Service(1) • FETCHER • Simply requests the current value of some PRESENTITY’s presence information from the presence service • POLLER • A special kind of FETCHER is one that fetches information on a regular basis • SUBSCRIBR • Requests notification from the presence service of change in some PRESENTITY’s presence information Presence Service WATCHER SUBSCRIBER PRESENTITY WATCHER
Presence Service Presence Protocol Presentity Watcher • Subscriber • Fetcher Presentity UA Principal IMPP ModelPresence Service(3)
Presence Service Presence Protocol PRESENTITY WATCHER PRESENTITY UA WATCHER UA Principal Principal IMPP ModelPresence Service(4)
Instant Messaging Service Sender Instant Inbox IMPP ModelInstant Messaging(1) • Sender • provides instant messages to Instant Messaging Service • Instant Inbox • receives instant messages from Instant Messaging Service
Instant Messaging Service Instant Messaging Protocol Sender Instant Inbox Sender UA Principal IMPP ModelInstant Messaging(2)
Instant Messaging Service Instant Messaging Protocol Sender Instant Inbox Sender UA Inbox UA Principal Principal IMPP ModelInstant Messaging(3)
SIP for presence(1) • two new methods: SUBSCRIBE, NOTIFY • Presence Agent (PA) accepts subscriptions for presence notifications and sends these on state changes • PA mostly co-located with SIP User Agent • But can also be with SIP registrar or separate • PA receives SUBSCRIBE request and gets authorization from target • if authorized, a positive response gets back (i.e. 200 OK) • target changes state • PA sends changed state as presence information (in body) via NOTIFY request to subscribers
SIP for presence(2) • subscription to a PA (Presentity) expires as indicated by the Expires: header • subscriber has to re- SUBSCRIBEto get further notifications
WATCHER SERVER PUA SUBSCRIBE 200 OK NOTIFY 200 OK UPDATE PRESENCE NOTIFY 200 OK SIP for presenceWorkflow
SIP for presence: subscription (1) SUBSCRIBE sip:resource@example.com SIP/2.0 Via: SIP/2.0/TCP watcherhost.example.com;branch=z9hG4bKnashds7 To: <sip:resource@example.com> From: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@watcherhost.example.com CSeq: 17766 SUBSCRIBE Max-Forwards: 70 Event: presence Accept: application/cpim-pidf+xml Contact: <sip:user@watcherhost.example.com> Expires: 600 Content-Length: 0
SIP for presence: subscription (2) SIP/2.0 200 OK Via: SIP/2.0/TCP watcherhost.example.com;branch=z9hG4bKnashds7;received=192.0.2.1 To: <sip:resource@example.com>;tag=ffd2 From: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@watcherhost.example.com CSeq: 17766 SUBSCRIBE
SIP for presence: notification (1) NOTIFY sip:user@watcherhost.example.com SIP/2.0 Via: SIP/2.0/TCP server.example.com;branch=z9hG4bKnk From: <sip:resource@example.com>;tag=ffd2 To: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@watcherhost.example.com Event: presence Subscription-State: active;expires=599 Max-Forwards: 70 CSeq: 8775 NOTIFY Contact: sip:server.example.com Content-Type: application/cpim-pidf+xml Content-Length: .. [PIDF Document]
SIP for presence: notification (2) SIP/2.0 200 OK Via: SIP/2.0/TCP server.example.com;branch=z9hG4bKnk;received=192.0.2.2 From: <sip:resource@example.com>;tag=ffd2 To: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@watcherhost.example.com CSeq: 8775 NOTIFY Content-Length: 0
Time SUBSCRIBE Auth ? 200 OK SIP client of subscriber SIP front- end (PA) Ok Client back-end I’m online NOTIFY 200 OK NOTIFY I’m away 200 OK Example: SIP for presence
IMPP interworking: XML data formats • IMPP and SIMPLE working group have defined protocol-neutral data formats in XML for • presence information (PIDF) • watcher information • buddy lists • configuration (XCAP)
Example: PIDF for presence <presence xmlns="urn:ietf:params:cpimpresence:" entity=“pres:hubert@example.com"> <tuple id=“im"> <status> <basic>open</basic> </status> <contact priority="2"> im:hubert@example.com </contact> </tuple> </presence>
SIP for instant messaging Time • new method: MESSAGE • SIP client (sender) issues MESSAGE request • instant message is send in request body • reception of instant message is indicated by SIP response • subsequent messages can use same Call-ID (for threading) MESSAGE 202 Accepted SIP client (sender) SIP client (Instant Inbox)
SIP for instant messaging MESSAGE sip:user@inbox.example.com SIP/2.0 Via: SIP/2.0/TCP server.example.com;branch=z9hG4bKnk From: <sip:resource@example.com>;tag=ffd2 To: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@sender.example.com Max-Forwards: 70 CSeq: 1 MESSAGE Content-Type: text/plain Content-Length: 18 Watson, come here. SIP/2.0 202Accepted Via: SIP/2.0/TCP server.example.com;branch=z9hG4bKnk From: <sip:resource@example.com>;tag=ffd2 To: <sip:user@example.com>;tag=xfg9 Call-ID: 2010@sender.example.com Max-Forwards: 70 CSeq: 1 MESSAGE Content-Length: 0
Conclusion • Who Will Win (XMPP and SIMPLE)? • SIP security more difficult than email or web • Try to re-use existing mechanisms: • IPsec and TLS • Digest authentication • S/MIME for end-to-end • HTTP EAP?