Subject: BYE, REGISTER, call termination

From: Arjun RC <[email-masked]>
Date: Tue, 13 Apr 1999 09:40:09 +0530 (IST)

Hi,
I have a few doubts after reading the SIP rfc.

1. The RFC mentions that if a user's registration expires, the SIP Server
must _silently_ remove his/her registration.

But what does this amount to ? Assuming the case in which A & B are
talking and A's registration expires, once the SIP Server removes his
registration, does it also Break the call ? If not, then A could start a
call just 1 min away from his expiry time and continue till hours without
disconnecting. So what is the usual policy that most implementors have
used ?

2. The second is to do with register refreshes. Assume that A & B are in a
conversation. If A crashes, B can detect the crash when it does not get
any packets from A and issue a BYE which can tell the SIP Server that the
call b/w the two must be terminated and it proceeds to removr any state it
maintains for the two.
The problem arises when both A & B both crash at the same time. If this
happens, the BYE cannot be initiated and how does the SIP Server know when
to do any processing to close the call record ? One way would be to force
each client to timeout after say X secs. after which it must refresh its
registration. But this would mean
	a) Each client after X secs has to send a refresh to the SIP
Server -- for a lot of clients, its a lot of packets transmitted.
	b) The fact that the SIP Server forces each client to TimeOut and
refresh after X secs means that if a client wants to Expire after say,
7200 seconds, the SIP Server does not honour it, and instead asks him to
timeout after X secs. I want the Server to honour client specified expiry
time if it can.

3. Finally, what is the usual philosophy of REGISTER expiry ? I know
diffenrt implementors can have different philosophies, but I wanted a feel
of what the usual practics is -- does the SIP SErver use the REGISTER
expiry as a time-limiting factor for a client after which it can deny
service to the client (useful in cases where I give a client free time or
1 hr, and then ask him to pay up for service) or is it simply a client
facilitator in which the client can keep extending the REGISTER as and
when he pleases ?

Sorry if these are too many Qs, but these are the problems I am facing
right now :-)

Cheers
ARC

I may be inconsistent, but not all the time.
------------------------------+----------------------------------+
(O): Hughes Software Systems  |(R): 68/G, 2nd Narayanappa Block, |
146, Prestige Opal Bldng,     |R.T. Nagar,                       |
Infantry Rd, Bangalore-560001 |Bangalore-560032                  |
Ph:+91-80-2286390/91/92       |Ph:+91-80-3430565                 |
------------------------------+----------------------------------+
http://arjun.cjb.net, http://hss068.hss.hns.com (intra HSS)

---

From: Jonathan Rosenberg <[email-masked]>
Date: Tue, 13 Apr 1999 01:37:31 -0400

Arjun RC wrote:
> registration, does it also Break the call ? 

Absolutely not. In normal operation, once the call is established, the
proxy isn't involved anymore. The endpoints signal directly. The fact
that the refresh expires has no impact. Even using Record-Routes,the
Route header would instruct the proxy on how to forward the request
without the registration database being up to date.

In any case, if A and B are talking, this means A is alive, and it
should refresh its registration anyway.

If not, then A could start a
> disconnecting. So what is the usual policy that most implementors have

Sure. Whats wrong with that? The purpose of registration expiration is
*not* to deny access to the IP network (nothing it can do about that),
but to not make use of devices which are not connected to the network
anymore.

> timeout after X secs. I want the Server to honour client specified expiry

You are confusing registration expiration from call timeouts. They are
totally different. There was a recent draft on SIP call timeouts, which
uses a re-INVITE between both parties to keep the call active in the
proxy. This interval for refresh has nothing to do with registration
refresh.

In any case, if you don't like the overhead of maintaining call state in
the proxy, then don't. SIP scales best when the proxies don't maintain
call state. They assist in call setup and then thats it. Many
traditional mid-call services, like mute, conference, and call waiting,
require media to pass through the device providing the service. Since
the media does not pass through a SIP proxy, most of these services make
most sense to implement in the UA. 

> facilitator in which the client can keep extending the REGISTER as and

REGISTER expirations will not help you limit user access to services. A
UA can simply bypass the proxy and signal direct (or use a different
proxy which has no such limitation). REGISTER expirations are meant to
make sure that users communicate only with devices which are actually
connected to the network. 

-Jonathan R.

-- 
Jonathan D. Rosenberg                       Lucent Technologies
Member of Technical Staff                   101 Crawfords Corner Rd.
High Speed Networks Research                Holmdel, NJ 07733
FAX: (732) 834-5379                         Rm. 4C-526
EMAIL: [email-masked]
URL: http://www.cs.columbia.edu/~jdrosen