AFAIK, we should not reply on Max-Forwards to detect the Loops. This lead to totally in-efficient usage of memory and resources in case of loops....
Thanks & Regards, Nataraju A.B. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Aman Arora Sent: Monday, December 05, 2005 2:40 PM To: Chandan Jena - NPD, Chennai; Thangarajan Inbarajan Cc: [EMAIL PROTECTED]; [email protected] Subject: Re: [Sip-implementors] Loop detect problem Hi Chandan, As an alternate to this, RFC 3261 introduced a new header Max-Forwards (as a MUST in all SIP requests). Quoting Section 8.1.1.6 and 20.22 from 3261- The Max-Forwards header field serves to limit the number of hops a request can transit on the way to its destination. It consists of an integer that is decremented by one at each hop. If the Max-Forwards value reaches 0 before the request reaches its destination, it will be rejected with a 483(Too Many Hops) error response. A UAC MUST insert a Max-Forwards header field into each request it originates with a value that SHOULD be 70. This number was chosen to be sufficiently large to guarantee that a request would not be dropped in any SIP network when there were no loops, but not so large as to consume proxy resources when a loop does occur. Lower values should be used with caution and only in networks where topologies are known by the UA. The Max-Forwards header field must be used with any SIP method to limit the number of proxies or gateways that can forward the request to the next downstream server. This can also be useful when the client is attempting to trace a request chain that appears to be failing or looping in mid-chain. The Max-Forwards value is an integer in the range 0-255 indicating the remaining number of times this request message is allowed to be forwarded. This count is decremented by each server that forwards the request. The recommended initial value is 70. This header field should be inserted by elements that can not otherwise guarantee loop detection. For example, a B2BUA should insert a Max-Forwards header field. Thus either Proxy can check on this header to detect a looping message. Also though this method doens't help distinguish between a loop and a spiral, yet it is more efficient and faster as compared to the method to calculate the branch in the Via. rgds aman Thangarajan Inbarajan/BLR/HSS @HSS To Sent by: "Chandan Jena - NPD, Chennai" sip-implementors- <[EMAIL PROTECTED]> [EMAIL PROTECTED] cc ia.edu [EMAIL PROTECTED] a.edu, [email protected] 12/05/2005 09:16 Subject AM Re: [Sip-implementors] Loop detect problem Hi Chandan, Both stateless and stateful proxy can detect loop if they calculate the branch parameter using following logic. "Proxies choosing to detect loops have an additional constraint in the value they use for construction of the branch parameter. A proxy choosing to detect loops SHOULD create a branch parameter separable into two parts by the implementation. The first part MUST satisfy the constraints of Section 8.1.1.7 as described above. The second is used to perform loop detection and distinguish loops from spirals. The second part is cryptographic hash of the To tag, From tag, Call-ID header field, the Request-URI of the request received (before translation), the topmost Via header, and the sequence number from the CSeq header field, in addition to any Proxy-Require and Proxy-Authorization header fields that may be present." "To determine if the request has looped, the proxy element MAY perform the branch parameter calculation like described above and compare it to the parameter received in that Via header field. If the parameters match, the request has looped." Regards, Thangarajan. "Chandan Jena - NPD, Chennai" <[EMAIL PROTECTED] To tech.com> <[email protected]> Sent by: cc sip-implementors- [EMAIL PROTECTED] Subject ia.edu [Sip-implementors] Loop detect problem 12/02/2005 01:14 PM Hi all, Does Stateless proxy give loop detect or not? When I tested one scenario in stateful proxy ,it gives loop detect .but When I tested the same scenario in stateless proxy, it doesn't give the loop detect and it added VIA header again and again. Then after some time the call terminated. What is the solution for this? How we check loop detect incase of stateless and stateful ? Plz clarify me on this point. Thanks and Regards Chandan Kumar Jena Member Technical Staff HCLTechnologiesLtd Chennai-600058 Visit: - www.hcltech.com <http://www.hcltechphasis.com> Disclaimer: This message and any attachment(s) contained here are information that is confidential, proprietary to HCL Technologies and its customers, privileged or otherwise protected by law. The information is solely intended for the individual or the entity it is addressed to. If you are not the intended recipient of this message, you are not authorized to read, forward, print, retain, copy or disseminate this message or any part of it. If you have received this e-mail in error, please notify the sender immediately by return e-mail and delete it from your computer. _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors *********************** FSS-Private *********************** "DISCLAIMER: This message is proprietary to Hughes Software Systems Limited (HSS) and is intended solely for the use of the individual to whom it is addressed. It may contain privileged or confidential information and should not be circulated or used for any purpose other than for what it is intended. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from using, copying, altering, or disclosing the contents of this message. HSS accepts no responsibility for loss or damage arising from the use of the information transmitted by this email including damage from virus." _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors *********************** FSS-Unclassified *********************** "DISCLAIMER: This message is proprietary to Flextronics Software Systems Limited (FSS) and is intended solely for the use of the individual to whom it is addressed. It may contain privileged or confidential information and should not be circulated or used for any purpose other than for what it is intended. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from using, copying, altering, or disclosing the contents of this message. FSS accepts no responsibility for loss or damage arising from the use of the information transmitted by this email including damage from virus." _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
