Jelajahi Sumber

modules: readme files regenerated - sl ... [skip ci]

Kamailio Dev 6 tahun lalu
induk
melakukan
e50a2e4a17
3 mengubah file dengan 175 tambahan dan 113 penghapusan
  1. 27 8
      src/modules/sl/README
  2. 115 96
      src/modules/tm/README
  3. 33 9
      src/modules/uac_redirect/README

+ 27 - 8
src/modules/sl/README

@@ -21,6 +21,7 @@ Daniel-Constantin Mierla
               2.1. default_code (int)
               2.1. default_code (int)
               2.2. default_reason (str)
               2.2. default_reason (str)
               2.3. bind_tm (int)
               2.3. bind_tm (int)
+              2.4. rich_redirect (int)
 
 
         3. Functions
         3. Functions
 
 
@@ -66,10 +67,11 @@ Daniel-Constantin Mierla
    1.1. default_code example
    1.1. default_code example
    1.2. default_reason example
    1.2. default_reason example
    1.3. bind_tm example
    1.3. bind_tm example
-   1.4. sl_send_reply usage
-   1.5. send_reply usage
-   1.6. sl_reply_error usage
-   1.7. send_reply usage
+   1.4. rich_redirect example
+   1.5. sl_send_reply usage
+   1.6. send_reply usage
+   1.7. sl_reply_error usage
+   1.8. send_reply usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -81,6 +83,7 @@ Chapter 1. Admin Guide
         2.1. default_code (int)
         2.1. default_code (int)
         2.2. default_reason (str)
         2.2. default_reason (str)
         2.3. bind_tm (int)
         2.3. bind_tm (int)
+        2.4. rich_redirect (int)
 
 
    3. Functions
    3. Functions
 
 
@@ -154,6 +157,7 @@ Chapter 1. Admin Guide
    2.1. default_code (int)
    2.1. default_code (int)
    2.2. default_reason (str)
    2.2. default_reason (str)
    2.3. bind_tm (int)
    2.3. bind_tm (int)
+   2.4. rich_redirect (int)
 
 
 2.1. default_code (int)
 2.1. default_code (int)
 
 
@@ -189,6 +193,21 @@ modparam("sl", "default_reason", "Server Error")
 modparam("sl", "bind_tm", 0)  # feature disabled
 modparam("sl", "bind_tm", 0)  # feature disabled
 ...
 ...
 
 
+2.4. rich_redirect (int)
+
+   When sending a 3xx class reply, include additional branch info to the
+   contacts such as path vector and branch flags.
+     * 0 - no extra info is added (default)
+     * 1 - include branch flags as contact header parameter
+     * 2 - include path as contact uri Route header
+
+   Values may be combined (added).
+
+   Example 1.4. rich_redirect example
+...
+modparam("sl", "rich_redirect", 3)
+...
+
 3. Functions
 3. Functions
 
 
    3.1. sl_send_reply(code, reason)
    3.1. sl_send_reply(code, reason)
@@ -217,7 +236,7 @@ modparam("sl", "bind_tm", 0)  # feature disabled
      * code - Return code.
      * code - Return code.
      * reason - Reason phrase.
      * reason - Reason phrase.
 
 
-   Example 1.4. sl_send_reply usage
+   Example 1.5. sl_send_reply usage
 ...
 ...
 sl_send_reply("404", "Not found");
 sl_send_reply("404", "Not found");
 ...
 ...
@@ -237,7 +256,7 @@ sl_send_reply("404", "Not found");
    be used on ONREPLY_ROUTE executed by tm module (upon a t_on_reply()
    be used on ONREPLY_ROUTE executed by tm module (upon a t_on_reply()
    callback).
    callback).
 
 
-   Example 1.5. send_reply usage
+   Example 1.6. send_reply usage
 ...
 ...
 send_reply("404", "Not found");
 send_reply("404", "Not found");
 ...
 ...
@@ -250,7 +269,7 @@ send_reply("403", "Invalid user - $fU");
    error. Usually this function should be used after a script function
    error. Usually this function should be used after a script function
    that returned an error code.
    that returned an error code.
 
 
