Module sipproxy

Find a working destination for a request, given a number of locations and actions.

Introduced in: 13 Feb 2003 by Magnus Ahltorp <ahltorp@nada.kth.se>

Authors: Magnus Ahltorp (ahltorp@nada.kth.se).

Description

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.

Data Types

state()

state() = #state{}

no description

Function Index

start_actions/5 Start the processing, currently forking (in parallell or sequentially) of Request according to Actions.

Function Details

start_actions/5

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.