Table of Contents
List of Examples
hash_size
parameteruse_domain
parameterts_store
usagets_append
usagets_append_by_contact
usagets_append_to
usageTable of Contents
This module provides transaction storage for the Kamailio SIP Server Platform. It stores in an internal table transactions for a Request-URI (R-URI) and adds branches to them later if new contacts for the AOR are added.
For each message, the module stores “Request-URI” (“R-URI”), URI and the internal transaction index and label.
When a transaction is destroyed by the TM module, it is removed from the module's table too.
The following modules must be loaded before this module:
REGISTRAR--registrar module-- used to lookup for new contacts and update the dset for the r-uri.
TM--transaction module-- used to send SIP requests.
SL
The size of the hash table internally used to keep the transaction. A larger table is much faster but consumes more memory. The hash size must be a power of two, otherwise it will be rounded down to the nearest power of two.
Default value is “2048”.
Specify if the domain part of the URI should be also saved and used for storing and retrieving users' transactions. Useful in multi domain scenarios. Non 0 value means true.
Default value is “0”.
The method stores uri, tindex and tlabel of the current transaction. If the uri parameter is missing, then the value is taken from r-uri. The uri parameter can contain variables.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.3. ts_store
usage
... if (is_method("INVITE")) { if (t_newtran()) { ts_store(); # ts_store("sip:alice@$td"); } } ...
The method add branches to all the stored transactions for the SIP ruri passed as parameter, performing a contact lookup on the table specified by the domain parameter. The method should be called when a REGISTER request is received.
Meaning of the parameters is as follows:
domain - Name of table that should be used for looking up new contacts for r-uri.
ruri - The r-uri for which we want to check existing transactions and add them new branches. Can be a static string value or a dynamic string with pseudo-variables.
Return codes:
1 - branches added.
-1 - an internal error has produced (parsing error, memory error).
-2 - no records found for the r-uri.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Has almost the same intention as the ts_append(), but gives a possibility to append branches only for a specific location record (Contact URI). The contact's URI value can be either taken from the currently processed REGISTER or (optionally) given as a third parameter. If the Contact URI for a lookup is given as the parameter, it is possible to provide it as a pseudo-variable. The contact lookup is performed on the table specified by the domain parameter. The method should be called when a REGISTER request is received.
Meaning of the parameters is as follows:
domain - Name of table that should be used for looking up new contacts for r-uri.
ruri - The r-uri for which we want to check existing transactions and add them new branches. Can be a static string value or a dynamic string with pseudo-variables.
contact - Optional, a value of the location record (contact URI) based on which to perform the branch appending. If not given, the value will be taken from the currently processed REGISTER. If a location lookup based on this Contact URI fails (no location record found), then the branch append will not happen.
Return codes:
1 - branches added.
-1 - an internal error has produced (parsing error, memory error).
-2 - no records found for the r-uri.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.5. ts_append_by_contact
usage
... if (is_method("REGISTER")) { $var(formatted_ct) = $(x_hdr(Contact){nameaddr.uri}); ts_append_by_contact("location", "$tu", "$var(formatted_ct)"); } ...
The method add branches to the transaction identified by tindex and tlabel, performing a contacts lookup on the table specified by the domain parameter. The method should be called when a REGISTER request is received.
Meaning of the parameters is as follows:
tindex - internal index of transaction. Can be an integer or a pseudo-variable.
tlabel - internal label of transaction. Can be an integer or a pseudo-variable.
domain - Name of table that should be used for looking up new contacts for r-uri.
uri (optional) - uri for which to do lookup for new destinations.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.6. ts_append_to
usage
... if (is_method("REGISTER")) { $var(tindex) = ... $var(tlabel) = ... ts_append_to("$var(tindex)", "$var(tlabel)", "location"); } ...