Home arrow SIP arrow Proxy Behavior

Language Translator

Hacking Zone

Hacking Tools
Attacking

Configure Windows

Windows Configuration

Novels

Mix Novels

Human Personality

Body Language
Proxy Behavior PDF Print E-mail
Written by Hemanshu Patel   
Thursday, 08 November 2007
Article Index
Proxy Behavior
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Page 14
Page 15
Page 16

8. Add a Via header field value

The proxy MUST insert a Via header field value into the copy
before the existing Via header field values. The construction
of this value follows the same guidelines of Section 8.1.1.7.
This implies that the proxy will compute its own branch
parameter, which will be globally unique for that branch, and
contain the requisite magic cookie. Note that this implies that
the branch parameter will be different for different instances
of a spiraled or looped request through a proxy.

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.

Loop detection is performed by verifying that, when a request
returns to a proxy, those fields having an impact on the
processing of the request have not changed. The value placed
in this part of the branch parameter SHOULD reflect all of
those fields (including any Route, Proxy-Require and Proxy-
Authorization header fields). This is to ensure that if the
request is routed back to the proxy and one of those fields
changes, it is treated as a spiral and not a loop (see Section
16.3). A common way to create this value is to compute a
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. The


algorithm used to compute the hash is implementation-dependent,
but MD5 (RFC 1321 [35]), expressed in hexadecimal, is a
reasonable choice. (Base64 is not permissible for a token.)

If a proxy wishes to detect loops, the "branch" parameter it
supplies MUST depend on all information affecting processing of
a request, including the incoming Request-URI and any header
fields affecting the request's admission or routing. This is
necessary to distinguish looped requests from requests whose
routing parameters have changed before returning to this
server.

The request method MUST NOT be included in the calculation of
the branch parameter. In particular, CANCEL and ACK requests
(for non-2xx responses) MUST have the same branch value as the
corresponding request they cancel or acknowledge. The branch
parameter is used in correlating those requests at the server
handling them (see Sections 17.2.3 and 9.2).

9. Add a Content-Length header field if necessary

If the request will be sent to the next hop using a stream-
based transport and the copy contains no Content-Length header
field, the proxy MUST insert one with the correct value for the
body of the request (see Section 20.14).

10. Forward Request

A stateful proxy MUST create a new client transaction for this
request as described in Section 17.1 and instructs the
transaction to send the request using the address, port and
transport determined in step 7.

11. Set timer C

In order to handle the case where an INVITE request never
generates a final response, the TU uses a timer which is called
timer C. Timer C MUST be set for each client transaction when
an INVITE request is proxied. The timer MUST be larger than 3
minutes. Section 16.7 bullet 2 discusses how this timer is
updated with provisional responses, and Section 16.8 discusses
processing when it fires.


Last Updated ( Thursday, 08 November 2007 )
 
< Prev   Next >
Your Ad Here

Donate us!!

Enter Amount:

RSS socialnet

Add to MyYahoo!
Subscribe in NewsGator Online
Add to Newsburst
Add to Google
Add to My AOL
Add to Pluck
Subscribe in FeedLounge
Add to Windows Live
Add to NetVibes
Subscribe in Rojo
Subscribe in Bloglines
Add to MyMSN
Add to Plusmo for your cellphone
Add to PageFlakes
Add to Technorati
Add to BlinkBits