Document: draft-ietf-sip-hitchhikers-guide-03 Reviewer: Brian Stucker Review Date: 11/08/2007 Review Due: 10/29/2007 Review Type: WGLC (SIPPING perspective) Summary: Ready with comments Comments ---------------- Section 1: This document itself is not an update to RFC 3261 or an extension to SIP. It is an informational document, meant to guide newcomers, implementors and deployers to the SIP suite of specifications. May want to change "meant to guide newcomers, implementors and deployers to the SIP suite of specifications" since many of the documents are not predicated upon SIP itself. For example, RFC-4566, 3388, 3264. Also, I don't think we want to imply that this document is exhaustive. Perhaps "It is an information document, meant to introduce newcomers, implementors and deployers to many of the important IETF specifications associated with SIP. Specifications referenced by this document were chosen based on working group consensus and the list presented here is not intended to be exhaustive or confer any special status over documents not included." Might also want to include some pointers to the relevant WG webpages to give newcomers a place to go for further information. As well as include some boilerplate about the dangers of implementing I-D's before they become RFCs (I think this was already discussed somewhat on the RAI mailing list). Section 2: Although I agree that documents defining relevant registries should be excluded, what about pointers to the registries themselves? Seems like some of the interop problems we wind up with are due to disregard or lack of visibility of the IANA registration process to implementors. Section 3: RFC3261: I think it would be useful to provide a reverse-lookup list of RFCs that formally update 3261 under the 3261 entry: RFC-3583, RFC-4320 and RFC-4916. There is a statement under 4320 that it formally updates 3261, but there is no mention under 4916 that it formally updates 3261, it just looks like any other extension. Putting a pointer to the SIPS work as a TBD formal update to 3261 would also be good as well as collapsing the "essential corrections to SIP" under the 3261 entry so that people don't skip over that material would be good as well. RFC3264: Should we perhaps put a pointer here to the offer/answer draft for further clarification of 3264 since it seems pretty clear that the baseline specification did not entirely capture all of the interactions that arise in implementations? RFC3325: May want to remove the word "secure" from the description of the P-Asserted-ID header description. P-Asserted-ID does not confer any security of the caller ID information. It's the trust domain that provides the security in contrast to a mechanism like RFC-4474. RFC3581: Rport is necessary to routing a response through a NAT, but does not solve NAT traversal for SIP signaling. Perhaps a pointer to outbound under this RFC would be useful to highlight what you don't get with rport that you need to fully address NAT traversal issues, or simply remove it entirely and rely on folks to go to the NAT traversal section to discover it there as it's not necessary at all if you have no NATs to traverse (ALGs and SBCs aside). RFC4474: I don't think it's necessary that we should highlight the deployment size of the various RFCs in this way, especially given that the RFC is much newer (and has more complicated requirements) than RFC3325. SIPS: Should note that this will formally update RFC3261 when approved to highlight that newcomers should ignore what's in RFC3261. Section 4: RFC2848/3910: If this has seen little deployment and is very narrowly scoped, then why are we including it in the guide? RFC3372: Widespread implementation in a limited deployment model. It should be noted that it's usage is intended to be temporary as ISUP endpoints are obviated from the network. RFC3960: Early media is not just generated by the PSTN. We should be fair here and acknowledge that 3960 does not solve all of the various issues associated with early media (without enumerating them). We all know this to be the case, so just a sentence or two should suffice to warn the reader. RFC3959: We should highlight that this specification has not seen widespread deployment. As of a few IETFs ago nobody indicated that they had developed anything with regards to this specification when asked at a working group meeting. This is only important in that 3960 does not solve all of the early media issues. Shouldn't we have an entry in this section for RFC3966 to cover tel URIs? Section 5: RFC3262: PRACK is complicated, for sure, but it's used for more than just PSTN interworking and is more than mildly deployed depending upon the environment. RFC3311: ..but can be used to initiate a reliable request during session establishment when a re-INVITE is not possible. This is key for conveying information to an originator that cannot be conveyed in a response either due to offer/answer complications or because a header is not allowed in a response message type. We should also point out here that when UPDATE is used to convey SDP, support for RFC3262 is required in some scenarios. I don't think this is widely recognized. Should also call out that it can be used to convey mid-call information as well. RFC3608: You've captured the client perspective of the usage of service-route, but from a server perspective, it's used by proxies to capture the route set of a registration to know how to route future requests on behalf of the client. In this role it has seen greater deployment and applicability. RFC 3841: Should probably call out the relationship between this RFC and 3840. Need to remove duplicate entry for SDP negotiation under PSTN interworking. RFC4244: Should remove reference to voicemail here. It has broader scope. RFC4758 is intended for this purpose now (later comment). Shouldn't we have an entry in this section for RFC3880, CPL? Section 6: RFC3605: Should this be here and under the core specifications section? I don't see this attribute show up in SDP very often (pre-ICE), but it is necessary for some NAT traversal solutions. Perhaps only have a reference to it here? Outside of NAT traversal, is there a primary reason to have this RFC or ICE in the core specifications section? OUTBOUND: Doesn't outbound satisfy the requirements of a broadly applicable extension to SIP? Seems like if ICE is a core specification, that OUTBOUND should be considered one as well? RFC3890: It's used extensively in other SDOs, paricularly wireless. RFC4730: Should probably explain here briefly, that 2833/4733 is most commonly used to convey DTMF for SIP deployments, but the difference is that KPML does it on the signaling path as opposed to the media path. This is somewhat important given the low current deployment of KPML. Section 13: Perhaps we should add an entry here for RFC4896 or make a note under the entry for RFC3486 that RFC4896 updates both RFC3486 and RFC3485 which is the static dictionary for SIP (which provides the explicit coupling between SIGCOMP and SIP eluded to in the draft text). The important bit for an entry to RFC3485 is that there are a few bugs in the dictionary such that you'd need to refer to section 12 of RFC4896 to come up with a BCP implementation. Section 14: I think we should add an entry for RFC4758 to capture the voicemail service URI as another important service URI RFC. Section 15: RFC3853: May want to state that RFC3853 'formally' updates RFC3261, and put a pointer to this from the core specifications section as a result since it's a correction to 3261. RFC3893: Should RFC3893 entry simply say something to the effect of 'use RFC4474', or be dropped altogether? RFC3329: There are now three possible security models now in 3GPP: HTTP DIGEST, AKA, and early-IMS. As early-IMS doesn't really involve much in the way of security mechanisms within the SIP protocol, the coexistance of it with digest or AKA seems to be very probable. Perhaps we should just remove the last sentence and leave it up to the reader to decide if it's needed for their purpose. Section 16: Shouldn't we perhaps move RFC4796 from section 7 to this section? Section 17: Providing a pointer off to ECRIT seems useful here. That's it!