-   Example 1.6. sl_reply_error usage
+   Example 1.7. sl_reply_error usage
 ...
 ...
 sl_reply_error();
 sl_reply_error();
 ...
 ...
@@ -268,7 +287,7 @@ sl_reply_error();
 
 
    This function can be used from ONREPLY_ROUTE.
    This function can be used from ONREPLY_ROUTE.
 
 
-   Example 1.7. send_reply usage
+   Example 1.8. send_reply usage
 ...
 ...
 if(status=="408")
 if(status=="408")
     sl_forward_reply("404", "Not found");
     sl_forward_reply("404", "Not found");

+ 115 - 96
src/modules/tm/README

@@ -75,6 +75,7 @@ Daniel-Constantin Mierla
               3.46. xavp_contact (string)
               3.46. xavp_contact (string)
               3.47. event_callback (str)
               3.47. event_callback (str)
               3.48. relay_100 (str)
               3.48. relay_100 (str)
+              3.49. rich_redirect (int)
 
 
         4. Functions
         4. Functions
 
 
@@ -218,54 +219,55 @@ Daniel-Constantin Mierla
    1.46. Set xavp_contact parameter
    1.46. Set xavp_contact parameter
    1.47. Set event_callback parameter
    1.47. Set event_callback parameter
    1.48. Set relay_100 parameter
    1.48. Set relay_100 parameter
-   1.49. t_relay usage
-   1.50. t_relay_to_udp usage
-   1.51. t_on_failure usage
-   1.52. t_on_branch_failure usage
-   1.53. t_on_reply usage
-   1.54. t_on_branch usage
-   1.55. t_newtran usage
-   1.56. t_reply usage
-   1.57. t_send_reply usage
-   1.58. t_lookup_request usage
-   1.59. t_retransmit_reply usage
-   1.60. t_release usage
-   1.61. t_forward_nonack usage
-   1.62. t_set_fr usage
-   1.63. t_reset_fr usage
-   1.64. t_set_max_lifetime usage
-   1.65. t_reset_max_lifetime usage
-   1.66. t_set_retr usage
-   1.67. t_reset_retr usage
-   1.68. t_set_auto_inv_100 usage
-   1.69. t_branch_timeout usage
-   1.70. t_branch_replied usage
-   1.71. t_any_timeout usage
-   1.72. t_any_replied usage
-   1.73. t_grep_status usage
-   1.74. t_is_canceled usage
-   1.75. t_is_expired usage
-   1.76. t_relay_cancel usage
-   1.77. t_lookup_cancel usage
-   1.78. t_drop_replies() usage
-   1.79. t_save_lumps() usage
-   1.80. t_load_contacts usage
-   1.81. t_next_contacts usage
-   1.82. t_next_contact_flow usage
-   1.83. t_check_status usage
-   1.84. t_check_trans usage
-   1.85. t_set_disable_6xx usage
-   1.86. t_set_disable_failover usage
-   1.87. t_set_disable_internal_reply usage
-   1.88. t_replicate usage
-   1.89. t_relay_to usage
-   1.90. t_set_no_e2e_cancel_reason usage
-   1.91. t_replicate usage
-   1.92. t_use_uac_headers usage
-   1.93. t_is_retr_async_reply usage
-   1.94. t_uac_send usage
-   1.95. event_route[tm:branch-failure] usage
-   1.96. event_route[tm:local-response] usage
+   1.49. rich_redirect example
+   1.50. t_relay usage
+   1.51. t_relay_to_udp usage
+   1.52. t_on_failure usage
+   1.53. t_on_branch_failure usage
+   1.54. t_on_reply usage
+   1.55. t_on_branch usage
+   1.56. t_newtran usage
+   1.57. t_reply usage
+   1.58. t_send_reply usage
+   1.59. t_lookup_request usage
+   1.60. t_retransmit_reply usage
+   1.61. t_release usage
+   1.62. t_forward_nonack usage
+   1.63. t_set_fr usage
+   1.64. t_reset_fr usage
+   1.65. t_set_max_lifetime usage
+   1.66. t_reset_max_lifetime usage
+   1.67. t_set_retr usage
+   1.68. t_reset_retr usage
+   1.69. t_set_auto_inv_100 usage
+   1.70. t_branch_timeout usage
+   1.71. t_branch_replied usage
+   1.72. t_any_timeout usage
+   1.73. t_any_replied usage
+   1.74. t_grep_status usage
+   1.75. t_is_canceled usage
+   1.76. t_is_expired usage
+   1.77. t_relay_cancel usage
+   1.78. t_lookup_cancel usage
+   1.79. t_drop_replies() usage
+   1.80. t_save_lumps() usage
+   1.81. t_load_contacts usage
+   1.82. t_next_contacts usage
+   1.83. t_next_contact_flow usage
+   1.84. t_check_status usage
+   1.85. t_check_trans usage
+   1.86. t_set_disable_6xx usage
+   1.87. t_set_disable_failover usage
+   1.88. t_set_disable_internal_reply usage
+   1.89. t_replicate usage
+   1.90. t_relay_to usage
+   1.91. t_set_no_e2e_cancel_reason usage
+   1.92. t_replicate usage
+   1.93. t_use_uac_headers usage
+   1.94. t_is_retr_async_reply usage
+   1.95. t_uac_send usage
+   1.96. event_route[tm:branch-failure] usage
+   1.97. event_route[tm:local-response] usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -323,6 +325,7 @@ Chapter 1. Admin Guide
         3.46. xavp_contact (string)
         3.46. xavp_contact (string)
         3.47. event_callback (str)
         3.47. event_callback (str)
         3.48. relay_100 (str)
         3.48. relay_100 (str)
