Internet DRAFT - draft-idnani-sip-comb-reg-subscr
draft-idnani-sip-comb-reg-subscr
Internet Engineering Task Force
Internet Draft A.Idnani,
Document: draft-idnani-sip-comb-reg-subscr-00.txt S.Upp,
Expires: March 2003 T. Hallin
Motorola
October 2002
SIP Combined Registration and Subscription
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This memo proposes that the headers of REGISTER and SUBSCRIBE be
combined, so that a REGISTER message can also be treated as an
implicit subscription for events. This memo identifies the need for
doing this, and then explains how combining the Registration and
Subscription solves the problem. It also presents an example flow
demonstrating the use of this combined registration and subscription.
The headers being combined will be made optional in the REGISTER and
SUBSCRIBE messages - depending on where they do not appear as of
today - so that backward compatibility is maintained.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [7].
Idnani, Upp, Hallin Expires - March 2003 [Page 1]
SIP Combined Registration and Subscription October 2002
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Background on SIP Events . . . . . . . . . . . . . . . . . . 3
3. Proposed Solution . . . . . . . . . . . . . . . . . . . . . 4
4. SIP Registrar . . . . . . . . . . . . . . . . . . . . . . 5
5. Proxy UA . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 6
7. Call Flows . . . . . . . . . . . . . . . . . . . . . . . . . 6
8. Security Considerations . . . . . . . . . . . . . . . . . . 8
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
Author's Addresses . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
This memo tries to solve a problem that occurs in any situation in
which a SIP User Agent caches or in any way acts as a gateway to a
Non-SIP device. In particular, architectures in which SIP is used
as the signaling protocol within the core network of a system but the
wireless mobile devices that roam within the system are not SIP user
agents themselves.
This memo also introduces the concept of a "Proxy UA" which acts as a
gateway between the SIP core network and the SIP-unaware mobile. The
Proxy UA is responsible for running the UA call engine for all the
mobiles that it is serving, besides converting the call control
messages from SIP to legacy protocols and vice-versa.
SIP uses contact addresses to tie a userĘs address-of-record, which
is his logical address, to his/her current location [1]. The contact
addresses are centrally registered with a SIP Registrar using a SIP
REGISTER message.
UAs can also subscribe with presence servers, to get the presence
information of other UAs, using the SIP SUBSCRIBE request message.
The presence servers send a NOTIFY message to the subscribers, when
the presence information changes
Many a times when a mobile user moves from one service area to
another, his registration at the old service area is kept active by a
proxy UA in that area. This is because the old proxy UA has no way of
knowing (or atleast not fast enough way of knowing) that the user has
moved, and that there is now a new proxy UA for the user, which is
the correct proxy UA.
This problem is more evident where you have a SIP gateway that talks
proprietary protocols to the MS and maintains the MSĘ presence in the
Idnani, Upp, Hallin Expires - March 2003 [Page 2]
SIP Combined Registration and Subscription October 2002
SIP Registrar by sending SIP REGISTER messages to the SIP Registrar
on the MSĘ behalf. In some terms the SIP gateway behaves like a proxy
UA to a SIP Registrar. When the MS moves to another SIP gateway, the
new gateway would also send a SIP REGISTER to the SIP Registrar, and
record itself as being in the path to the MS. However the data at the
old SIP gateway has not been updated, and the old SIP gateway is not
aware of the fact that the MS has moved to a new SIP gateway.
2. Background on SIP Events
Before we go ahead with the solution, it is important to understand
how event notification works in SIP. So here is a brief description
on SIP event notifications.
In general entities in the SIP network can subscribe for resource or
state changes with other SIP entities in the network, and these
entities can send notifications back to the subscriber, when the
state changes.
A typical flow of messages would be as follows
+------------+ +----------+
| Subscriber | | Notifier |
+------------+ +----------+
| |
| SUBSCRIBE | Request state subscription
|----------------------->|
| |
| 200 OK | Acknowledge subscription
|<-----------------------|
| |
| NOTIFY | Return current state information
|<-----------------------|
| |
| 200 OK |
|----------------------->|
| |
| NOTIFY | Return current state information
|<-----------------------| when state changes
| |
| 200 OK |
|----------------------->|
| |
Subscriptions are expired like registrations and should be renewed
by subsequent SUBSCRIBE messages.
It is also important to understand what presence is and how SIP
entities use SUBSCRIBE and NOTIFY methods to communicate presence
Idnani, Upp, Hallin Expires - March 2003 [Page 3]
SIP Combined Registration and Subscription October 2002
data. Presence according to RFC 2778 [5] is subscription and
notification of changes in the communication state of a user. This
communications state consists of the set of communications means,
communications address and status of that user.
A normal SUBSCRIBE - NOTIFY flow for presence data communication is
as follows
+---------+ +----------+ +---------+
| Watcher | | Presence | | PUA |
+---------+ | Server | +---------+
| +----------+ |
| | |
| SUBSCRIBE | |
|---------------------->| |
| | |
| 200 OK | |
|<----------------------| |
| | |
| NOTIFY | |
|<----------------------| |
| | |
| 200 OK | |
|---------------------->| |
| | |
| | Update Presence |
| |<----------------------|
| | |
| NOTIFY | |
|<----------------------| |
| | |
| 200 OK | |
|---------------------->| |
| | |
In the above diagram a watcher (some UA) subscribes for the presence
data of PUA with the presence server. The Presence server immediately
replies back with the current presence data of the PUA in the NOTIFY
message.
At a later time, when the PUA updates its presence data by some means
(could use SIP REGISTER message), the presence server again notifies
the watcher, with the new presence data.
3. Proposed Solution
In a legacy mobile world, the problem would be solved by the HLR
sending a "Cancel Location" message to the old MSC-VLR.
Idnani, Upp, Hallin Expires - March 2003 [Page 4]
SIP Combined Registration and Subscription October 2002
This memo tries to solve the problem in a similar way but by using
SIP messages. Here the SIP Registrar would somehow need to notify the
old SIP proxy UA (or SIP gateway) that the MS has moved to a new SIP
proxy UA.
This memo proposes that
- We combine the SIP Registrar and the Presence Server. However the
Registrar and the Presence Server should process the expirations
of registrations and subscriptions independently. This basically
means that even if a registration may have expired due to a
contact being overwritten, the subscription will still be active,
until the expiration timer runs out. A user can however explicitly
de-subscribe by sending a SUBSCRIBE with "Expires" header set to
0, or by sending a combined SIP REGISTER and SUBSCRIBE method (as
described below), with the "Expires" header set to 0.
- It further proposes that we combine the headers of SIP REGISTER
method and SIP SUBSCRIBE method so that an explicit SUBSCRIBE is
not required. This invention proposes that the SUBSCRIBE header
"Event" be made optional in the SIP REGISTER message. Currently
the header is not supported in the REGISTER message. When the SIP
Registrar + SIP Presence Server sees a REGISTER message with an
"Event" header, it SHOULD implicitly subscribe the UA for the
event mentioned (presence in this case). So when the presence
information changes - like the contact address being replaced with
a new one, or a new contact address being added to the contact
list - the old contact (proxy UA or SIP gateway in our case)
SHOULD be notified of the change.
- This memo also proposes that a NOTIFY SHOULD not be sent
immediately on receiving the REGISTER, since the proxy UA would
have all the required information on presence, or would get it in
the 200 OK response. So a NOTIFY SHOULD only be sent when the
presence information changes like when the old contact is removed,
or a new contact address is added, the old contact SHOULD to be
informed of this change.
4. SIP Registrar
The SIP Registrar SHOULD also act as a Presence Server in this case.
The SIP Registrar SHOULD subscribe the Proxy UA to presence
information when it receives the combined SIP REGISTER and SUBSCRIBE
message. If there is already a contact address for the subscriber
being registered, and the contact is subscribed for presence
information, a NOTIFY message SHOULD be sent to the old contact to
inform it about the change in presence data. The Presence Server
will remove subscriptions on expiry.
Idnani, Upp, Hallin Expires - March 2003 [Page 5]
SIP Combined Registration and Subscription October 2002
5. Proxy UA
The Proxy UA SHOULD send the new combined SIP REGISTER + SIP
SUBSCRIBE message to the SIP Registrar.
It SHOULD also be capable of handling a NOTIFY message. It MAY use
the message to update its local database
6. Backward Compatibility
The modification being proposed in this memo is backward compatible
since the header is being made optional in the SIP REGISTER message.
If the header is not present, the message is same as before, so the
SIP Registrar SHOULD behave as usual.
7. Call Flows
+----+ +-----------+ +-----------+ +---------------+
| MS | | Proxy UA1 | | Proxy UA1 | | SIP Registrar |
+----+ +-----------+ +-----------+ | + Presence Srv|
| | | +---------------+
| F1 Update Presence | |
|--------------->| | |
| using standard | | |
| cellular protocols | |
| | F2 SIP REGISTER | (combined subscribe)|
| |-------------------|-------------------->|
| | | |
| | F3 200 OK | |
| |<------------------|---------------------|
| | | |
| F4 Update presence using standard | |
|----------------|------------------>| |
| cellular protocols | |
| | | F5 SIP REGISTER |
| | |-------------------->|
| | | (combined subscribe)|
| | | |
| | | F6 200 OK |
| | |<--------------------|
| | | |
| | F7 SIP NOTIFY | |
| |<------------------|---------------------|
| | | |
| | F8 200 OK | |
| |-------------------|-------------------->|
| | | |
Idnani, Upp, Hallin Expires - March 2003 [Page 6]
SIP Combined Registration and Subscription October 2002
In the above flow, Proxy UA1 does a combined SIP Registration and
Subscription. The expiration interval for both will be set by the
Expires header in the SIP REGISTER message. We can also use the tag
parameter with the Contact header, so that when the user moves from
one proxy to another, the tag parameter can be used to replace the
old contact addresses at the SIP Registrar. The SIP Registrar would
NOTIFY the old proxies of this change.
MESSAGE DETAILS
F1 Update Presence using standard cellular protocols. This would be
a standard message (depending on the mobile technology and provider)
going from the MS to a SIP Gateway in the providerĘs network.
F2 SIP REGISTER
REGISTER sip:registrar.home.com
Via: SIP/2.0/UDP proxyUA1.visited.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Accept: application/cpim-pidf+xml
Call-ID: 123456@proxyUA1.visited.com
Cseq: 14 REGISTER
Contact: userA@proxyUA1.visited.com; tag=5551212
Event: presence
Expires: 7200
Content-Length: 0
F3 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP registrar.home.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Call-ID: 123456@proxyUA1.visited.com
Cseq: 14 REGISTER
Contact: userA@proxyUA1.visited.com
Content-Length:0
F4 Update Presence using standard cellular protocols. This would be
a standard message (depending on the mobile technology and provider)
going from the MS to a SIP Gateway in the providerĘs network.
F5 SIP REGISTER
REGISTER sip:registrar.home.com
Via: SIP/2.0/UDP proxyUA2.visited.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Idnani, Upp, Hallin Expires - March 2003 [Page 7]
SIP Combined Registration and Subscription October 2002
Accept: application/cpim-pidf+xml
Call-ID: 63158@proxyUA2.visited.com
Cseq: 1 REGISTER
Contact: userA@proxyUA2.visited.com;tag=5551212
Event: presence
Expires: 7200
Content-Length: 0
F6 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP registrar.home.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Call-ID: 63158@proxyUA2.visited.com
Cseq: 1 REGISTER
Contact: userA@proxyUA2.visited.com
Content-Length:0
F7 SIP NOTIFY
NOTIFY sip:userA@proxyUA1.visited.com
Via: SIP/2.0/UDP registrar.home.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Call-ID: 123456@proxyUA1.visited.com
Cseq: 1 NOTIFY
Contact: userA@proxyUA2.visited.com
Content-Type: application/cpim-pidf+xml
Content-Length: ..
[PIDF Document]
F8 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP proxyUA1.visited.com:5060
From:UserA <userA@home.com>
To: UserA <userA@home.com>
Call-ID: 123456@proxyUA1.visited.com
Cseq: 1 NOTIFY
Contact: userA@proxyUA2.visited.com
Content-Length:0
8. Security Considerations
This draft does not introduce any new security issues.
Idnani, Upp, Hallin Expires - March 2003 [Page 8]
SIP Combined Registration and Subscription October 2002
9. References
[1] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J.
Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: Session
Initiation Protocol", draft-ietf-sip-rfc2543bis-09 (work in
progress),February 2002
[2] H. Schulzrinne, "SIP Registration" Internet Draft, Internet
Engineering Task Force, April 2001
[3] D. Crocker, A. Diacakis, F. Mazzoldi, C. Huitema, G. Klyne, J.
Rosenburg, R. Sparks, and H. Sugano, "Common Presence and
Instant Messaging (CPIM)", Internet Draft, Internet Engineering
Task Force, November 2001
[4] Adam Roach, "SIP-Specific Event Notification", Internet Draft,
Internet Engineering Task Force, February 2002
[5] M.Day, J. Rosenberg and H. Sugano, "A Model for Presence and
Instant Messaging", Request for Comments 2778, Internet
Engineering Task Force, February 2000
[6] J. Rosenberg, D. Willis, R. Sparks, B. Campbell, H. Schulzrinne,
J. Lennox, C. Huitema, B. Aboba, D. Gurle, and D. Oran, "Session
Initiation Protocol (SIP) Extensions for Presence", Internet
Draft, Internet Engineering Task Force, April 2002
[7] S. Bradner, "Key words for use in RFCs to indicate requirement
levels," RFC 2119, Internet Engineering Task Force, Mar. 1997.
Author's Addresses
Ajaykumar Idnani
Motorola
1301 E Algonquin Road
Schaumburg, IL 60196
Email: Ajaykumar.Idnani@motorola.com
Steve Upp
Motorola
1301 E Algonquin Road
Schaumburg, IL 60196
Email: Steve.Upp@motorola.com
Thomas Hallin
Motorola
Idnani, Upp, Hallin Expires - March 2003 [Page 9]
SIP Combined Registration and Subscription October 2002
1700 E. Golf Road
10Th. Floor
Schaumburg, IL 60173
Email: thallin@motorola.com
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Notice Regarding Intellectual Property Rights
The IETF has been notified of intellectual property rights claimed
in regard to some or all of the specification contained in this
document. For more information consult the online list of claimed
rights
Idnani, Upp, Hallin Expires - March 2003 [Page 10]