浏览代码

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

Kamailio Dev 6 年之前
父节点
当前提交
e50a2e4a17
共有 3 个文件被更改,包括 175 次插入113 次删除
  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.2. default_reason (str)
               2.3. bind_tm (int)
+              2.4. rich_redirect (int)
 
         3. Functions
 
@@ -66,10 +67,11 @@ Daniel-Constantin Mierla
    1.1. default_code example
    1.2. default_reason 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
 
@@ -81,6 +83,7 @@ Chapter 1. Admin Guide
         2.1. default_code (int)
         2.2. default_reason (str)
         2.3. bind_tm (int)
+        2.4. rich_redirect (int)
 
    3. Functions
 
@@ -154,6 +157,7 @@ Chapter 1. Admin Guide
    2.1. default_code (int)
    2.2. default_reason (str)
    2.3. bind_tm (int)
+   2.4. rich_redirect (int)
 
 2.1. default_code (int)
 
@@ -189,6 +193,21 @@ modparam("sl", "default_reason", "Server Error")
 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.1. sl_send_reply(code, reason)
@@ -217,7 +236,7 @@ modparam("sl", "bind_tm", 0)  # feature disabled
      * code - Return code.
      * reason - Reason phrase.
 
-   Example 1.4. sl_send_reply usage
+   Example 1.5. sl_send_reply usage
 ...
 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()
    callback).
 
-   Example 1.5. send_reply usage
+   Example 1.6. send_reply usage
 ...
 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
    that returned an error code.
 
-   Example 1.6. sl_reply_error usage
+   Example 1.7. sl_reply_error usage
 ...
 sl_reply_error();
 ...
@@ -268,7 +287,7 @@ sl_reply_error();
 
    This function can be used from ONREPLY_ROUTE.
 
-   Example 1.7. send_reply usage
+   Example 1.8. send_reply usage
 ...
 if(status=="408")
     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.47. event_callback (str)
               3.48. relay_100 (str)
+              3.49. rich_redirect (int)
 
         4. Functions
 
@@ -218,54 +219,55 @@ Daniel-Constantin Mierla
    1.46. Set xavp_contact parameter
    1.47. Set event_callback 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
 
@@ -323,6 +325,7 @@ Chapter 1. Admin Guide
         3.46. xavp_contact (string)
         3.47. event_callback (str)
         3.48. relay_100 (str)
+        3.49. rich_redirect (int)
 
    4. Functions
 
@@ -692,6 +695,7 @@ failure_route["serial"]
    3.46. xavp_contact (string)
    3.47. event_callback (str)
    3.48. relay_100 (str)
+   3.49. rich_redirect (int)
 
 3.1. fr_timer (integer)
 
