Inline. On Nov 10, 2008, at 2:22 AM, Elwell, John wrote:
My responses to Paul:-----Original Message----- From: Paul Kyzivat [mailto:[EMAIL PROTECTED] Sent: 10 November 2008 04:10 To: Elwell, John Cc: Eric Burger; SIP IETF Subject: Re: [Sip] Comments on sip-info-events-01 Some followups to John's comments. I've trimmed down to relevant stuff. Thanks, Paul Elwell, John wrote:- I think I suggested once before that we should not treat Send-Info/Recv-Info exchanges like offer/answer, but shouldjust have asimple rule that says that a UA can send these headerfields at any timeand they supersede any sent previously. A UA MUST not sendINFO unlessthe package has been identified in the last Send-Info sentand the lastRecv-Info received. A UA MUST (SHOULD?) discard a receivedINFO unlessthe package has been identified in the last Recv-Info sent,and MUST beprepared to receive an INFO for a package as soon as it has sent a Recv-Info identifying that package. These header fields MAYbe includedin an INVITE request, in a dialog-forming response to anINVITE request,or in any other request or response in the context of anearly or fullINVITE-initiated dialog. This would be a lot simpler. Is there any reason it would not work? I am not certain I have enumerated all the rules here, but I doubt if very much more would need to be said normatively.I think this will work as long as he contents of these headers on one side are not coupled with those on the other side. IOW, I should be able to mention a package in Recv-Info even if it wasn't mentioned by the other side, and visa versa.[JRE] I agree that this would be a consequence, and yet a further simplification.
I like it.
But can somebody remind me why we need Send-Info at all?
You may be willing to send a package but not be willing to receive a package. For example, you may be a phone that wants to send only the DTMF package but have no need to receive any INFOs. You need a way to advertise what you are willing to send.
In much older drafts, when it was really an offer/answer handshake, there was some thought you might modify what you will advertise. For example, if you advertised
Send-Info: old-foo, new-foo and the response had Recv-Info: old-foo, new-foo the final response may just list Send-Info: new-foo to let the UAS know you will only be sending new-foo. I am ambivalent about this. What say you?
However in any case we must accept that there is a race condition, when an INFO is in flight at the same time as a Recv-Info in the other direction that forbids sending it. I think that is fine - it will just be rejected, and that should not be considered a serious error.
Agreed.
If the UAS receives an INFO request with a Info-Package the UAC advertised with a Send-Info in the last dialog state update" It was not clear to me that every dialog state update MUST contain Send-Info/Recv-Info. In other words, if I send an UPDATErequest withoutthese header fields, e.g., for session timer refresh, doesthis cancelany previous negotiation of Info Packages? I would preferthat it didnot, that it simply left things unchanged.We need to be careful here, to prevent breaking 3pcc. If a transfer is done via 3pcc, how can we ensure that the desires of the unchanged party are made known to the transfer target? This could be ensured that the Send-Info/Recv-Info headers are always sent when an offer or answer is sent.[JRE] I don't object to mandating it, if this is what it takes to make it work in a 3PCC environment. Is it clear to everyone what "dialog state update" means?
Yes, and I would offer sending Send-Info/Recv-Info in every (potential) state changing message means the protocol works in all scenarios. It doesn't cost much in bytes, but I can see the argument that if you ran a separate, light-weight keep-alive mechanism, it would need to now know about INFO Packages.
- "If a server receives an INFO request with a body itunderstands, butit has no Info-Package header, the UAS MAY render the body." This is the first mention of "render". In fact there isnothing to saythat a UAS must/should/may render a body when an INFOrequest is not inerror, so it seems odd to talk about rendering when thereis an apparenterror in the INFO request. Is "rendering" necessarily theappropriatething to do with a received and valid INFO request. Shouldwe insteadsay "...the UAS MAY make use of the body"?Yeah, "render" could be quite confusing. Perhaps "process"?
Sounds good to me. I used render because its meaning is well-known ("Do something with it").
- "The UAS MUST send a 481 Call Leg/Transaction Does NotExist messageif the INFO request does not match any existing dialog." Shouldn't this say "...does not match any INVITE-initiated dialog"?INVITE-dialog-usage?[JRE] Yes, that would be better.
(I could have a dialog that was initiated with an INVITE, then piggybacked with a SUBSCRIBE, then BYE to the INVITE, but subscription remains. That is still an INVITE-initiated dialog, but INFO isn't valid.)
Will do.
- "The INFO message MUST NOT change the state of the SIPdialog. Theonly exception to this rule is for specific failure responses as documented in RFC 5057 [RFC5057], which may cause theINVITE dialogto terminate."This jogs another question in my mind. Is it permissible to pass Send-Info / Recv-Info headers in an INFO? If so, then IMO those change the state of the dialog.
Nope. I'll fix.
- "A UAC, the sender of the OPTIONS request, MAY includeSend-Info andRecv-Info headers, populated appropriately for thepackages the UACsupports. The UAS MAY include its set of Send-Info and Recv-Info packages. The UAS and UAC MUST NOT consider the OPTIONSrequest tobe part of a capabilities negotiation. The OPTIONSrequest is purelya probe." The semantics of these header fields in an INVITE request or another message in an INVITE-initiated dialog means I am prepared to send/receive these packages in the context of this dialog.However, forOPTIONS there is no dialog. So what exactly are thesemantics of theseheader fields in OPTIONS request? Presumably it just means I support these packages and may be prepared to send/receive them inthe contextof an INVITE-initiated dialog. This should be clarified.I agree. (I have similar problems with everything in an OPTIONS.)
Me, too.
- In 5.1, Why is Contact allowed in an INFO request but not in a 2xx response to INFO? Since INFO is not allowed to changedialog state, itcannot change target URIs, so what would be the meaning ofContact in anINFO request. I think we should align with BYE and notallow Contact inINFO.Agree.
Yup.
- "For the purposes of matching Info Package typesindicated in Send-Info or Recv-Info with those in the Info-Package headerfield value,one compares the Info-package-name portion of theInfo-package-typeportion of the "Info-Package" header byte-by-byte withthat of thesame in the "Send-Info" or "Recv-Info" header values." Presumably comparison is case-sensitive. Should we state this?By default I would assume case-insensitive behavior. That is the norm for most things. Is there a reason to be case sensitive here?[JRE] I am happy for it to be case-insensitive, but the most likely interpretation of the existing words is case-sensitive.
The intention of the existing words is, in fact, case-sensitive. Again, I can go either way.
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Sip mailing list https://www.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
