Functions

modules_k/rr/loose.h File Reference

Route & Record-Route module, loose routing support. More...

#include <regex.h>
#include "../../str.h"
#include "../../parser/msg_parser.h"
Include dependency graph for modules_k/rr/loose.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions


Detailed Description

Definition in file modules_k/rr/loose.h.


Function Documentation

int check_route_param ( struct sip_msg msg,
regex_t *  re 
)

The function checks for the request "msg" if the URI parameters of the local Route header (corresponding to the local server) matches the given regular expression "re". It must be call after the loose_route was done.

Parameters:
msg SIP message request that will has the Route header parameters checked
re compiled regular expression to be checked against the Route header parameters
Returns:
-1 on failure, 1 on success

Definition at line 865 of file modules_k/rr/loose.c.

References sip_msg::id, _str::len, routed_msg_id, and _str::s.

int get_route_param ( struct sip_msg msg,
str name,
str val 
)

The function search in to the "msg"'s Route header parameters the parameter called "name" and returns its value into "val". It must be call only after the loose_route is done.

Parameters:
msg - request that will have the Route header parameter searched
name - contains the Route header parameter to be serached
val returns the value of the searched Route header parameter if found. It might be an empty string if the parameter had no value.
Returns:
0 if parameter was found (even if it has no value), -1 otherwise

Definition at line 909 of file modules_k/rr/loose.c.

References sip_msg::id, _str::len, routed_msg_id, and _str::s.

Referenced by is_direction().

Here is the caller graph for this function:

int is_direction ( struct sip_msg msg,
int  dir 
)

The function checks the flow direction of the request "msg". As for checking it's used the "ftag" Route header parameter, the append_fromtag module parameter must be enables. Also this must be call only after the loose_route is done.

Parameters:
msg SIP message request that will have the direction checked
dir direction to be checked against. It may be RR_FLOW_UPSTREAM or RR_FLOW_DOWNSTREAM
Returns:
0 if the request flow direction is the same as the given direction, -1 otherwise

Definition at line 1001 of file modules_k/rr/loose.c.

References get_route_param(), sip_msg::id, _str::len, parse_from_header(), hdr_field::parsed, and _str::s.

Here is the call graph for this function:

int loose_route ( struct sip_msg _m  ) 
Parameters:
_m SIP message
Returns:
-1 on failure, 1 on success

Definition at line 824 of file modules_k/rr/loose.c.

References after_loose(), after_strict(), find_first_route(), is_myself(), is_preloaded(), and sip_msg::parsed_uri.

Referenced by w_loose_route().

Here is the call graph for this function:

Here is the caller graph for this function: