Francois,

"Why not use that?" is the wrong question. It should be "Why do THEY (the people out there) use or don't use { KPML, INFO, RFC2833, <some proprietary solution>, ... }"

It is not up to us - the people participating in these IETF mailinglists - to decide what gets used. We simply don't have any say in that.

In my limited perception of the world, people use INFO because it's better known by them, supported by some devices, simpler to use, and low overhead - you don't pay a performance penalty unless a key press (for example) actually happens, which in some cases is rare (like for certain telephony applications). People tend to think along the lines of "it's defined in an RFC, therefore standard, seems supported by others (at least by the list of devices on my mandatory interop list) -> ok to use" and then add an item to their "supported standards" list on the product data sheet

"We" can argue that it's wrong to use INFO, that it's lacking contextually-adapted negotiations mechanisms, etc. but the reaction will simply be: "What are you talking about, contextual bla-bla, it's working fine for US and our purposes".

Pandorra's box that is INFO has been opened. It's out there, and there's no stopping it. Let's go solve some real issues now

Regards,
Jeroen

Francois Audet wrote:
Hi Dean,

Can you tell me what is the difference between "contextually-adapted
INFO", and a "subscription embedded in the INVITE, with the NOTIFY
using the same dialog"? I don't see any advantage to the INFO approach.

It seems to me we already have a mechanism for asking for asynchroous
information with subscriptions. Why not use that?

-----Original Message-----
From: Dean Willis [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 10, 2007 21:20
To: Audet, Francois (SC100:3055)
Cc: Christer Holmberg; IETF SIP List
Subject: Re: What are we arguing about when we say INFO? (was Re: [Sip] INFO)


On Oct 10, 2007, at 6:14 PM, Francois Audet wrote:

(d) they think it's a waste of resources to establish multiple additional subscription dialogs (there may be other type
of data than
DTMF they are willing to receive) which in many cases may
not even be
used during the call (it can not be assumed that the one
sending the
subscription always knows exactly when it will receive
events). Maybe
DTMF is not the best example in the world (my fault - I
should have
been more generic), but I am sure there could be events
which would
not be used in a very high percentage of all calls, but still the additional subscription dialog(s) would have to be
established - just
in case.
Maybe a way to subscribe to packages within an INVITE
dialog would be
suitable. You then would get the NOTIFYs withind the
dialog, and they
wouldn't be out-of-the-blue because you would have
subscribed to those
events explicitly with some Allow-Event in the INVITE.

Hmm. In-dialog event notification using INVITE as an explicit subscription trigger. That works, mostly.

Other people would argue that the semantics are better preserved with a a new SIP method that is defined to carry whatever sort of blob we're talking about in the specific context of the application usage. We'd then add that method name to the list of supported methods given in the Allow header field. Of course, this will eventually give us "Really Big" Allow header fields, which means the negotiation mechanism is broken. We need an easier way for one end to ask "Hey, do you understand this?".

Others would say that the we're better off defining a session protocol designed to transport the blobs in question, along with SDP extensions to negotiate this protocol, NAT-traversal hooks to allow us to talk about the connectivity of the blob-transferral protocol, then do a reINVITE exchange to add the new blob-session to the existing session.

Yet others would say that we already have a blob-transferral protocol (MSRP), along with the nat traversal hooks and SDP extensions needed to negotiate it, and should therefore push the problem out one layer of protocol and make it an MSRP problem. This begs the question of how MSRP negotiates as to whether the context and content are agreed on both ends, which AFAIK it does little better at than INFO.


So what's the difference?

All (assuming we figure out the MSRP context negotiation problem) explicitly declare the understanding of and the desire to receive messages within this dialog/session that contain the data we've defined and assure that the application context (the "what do I do with this stuff" problem) is mutually understood.

The differences are that one approach is the extension of an application protocol to support a new application, while two others are extensions of existing transport protocols (SIP, MSRP) to carry new payloads in contexts determined by the applications. The last one implies the development of an all-new transport protocol (or perhaps the modification of some other protocol like RTP) as well as extension to our descriptive protocol (SDP). These are very different things, and part of the reason that SIP has gotten more complex than I would like is that we haven't been operating with a clear understanding of these differences.

Personally, I think that we've got a lot of complexity there that we didn't really need. If SIP had been designed from the ground-up as a transport protocol for arbitrary messages and the application were a function of the message content, we'd have a much clearer model of what to do. But it wasn't built that way, so now we need some guiding principles on when each sort of approach is appropriate. Without it, we're just going to go around in circles on the "Is INFO harmful, and if so why?" carousel.

Since I can't leave it hanging there, I'd like to propose some rules of thumb:

1) If INFO had context negotiation, we'd have a complete protocol and would quite possibly only need new SIP method types if there was a need for a fundamental change to the SIP state machine. Even without INFO, we have the same functionality available, albeit at the overhead of an additional dialog. So, I suggest we only introduce new SIP methods if there's a need to change the underlying machine. If we're just moving new data in application contexts, we can do that without changing SIP itself. I really don't want to keep the SIP WG around just so we can specify a new SIP method for each application somebody dreams up.

2) Since SIP can provide for the transport of arbitrary data and application context, we should only use "session" transport of the data when that dataflow itself has fundamentally different characteristics -- essentially, when it is a long-lived and relatively continues flow, aka a "stream". Quite possibly, this should extend to only dataflows that have the properties of RTP -- time sensitive, relatively loss insensitive, and so bulky we need them to be as end-to-end as we can even if it means building more infrastructure to make that happen. And yes, I think MSRP is a misguided effort -- by the time we've built MSRP relays and all the extra cruft, we've duplicated SIP's message proxy operation, ICE, GRUU, STUN-relay, and so on. Personally, I'm not even sure that this level of separation is a good idea. Coaxial signaling and media have great advantages for firewall traversal. But we have what we have. In short, use RTP/MSRP for "sessions", and SIP event payloads (or contextually-adapted INFO) for everything else.

3) There is no rule 3.

--
Dean



_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip



_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip

Reply via email to