Introduced in: 13 Feb 2003 by Magnus Ahltorp <ahltorp@nada.kth.se>
Authors: Magnus Ahltorp (ahltorp@nada.kth.se).
Find a working destination for a request, given a number of locations and actions. Through forking or sequential 'search'.
The doings of this module is described in RFC3261 #16.2 Stateful Proxy #16.7 (Response Processing)
sipproxy is what is called a proxy core in the introduction of #16.2.
The process invoking sipproxy:start_link() should be prepared to receive the following signals :
{sipproxy_response, Pid, Branch, Response} {sipproxy_all_terminated, Pid, FinalResponse} {sipproxy_terminating, Pid}
Response = response record() FinalResponse = Response | {Status, Reason} | {Status, Reason, ExtraHeaders} Pid = pid() of sipproxy process Branch = string(), the branch used by the client transaction that received/generated a response Status = integer(), SIP status code Reason = string(), SIP reason phrase
If you want to terminate a running sipproxy (for example if the server transaction has been cancelled), send it an {cancel_pending, ExtraHeaders} signal.state() = #state{}
no description
start_actions/5 | Start the processing, currently forking (in parallell or sequentially) of Request according to Actions. |
start_actions(BranchBase, Parent, OrigRequest, Actions, Surplus) -> ok | error
Start the processing, currently forking (in parallell or sequentially) of Request according to Actions. This function is typically executed by a spawn in the appserver glue process.
Generated by EDoc, Oct 17 2007, 16:48:26.