Browse Source

tm: Document fr_timer_avp and fr_inv_timer_avp

This patch adds docbook documentation for fr_timer_avp and
fr_inv_timer_avp parameters of tm module and updates the
module README.
Jan Janak 16 years ago
parent
commit
903503806e
2 changed files with 128 additions and 120 deletions
  1. 70 120
      modules/tm/README
  2. 58 0
      modules/tm/doc/params.xml

+ 70 - 120
modules/tm/README

@@ -15,94 +15,6 @@ Juha Heinanen
    Revision $Revision$ $Date$
    Revision $Revision$ $Date$
      __________________________________________________________________
      __________________________________________________________________
 
 
-   1.1. Overview
-   1.2. Known Issues
-   1.3. Parameters
-
-        1.3.1. fr_timer (integer)
-        1.3.2. fr_inv_timer (integer)
-        1.3.3. max_inv_lifetime (integer)
-        1.3.4. max_noninv_lifetime (integer)
-        1.3.5. wt_timer (integer)
-        1.3.6. delete_timer (integer)
-        1.3.7. retr_timer1 (integer)
-        1.3.8. retr_timer2 (integer)
-        1.3.9. noisy_ctimer (integer)
-        1.3.10. restart_fr_on_each_reply (integer)
-        1.3.11. auto_inv_100 (integer)
-        1.3.12. auto_inv_100_reason (string)
-        1.3.13. unix_tx_timeout (integer)
-        1.3.14. aggregate_challenges (integer)
-        1.3.15. reparse_invite (integer)
-        1.3.16. ac_extra_hdrs (string)
-        1.3.17. blst_503 (integer)
-        1.3.18. blst_503_def_timeout (integer)
-        1.3.19. blst_503_min_timeout (integer)
-        1.3.20. blst_503_max_timeout (integer)
-        1.3.21. blst_methods_add (unsigned integer)
-        1.3.22. blst_methods_lookup (unsigned integer)
-        1.3.23. cancel_b_method (integer)
-        1.3.24. reparse_on_dns_failover (integer)
-        1.3.25. on_sl_reply (string)
-        1.3.26. fr_inv_timer_next (integer)
-        1.3.27. contacts_avp (string)
-
-   1.4. Functions
-
-        1.4.1. t_relay_to_udp(ip, port), t_relay_to_udp(),
-                t_relay_to_tcp(ip, port) t_relay_to_tcp()
-                t_relay_to_tls(ip, port) t_relay_to_tls()
-                t_relay_to_sctp(ip, port) t_relay_to_sctp()
-
-        1.4.2. t_relay() t_relay(host, port)
-        1.4.3. t_on_failure(failure_route)
-        1.4.4. t_on_reply(onreply_route)
-        1.4.5. t_on_branch(branch_route)
-        1.4.6. append_branch()
-        1.4.7. t_newtran()
-        1.4.8. t_reply(code, reason_phrase)
-        1.4.9. t_lookup_request()
-        1.4.10. t_retransmit_reply()
-        1.4.11. t_release()
-        1.4.12. t_forward_nonack() t_forward_nonack(ip, port)
-                t_forward_nonack_udp(ip, port) t_forward_nonack_tcp(ip,
-                port) t_forward_nonack_tls(ip, port)
-                t_forward_nonack_sctp(ip, port)
-
-        1.4.13. t_set_fr(fr_inv_timeout [, fr_timeout])
-        1.4.14. t_reset_fr()
-        1.4.15. t_set_max_lifetime(inv_lifetime, noninv_lifetime)
-        1.4.16. t_reset_max_lifetime()
-        1.4.17. t_set_retr(retr_t1_interval, retr_t2_interval)
-        1.4.18. t_reset_retr()
-        1.4.19. t_set_auto_inv_100(0|1)
-        1.4.20. t_branch_timeout()
-        1.4.21. t_branch_replied()
-        1.4.22. t_any_timeout()
-        1.4.23. t_any_replied()
-        1.4.24. t_grep_status("code")
-        1.4.25. t_is_canceled()
-        1.4.26. t_is_expired()
-        1.4.27. t_relay_cancel()
-        1.4.28. t_lookup_cancel(), t_lookup_cancel(1)
-        1.4.29. t_drop_replies()
-        1.4.30. t_save_lumps()
-        1.4.31. t_load_contacts()
-        1.4.32. t_next_contacts()
-
-   1.5. TM Module API
-
-        1.5.1. Defines
-        1.5.2. Functions
-
-              1.5.2.1. register_tmcb(cb_type, cb_func)
-              1.5.2.2. load_tm(*import_structure)
-              1.5.2.3. int t_suspend(struct sip_msg *msg, unsigned int
-                      *hash_index, unsigned int *label)
-
-              1.5.2.4. int t_continue(unsigned int hash_index, unsigned
-                      int label, struct action *route)
-
 1.1. Overview
 1.1. Overview
 
 
    TM module enables stateful processing of SIP transactions. The main use
    TM module enables stateful processing of SIP transactions. The main use
@@ -693,6 +605,44 @@ modparam("tm", "fr_inv_timer_next", 10)
 modparam("tm", "contacts_avp", "$avp(i:25)")
 modparam("tm", "contacts_avp", "$avp(i:25)")
 ...
 ...
 
 
+1.3.28. fr_timer_avp (string)
+
+   The value of fr_timer timer can be overriden on per-transaction basis.
+   The administrator can provide a value to be used for a particular
+   transaction in an AVP. This parameter contains the name of the AVP that
+   will be checked. If the AVP exists then its value will be used for the
+   fr_timer timer, effectively overriding the value configured in fr_timer
+   parameter for the current transaction.
+
+   The value of this parameter is the the name of the AVP to be checked,
+   without the $ character or "$avp" prefix.
+
+   See also: t_set_fr(), fr_timer.
+
+   Example 28. Set fr_timer_avp parameter
+...
+modparam("tm", "fr_timer_avp", "i:708")
+...
+
+1.3.29. fr_inv_timer_avp (string)
+
+   The value of fr_inv_timer timer can be overriden on per-transaction
+   basis. The administrator can provide a value to be used for a
+   particular transaction in an AVP. This parameter contains the name of
+   the AVP that will be checked. If the AVP exists then its value will be
+   used for the fr_inv_timer timer, effectively overriding the value
+   configured in fr_inv_timer parameter for the current transaction.
+
+   The value of this parameter is the the name of the AVP to be checked,
+   without the $ character or "$avp" prefix.
+
+   See also: t_set_fr(), fr_inv_timer.
+
+   Example 29. Set fr_inv_timer_avp parameter
+...
+modparam("tm", "fr_inv_timer_avp", "my_fr_inv_timer")
+...
+
 1.4. Functions
 1.4. Functions
 
 
    Revision History
    Revision History
@@ -718,7 +668,7 @@ t_relay_to_sctp(ip, port) t_relay_to_sctp()
    derived from the message uri (using sip sepcific DNS lookups), but with
    derived from the message uri (using sip sepcific DNS lookups), but with
    the protocol corresponding to the function name.
    the protocol corresponding to the function name.
 
 
-   Example 28. t_relay_to_udp usage
+   Example 30. t_relay_to_udp usage
 ...
 ...
 if (src_ip==10.0.0.0/8)
 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
         t_relay_to_udp("1.2.3.4", "5060"); # sent to 1.2.3.4:5060 over udp
@@ -745,7 +695,7 @@ else
    Returns a negative value on failure--you may still want to send a
    Returns a negative value on failure--you may still want to send a
    negative reply upstream statelessly not to leave upstream UAC in lurch.
    negative reply upstream statelessly not to leave upstream UAC in lurch.
 
 
