diff --git a/src/modules/http_client/README b/src/modules/http_client/README index 623d873204e..6724cc57168 100644 --- a/src/modules/http_client/README +++ b/src/modules/http_client/README @@ -91,7 +91,7 @@ Hugh Waite 2. Developer Guide - 1. + 1. Introduction 2. Available Functions 2.1. int http_connect(msg, connection, url, result, @@ -872,7 +872,7 @@ Chapter 2. Developer Guide Table of Contents - 1. + 1. Introduction 2. Available Functions 2.1. int http_connect(msg, connection, url, result, content_type, @@ -882,6 +882,8 @@ Chapter 2. Developer Guide 2.3. int http_query(msg, url, dest, post) 2.4. http_get_content_type(str connection) +1. Introduction + This module provides a set of API functions that other modules can use in order to integrate with HTTP services. diff --git a/src/modules/secsipid/README b/src/modules/secsipid/README index a58d5110787..d822544ba20 100644 --- a/src/modules/secsipid/README +++ b/src/modules/secsipid/README @@ -70,10 +70,12 @@ Chapter 1. Admin Guide 1. Overview - The module implements secure SIP identity specifications - STIR and - SHAKEN IETF extensions for SIP (RFC8224, RFC 8588). + The module implements secure SIP identity specifications - STIR (Secure + Telephony Identity Revisited) and SHAKEN (Signature-based Handling of + Asserted information using toKENs) IETF extensions for SIP (RFC8224, + RFC8588). - It exports the functions to check and generate Identity header. + It exports the functions to check and generate SIP Identity header. 2. Dependencies @@ -173,7 +175,7 @@ request_route { request_route { ... secsipid_add_identity("$fU", "$rU", "A", "", - "http://kamailio.org/stir/$rd/cert.pem", "/secsipid/$rd/key.pem"); + "https://kamailio.org/stir/$rd/cert.pem", "/secsipid/$rd/key.pem"); ... } ... diff --git a/src/modules/siptrace/README b/src/modules/siptrace/README index d9130a312ed..c48eca60d71 100644 --- a/src/modules/siptrace/README +++ b/src/modules/siptrace/README @@ -514,7 +514,7 @@ modparam("siptrace", "trace_init_mode", 1) * 0 - no automatic mirroring or storing of SIP traffic. * 1 (1st bit set) - mirror the traffic to HEP server. * 2 (2nd bit set) - store the traffic to database server. - * 4 (3rd bit set) - mirro the traffic to the SIP URI specified by + * 4 (3rd bit set) - mirror the traffic to the SIP URI specified by duplicate_uri. The trace_on parameter still has to be set, allowing also to control diff --git a/src/modules/tm/README b/src/modules/tm/README index caf0dbfacf3..26740a53358 100644 --- a/src/modules/tm/README +++ b/src/modules/tm/README @@ -77,6 +77,7 @@ Daniel-Constantin Mierla 3.48. relay_100 (str) 3.49. rich_redirect (int) 3.50. exec_time_check (int) + 3.51. reply_relay_mode (int) 4. Functions @@ -143,12 +144,13 @@ Daniel-Constantin Mierla 5.1. tm.list 5.2. tm.t_uac_start 5.3. tm.t_uac_wait - 5.4. tm.cancel - 5.5. tm.hash_stats - 5.6. tm.reply - 5.7. tm.reply_callid - 5.8. tm.clean - 5.9. tm.stats + 5.4. tm.t_uac_wait + 5.5. tm.cancel + 5.6. tm.hash_stats + 5.7. tm.reply + 5.8. tm.reply_callid + 5.9. tm.clean + 5.10. tm.stats 6. Event Routes @@ -226,57 +228,58 @@ Daniel-Constantin Mierla 1.48. Set relay_100 parameter 1.49. rich_redirect example 1.50. Set exec_time_check parameter - 1.51. t_relay usage - 1.52. t_relay_to_udp usage - 1.53. t_on_failure usage - 1.54. t_on_branch_failure usage - 1.55. t_on_reply usage - 1.56. t_on_branch usage - 1.57. t_newtran usage - 1.58. t_reply usage - 1.59. t_send_reply usage - 1.60. t_lookup_request usage - 1.61. t_retransmit_reply usage - 1.62. t_release usage - 1.63. t_forward_nonack usage - 1.64. t_set_fr usage - 1.65. t_reset_fr usage - 1.66. t_set_max_lifetime usage - 1.67. t_reset_max_lifetime usage - 1.68. t_set_retr usage - 1.69. t_reset_retr usage - 1.70. t_set_auto_inv_100 usage - 1.71. t_branch_timeout usage - 1.72. t_branch_replied usage - 1.73. t_any_timeout usage - 1.74. t_any_replied usage - 1.75. t_grep_status usage - 1.76. t_is_canceled usage - 1.77. t_is_expired usage - 1.78. t_relay_cancel usage - 1.79. t_lookup_cancel usage - 1.80. t_drop_replies() usage - 1.81. t_save_lumps() usage - 1.82. t_load_contacts usage - 1.83. t_next_contacts usage - 1.84. t_next_contact_flow usage - 1.85. t_check_status usage - 1.86. t_check_trans usage - 1.87. t_set_disable_6xx usage - 1.88. t_set_disable_failover usage - 1.89. t_set_disable_internal_reply usage - 1.90. t_replicate usage - 1.91. t_relay_to usage - 1.92. t_set_no_e2e_cancel_reason usage - 1.93. t_replicate usage - 1.94. t_use_uac_headers usage - 1.95. t_is_retr_async_reply usage - 1.96. t_uac_send usage - 1.97. t_get_status_code usage - 1.98. t_clean usage - 1.99. event_route[tm:branch-failure:id] usage - 1.100. event_route[tm:local-request] usage - 1.101. event_route[tm:local-response] usage + 1.51. Set reply_relay_mode parameter + 1.52. t_relay usage + 1.53. t_relay_to_udp usage + 1.54. t_on_failure usage + 1.55. t_on_branch_failure usage + 1.56. t_on_reply usage + 1.57. t_on_branch usage + 1.58. t_newtran usage + 1.59. t_reply usage + 1.60. t_send_reply usage + 1.61. t_lookup_request usage + 1.62. t_retransmit_reply usage + 1.63. t_release usage + 1.64. t_forward_nonack usage + 1.65. t_set_fr usage + 1.66. t_reset_fr usage + 1.67. t_set_max_lifetime usage + 1.68. t_reset_max_lifetime usage + 1.69. t_set_retr usage + 1.70. t_reset_retr usage + 1.71. t_set_auto_inv_100 usage + 1.72. t_branch_timeout usage + 1.73. t_branch_replied usage + 1.74. t_any_timeout usage + 1.75. t_any_replied usage + 1.76. t_grep_status usage + 1.77. t_is_canceled usage + 1.78. t_is_expired usage + 1.79. t_relay_cancel usage + 1.80. t_lookup_cancel usage + 1.81. t_drop_replies() usage + 1.82. t_save_lumps() usage + 1.83. t_load_contacts usage + 1.84. t_next_contacts usage + 1.85. t_next_contact_flow usage + 1.86. t_check_status usage + 1.87. t_check_trans usage + 1.88. t_set_disable_6xx usage + 1.89. t_set_disable_failover usage + 1.90. t_set_disable_internal_reply usage + 1.91. t_replicate usage + 1.92. t_relay_to usage + 1.93. t_set_no_e2e_cancel_reason usage + 1.94. t_replicate usage + 1.95. t_use_uac_headers usage + 1.96. t_is_retr_async_reply usage + 1.97. t_uac_send usage + 1.98. t_get_status_code usage + 1.99. t_clean usage + 1.100. event_route[tm:branch-failure:id] usage + 1.101. event_route[tm:local-request] usage + 1.102. event_route[tm:local-response] usage Chapter 1. Admin Guide @@ -336,6 +339,7 @@ Chapter 1. Admin Guide 3.48. relay_100 (str) 3.49. rich_redirect (int) 3.50. exec_time_check (int) + 3.51. reply_relay_mode (int) 4. Functions @@ -400,12 +404,13 @@ Chapter 1. Admin Guide 5.1. tm.list 5.2. tm.t_uac_start 5.3. tm.t_uac_wait - 5.4. tm.cancel - 5.5. tm.hash_stats - 5.6. tm.reply - 5.7. tm.reply_callid - 5.8. tm.clean - 5.9. tm.stats + 5.4. tm.t_uac_wait + 5.5. tm.cancel + 5.6. tm.hash_stats + 5.7. tm.reply + 5.8. tm.reply_callid + 5.9. tm.clean + 5.10. tm.stats 6. Event Routes @@ -710,6 +715,7 @@ failure_route["serial"] 3.48. relay_100 (str) 3.49. rich_redirect (int) 3.50. exec_time_check (int) + 3.51. reply_relay_mode (int) 3.1. fr_timer (integer) @@ -1706,6 +1712,25 @@ modparam("tm", "rich_redirect", 3) modparam("tm", "exec_time_check", 0) ... +3.51. reply_relay_mode (int) + + If set to 1, a received 200ok response that was suspeneded is no longer + forwarded in the transactional context if another final response was + forward while 200ok was suspended. Forwarding the 200ok, even it was + received first, results in overwritting the transaction response buffer + that can impact matching of incoming ACKs. + + Set it to 0 in order to disable this behaviour and attempt to forward + suspended 200ok in the transaction context. This was the behaviour + before the commit 18410da0. + + Default value is 1. + + Example 1.51. Set reply_relay_mode parameter +... +modparam("tm", "reply_relay_mode", 0) +... + 4. Functions 4.1. t_relay([host, port]) @@ -1783,7 +1808,7 @@ modparam("tm", "exec_time_check", 0) Returns a negative value on failure -- you may still want to send a negative reply upstream statelessly not to leave upstream UAC in lurch. - Example 1.51. t_relay usage + Example 1.52. t_relay usage ... if (!t_relay()) { @@ -1810,7 +1835,7 @@ if (!t_relay()) derived from the message uri (using sip specific DNS lookups), but with the protocol corresponding to the function name. - Example 1.52. t_relay_to_udp usage + Example 1.53. t_relay_to_udp usage ... if (src_ip==10.0.0.0/8) t_relay_to_udp("1.2.3.4", "5060"); # sent to 1.2.3.4:5060 over udp @@ -1850,7 +1875,7 @@ else Meaning of the parameters is as follows: * failure_route - Failure route block to be called. - Example 1.53. t_on_failure usage + Example 1.54. t_on_failure usage ... route { t_on_failure("1"); @@ -1886,7 +1911,7 @@ failure_route[1] { * branch_failure_route - Name of the branch_failure route block to be called (it is prefixed internally with 'tm:branch-failure:'). - Example 1.54. t_on_branch_failure usage + Example 1.55. t_on_branch_failure usage ... route { t_on_branch_failure("myroute"); @@ -1909,7 +1934,7 @@ event_route[tm:branch-failure:myroute] { Meaning of the parameters is as follows: * onreply_route - Onreply route block to be called. - Example 1.55. t_on_reply usage + Example 1.56. t_on_reply usage ... loadmodule "/usr/local/lib/ser/modules/nathelper.so" ... @@ -1941,7 +1966,7 @@ es'); Meaning of the parameters is as follows: * branch_route - branch route block to be called. - Example 1.56. t_on_branch usage + Example 1.57. t_on_branch usage ... route { t_on_branch("1"); @@ -1966,7 +1991,7 @@ branch_route[1] { structure. Use the tmx module function t_flush_flags() to synchronize the modified message flags to the already created transaction. - Example 1.57. t_newtran usage + Example 1.58. t_newtran usage ... if (t_newtran()) { xlog("the transaction has been created\n"); @@ -1998,7 +2023,7 @@ if (t_newtran()) { * code - Reply code number. * reason_phrase - Reason string. - Example 1.58. t_reply usage + Example 1.59. t_reply usage ... t_reply("404", "Not found"); ... @@ -2016,7 +2041,7 @@ t_reply("404", "Not found"); * code - Reply code number. * reason - Reason string. - Example 1.59. t_send_reply usage + Example 1.60. t_send_reply usage ... t_send_reply("404", "Not found"); ... @@ -2029,7 +2054,7 @@ t_send_reply("404", "Not found"); none was found. However this is safely (atomically) done using t_newtran. - Example 1.60. t_lookup_request usage + Example 1.61. t_lookup_request usage ... if (t_lookup_request()) { ... @@ -2040,7 +2065,7 @@ if (t_lookup_request()) { Retransmits a reply sent previously by UAS transaction. - Example 1.61. t_retransmit_reply usage + Example 1.62. t_retransmit_reply usage ... t_retransmit_reply(); ... @@ -2050,7 +2075,7 @@ t_retransmit_reply(); Remove transaction from memory (it will be first put on a wait timer to absorb delayed messages). - Example 1.62. t_release usage + Example 1.63. t_release usage ... t_release(); ... @@ -2064,7 +2089,7 @@ t_release(); * ip - IP address where the message should be sent. * port - Port number. - Example 1.63. t_forward_nonack usage + Example 1.64. t_forward_nonack usage ... t_forward_nonack("1.2.3.4", "5060"); ... @@ -2103,7 +2128,7 @@ t_forward_nonack("1.2.3.4", "5060"); See also: fr_timer, fr_inv_timer, t_reset_fr(). - Example 1.64. t_set_fr usage + Example 1.65. t_set_fr usage ... route { t_set_fr(10000); # set only fr invite timeout to 10s @@ -2130,7 +2155,7 @@ branch_route[1] { See also: fr_timer, fr_inv_timer, t_set_fr. - Example 1.65. t_reset_fr usage + Example 1.66. t_reset_fr usage ... route { ... @@ -2156,7 +2181,7 @@ route { See also: max_inv_lifetime, max_noninv_lifetime, t_reset_max_lifetime. - Example 1.66. t_set_max_lifetime usage + Example 1.67. t_set_max_lifetime usage ... route { if (src_ip=1.2.3.4) @@ -2178,7 +2203,7 @@ route { See also: max_inv_lifetime, max_noninv_lifetime, t_set_max_lifetime. - Example 1.67. t_reset_max_lifetime usage + Example 1.68. t_reset_max_lifetime usage ... route { ... @@ -2213,7 +2238,7 @@ route { See also: retr_timer1, retr_timer2, t_reset_retr(). - Example 1.68. t_set_retr usage + Example 1.69. t_set_retr usage ... route { t_set_retr(250, 0); # set only T1 to 250 ms @@ -2240,7 +2265,7 @@ branch_route[1] { See also: retr_timer1, retr_timer2, t_set_retr. - Example 1.69. t_reset_retr usage + Example 1.70. t_reset_retr usage ... route { ... @@ -2256,7 +2281,7 @@ route { See also: auto_inv_100. - Example 1.70. t_set_auto_inv_100 usage + Example 1.71. t_set_auto_inv_100 usage ... route { ... @@ -2271,7 +2296,7 @@ route { timeout. It can be used from FAILURE_ROUTE and BRANCH_FAILURE_ROUTE event route. - Example 1.71. t_branch_timeout usage + Example 1.72. t_branch_timeout usage ... failure_route[0]{ if (t_branch_timeout()){ @@ -2287,7 +2312,7 @@ failure_route[0]{ taken into account). It can be used from failure_route and branch-failure event route. - Example 1.72. t_branch_replied usage + Example 1.73. t_branch_replied usage ... failure_route[0]{ if (t_branch_timeout()){ @@ -2304,7 +2329,7 @@ failure_route[0]{ Returns true if at least one of the current transactions branches did timeout. - Example 1.73. t_any_timeout usage + Example 1.74. t_any_timeout usage ... failure_route[0]{ if (!t_branch_timeout()){ @@ -2321,7 +2346,7 @@ failure_route[0]{ receive some reply in the past. If called from a failure or onreply route, the "current" reply is not taken into account. - Example 1.74. t_any_replied usage + Example 1.75. t_any_replied usage ... onreply_route[0]{ if (!t_any_replied()){ @@ -2335,7 +2360,7 @@ onreply_route[0]{ Returns true if "code" is the final reply received (or locally generated) in at least one of the current transactions branches. - Example 1.75. t_grep_status usage + Example 1.76. t_grep_status usage ... onreply_route[0]{ if (t_grep_status("486")){ @@ -2348,7 +2373,7 @@ onreply_route[0]{ Returns true if the current transaction was canceled. - Example 1.76. t_is_canceled usage + Example 1.77. t_is_canceled usage ... failure_route[0]{ if (t_is_canceled()){ @@ -2362,7 +2387,7 @@ failure_route[0]{ Returns true if the current transaction has already been expired, i.e. the max_inv_lifetime/max_noninv_lifetime interval has already elapsed. - Example 1.77. t_is_expired usage + Example 1.78. t_is_expired usage ... failure_route[0]{ if (t_is_expired()){ @@ -2383,7 +2408,7 @@ failure_route[0]{ CANCELs were successfully sent to the pending branches, true if the INVITE was not found, and false in case of any error. - Example 1.78. t_relay_cancel usage + Example 1.79. t_relay_cancel usage if (method == CANCEL) { if (!t_relay_cancel()) { # implicit drop if relaying was successful, # nothing to do @@ -2410,7 +2435,7 @@ if (method == CANCEL) { overwritten with the flags of the INVITE. isflagset() can be used to check the flags of the previously forwarded INVITE in this case. - Example 1.79. t_lookup_cancel usage + Example 1.80. t_lookup_cancel usage if (method == CANCEL) { if (t_lookup_cancel()) { log("INVITE transaction exists"); @@ -2440,7 +2465,7 @@ if (method == CANCEL) { Dropping replies works only if a new branch is added to the transaction, or it is explicitly replied in the script! - Example 1.80. t_drop_replies() usage + Example 1.81. t_drop_replies() usage ... failure_route[0]{ if (t_check_status("5[0-9][0-9]")){ @@ -2471,7 +2496,7 @@ failure_route[0]{ The transaction must be created by t_newtran() before calling t_save_lumps(). - Example 1.81. t_save_lumps() usage + Example 1.82. t_save_lumps() usage route { ... t_newtran(); @@ -2545,7 +2570,7 @@ failure_route[1] { This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. - Example 1.82. t_load_contacts usage + Example 1.83. t_load_contacts usage ... if (!t_load_contacts()) { sl_send_reply("500", "Server Internal Error - Cannot load contacts"); @@ -2586,7 +2611,7 @@ if (!t_load_contacts()) { contact_flows_avp are not anymore set. Based on that test, you can then use t_set_fr() function to set timers according to your needs. - Example 1.83. t_next_contacts usage + Example 1.84. t_next_contacts usage ... # First call after t_load_contacts() when transaction does not exist yet # and contacts should be available @@ -2624,7 +2649,7 @@ if (!t_next_contacts()) { syslog). This function can be used from a BRANCH_FAILURE_ROUTE event route. - Example 1.84. t_next_contact_flow usage + Example 1.85. t_next_contact_flow usage ... event_route[tm:branch-failure:outbound] { @@ -2647,7 +2672,7 @@ event_route[tm:branch-failure:outbound] This function can be used from ANY_ROUTE . - Example 1.85. t_check_status usage + Example 1.86. t_check_status usage ... if (t_check_status("(487)|(408)")) { log("487 or 408 negative reply\n"); @@ -2701,7 +2726,7 @@ Note See also: t_lookup_request(), t_lookup_cancel(). - Example 1.86. t_check_trans usage + Example 1.87. t_check_trans usage if ( method == "CANCEL" && !t_check_trans()) sl_reply("403", "cancel out of the blue forbidden"); # note: in this example t_check_trans() can be replaced by t_lookup_cancel() @@ -2716,7 +2741,7 @@ if ( method == "CANCEL" && !t_check_trans()) See also: disable_6xx_block. - Example 1.87. t_set_disable_6xx usage + Example 1.88. t_set_disable_6xx usage ... route { ... @@ -2731,7 +2756,7 @@ route { See also: use_dns_failover. - Example 1.88. t_set_disable_failover usage + Example 1.89. t_set_disable_failover usage ... route { ... @@ -2744,7 +2769,7 @@ route { Turn off/on sending internally a SIP reply in case of relay errors. - Example 1.89. t_set_disable_internal_reply usage + Example 1.90. t_set_disable_internal_reply usage ... t_set_disable_internal_reply(1); # turn off sending internal reply on error if(!t_relay()) { @@ -2777,7 +2802,7 @@ if(!t_relay()) { * hostport - address in "host:port" format. It can be given via an AVP. - Example 1.90. t_replicate usage + Example 1.91. t_replicate usage ... # sent to 1.2.3.4:5060 over tcp t_replicate("sip:1.2.3.4:5060;transport=tcp"); @@ -2811,7 +2836,7 @@ t_replicate_to_udp("1.2.3.4", "5060"); + 0x02 - do not generate reply on internal error. + 0x04 - disable dns failover. - Example 1.91. t_relay_to usage + Example 1.92. t_relay_to usage ... # sent to 1.2.3.4:5060 over tcp t_relay_to("tcp:1.2.3.4:5060"); @@ -2837,7 +2862,7 @@ t_relay_to("0x01"); See also: e2e_cancel_reason. - Example 1.92. t_set_no_e2e_cancel_reason usage + Example 1.93. t_set_no_e2e_cancel_reason usage ... route { ... @@ -2860,7 +2885,7 @@ opying * onreply_route - the function returns true if an onreply route is set to be executed. - Example 1.93. t_replicate usage + Example 1.94. t_replicate usage ... if(!t_is_set("failure_route")) LM_DBG("no failure route will be executed for current transaction\n"); @@ -2874,7 +2899,7 @@ if(!t_is_set("failure_route")) It returns true. - Example 1.94. t_use_uac_headers usage + Example 1.95. t_use_uac_headers usage ... t_use_uac_headers(); ... @@ -2893,7 +2918,7 @@ t_use_uac_headers(); returns true if the transaction is currently reply suspended or false if not. - Example 1.95. t_is_retr_async_reply usage + Example 1.96. t_is_retr_async_reply usage ... if (t_is_retr_async_reply()) { xlog("L_DBG", "Dropping retransmitted reply which is still currently sus @@ -2918,7 +2943,7 @@ pended\n"); Content-Type header must exist. * body - SIP message body (can be empty). - Example 1.96. t_uac_send usage + Example 1.97. t_uac_send usage ... t_uac_send("OPTIONS", "sip:alice@kamailio.org", "", "", "From: bob@kamailio.org;tag=2w3e\r\nTo: bob@kamailio.org", ""); @@ -2929,7 +2954,7 @@ t_uac_send("OPTIONS", "sip:alice@kamailio.org", "", "", Return the status code for transaction - the most relevant SIP reply status code, or -1 in case of error or no status code was set. - Example 1.97. t_get_status_code usage + Example 1.98. t_get_status_code usage ... $var(ts) = t_get_status_code(); if($var(ts) == 500) { ... } @@ -2940,7 +2965,7 @@ if($var(ts) == 500) { ... } Cleans active but very old transactions. Returns true (1). Can be called from any route. - Example 1.98. t_clean usage + Example 1.99. t_clean usage ... t_clean(); ... @@ -2950,12 +2975,13 @@ t_clean(); 5.1. tm.list 5.2. tm.t_uac_start 5.3. tm.t_uac_wait - 5.4. tm.cancel - 5.5. tm.hash_stats - 5.6. tm.reply - 5.7. tm.reply_callid - 5.8. tm.clean - 5.9. tm.stats + 5.4. tm.t_uac_wait + 5.5. tm.cancel + 5.6. tm.hash_stats + 5.7. tm.reply + 5.8. tm.reply_callid + 5.9. tm.clean + 5.10. tm.stats 5.1. tm.list @@ -2981,10 +3007,17 @@ t_clean(); 5.3. tm.t_uac_wait - Similar to tm.t_uac_start, but waits for the SIP response and tries to - provide its details via RPC response. + Similar to tm.t_uac_start, but waits asynchronously for the SIP + response and tries to provide its details via RPC response. + +5.4. tm.t_uac_wait + + Similar to tm.t_uac_start, but blocks waiting for the SIP response and + returns the SIP reply code and reason text via RPC response. It waits + up to 80 seconds, if no reply is received, it returns a RPC fault 500 + code. While waiting, the RPC process cannot handle other RPC commands. -5.4. tm.cancel +5.5. tm.cancel Generates and sends a CANCEL for an existing local SIP request. @@ -2992,14 +3025,14 @@ t_clean(); * callid - callid of the INVITE request to be cancelled. * cseq - cseq of the INVITE request to be cancelled. -5.5. tm.hash_stats +5.6. tm.hash_stats Gets information about the load of TM internal hash table. Parameters: * none -5.6. tm.reply +5.7. tm.reply Generates and sends a reply for an existing inbound SIP transaction. @@ -3013,7 +3046,7 @@ t_clean(); * body - (optional, may not be present) reply body (if present, requires the “Content-Type” and “Content-length” headers) -5.7. tm.reply_callid +5.8. tm.reply_callid Generates and sends a reply for an existing inbound SIP transaction. @@ -3028,14 +3061,14 @@ t_clean(); * body - (optional, may not be present) reply body (if present, requires the “Content-Type” and “Content-length” headers) -5.8. tm.clean +5.9. tm.clean Trigger an hard clean of expired transactions. Parameters: * none -5.9. tm.stats +5.10. tm.stats Gets information about current and past TM transaction handling. @@ -3058,7 +3091,7 @@ t_clean(); enabled with the t_on_branch_failure function. This event_route uses the BRANCH_FAILURE_ROUTE route type. - Example 1.99. event_route[tm:branch-failure:id] usage + Example 1.100. event_route[tm:branch-failure:id] usage ... request_route { ... @@ -3084,7 +3117,7 @@ event_route[tm:branch-failure:myroute] { The request can still be updated, i.e., changes are possible to R-URI ($ru), destination URI ($du) or the send socket ($fs). - Example 1.100. event_route[tm:local-request] usage + Example 1.101. event_route[tm:local-request] usage ... event_route [tm:local-request] { xlog("L_INFO", "Routing locally generated $rm to $ru\n"); @@ -3097,7 +3130,7 @@ event_route [tm:local-request] { Executed after the tm module sent a local generated, transaction stateful response. - Example 1.101. event_route[tm:local-response] usage + Example 1.102. event_route[tm:local-response] usage ... event_route[tm:local-response] { xlog("tm:local-response replied locally\n");