Subject: [SIP] Proxy initiating a BYE - contd.

From: Dvir Oren <[email-masked]>
Date: Tue, 1 Aug 2000 12:59:39 +0300 (IDT)

Just as an afterthought regarding my previous query, what happens if a 
proxy fails to proxy an ACK? 

(Note:  This is perhaps similary to another example posted on the list 
when a proxy discovers that to send the ACK it will have to loop.   
My question is a bit more general)

When I asked what should a UAS do when it sent a 200 response without
receiving an ACK, I was replied that it should die quietly.  Now, if
the proxy failed to send the ACK (for the 200), then the UAS will die
quietly, and the UAC, will think it sent a perfectly good ACK.

The proxy knows that it cannot send the ACK, however it cannot
inform the UAC that the ACK failed, without initiating a BYE.

This is a somewhat simpler situation of a proxy initiating a BYE since 
it only sends the BYE one direction - but this is exactly the
direction that is problematic.  Besides, the issue is whether the
proxy should send the BYE or not.

-- 
Dvir Oren               <[email-masked]>
Lucid VON Ltd.     <http://www.lucidvon.com>
9 Saloniki St.,        Tel-Aviv       Israel
Tel:  +972 3 644 3038  Fax:  +972 3 644 3039

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: "Jo Hornsby" <[email-masked]>
Date: Tue, 1 Aug 2000 11:36:18 +0100

> proxy fails to proxy an ACK? 

If it's because the proxy is inherently incabable, you buy a
new proxy from a different vendor.

Otherwise, it's going to be some horrible network failure, I guess;
well, these things happen.

> My question is a bit more general)

I can't understand why a proxy would ever find out that it had
to loop an ACK, if it's going by the bis draft (mandating Contact
has effectively eliminated this as a problem).

The only case, then, that a proxy would "discover" that it had
to loop an ACK would be if one or both of the UAs were dain-bramaged
and inserting incorrect Contact addresses; or perhaps even
a proxy inserting an incorrect Record-Route.

It's difficult to legislate against a broken implementation if
the vendor went at it with a sledgehammer. &:)

> inform the UAC that the ACK failed, without initiating a BYE.

This is trivially solved by magic of Session Timer.

And even if Session Timer is not being used, I would guess that
the callee is eventually going to figure that something is wrong.
If the 'phone rings, and I pick it up, and all I hear is dead
air, I'm going to put the 'phone back down.

There's nothing wrong with the UAS sending a BYE.  The point was that
it might not necessarily work because the reason you didn't see
an ACK was because all the 200s were getting lost.  If all the
200s are getting losts, a BYE isn't likely to do any better.

> proxy should send the BYE or not.

Ultimately, I think we're getting down to the notion of logical
roles.  In the end, all of these things: UAC, UAS, stateful proxy,
yada, yada, are logical roles.  A proxy doesn't initiate requests
(other than ACK or CANCEL), period.  This doesn't mean that you
can't have some sort of hybrid server that appears (to other
elements in the "SIP Network") like a UAC in some scenarios, and
like a proxy in others.

However, in this case, I would consider such an approach
unnecessary in the face of Session Timer.  It is easy for a proxy
along the route to mandate the use of Session Timer, which seems
to solve all problems.  And if you want to solve other problems,
best to look to more "standard" ways such as 3pcc, first.

Cheers,

 - Jo.

---

From: Anders Kristensen <[email-masked]>
Date: Tue, 01 Aug 2000 07:45:34 -0400

> inform the UAC that the ACK failed, without initiating a BYE.

This is not something for the proxy to worry about. The session is being
setup end-to-end and proxies cannot and should not tear down or
otherwise modify an ongoing session.  If you need that sort of
functionality then you're nto looking at a proxy but at something that
acts as a combined back-to-back UAS and UAC - the B2BUA Jonathan talked
about. This is what the 3pcc draft is about.

As Gethin pointed out session timers or broken media streams may be used
by the UAC to detect a situation like the one you describe and take
whatever action is appropriate, e.g. attempting to send a BYE.

--
Anders Kristensen