+        3.49. rich_redirect (int)
 
 
    4. Functions
    4. Functions
 
 
@@ -692,6 +695,7 @@ failure_route["serial"]
    3.46. xavp_contact (string)
    3.46. xavp_contact (string)
    3.47. event_callback (str)
    3.47. event_callback (str)
    3.48. relay_100 (str)
    3.48. relay_100 (str)
+   3.49. rich_redirect (int)
 
 
 3.1. fr_timer (integer)
 3.1. fr_timer (integer)
 
 
@@ -1650,6 +1654,21 @@ end
 modparam("tm", "relay_100", 1)
 modparam("tm", "relay_100", 1)
 ...
 ...
 
 
+3.49. rich_redirect (int)
+
+   When sending a 3xx class reply, include additional branch info to the
+   contacts such as path vector and branch flags.
+     * 0 - no extra info is added (default)
+     * 1 - include branch flags as contact header parameter
+     * 2 - include path as contact uri Route header
+
+   Values may be combined (added).
+
+   Example 1.49. rich_redirect example
+...
+modparam("tm", "rich_redirect", 3)
+....
+
 4. Functions
 4. Functions
 
 
    4.1. t_relay([host, port])
    4.1. t_relay([host, port])
@@ -1725,7 +1744,7 @@ modparam("tm", "relay_100", 1)
    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 1.49. t_relay usage
