Hi:
I am trying to understand how "forking" works. Say the proxy receives the INVITE from user 1 and after querying the location service gets back 5 contact
address (all with same weight/priority). It decides to fork the INVITE creating 5 branches. From RFC3261, it appears that the proxy maintains a response
context for the forked INVITE and when it gets a response from any branch, it uses some logic to determine whether to install this response in the response
context (which can hold only one response). After some time, it sends the response stored in the response context (terminating the server transaction; and
sending CANCEL's on all branches from which no response has yet been received). My question is: how does the proxy know how long to wait before
sending a response back to originator? How does proxy know what logic to use to pick a response? Say on one branch the INVITE yields some 4xx
response and on another branch it gets a 5xx response. How does proxy pick one of these responses? Also lets say on one of the branches the UAS rings
for a while and then callee answers generating a 200OK but say the proxy has already seen some failure final response from other branches. If this
200OK arrives at the proxy after the proxy has decided its time to send the best response seen thus far back to originator, then there is no server
transaction at proxy anymore hence what does proxy do with this 200OK? Even if it sends it back to originator, the originator would have cleaned up
the client transaction after getting the failure response back from proxy?


Another question, say I get a INVITE and I am the proxy server for the domain serving the callee. I consult location service, find no match. Should
I send 404 (not found) or 604 (does not exist anywhere)?


thanks.
-Ravi.
_______________________________________________
Sip-implementors mailing list
[email protected]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to