@@ -1650,6 +1654,21 @@ end
 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.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
    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())
 {
@@ -1752,7 +1771,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.50. t_relay_to_udp usage
+   Example 1.51. 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
@@ -1792,7 +1811,7 @@ else
    Meaning of the parameters is as follows:
      * failure_route - Failure route block to be called.
 
-   Example 1.51. t_on_failure usage
+   Example 1.52. t_on_failure usage
 ...
 route {
     t_on_failure("1");
@@ -1828,7 +1847,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.52. t_on_branch_failure usage
+   Example 1.53. t_on_branch_failure usage
 ...
 route {
     t_on_branch_failure("myroute");
@@ -1851,7 +1870,7 @@ event_route[tm:branch-failure:myroute] {
    Meaning of the parameters is as follows:
      * 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"
 ...
@@ -1883,7 +1902,7 @@ es');
    Meaning of the parameters is as follows:
      * branch_route - branch route block to be called.
 
-   Example 1.54. t_on_branch usage
+   Example 1.55. t_on_branch usage
 ...
 route {
         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.
    Typically, it is used to deploy a UAS.
 
-   Example 1.55. t_newtran usage
+   Example 1.56. t_newtran usage
 ...
 if (t_newtran()) {
     log("UAS logic");
@@ -1932,7 +1951,7 @@ if (t_newtran()) {
      * code - Reply code number.
      * reason_phrase - Reason string.
 
-   Example 1.56. t_reply usage
+   Example 1.57. t_reply usage
 ...
 t_reply("404", "Not found");
 ...
@@ -1950,7 +1969,7 @@ t_reply("404", "Not found");
      * code - Reply code number.
      * reason - Reason string.
 
-   Example 1.57. t_send_reply usage
+   Example 1.58. t_send_reply usage
 ...
 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
    t_newtran.
 
-   Example 1.58. t_lookup_request usage
+   Example 1.59. t_lookup_request usage
 ...
 if (t_lookup_request()) {
     ...
@@ -1974,7 +1993,7 @@ if (t_lookup_request()) {
 
    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();
 ...
@@ -1984,7 +2003,7 @@ t_retransmit_reply();
    Remove transaction from memory (it will be first put on a wait timer to
    absorb delayed messages).
 
-   Example 1.60. t_release usage
+   Example 1.61. t_release usage
 ...
 t_release();
 ...
@@ -1998,7 +2017,7 @@ t_release();
      * ip - IP address where the message should be sent.
      * 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");
 ...
@@ -2037,7 +2056,7 @@ t_forward_nonack("1.2.3.4", "5060");
 
    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 {
         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.
 
-   Example 1.63. t_reset_fr usage
+   Example 1.64. t_reset_fr usage
 ...
 route {
 ...
@@ -2090,7 +2109,7 @@ route {
 
    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 {
     if (src_ip=1.2.3.4)
@@ -2112,7 +2131,7 @@ route {
 
    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 {
 ...
@@ -2150,7 +2169,7 @@ route {
 
    See also: retr_timer1, retr_timer2, t_reset_retr().
 
-   Example 1.66. t_set_retr usage
+   Example 1.67. t_set_retr usage
 ...
 route {
         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.
 
-   Example 1.67. t_reset_retr usage
+   Example 1.68. t_reset_retr usage
 ...
 route {
 ...
@@ -2193,7 +2212,7 @@ route {
 
    See also: auto_inv_100.
 
-   Example 1.68. t_set_auto_inv_100 usage
+   Example 1.69. t_set_auto_inv_100 usage
 ...
 route {
 ...
@@ -2208,7 +2227,7 @@ route {
    timeout. It can be used from FAILURE_ROUTE and BRANCH_FAILURE_ROUTE
    event route.
 
-   Example 1.69. t_branch_timeout usage
+   Example 1.70. t_branch_timeout usage
 ...
 failure_route[0]{
         if (t_branch_timeout()){
@@ -2224,7 +2243,7 @@ failure_route[0]{
    taken into account). It can be used from failure_route and
    branch-failure event route.
 
-   Example 1.70. t_branch_replied usage
+   Example 1.71. t_branch_replied usage
 ...
 failure_route[0]{
         if (t_branch_timeout()){
@@ -2241,7 +2260,7 @@ failure_route[0]{
    Returns true if at least one of the current transactions branches did
    timeout.
 
-   Example 1.71. t_any_timeout usage
+   Example 1.72. t_any_timeout usage
 ...
 failure_route[0]{
         if (!t_branch_timeout()){
@@ -2258,7 +2277,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.72. t_any_replied usage
+   Example 1.73. t_any_replied usage
 ...
 onreply_route[0]{
         if (!t_any_replied()){
@@ -2272,7 +2291,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.73. t_grep_status usage
+   Example 1.74. t_grep_status usage
 ...
 onreply_route[0]{
         if (t_grep_status("486")){
@@ -2285,7 +2304,7 @@ onreply_route[0]{
 
    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]{
         if (t_is_canceled()){
@@ -2299,7 +2318,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.75. t_is_expired usage
+   Example 1.76. t_is_expired usage
 ...
 failure_route[0]{
         if (t_is_expired()){
@@ -2320,7 +2339,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.76. t_relay_cancel usage
+   Example 1.77. t_relay_cancel usage
 if (method == CANCEL) {
         if (!t_relay_cancel()) {  # implicit drop if relaying was successful,
                                   # nothing to do
@@ -2347,7 +2366,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.77. t_lookup_cancel usage
+   Example 1.78. t_lookup_cancel usage
 if (method == CANCEL) {
         if (t_lookup_cancel()) {
                 log("INVITE transaction exists");
@@ -2377,7 +2396,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.78. t_drop_replies() usage
+   Example 1.79. t_drop_replies() usage
 ...
 failure_route[0]{
         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
    t_save_lumps().
 
-   Example 1.79. t_save_lumps() usage
+   Example 1.80. t_save_lumps() usage
 route {
         ...
         t_newtran();
@@ -2467,7 +2486,7 @@ failure_route[1] {
 
    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()) {
         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
    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
 # 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
    route.
 
-   Example 1.82. t_next_contact_flow usage
+   Example 1.83. t_next_contact_flow usage
 ...
 event_route[tm:branch-failure:outbound]
 {
@@ -2569,7 +2588,7 @@ event_route[tm:branch-failure:outbound]
 
    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)")) {
     log("487 or 408 negative reply\n");
@@ -2623,7 +2642,7 @@ Note
 
    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())
         sl_reply("403", "cancel out of the blue forbidden");
 # 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.
 
-   Example 1.85. t_set_disable_6xx usage
+   Example 1.86. t_set_disable_6xx usage
 ...
 route {
 ...
@@ -2653,7 +2672,7 @@ route {
 
    See also: use_dns_failover.
 
-   Example 1.86. t_set_disable_failover usage
+   Example 1.87. t_set_disable_failover usage
 ...
 route {
 ...
@@ -2666,7 +2685,7 @@ route {
 
    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
 if(!t_relay()) {
@@ -2699,7 +2718,7 @@ if(!t_relay()) {
      * hostport - address in "host:port" format. It can be given via an
        AVP.
 
-   Example 1.88. t_replicate usage
+   Example 1.89. t_replicate usage
 ...
 # sent to 1.2.3.4:5060 over 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.
           + 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
 t_relay_to("tcp:1.2.3.4:5060");
@@ -2759,7 +2778,7 @@ t_relay_to("0x01");
 
    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 {
 ...
@@ -2782,7 +2801,7 @@ opying
      * onreply_route - the function returns true if an onreply route is
        set to be executed.
 
-   Example 1.91. t_replicate usage
+   Example 1.92. t_replicate usage
 ...
 if(!t_is_set("failure_route"))
     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.
 
-   Example 1.92. t_use_uac_headers usage
+   Example 1.93. t_use_uac_headers usage
 ...
 t_use_uac_headers();
 ...
@@ -2815,7 +2834,7 @@ t_use_uac_headers();
    returns true if the transaction is currently reply suspended or false
    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()) {
         xlog("L_DBG", "Dropping retransmitted reply which is still currently sus
@@ -2840,7 +2859,7 @@ pended\n");
        Content-Type header must exist.
      * 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]", "", "",
     "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
    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 {
     ...
@@ -2976,7 +2995,7 @@ event_route[tm:branch-failure:myroute] {
    Executed after the tm module has sent a local generated, transaction
    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] {
     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.5. acc_db_table (string)
               4.6. bflags (int)
+              4.7. flags_hdr_mode (int)
 
         5. Functions
 
@@ -48,11 +49,12 @@ Bogdan-Andrei Iancu
    1.4. Set acc_function parameter
    1.5. Set acc_db_table 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.11. Redirection script example
+   1.11. get_redirects usage
+   1.12. Redirection script example
 
 Chapter 1. Admin Guide
 
@@ -73,6 +75,7 @@ Chapter 1. Admin Guide
         4.4. acc_function (string)
         4.5. acc_db_table (string)
         4.6. bflags (int)
+        4.7. flags_hdr_mode (int)
 
    5. Functions
 
@@ -145,6 +148,7 @@ Chapter 1. Admin Guide
    4.4. acc_function (string)
    4.5. acc_db_table (string)
    4.6. bflags (int)
+   4.7. flags_hdr_mode (int)
 
 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.1. set_deny_filter(filter,flags)
@@ -271,7 +295,7 @@ branch_route[1] {
 
    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(".*@domain1.net","");
@@ -292,7 +316,7 @@ set_deny_filter(".*@domain1.net","");
 
    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(".*@domain1.net","");
@@ -321,7 +345,7 @@ set_accept_filter(".*@domain1.net","");
 
    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
 get_redirects("*:2");
@@ -345,14 +369,14 @@ get_redirects("*");
 
    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");
 ...
 
 6. Script Example
 
-   Example 1.11. Redirection script example
+   Example 1.12. Redirection script example
 loadmodule "modules/sl/sl.so"
 loadmodule "modules/usrloc/usrloc.so"
 loadmodule "modules/registrar/registrar.so"