+   Example 1.50. t_relay usage
 ...
 ...
 if (!t_relay())
 if (!t_relay())
 {
 {
@@ -1752,7 +1771,7 @@ if (!t_relay())
    derived from the message uri (using sip specific DNS lookups), but with
    derived from the message uri (using sip specific DNS lookups), but with
    the protocol corresponding to the function name.
    the protocol corresponding to the function name.
 
 
-   Example 1.50. t_relay_to_udp usage
+   Example 1.51. 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
@@ -1792,7 +1811,7 @@ else
    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 1.51. t_on_failure usage
+   Example 1.52. t_on_failure usage
 ...
 ...
 route {
 route {
     t_on_failure("1");
     t_on_failure("1");
@@ -1828,7 +1847,7 @@ failure_route[1] {
      * branch_failure_route - Name of the branch_failure route block to be
      * branch_failure_route - Name of the branch_failure route block to be
        called (it is prefixed internally with 'tm:branch-failure:').
        called (it is prefixed internally with 'tm:branch-failure:').
 
 
-   Example 1.52. t_on_branch_failure usage
+   Example 1.53. t_on_branch_failure usage
 ...
 ...
 route {
 route {
     t_on_branch_failure("myroute");
     t_on_branch_failure("myroute");
@@ -1851,7 +1870,7 @@ event_route[tm:branch-failure:myroute] {
    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 1.53. t_on_reply usage
+   Example 1.54. t_on_reply usage
 ...
 ...
 loadmodule "/usr/local/lib/ser/modules/nathelper.so"
 loadmodule "/usr/local/lib/ser/modules/nathelper.so"
 ...
 ...
@@ -1883,7 +1902,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 1.54. t_on_branch usage
+   Example 1.55. t_on_branch usage
 ...
 ...
 route {
 route {
         t_on_branch("1");
         t_on_branch("1");
@@ -1902,7 +1921,7 @@ branch_route[1] {
    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 1.55. t_newtran usage
+   Example 1.56. t_newtran usage
 ...
 ...
 if (t_newtran()) {
 if (t_newtran()) {
     log("UAS logic");
     log("UAS logic");
@@ -1932,7 +1951,7 @@ if (t_newtran()) {
      * code - Reply code number.
      * code - Reply code number.
      * reason_phrase - Reason string.
      * reason_phrase - Reason string.
 
 
-   Example 1.56. t_reply usage
+   Example 1.57. t_reply usage
 ...
 ...
 t_reply("404", "Not found");
 t_reply("404", "Not found");
 ...
 ...
@@ -1950,7 +1969,7 @@ t_reply("404", "Not found");
      * code - Reply code number.
      * code - Reply code number.
      * reason - Reason string.
      * reason - Reason string.
 
 
-   Example 1.57. t_send_reply usage
+   Example 1.58. t_send_reply usage
 ...
 ...
 t_send_reply("404", "Not found");
 t_send_reply("404", "Not found");
 ...
 ...
@@ -1963,7 +1982,7 @@ t_send_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 1.58. t_lookup_request usage
+   Example 1.59. t_lookup_request usage
 ...
 ...
 if (t_lookup_request()) {
 if (t_lookup_request()) {
     ...
     ...
@@ -1974,7 +1993,7 @@ if (t_lookup_request()) {
 
 
    Retransmits a reply sent previously by UAS transaction.
    Retransmits a reply sent previously by UAS transaction.
 
 
-   Example 1.59. t_retransmit_reply usage
+   Example 1.60. t_retransmit_reply usage
 ...
 ...
 t_retransmit_reply();
 t_retransmit_reply();
 ...
 ...
@@ -1984,7 +2003,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 1.60. t_release usage
+   Example 1.61. t_release usage
 ...
 ...
 t_release();
 t_release();
 ...
 ...
@@ -1998,7 +2017,7 @@ t_release();
      * 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 1.61. t_forward_nonack usage
+   Example 1.62. t_forward_nonack usage
 ...
 ...
 t_forward_nonack("1.2.3.4", "5060");
 t_forward_nonack("1.2.3.4", "5060");
 ...
 ...
@@ -2037,7 +2056,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 1.62. t_set_fr usage
+   Example 1.63. 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
@@ -2064,7 +2083,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 1.63. t_reset_fr usage
+   Example 1.64. t_reset_fr usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2090,7 +2109,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 1.64. t_set_max_lifetime usage
+   Example 1.65. t_set_max_lifetime usage
 ...
 ...
 route {
 route {
     if (src_ip=1.2.3.4)
     if (src_ip=1.2.3.4)
@@ -2112,7 +2131,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 1.65. t_reset_max_lifetime usage
+   Example 1.66. t_reset_max_lifetime usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2150,7 +2169,7 @@ route {
 
 
    See also: retr_timer1, retr_timer2, t_reset_retr().
    See also: retr_timer1, retr_timer2, t_reset_retr().
 
 
-   Example 1.66. t_set_retr usage
+   Example 1.67. 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
@@ -2177,7 +2196,7 @@ branch_route[1] {
 
 
    See also: retr_timer1, retr_timer2, t_set_retr.
    See also: retr_timer1, retr_timer2, t_set_retr.
 
 
-   Example 1.67. t_reset_retr usage
+   Example 1.68. t_reset_retr usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2193,7 +2212,7 @@ route {
 
 
    See also: auto_inv_100.
    See also: auto_inv_100.
 
 
-   Example 1.68. t_set_auto_inv_100 usage
+   Example 1.69. t_set_auto_inv_100 usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2208,7 +2227,7 @@ route {
    timeout. It can be used from FAILURE_ROUTE and BRANCH_FAILURE_ROUTE
    timeout. It can be used from FAILURE_ROUTE and BRANCH_FAILURE_ROUTE
    event route.
    event route.
 
 
-   Example 1.69. t_branch_timeout usage
+   Example 1.70. t_branch_timeout usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_branch_timeout()){
         if (t_branch_timeout()){
@@ -2224,7 +2243,7 @@ failure_route[0]{
    taken into account). It can be used from failure_route and
    taken into account). It can be used from failure_route and
    branch-failure event route.
    branch-failure event route.
 
 
-   Example 1.70. t_branch_replied usage
+   Example 1.71. t_branch_replied usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_branch_timeout()){
         if (t_branch_timeout()){
@@ -2241,7 +2260,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 1.71. t_any_timeout usage
+   Example 1.72. t_any_timeout usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (!t_branch_timeout()){
         if (!t_branch_timeout()){
@@ -2258,7 +2277,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 1.72. t_any_replied usage
+   Example 1.73. t_any_replied usage
 ...
 ...
 onreply_route[0]{
 onreply_route[0]{
         if (!t_any_replied()){
         if (!t_any_replied()){
@@ -2272,7 +2291,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 1.73. t_grep_status usage
+   Example 1.74. t_grep_status usage
 ...
 ...
 onreply_route[0]{
 onreply_route[0]{
         if (t_grep_status("486")){
         if (t_grep_status("486")){
@@ -2285,7 +2304,7 @@ onreply_route[0]{
 
 
    Returns true if the current transaction was canceled.
    Returns true if the current transaction was canceled.
 
 
-   Example 1.74. t_is_canceled usage
+   Example 1.75. t_is_canceled usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_is_canceled()){
         if (t_is_canceled()){
@@ -2299,7 +2318,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 1.75. t_is_expired usage
+   Example 1.76. t_is_expired usage
 ...
 ...
 failure_route[0]{
 failure_route[0]{
         if (t_is_expired()){
         if (t_is_expired()){
@@ -2320,7 +2339,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 1.76. t_relay_cancel usage
+   Example 1.77. 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
@@ -2347,7 +2366,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 1.77. t_lookup_cancel usage
+   Example 1.78. 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");
@@ -2377,7 +2396,7 @@ if (method == CANCEL) {
    Dropping replies works only if a new branch is added to the
    Dropping replies works only if a new branch is added to the
    transaction, or it is explicitly replied in the script!
    transaction, or it is explicitly replied in the script!
 
 
-   Example 1.78. t_drop_replies() usage
+   Example 1.79. 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]")){
@@ -2408,7 +2427,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 1.79. t_save_lumps() usage
+   Example 1.80. t_save_lumps() usage
 route {
 route {
         ...
         ...
         t_newtran();
         t_newtran();
@@ -2467,7 +2486,7 @@ failure_route[1] {
 
 
    This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.
 
 
-   Example 1.80. t_load_contacts usage
+   Example 1.81. 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");
@@ -2508,7 +2527,7 @@ if (!t_load_contacts()) {
    contact_flows_avp are not anymore set. Based on that test, you can then
    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.
    use t_set_fr() function to set timers according to your needs.
 
 
-   Example 1.81. t_next_contacts usage
+   Example 1.82. 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
@@ -2546,7 +2565,7 @@ if (!t_next_contacts()) {
    syslog). This function can be used from a BRANCH_FAILURE_ROUTE event
    syslog). This function can be used from a BRANCH_FAILURE_ROUTE event
    route.
    route.
 
 
-   Example 1.82. t_next_contact_flow usage
+   Example 1.83. t_next_contact_flow usage
 ...
 ...
 event_route[tm:branch-failure:outbound]
 event_route[tm:branch-failure:outbound]
 {
 {
@@ -2569,7 +2588,7 @@ event_route[tm:branch-failure:outbound]
 
 
    This function can be used from ANY_ROUTE .
    This function can be used from ANY_ROUTE .
 
 
-   Example 1.83. t_check_status usage
+   Example 1.84. t_check_status usage
 ...
 ...
 if (t_check_status("(487)|(408)")) {
 if (t_check_status("(487)|(408)")) {
     log("487 or 408 negative reply\n");
     log("487 or 408 negative reply\n");
@@ -2623,7 +2642,7 @@ Note
 
 
    See also: t_lookup_request(), t_lookup_cancel().
    See also: t_lookup_request(), t_lookup_cancel().
 
 
-   Example 1.84. t_check_trans usage
+   Example 1.85. t_check_trans usage
 if ( method == "CANCEL" && !t_check_trans())
 if ( method == "CANCEL" && !t_check_trans())
         sl_reply("403", "cancel out of the blue forbidden");
         sl_reply("403", "cancel out of the blue forbidden");
 # note: in this example t_check_trans() can be replaced by t_lookup_cancel()
 # note: in this example t_check_trans() can be replaced by t_lookup_cancel()
@@ -2638,7 +2657,7 @@ if ( method == "CANCEL" && !t_check_trans())
 
 
    See also: disable_6xx_block.
    See also: disable_6xx_block.
 
 
-   Example 1.85. t_set_disable_6xx usage
+   Example 1.86. t_set_disable_6xx usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2653,7 +2672,7 @@ route {
 
 
    See also: use_dns_failover.
    See also: use_dns_failover.
 
 
-   Example 1.86. t_set_disable_failover usage
+   Example 1.87. t_set_disable_failover usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2666,7 +2685,7 @@ route {
 
 
    Turn off/on sending internally a SIP reply in case of relay errors.
    Turn off/on sending internally a SIP reply in case of relay errors.
 
 
-   Example 1.87. t_set_disable_internal_reply usage
+   Example 1.88. t_set_disable_internal_reply usage
 ...
 ...
 t_set_disable_internal_reply(1); # turn off sending internal reply on error
 t_set_disable_internal_reply(1); # turn off sending internal reply on error
 if(!t_relay()) {
 if(!t_relay()) {
@@ -2699,7 +2718,7 @@ if(!t_relay()) {
      * hostport - address in "host:port" format. It can be given via an
      * hostport - address in "host:port" format. It can be given via an
        AVP.
        AVP.
 
 
-   Example 1.88. t_replicate usage
+   Example 1.89. t_replicate usage
 ...
 ...
 # sent to 1.2.3.4:5060 over tcp
 # sent to 1.2.3.4:5060 over tcp
 t_replicate("sip:1.2.3.4:5060;transport=tcp");
 t_replicate("sip:1.2.3.4:5060;transport=tcp");
@@ -2733,7 +2752,7 @@ t_replicate_to_udp("1.2.3.4", "5060");
           + 0x02 - do not generate reply on internal error.
           + 0x02 - do not generate reply on internal error.
           + 0x04 - disable dns failover.
           + 0x04 - disable dns failover.
 
 
-   Example 1.89. t_relay_to usage
+   Example 1.90. t_relay_to usage
 ...
 ...
 # sent to 1.2.3.4:5060 over tcp
 # sent to 1.2.3.4:5060 over tcp
 t_relay_to("tcp:1.2.3.4:5060");
 t_relay_to("tcp:1.2.3.4:5060");
@@ -2759,7 +2778,7 @@ t_relay_to("0x01");
 
 
    See also: e2e_cancel_reason.
    See also: e2e_cancel_reason.
 
 
-   Example 1.90. t_set_no_e2e_cancel_reason usage
+   Example 1.91. t_set_no_e2e_cancel_reason usage
 ...
 ...
 route {
 route {
 ...
 ...
@@ -2782,7 +2801,7 @@ opying
      * onreply_route - the function returns true if an onreply route is
      * onreply_route - the function returns true if an onreply route is
        set to be executed.
        set to be executed.
 
 
-   Example 1.91. t_replicate usage
+   Example 1.92. t_replicate usage
 ...
 ...
 if(!t_is_set("failure_route"))
 if(!t_is_set("failure_route"))
     LM_DBG("no failure route will be executed for current transaction\n");
     LM_DBG("no failure route will be executed for current transaction\n");
@@ -2796,7 +2815,7 @@ if(!t_is_set("failure_route"))
 
 
    It returns true.
    It returns true.
 
 
-   Example 1.92. t_use_uac_headers usage
+   Example 1.93. t_use_uac_headers usage
 ...
 ...
 t_use_uac_headers();
 t_use_uac_headers();
 ...
 ...
@@ -2815,7 +2834,7 @@ t_use_uac_headers();
    returns true if the transaction is currently reply suspended or false
    returns true if the transaction is currently reply suspended or false
    if not.
    if not.
 
 
-   Example 1.93. t_is_retr_async_reply usage
+   Example 1.94. t_is_retr_async_reply usage
 ...
 ...
 if (t_is_retr_async_reply()) {
 if (t_is_retr_async_reply()) {
         xlog("L_DBG", "Dropping retransmitted reply which is still currently sus
         xlog("L_DBG", "Dropping retransmitted reply which is still currently sus
@@ -2840,7 +2859,7 @@ pended\n");
        Content-Type header must exist.
        Content-Type header must exist.
      * body - SIP message body (can be empty).
      * body - SIP message body (can be empty).
 
 
-   Example 1.94. t_uac_send usage
+   Example 1.95. t_uac_send usage
 ...
 ...
 t_uac_send("OPTIONS", "sip:[email protected]", "", "",
 t_uac_send("OPTIONS", "sip:[email protected]", "", "",
     "From: [email protected];tag=2w3e\r\nTo: [email protected]", "");
     "From: [email protected];tag=2w3e\r\nTo: [email protected]", "");
@@ -2958,7 +2977,7 @@ t_uac_send("OPTIONS", "sip:[email protected]", "", "",
    enabled with the t_on_branch_failure function. This event_route uses
    enabled with the t_on_branch_failure function. This event_route uses
    the BRANCH_FAILURE_ROUTE route type.
    the BRANCH_FAILURE_ROUTE route type.
 
 
-   Example 1.95. event_route[tm:branch-failure] usage
+   Example 1.96. event_route[tm:branch-failure] usage
 ...
 ...
 request_route {
 request_route {
     ...
     ...
@@ -2976,7 +2995,7 @@ event_route[tm:branch-failure:myroute] {
    Executed after the tm module has sent a local generated, transaction
    Executed after the tm module has sent a local generated, transaction
    stateful response.
    stateful response.
 
 
-   Example 1.96. event_route[tm:local-response] usage
+   Example 1.97. event_route[tm:local-response] usage
 ...
 ...
 event_route[tm:local-response] {
 event_route[tm:local-response] {
     xlog("tm:local-response replied locally\n");
     xlog("tm:local-response replied locally\n");

+ 33 - 9
src/modules/uac_redirect/README

@@ -30,6 +30,7 @@ Bogdan-Andrei Iancu
               4.4. acc_function (string)
               4.4. acc_function (string)
               4.5. acc_db_table (string)
               4.5. acc_db_table (string)
               4.6. bflags (int)
               4.6. bflags (int)
+              4.7. flags_hdr_mode (int)
 
 
         5. Functions
         5. Functions
 
 
@@ -48,11 +49,12 @@ Bogdan-Andrei Iancu
    1.4. Set acc_function parameter
    1.4. Set acc_function parameter
    1.5. Set acc_db_table parameter
    1.5. Set acc_db_table parameter
    1.6. Set bflags module parameter
    1.6. Set bflags module parameter
-   1.7. set_deny_filter usage
-   1.8. set_accept_filter usage
-   1.9. get_redirects usage
+   1.7. Set flags_hdr_mode parameter
+   1.8. set_deny_filter usage
+   1.9. set_accept_filter usage
    1.10. get_redirects usage
    1.10. get_redirects usage
-   1.11. Redirection script example
+   1.11. get_redirects usage
+   1.12. Redirection script example
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -73,6 +75,7 @@ Chapter 1. Admin Guide
         4.4. acc_function (string)
         4.4. acc_function (string)
         4.5. acc_db_table (string)
         4.5. acc_db_table (string)
         4.6. bflags (int)
         4.6. bflags (int)
+        4.7. flags_hdr_mode (int)
 
 
    5. Functions
    5. Functions
 
 
@@ -145,6 +148,7 @@ Chapter 1. Admin Guide
    4.4. acc_function (string)
    4.4. acc_function (string)
    4.5. acc_db_table (string)
    4.5. acc_db_table (string)
    4.6. bflags (int)
    4.6. bflags (int)
+   4.7. flags_hdr_mode (int)
 
 
 4.1. default_filter (string)
 4.1. default_filter (string)
 
 
@@ -249,6 +253,26 @@ branch_route[1] {
         }
         }
 }
 }
 
 
+4.7. flags_hdr_mode (int)
+
+   Specifies if and how a Contact's flags header parameter must be used.
+   If set, and a flags header parameter is set, its value will be set as
+   branch flags for that contact.
+
+   Its values may be:
+     * 0 - ignore flags header parameter, just use bflags module parameter
+     * 1 - use flags header parameter if present, ignore bflags module
+       parameter
+     * 2 - use flags header parameter if present and merge (binary or) it
+       with the bflags module parameter
+
+   The default value is “0”.
+
+   Example 1.7. Set flags_hdr_mode parameter
+...
+modparam("uac_redirect","flags_hdr_mode",2)
+...
+
 5. Functions
 5. Functions
 
 
    5.1. set_deny_filter(filter,flags)
    5.1. set_deny_filter(filter,flags)
@@ -271,7 +295,7 @@ branch_route[1] {
 
 
    This function can be used from FAILURE_ROUTE.
    This function can be used from FAILURE_ROUTE.
 
 
-   Example 1.7. set_deny_filter usage
+   Example 1.8. set_deny_filter usage
 ...
 ...
 set_deny_filter(".*@domain2.net","reset_all");
 set_deny_filter(".*@domain2.net","reset_all");
 set_deny_filter(".*@domain1.net","");
 set_deny_filter(".*@domain1.net","");
@@ -292,7 +316,7 @@ set_deny_filter(".*@domain1.net","");
 
 
    This function can be used from FAILURE_ROUTE.
    This function can be used from FAILURE_ROUTE.
 
 
-   Example 1.8. set_accept_filter usage
+   Example 1.9. set_accept_filter usage
 ...
 ...
 set_accept_filter(".*@domain2.net","reset_added");
 set_accept_filter(".*@domain2.net","reset_added");
 set_accept_filter(".*@domain1.net","");
 set_accept_filter(".*@domain1.net","");
@@ -321,7 +345,7 @@ set_accept_filter(".*@domain1.net","");
 
 
    This function can be used from FAILURE_ROUTE.
    This function can be used from FAILURE_ROUTE.
 
 
-   Example 1.9. get_redirects usage
+   Example 1.10. get_redirects usage
 ...
 ...
 # max 2 contacts per branch, but no overall limit
 # max 2 contacts per branch, but no overall limit
 get_redirects("*:2");
 get_redirects("*:2");
@@ -345,14 +369,14 @@ get_redirects("*");
 
 
    This function can be used from FAILURE_ROUTE.
    This function can be used from FAILURE_ROUTE.
 
 
-   Example 1.10. get_redirects usage
+   Example 1.11. get_redirects usage
 ...
 ...
 get_redirects("4:1","Redirected");
 get_redirects("4:1","Redirected");
 ...
 ...
 
 
 6. Script Example
 6. Script Example
 
 
-   Example 1.11. Redirection script example
+   Example 1.12. Redirection script example
 loadmodule "modules/sl/sl.so"
 loadmodule "modules/sl/sl.so"
 loadmodule "modules/usrloc/usrloc.so"
 loadmodule "modules/usrloc/usrloc.so"
 loadmodule "modules/registrar/registrar.so"
 loadmodule "modules/registrar/registrar.so"