mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
452 lines
11 KiB
452 lines
11 KiB
TMX Module
|
|
|
|
Daniel-Constantin Mierla
|
|
|
|
asipto.com
|
|
<miconda@gmail.com>
|
|
|
|
Edited by
|
|
|
|
Daniel-Constantin Mierla
|
|
|
|
<miconda@gmail.com>
|
|
|
|
Copyright © 2009 Daniel-Constantin Mierla
|
|
__________________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Functions
|
|
|
|
3.1. t_cancel_branches(which)
|
|
3.2. t_cancel_callid(callid, cseq, flag)
|
|
3.3. t_reply_callid(callid, cseq, code, reason)
|
|
3.4. t_flush_flags()
|
|
3.5. t_is_failure_route()
|
|
3.6. t_is_branch_route()
|
|
3.7. t_is_reply_route()
|
|
3.8. t_suspend()
|
|
3.9. t_continue(tindex, tlabel, rtname)
|
|
|
|
4. Exported pseudo-variables
|
|
5. MI Commands
|
|
|
|
5.1. t_uac_dlg
|
|
5.2. t_uac_cancel
|
|
5.3. t_hash
|
|
5.4. t_reply
|
|
5.5. t_reply_callid
|
|
|
|
6. Statistics
|
|
|
|
6.1. received_replies
|
|
6.2. relayed_replies
|
|
6.3. local_replies
|
|
6.4. UAS_transactions
|
|
6.5. UAC_transactions
|
|
6.6. 2xx_transactions
|
|
6.7. 3xx_transactions
|
|
6.8. 4xx_transactions
|
|
6.9. 5xx_transactions
|
|
6.10. 6xx_transactions
|
|
6.11. inuse_transactions
|
|
|
|
List of Examples
|
|
|
|
1.1. t_cancel_branches usage
|
|
1.2. t_cancel_callid usage
|
|
1.3. t_reply_callid usage
|
|
1.4. t_flush_flags usage
|
|
1.5. t_is_failure_route usage
|
|
1.6. t_is_branch_route usage
|
|
1.7. t_is_reply_route usage
|
|
1.8. t_suspend usage
|
|
1.9. t_continue usage
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
Table of Contents
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Functions
|
|
|
|
3.1. t_cancel_branches(which)
|
|
3.2. t_cancel_callid(callid, cseq, flag)
|
|
3.3. t_reply_callid(callid, cseq, code, reason)
|
|
3.4. t_flush_flags()
|
|
3.5. t_is_failure_route()
|
|
3.6. t_is_branch_route()
|
|
3.7. t_is_reply_route()
|
|
3.8. t_suspend()
|
|
3.9. t_continue(tindex, tlabel, rtname)
|
|
|
|
4. Exported pseudo-variables
|
|
5. MI Commands
|
|
|
|
5.1. t_uac_dlg
|
|
5.2. t_uac_cancel
|
|
5.3. t_hash
|
|
5.4. t_reply
|
|
5.5. t_reply_callid
|
|
|
|
6. Statistics
|
|
|
|
6.1. received_replies
|
|
6.2. relayed_replies
|
|
6.3. local_replies
|
|
6.4. UAS_transactions
|
|
6.5. UAC_transactions
|
|
6.6. 2xx_transactions
|
|
6.7. 3xx_transactions
|
|
6.8. 4xx_transactions
|
|
6.9. 5xx_transactions
|
|
6.10. 6xx_transactions
|
|
6.11. inuse_transactions
|
|
|
|
1. Overview
|
|
|
|
This module collects extensions from Kamailio TM module.
|
|
|
|
Kamailio TM (Transaction Management) module documentation is available
|
|
at: http://www.kamailio.org/docs/modules/1.5.x/tm.html
|
|
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
2.1. Kamailio Modules
|
|
|
|
The following modules must be loaded before this module:
|
|
* tm - transaction management.
|
|
|
|
2.2. External Libraries or Applications
|
|
|
|
The following libraries or applications must be installed before
|
|
running Kamailio with this module loaded:
|
|
* None.
|
|
|
|
3. Functions
|
|
|
|
3.1. t_cancel_branches(which)
|
|
3.2. t_cancel_callid(callid, cseq, flag)
|
|
3.3. t_reply_callid(callid, cseq, code, reason)
|
|
3.4. t_flush_flags()
|
|
3.5. t_is_failure_route()
|
|
3.6. t_is_branch_route()
|
|
3.7. t_is_reply_route()
|
|
3.8. t_suspend()
|
|
3.9. t_continue(tindex, tlabel, rtname)
|
|
|
|
3.1. t_cancel_branches(which)
|
|
|
|
Cancel branches of an active SIP transaction. The function can be
|
|
called for a SIP reply that will identify the current branch.
|
|
|
|
Parameter can be:.
|
|
* all - cancel all branches.
|
|
* others - cancel all branches but the current one.
|
|
* this - cancel current branch.
|
|
|
|
This function can be used in ONREPLY_ROUTE.
|
|
|
|
Example 1.1. t_cancel_branches usage
|
|
...
|
|
if (t_cancel_branches("all")) {
|
|
xlog("cancelled all branches\n");
|
|
}
|
|
...
|
|
|
|
3.2. t_cancel_callid(callid, cseq, flag)
|
|
|
|
Cancel first INVITE transaction identified by callid and cseq. It sets
|
|
the flag if the value is greater than zero
|
|
|
|
Parameters:.
|
|
* callid - call-id value.
|
|
* cseq - cseq number.
|
|
* flag - index of the flag to set.
|
|
|
|
This function can be used in ANY_ROUTE.
|
|
|
|
Example 1.2. t_cancel_callid usage
|
|
...
|
|
if (t_cancel_callid("123qaz", "5", "22")) {
|
|
xlog("transaction cancelled\n");
|
|
}
|
|
...
|
|
|
|
3.3. t_reply_callid(callid, cseq, code, reason)
|
|
|
|
Send reply to first INVITE transaction identified by callid and cseq.
|
|
|
|
Parameters:.
|
|
* callid - call-id value.
|
|
* cseq - cseq number.
|
|
* code - reply code.
|
|
* reason - reply reason.
|
|
|
|
This function can be used in ANY_ROUTE.
|
|
|
|
Example 1.3. t_reply_callid usage
|
|
...
|
|
if (t_reply_callid("123qaz", "5", "458", "Replied remotely")) {
|
|
xlog("transaction replied\n");
|
|
}
|
|
...
|
|
|
|
3.4. t_flush_flags()
|
|
|
|
Flush the flags from current SIP message into the already created
|
|
transaction. It make sense only in routing block if the transaction was
|
|
created via t_newtran() and the flags have been altered since.
|
|
|
|
This function can be used from ANY_ROUTE .
|
|
|
|
Example 1.4. t_flush_flags usage
|
|
...
|
|
t_flush_flags();
|
|
...
|
|
|
|
3.5. t_is_failure_route()
|
|
|
|
Returns true if the top-executed route block is failure_route.
|
|
|
|
This function can be used from ANY_ROUTE .
|
|
|
|
Example 1.5. t_is_failure_route usage
|
|
...
|
|
failure_route[xyz] {
|
|
route(abc);
|
|
}
|
|
|
|
route[abc] {
|
|
if(t_is_failure_route()) { ... }
|
|
}
|
|
...
|
|
|
|
3.6. t_is_branch_route()
|
|
|
|
Returns true if the top-executed route block is branch_route.
|
|
|
|
This function can be used from ANY_ROUTE .
|
|
|
|
Example 1.6. t_is_branch_route usage
|
|
...
|
|
branch_route[xyz] {
|
|
route(abc);
|
|
}
|
|
|
|
route[abc] {
|
|
if(t_is_branch_route()) { ... }
|
|
}
|
|
...
|
|
|
|
3.7. t_is_reply_route()
|
|
|
|
Returns true if the top-executed route block is reply_route.
|
|
|
|
This function can be used from ANY_ROUTE .
|
|
|
|
Example 1.7. t_is_reply_route usage
|
|
...
|
|
reply_route[xyz] {
|
|
route(abc);
|
|
}
|
|
|
|
route[abc] {
|
|
if(t_is_reply_route()) { ... }
|
|
}
|
|
...
|
|
|
|
3.8. t_suspend()
|
|
|
|
Suspend the execution of SIP request in a transaction. If transaction
|
|
was not created yet, it is created by this function. Returns true in
|
|
case of success and internal transaction index and label are available
|
|
via $T(id_index) and $T(id_label).
|
|
|
|
This function can be used from ANY_ROUTE .
|
|
|
|
Example 1.8. t_suspend usage
|
|
...
|
|
if(t_suspend())
|
|
{
|
|
xlog("proceesing suspended in trasaction [$T(id_index):$T(id_label)]\n");
|
|
exit;
|
|
}
|
|
...
|
|
|
|
3.9. t_continue(tindex, tlabel, rtname)
|
|
|
|
Continue the execution of the transaction identified by tindex and
|
|
tlabel with the actions defined in route[rtname].
|
|
|
|
Parameters:.
|
|
* 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.
|
|
* rtname - the name of the route block to execute. Can be a static
|
|
string value or a dynamic string with pseudo-variables.
|
|
|
|
This function can be used in ANY_ROUTE.
|
|
|
|
Example 1.9. t_continue usage
|
|
...
|
|
tcontinue('123', '456', 'MYROUTE');
|
|
...
|
|
|
|
4. Exported pseudo-variables
|
|
|
|
* $T_branch_idx
|
|
* $T_reply_code
|
|
* $T_reply_reason
|
|
* $T_reply_last
|
|
* $T_req(pv)
|
|
* $T_rpl(pv)
|
|
|
|
Exported pseudo-variables are documented at
|
|
http://www.kamailio.org/wiki/.
|
|
|
|
5. MI Commands
|
|
|
|
5.1. t_uac_dlg
|
|
5.2. t_uac_cancel
|
|
5.3. t_hash
|
|
5.4. t_reply
|
|
5.5. t_reply_callid
|
|
|
|
5.1. t_uac_dlg
|
|
|
|
Generates and sends a local SIP request.
|
|
|
|
Parameters:
|
|
* method - request method
|
|
* RURI - request SIP URI
|
|
* NEXT HOP - next hop SIP URI (OBP); use "." if no value.
|
|
* socket - local socket to be used for sending the request; use "."
|
|
if no value.
|
|
* headers - set of additional headers to be added to the request; at
|
|
least "From" and "To" headers must be specify)
|
|
* body - (optional, may not be present) request body (if present,
|
|
requires the "Content-Type" and "Content-length" headers)
|
|
|
|
5.2. t_uac_cancel
|
|
|
|
Generates and sends a CANCEL for an existing local SIP request.
|
|
|
|
Parameters:
|
|
* callid - callid of the INVITE request to be cancelled.
|
|
* cseq - cseq of the INVITE request to be cancelled.
|
|
|
|
5.3. t_hash
|
|
|
|
Gets information about the load of TM internal hash table.
|
|
|
|
Parameters:
|
|
* none
|
|
|
|
5.4. t_reply
|
|
|
|
Generates and sends a reply for an existing inbound SIP transaction.
|
|
|
|
Parameters:
|
|
* code - reply code
|
|
* reason - reason phrase.
|
|
* trans_id - transaction identifier (has the hash_entry:label format)
|
|
* to_tag - To tag to be added to TO header
|
|
* new_headers - extra headers to be appended to the reply; use a dot
|
|
(".") char only if there are no headers;
|
|
* body - (optional, may not be present) reply body (if present,
|
|
requires the "Content-Type" and "Content-length" headers)
|
|
|
|
5.5. t_reply_callid
|
|
|
|
Generates and sends a reply for an existing inbound SIP transaction.
|
|
|
|
Parameters:
|
|
* code - reply code
|
|
* reason - reason phrase.
|
|
* callid - SIP Call-ID header
|
|
* cseq - SIP CSeq header
|
|
* to_tag - To tag to be added to TO header
|
|
* new_headers - extra headers to be appended to the reply; use a dot
|
|
(".") char only if there are no headers;
|
|
* body - (optional, may not be present) reply body (if present,
|
|
requires the "Content-Type" and "Content-length" headers)
|
|
|
|
6. Statistics
|
|
|
|
6.1. received_replies
|
|
6.2. relayed_replies
|
|
6.3. local_replies
|
|
6.4. UAS_transactions
|
|
6.5. UAC_transactions
|
|
6.6. 2xx_transactions
|
|
6.7. 3xx_transactions
|
|
6.8. 4xx_transactions
|
|
6.9. 5xx_transactions
|
|
6.10. 6xx_transactions
|
|
6.11. inuse_transactions
|
|
|
|
Exported statistics are listed in the next sections. All statistics
|
|
except "inuse_transactions" can be reset.
|
|
|
|
6.1. received_replies
|
|
|
|
Total number of total replies received by TM module.
|
|
|
|
6.2. relayed_replies
|
|
|
|
Total number of replies received and relayed by TM module.
|
|
|
|
6.3. local_replies
|
|
|
|
Total number of replies local generated by TM module.
|
|
|
|
6.4. UAS_transactions
|
|
|
|
Total number of transactions created by received requests.
|
|
|
|
6.5. UAC_transactions
|
|
|
|
Total number of transactions created by local generated requests.
|
|
|
|
6.6. 2xx_transactions
|
|
|
|
Total number of transactions completed with 2xx replies.
|
|
|
|
6.7. 3xx_transactions
|
|
|
|
Total number of transactions completed with 3xx replies.
|
|
|
|
6.8. 4xx_transactions
|
|
|
|
Total number of transactions completed with 4xx replies.
|
|
|
|
6.9. 5xx_transactions
|
|
|
|
Total number of transactions completed with 5xx replies.
|
|
|
|
6.10. 6xx_transactions
|
|
|
|
Total number of transactions completed with 6xx replies.
|
|
|
|
6.11. inuse_transactions
|
|
|
|
Number of transactions existing in memory at current time.
|