Here i would like to talk about: Hairpinning, SIP Spiral, and SIP Loop.
- Hairpinning: RFC 5128#section-2.10 defines hairpinning as following: ”If two hosts (called X1 and X2) are behind the same NAT and exchanging traffic, the NAT may allocate an address on the outside of the NAT for X2, called X2′:x2′. If X1 sends traffic to X2′:x2′, it goes to the NAT, which must relay the traffic from X1 to X2. This is referred to as hairpinning.”. Here is an example: Hairpinning
- Spiral in SIP: as defined in RFC 3261: the condition where a SIP request routed to the proxy, forwarded onwards, and arrived again to that proxy, but this time differs in Request-URI. Example: call fowarding. Spiral is not considered as an error.
- Loop in SIP: this is considered as an error. As in Spiral but when the request arrives the second time to the proxy, its Request-ID is identical to the first time. The proxy makes the same routing decision and we come to loop.