-   Example 29. t_relay usage
+   Example 31. t_relay usage
 ...
 ...
 if (!t_relay())
 if (!t_relay())
 {
 {
@@ -774,7 +724,7 @@ if (!t_relay())
    Meaning of the parameters is as follows:
    Meaning of the parameters is as follows:
      * failure_route - Failure route block to be called.
      * failure_route - Failure route block to be called.
 
 
-   Example 30. t_on_failure usage
+   Example 32. t_on_failure usage
 ...
 ...
 route {
 route {
     t_on_failure("1");
     t_on_failure("1");
@@ -800,7 +750,7 @@ failure_route[1] {
    Meaning of the parameters is as follows:
    Meaning of the parameters is as follows:
      * onreply_route - Onreply route block to be called.
      * onreply_route - Onreply route block to be called.
 
 
-   Example 31. t_on_reply usage
+   Example 33. t_on_reply usage
 ...
 ...
 loadmodule "/usr/local/lib/ser/modules/nathelper.so"
 loadmodule "/usr/local/lib/ser/modules/nathelper.so"
 ...
 ...
@@ -832,7 +782,7 @@ es');
    Meaning of the parameters is as follows:
    Meaning of the parameters is as follows:
      * branch_route - branch route block to be called.
      * branch_route - branch route block to be called.
 
 
-   Example 32. t_on_branch usage
+   Example 34. t_on_branch usage
 ...
 ...
 route {
 route {
         t_on_branch("1");
         t_on_branch("1");
@@ -850,7 +800,7 @@ branch_route[1] {
    Similarly to t_fork_to, it extends destination set by a new entry. The
    Similarly to t_fork_to, it extends destination set by a new entry. The
    difference is that current URI is taken as new entry.
    difference is that current URI is taken as new entry.
 
 
-   Example 33. append_branch usage
+   Example 35. append_branch usage
 ...
 ...
 set_user("john");
 set_user("john");
 t_fork();
 t_fork();
@@ -865,7 +815,7 @@ t_relay();
    the only way a script can add a new transaction in an atomic way.
    the only way a script can add a new transaction in an atomic way.
    Typically, it is used to deploy a UAS.
    Typically, it is used to deploy a UAS.
 
 
-   Example 34. t_newtran usage
+   Example 36. t_newtran usage
 ...
 ...
 if (t_newtran()) {
 if (t_newtran()) {
     log("UAS logic");
     log("UAS logic");
@@ -884,7 +834,7 @@ if (t_newtran()) {
      * code - Reply code number.
      * code - Reply code number.
      * reason_phrase - Reason string.
      * reason_phrase - Reason string.
 
 
-   Example 35. t_reply usage
+   Example 37. t_reply usage
 ...
 ...
 t_reply("404", "Not found");
 t_reply("404", "Not found");
 ...
 ...
@@ -897,7 +847,7 @@ t_reply("404", "Not found");
    none was found. However this is safely (atomically) done using
    none was found. However this is safely (atomically) done using
    t_newtran.
    t_newtran.
 
 
-   Example 36. t_lookup_request usage
+   Example 38. t_lookup_request usage
 ...
 ...
 if (t_lookup_request()) {
 if (t_lookup_request()) {
     ...
     ...
@@ -908,7 +858,7 @@ if (t_lookup_request()) {
 
 
    Retransmits a reply sent previously by UAS transaction.
    Retransmits a reply sent previously by UAS transaction.
 
 
-   Example 37. t_retransmit_reply usage
+   Example 39. t_retransmit_reply usage
 ...
 ...
 t_retransmit_reply();
 t_retransmit_reply();
 ...
 ...
@@ -918,7 +868,7 @@ t_retransmit_reply();
    Remove transaction from memory (it will be first put on a wait timer to
    Remove transaction from memory (it will be first put on a wait timer to
    absorb delayed messages).
    absorb delayed messages).
 
 
-   Example 38. t_release usage
+   Example 40. t_release usage
 ...
 ...
 t_release();
 t_release();
 ...
 ...
@@ -933,7 +883,7 @@ t_forward_nonack_tls(ip, port) t_forward_nonack_sctp(ip, port)
      * ip - IP address where the message should be sent.
      * ip - IP address where the message should be sent.
      * port - Port number.
      * port - Port number.
 
 
-   Example 39. t_forward_nonack usage
+   Example 41. t_forward_nonack usage
 ...
 ...
 t_forward_nonack("1.2.3.4", "5060");
 t_forward_nonack("1.2.3.4", "5060");
 ...
 ...
@@ -956,7 +906,7 @@ t_forward_nonack("1.2.3.4", "5060");
 
 
    See also: fr_timer, fr_inv_timer, t_reset_fr().
    See also: fr_timer, fr_inv_timer, t_reset_fr().
 
 
-   Example 40. t_set_fr usage
+   Example 42. t_set_fr usage
 ...
 ...
 route {
 route {
         t_set_fr(10000); # set only fr invite timeout to 10s
         t_set_fr(10000); # set only fr invite timeout to 10s
@@ -983,7 +933,7 @@ branch_route[1] {
 
 
    See also: fr_timer, fr_inv_timer, t_set_fr.
    See also: fr_timer, fr_inv_timer, t_set_fr.
 
 
-   Example 41. t_reset_fr usage
+   Example 43. t_reset_fr usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -1009,7 +959,7 @@ route {
 
 
    See also: max_inv_lifetime, max_noninv_lifetime, t_reset_max_lifetime.
    See also: max_inv_lifetime, max_noninv_lifetime, t_reset_max_lifetime.
 
 
-   Example 42. t_set_max_lifetime usage
+   Example 44. t_set_max_lifetime usage
 ...
 ...
 route {
 route {
     if (src_ip=1.2.3.4)
     if (src_ip=1.2.3.4)
@@ -1031,7 +981,7 @@ route {
 
 
    See also: max_inv_lifetime, max_noninv_lifetime, t_set_max_lifetime.
    See also: max_inv_lifetime, max_noninv_lifetime, t_set_max_lifetime.
 
 
-   Example 43. t_reset_max_lifetime usage
+   Example 45. t_reset_max_lifetime usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -1069,7 +1019,7 @@ route {
 
 
    See also: retr_timer1, retr_timer2, t_reset_retr().
    See also: retr_timer1, retr_timer2, t_reset_retr().
 
 
-   Example 44. t_set_retr usage
+   Example 46. t_set_retr usage
 ...
 ...
 route {
 route {
         t_set_retr(250, 0); # set only T1 to 250 ms
         t_set_retr(250, 0); # set only T1 to 250 ms
@@ -1096,7 +1046,7 @@ branch_route[1] {
 
 
    See also: retr_timer1, retr_timer2, t_set_retr.
    See also: retr_timer1, retr_timer2, t_set_retr.
 
 
-   Example 45. t_reset_retr usage
+   Example 47. t_reset_retr usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -1112,7 +1062,7 @@ route {
 
 
    See also: auto_inv_100.
    See also: auto_inv_100.
 
 
-   Example 46. t_set_auto_inv_100 usage
+   Example 48. t_set_auto_inv_100 usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -1126,7 +1076,7 @@ route {
    Returns true if the failure route is executed for a branch that did
    Returns true if the failure route is executed for a branch that did
    timeout. It can be used only from the failure_route.
    timeout. It can be used only from the failure_route.
 
 
-   Example 47. t_branch_timeout usage
+   Example 49. t_branch_timeout usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_branch_timeout()){
         if (t_branch_timeout()){
@@ -1141,7 +1091,7 @@ failure_route[0]{
    receive at least one reply in the past (the "current" reply is not
    receive at least one reply in the past (the "current" reply is not
    taken into account). It can be used only from the failure_route.
    taken into account). It can be used only from the failure_route.
 
 
-   Example 48. t_branch_replied usage
+   Example 50. t_branch_replied usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_branch_timeout()){
         if (t_branch_timeout()){
@@ -1158,7 +1108,7 @@ failure_route[0]{
    Returns true if at least one of the current transactions branches did
    Returns true if at least one of the current transactions branches did
    timeout.
    timeout.
 
 
-   Example 49. t_any_timeout usage
+   Example 51. t_any_timeout usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (!t_branch_timeout()){
         if (!t_branch_timeout()){
@@ -1175,7 +1125,7 @@ failure_route[0]{
    receive some reply in the past. If called from a failure or onreply
    receive some reply in the past. If called from a failure or onreply
    route, the "current" reply is not taken into account.
    route, the "current" reply is not taken into account.
 
 
-   Example 50. t_any_replied usage
+   Example 52. t_any_replied usage
 ...
 ...
 onreply_route[0]{
 onreply_route[0]{
         if (!t_any_replied()){
         if (!t_any_replied()){
@@ -1189,7 +1139,7 @@ onreply_route[0]{
    Returns true if "code" is the final reply received (or locally
    Returns true if "code" is the final reply received (or locally
    generated) in at least one of the current transactions branches.
    generated) in at least one of the current transactions branches.
 
 
-   Example 51. t_grep_status usage
+   Example 53. t_grep_status usage
 ...
 ...
 onreply_route[0]{
 onreply_route[0]{
         if (t_grep_status("486")){
         if (t_grep_status("486")){
@@ -1202,7 +1152,7 @@ onreply_route[0]{
 
 
    Returns true if the current transaction was canceled.
    Returns true if the current transaction was canceled.
 
 
-   Example 52. t_is_canceled usage
+   Example 54. t_is_canceled usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_is_canceled()){
         if (t_is_canceled()){
@@ -1216,7 +1166,7 @@ failure_route[0]{
    Returns true if the current transaction has already been expired, i.e.
    Returns true if the current transaction has already been expired, i.e.
    the max_inv_lifetime/max_noninv_lifetime interval has already elapsed.
    the max_inv_lifetime/max_noninv_lifetime interval has already elapsed.
 
 
-   Example 53. t_is_expired usage
+   Example 55. t_is_expired usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_is_expired()){
         if (t_is_expired()){
@@ -1237,7 +1187,7 @@ failure_route[0]{
    CANCELs were successfully sent to the pending branches, true if the
    CANCELs were successfully sent to the pending branches, true if the
    INVITE was not found, and false in case of any error.
    INVITE was not found, and false in case of any error.
 
 
-   Example 54. t_relay_cancel usage
+   Example 56. t_relay_cancel usage
 if (method == CANCEL) {
 if (method == CANCEL) {
         if (!t_relay_cancel()) {  # implicit drop if relaying was successful,
         if (!t_relay_cancel()) {  # implicit drop if relaying was successful,
                                   # nothing to do
                                   # nothing to do
@@ -1264,7 +1214,7 @@ if (method == CANCEL) {
    overwritten with the flags of the INVITE. isflagset() can be used to
    overwritten with the flags of the INVITE. isflagset() can be used to
    check the flags of the previously forwarded INVITE in this case.
    check the flags of the previously forwarded INVITE in this case.
 
 
-   Example 55. t_lookup_cancel usage
+   Example 57. t_lookup_cancel usage
 if (method == CANCEL) {
 if (method == CANCEL) {
         if (t_lookup_cancel()) {
         if (t_lookup_cancel()) {
                 log("INVITE transaction exists");
                 log("INVITE transaction exists");
@@ -1289,7 +1239,7 @@ if (method == CANCEL) {
    branch is added to the transaction, or it is explicitly replied in the
    branch is added to the transaction, or it is explicitly replied in the
    script!
    script!
 
 
-   Example 56. t_drop_replies() usage
+   Example 58. t_drop_replies() usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_check_status("5[0-9][0-9]")){
         if (t_check_status("5[0-9][0-9]")){
@@ -1320,7 +1270,7 @@ failure_route[0]{
    The transaction must be created by t_newtran() before calling
    The transaction must be created by t_newtran() before calling
    t_save_lumps().
    t_save_lumps().
 
 
-   Example 57. t_save_lumps() usage
+   Example 59. t_save_lumps() usage
 route {
 route {
         ...
         ...
         t_newtran();
         t_newtran();
@@ -1356,7 +1306,7 @@ failure_route[1] {
 
 
    This function can be used from REQUEST_ROUTE.
    This function can be used from REQUEST_ROUTE.
 
 
-   Example 58. t_load_contacts usage
+   Example 60. t_load_contacts usage
 ...
 ...
 if (!t_load_contacts()) {
 if (!t_load_contacts()) {
         sl_send_reply("500", "Server Internal Error - Cannot load contacts");
         sl_send_reply("500", "Server Internal Error - Cannot load contacts");
@@ -1381,7 +1331,7 @@ if (!t_load_contacts()) {
 
 
    This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.
 
 
-   Example 59. t_next_contacts usage
+   Example 61. t_next_contacts usage
 ...
 ...
 # First call after t_load_contacts() when transaction does not exist yet
 # First call after t_load_contacts() when transaction does not exist yet
 # and contacts should be available
 # and contacts should be available

+ 58 - 0
modules/tm/doc/params.xml

@@ -794,4 +794,62 @@ modparam("tm", "contacts_avp", "$avp(i:25)")
 		</example>
 		</example>
 	</section>
 	</section>
 
 
+	<section id="fr_timer_avp">
+		<title><varname>fr_timer_avp</varname> (string)</title>
+		<para>
+			The value of fr_timer timer can be overriden on per-transaction
+			basis. The administrator can provide a value to be used for a
+			particular transaction in an AVP. This parameter contains the name
+			of the AVP that will be checked. If the AVP exists then its value
+			will be used for the fr_timer timer, effectively overriding the
+			value configured in <varname>fr_timer</varname> parameter for the
+			current transaction.
+		</para>
+		<para>
+			The value of this parameter is the the name of the AVP to be
+			checked, without the $ character or "$avp" prefix.
+		</para>
+		<para>
+			See also: <function>t_set_fr()</function>,
+			<varname>fr_timer</varname>.
+		</para>
+		<example>
+			<title>Set <varname>fr_timer_avp</varname> parameter</title>
+			<programlisting>
+...
+modparam("tm", "fr_timer_avp", "i:708")
+...
+			</programlisting>
+		</example>
+	</section>
+	
+	<section id="fr_inv_timer_avp">
+		<title><varname>fr_inv_timer_avp</varname> (string)</title>
+		<para>
+			The value of fr_inv_timer timer can be overriden on
+			per-transaction basis. The administrator can provide a value to be
+			used for a particular transaction in an AVP. This parameter
+			contains the name of the AVP that will be checked. If the AVP
+			exists then its value will be used for the fr_inv_timer timer,
+			effectively overriding the value configured in
+			<varname>fr_inv_timer</varname> parameter for the current
+			transaction.
+		</para>
+		<para>
+			The value of this parameter is the the name of the AVP to be
+			checked, without the $ character or "$avp" prefix.
+		</para>
+		<para>
+			See also: <function>t_set_fr()</function>,
+			<varname>fr_inv_timer</varname>.
+		</para>
+		<example>
+			<title>Set <varname>fr_inv_timer_avp</varname> parameter</title>
+			<programlisting>
+...
+modparam("tm", "fr_inv_timer_avp", "my_fr_inv_timer")
+...
+			</programlisting>
+		</example>
+	</section>
 </section>
 </section>