Jerry, >From RFC 3261:
"The REGISTER request sent to a registrar includes the contact address(es) to which SIP requests for the address-of-record should be forwarded. The address-of-record is included in the To header field of the REGISTER request." "The 200 (OK) response from the registrar contains a list of Contact fields enumerating all current bindings." I think this says the Contact header in the 200 OK response to REGISTER should not include the URI of the responding registrar (or far end SBC), but should report the URI of the binding known to the registrar, which would be the mapping between the To header and Contact header(s) from the original REGISTER. In other words, the Contact header in the 200 OK should mirror the Contact header in the REGISTER, not change it to the URI of the responding Registrar/SBC. In any event, I still think that when Sofia-SIP cannot correlate the Contact headers (due to URI modification) and use the 'expires' parameter from the Contact header, Sofia-SIP should fall back to the Expires header (if present) and use that value. I ran into this problem connecting to a SIP trunk. The ITSP was able to reconfigure their SBC to preserve the original Contact header URI in the 200 OK so now Sofia-SIP is correlating the response and the 'expires' parameter is being used to control the re-registration interval. This being configurable in the SBC lends credence to the validity of what RFC 3261 appears to require. I would still prefer that Sofia-SIP use the Expires header as a fallback so registration works no matter whether the far end modifies the 200 OK Contact header URI. That would be more robust in that my UAC registration would always work without having to identify where this is occurring and reconfigure the SBC, which may not always be possible. Thanks. Jim ----- Original Message ---- From: Jerry Richards <jer...@tonecommander.com> To: sofia-sip-devel@lists.sourceforge.net Cc: Jim Thomas <jimthomasembed...@yahoo.com>; Inca Rose <incar...@gmail.com> Sent: Friday, July 31, 2009 2:23:54 PM Subject: RE: REGISTER Refreshing Error? Hello, SIP Contact Headers should always be the URL of the device sending the message (i.e. the address at which the sender can be contacted/replied-to). So I would always expect the Contact Header in the 200 OK to be the URL of the sender (not the URL of the receiver). This is why I don't understand why sofia-sip is comparing the sent and received Contact Header URLs. Also, the expires value can be sent either as a parameter in the Contact Header or as a separate Expires SIP header. A client may suggest an expires value in the REGISTER request, but the server is allowed come back with a different expires value in the 200 OK reply. In any case, the client (i.e. sofia-sip) must adhere with the expires value in the 200 OK reply. This is my understanding of the SIP standard. Best Regards, Jerry ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel