Browse code

tm docs update

Added disable_6xx_block, ruri_matching, via1_matching,
pass_provisional_replies, default_code, default_reason,
t_set_disable_6xx(), t_set_disable_failover().

Andrei Pelinescu-Onciul authored on 22/09/2009 17:27:16
Showing 5 changed files
... ...
@@ -87,6 +87,15 @@ new script commands:
87 87
   set_reply_close() - like set_forward_close(), but it works for replies to
88 88
        the current message.
89 89
 
90
+tm:
91
+  disable_6xx_block parameter - if set, will treat 6xx replies like normal
92
+       replies (non rfc conformant). Default: off.
93
+       See also t_set_disable_6xx().
94
+  t_set_disable_6xx(0|1) - can be used to turn off/on the special 6xx handling
95
+       on a per transaction basis.
96
+  t_set_disable_failover(0|1) - can be used to turn off/on dns failover on a
97
+       per transaction basis.
98
+
90 99
 
91 100
 
92 101
 2.1.0 changes
... ...
@@ -49,6 +49,12 @@ Juha Heinanen
49 49
         1.3.28. fr_timer_avp (string)
50 50
         1.3.29. fr_inv_timer_avp (string)
51 51
         1.3.30. unmatched_cancel (string)
52
+        1.3.31. ruri_matching (integer)
53
+        1.3.32. via1_matching (integer)
54
+        1.3.33. pass_provisional_replies (integer)
55
+        1.3.34. default_code (integer)
56
+        1.3.35. default_reason (string)
57
+        1.3.36. disable_6xx_block (integer)
52 58
 
53 59
    1.4. Functions
54 60
 
... ...
@@ -93,6 +99,8 @@ Juha Heinanen
93 93
         1.4.31. t_load_contacts()
94 94
         1.4.32. t_next_contacts()
95 95
         1.4.33. t_check_trans()
96
+        1.4.34. t_set_disable_6xx(0|1)
97
+        1.4.35. t_set_disable_failover(0|1)
96 98
 
97 99
    1.5. TM Module API
98 100
 
... ...
@@ -775,6 +783,113 @@ modparam("tm", "fr_inv_timer_avp", "my_fr_inv_timer")
775 775
 modparam("tm", "unmatched_cancel", "2")
776 776
 ...
777 777
 
778
+1.3.31. ruri_matching (integer)
779
+
780
+   If set it will also try to match the request uri when doing pre-3261
781
+   transaction matching (the via branch parameter does not contain the
782
+   3261 cookie).
783
+
784
+   The only reason to have it not set is for interoperability with old,
785
+   broken implementations.
786
+
787
+   Default value is 1 (on).
788
+
789
+   Can be set at runtime, e.g.:
790
+        $ sercmd cfg.set_now_int tm ruri_matching 0
791
+
792
+   Example 31. Set ruri_matching parameter
793
+...
794
+modparam("tm", "ruri_matching", 1)
795
+...
796
+
797
+1.3.32. via1_matching (integer)
798
+
799
+   If set it will also try to match the topmost via when doing pre-3261
800
+   transaction matching (the via branch parameter does not contain the
801
+   3261 cookie).
802
+
803
+   The only reason to have it not set is for interoperability with old,
804
+   broken implementations.
805
+
806
+   Default value is 1 (on).
807
+
808
+   Can be set at runtime, e.g.:
809
+        $ sercmd cfg.set_now_int tm via1_matching 0
810
+
811
+   Example 32. Set via1_matching parameter
812
+...
813
+modparam("tm", "via1_matching", 1)
814
+...
815
+
816
+1.3.33. pass_provisional_replies (integer)
817
+
818
+   If set, TMCB_LOCAL_REPONSE_OUT tm registered callbacks will be called
819
+   also for provisional replies.
820
+
821
+   Default value is 0 (off).
822
+
823
+   Can be set at runtime, e.g.:
824
+        $ sercmd cfg.set_now_int tm pass_provisional_replies 1
825
+
826
+   Example 33. Set pass_provisional_replies parameter
827
+...
828
+modparam("tm", "pass_provisional_replies", 1)
829
+...
830
+
831
+1.3.34. default_code (integer)
832
+
833
+   Default response code sent by t_reply() if it cannot retrieve its
834
+   parameters (e.g. inexistent avp). Valid values are between 400 and 699.
835
+
836
+   Default value is 500.
837
+
838
+   Can be set at runtime, e.g.:
839
+        $ sercmd cfg.set_now_int tm default_code 505
840
+
841
+   Example 34. Set default_code parameter
842
+...
843
+modparam("tm", "default_code", 501)
844
+...
845
+
846
+1.3.35. default_reason (string)
847
+
848
+   Default SIP reason phrase sent by t_reply() if it cannot retrieve its
849
+   parameters (e.g. inexistent avp).
850
+
851
+   Default value is "Server Internal Error".
852
+
853
+   Can be set at runtime, e.g.:
854
+        $ sercmd cfg.set_now_string tm default_reason "Unknown error"
855
+
856
+   Example 35. Set default_reason parameter
857
+...
858
+modparam("tm", "default_reason", "Unknown reason")
859
+...
860
+
861
+1.3.36. disable_6xx_block (integer)
862
+
863
+   If set tm will treat all the 6xx replies like normal replies (warning:
864
+   this would be non-rfc conformant behaviour).
865
+
866
+   If not set (default) receiving a 6xx will cancel all the running
867
+   parallel branches, will stop dns failover and forking. However serial
868
+   forking using append_branch() in the failure_route will still work.
869
+
870
+   It can be overwritten on a per transaction basis using
871
+   t_set_disable_6xx().
872
+
873
+   Default value is 0 (off, rfc conformant behaviour).
874
+
875
+   Can be set at runtime, e.g.:
876
+        $ sercmd cfg.set_now_int tm disable_6xx_block 0
877
+
878
+   See also: t_set_disable_6xx().
879
+
880
+   Example 36. Set disable_6xx_block parameter
881
+...
882
+modparam("tm", "disable_6xx_block", 1)
883
+...
884
+
778 885
 1.4. Functions
779 886
 
780 887
    Revision History
... ...
@@ -800,7 +915,7 @@ t_relay_to_sctp(ip, port) t_relay_to_sctp()
800 800
    derived from the message uri (using sip sepcific DNS lookups), but with
801 801
    the protocol corresponding to the function name.
802 802
 
803
-   Example 31. t_relay_to_udp usage
803
+   Example 37. t_relay_to_udp usage
804 804
 ...
805 805
 if (src_ip==10.0.0.0/8)
806 806
         t_relay_to_udp("1.2.3.4", "5060"); # sent to 1.2.3.4:5060 over udp
... ...
@@ -827,7 +942,7 @@ else
827 827
    Returns a negative value on failure--you may still want to send a
828 828
    negative reply upstream statelessly not to leave upstream UAC in lurch.
829 829
 
830
-   Example 32. t_relay usage
830
+   Example 38. t_relay usage
831 831
 ...
832 832
 if (!t_relay())
833 833
 {
... ...
@@ -856,7 +971,7 @@ if (!t_relay())
856 856
    Meaning of the parameters is as follows:
857 857
      * failure_route - Failure route block to be called.
858 858
 
859
-   Example 33. t_on_failure usage
859
+   Example 39. t_on_failure usage
860 860
 ...
861 861
 route {
862 862
     t_on_failure("1");
... ...
@@ -882,7 +997,7 @@ failure_route[1] {
882 882
    Meaning of the parameters is as follows:
883 883
      * onreply_route - Onreply route block to be called.
884 884
 
885
-   Example 34. t_on_reply usage
885
+   Example 40. t_on_reply usage
886 886
 ...
887 887
 loadmodule "/usr/local/lib/ser/modules/nathelper.so"
888 888
 ...
... ...
@@ -914,7 +1029,7 @@ es');
914 914
    Meaning of the parameters is as follows:
915 915
      * branch_route - branch route block to be called.
916 916
 
917
-   Example 35. t_on_branch usage
917
+   Example 41. t_on_branch usage
918 918
 ...
919 919
 route {
920 920
         t_on_branch("1");
... ...
@@ -932,7 +1047,7 @@ branch_route[1] {
932 932
    Similarly to t_fork_to, it extends destination set by a new entry. The
933 933
    difference is that current URI is taken as new entry.
934 934
 
935
-   Example 36. append_branch usage
935
+   Example 42. append_branch usage
936 936
 ...
937 937
 set_user("john");
938 938
 t_fork();
... ...
@@ -947,7 +1062,7 @@ t_relay();
947 947
    the only way a script can add a new transaction in an atomic way.
948 948
    Typically, it is used to deploy a UAS.
949 949
 
950
-   Example 37. t_newtran usage
950
+   Example 43. t_newtran usage
951 951
 ...
952 952
 if (t_newtran()) {
953 953
     log("UAS logic");
... ...
@@ -966,7 +1081,7 @@ if (t_newtran()) {
966 966
      * code - Reply code number.
967 967
      * reason_phrase - Reason string.
968 968
 
969
-   Example 38. t_reply usage
969
+   Example 44. t_reply usage
970 970
 ...
971 971
 t_reply("404", "Not found");
972 972
 ...
... ...
@@ -979,7 +1094,7 @@ t_reply("404", "Not found");
979 979
    none was found. However this is safely (atomically) done using
980 980
    t_newtran.
981 981
 
982
-   Example 39. t_lookup_request usage
982
+   Example 45. t_lookup_request usage
983 983
 ...
984 984
 if (t_lookup_request()) {
985 985
     ...
... ...
@@ -990,7 +1105,7 @@ if (t_lookup_request()) {
990 990
 
991 991
    Retransmits a reply sent previously by UAS transaction.
992 992
 
993
-   Example 40. t_retransmit_reply usage
993
+   Example 46. t_retransmit_reply usage
994 994
 ...
995 995
 t_retransmit_reply();
996 996
 ...
... ...
@@ -1000,7 +1115,7 @@ t_retransmit_reply();
1000 1000
    Remove transaction from memory (it will be first put on a wait timer to
1001 1001
    absorb delayed messages).
1002 1002
 
1003
-   Example 41. t_release usage
1003
+   Example 47. t_release usage
1004 1004
 ...
1005 1005
 t_release();
1006 1006
 ...
... ...
@@ -1015,7 +1130,7 @@ t_forward_nonack_tls(ip, port) t_forward_nonack_sctp(ip, port)
1015 1015
      * ip - IP address where the message should be sent.
1016 1016
      * port - Port number.
1017 1017
 
1018
-   Example 42. t_forward_nonack usage
1018
+   Example 48. t_forward_nonack usage
1019 1019
 ...
1020 1020
 t_forward_nonack("1.2.3.4", "5060");
1021 1021
 ...
... ...
@@ -1038,7 +1153,7 @@ t_forward_nonack("1.2.3.4", "5060");
1038 1038
 
1039 1039
    See also: fr_timer, fr_inv_timer, t_reset_fr().
1040 1040
 
1041
-   Example 43. t_set_fr usage
1041
+   Example 49. t_set_fr usage
1042 1042
 ...
1043 1043
 route {
1044 1044
         t_set_fr(10000); # set only fr invite timeout to 10s
... ...
@@ -1065,7 +1180,7 @@ branch_route[1] {
1065 1065
 
1066 1066
    See also: fr_timer, fr_inv_timer, t_set_fr.
1067 1067
 
1068
-   Example 44. t_reset_fr usage
1068
+   Example 50. t_reset_fr usage
1069 1069
 ...
1070 1070
 route {
1071 1071
 ...
... ...
@@ -1091,7 +1206,7 @@ route {
1091 1091
 
1092 1092
    See also: max_inv_lifetime, max_noninv_lifetime, t_reset_max_lifetime.
1093 1093
 
1094
-   Example 45. t_set_max_lifetime usage
1094
+   Example 51. t_set_max_lifetime usage
1095 1095
 ...
1096 1096
 route {
1097 1097
     if (src_ip=1.2.3.4)
... ...
@@ -1113,7 +1228,7 @@ route {
1113 1113
 
1114 1114
    See also: max_inv_lifetime, max_noninv_lifetime, t_set_max_lifetime.
1115 1115
 
1116
-   Example 46. t_reset_max_lifetime usage
1116
+   Example 52. t_reset_max_lifetime usage
1117 1117
 ...
1118 1118
 route {
1119 1119
 ...
... ...
@@ -1151,7 +1266,7 @@ route {
1151 1151
 
1152 1152
    See also: retr_timer1, retr_timer2, t_reset_retr().
1153 1153
 
1154
-   Example 47. t_set_retr usage
1154
+   Example 53. t_set_retr usage
1155 1155
 ...
1156 1156
 route {
1157 1157
         t_set_retr(250, 0); # set only T1 to 250 ms
... ...
@@ -1178,7 +1293,7 @@ branch_route[1] {
1178 1178
 
1179 1179
    See also: retr_timer1, retr_timer2, t_set_retr.
1180 1180
 
1181
-   Example 48. t_reset_retr usage
1181
+   Example 54. t_reset_retr usage
1182 1182
 ...
1183 1183
 route {
1184 1184
 ...
... ...
@@ -1194,7 +1309,7 @@ route {
1194 1194
 
1195 1195
    See also: auto_inv_100.
1196 1196
 
1197
-   Example 49. t_set_auto_inv_100 usage
1197
+   Example 55. t_set_auto_inv_100 usage
1198 1198
 ...
1199 1199
 route {
1200 1200
 ...
... ...
@@ -1208,7 +1323,7 @@ route {
1208 1208
    Returns true if the failure route is executed for a branch that did
1209 1209
    timeout. It can be used only from the failure_route.
1210 1210
 
1211
-   Example 50. t_branch_timeout usage
1211
+   Example 56. t_branch_timeout usage
1212 1212
 ...
1213 1213
 failure_route[0]{
1214 1214
         if (t_branch_timeout()){
... ...
@@ -1223,7 +1338,7 @@ failure_route[0]{
1223 1223
    receive at least one reply in the past (the "current" reply is not
1224 1224
    taken into account). It can be used only from the failure_route.
1225 1225
 
1226
-   Example 51. t_branch_replied usage
1226
+   Example 57. t_branch_replied usage
1227 1227
 ...
1228 1228
 failure_route[0]{
1229 1229
         if (t_branch_timeout()){
... ...
@@ -1240,7 +1355,7 @@ failure_route[0]{
1240 1240
    Returns true if at least one of the current transactions branches did
1241 1241
    timeout.
1242 1242
 
1243
-   Example 52. t_any_timeout usage
1243
+   Example 58. t_any_timeout usage
1244 1244
 ...
1245 1245
 failure_route[0]{
1246 1246
         if (!t_branch_timeout()){
... ...
@@ -1257,7 +1372,7 @@ failure_route[0]{
1257 1257
    receive some reply in the past. If called from a failure or onreply
1258 1258
    route, the "current" reply is not taken into account.
1259 1259
 
1260
-   Example 53. t_any_replied usage
1260
+   Example 59. t_any_replied usage
1261 1261
 ...
1262 1262
 onreply_route[0]{
1263 1263
         if (!t_any_replied()){
... ...
@@ -1271,7 +1386,7 @@ onreply_route[0]{
1271 1271
    Returns true if "code" is the final reply received (or locally
1272 1272
    generated) in at least one of the current transactions branches.
1273 1273
 
1274
-   Example 54. t_grep_status usage
1274
+   Example 60. t_grep_status usage
1275 1275
 ...
1276 1276
 onreply_route[0]{
1277 1277
         if (t_grep_status("486")){
... ...
@@ -1284,7 +1399,7 @@ onreply_route[0]{
1284 1284
 
1285 1285
    Returns true if the current transaction was canceled.
1286 1286
 
1287
-   Example 55. t_is_canceled usage
1287
+   Example 61. t_is_canceled usage
1288 1288
 ...
1289 1289
 failure_route[0]{
1290 1290
         if (t_is_canceled()){
... ...
@@ -1298,7 +1413,7 @@ failure_route[0]{
1298 1298
    Returns true if the current transaction has already been expired, i.e.
1299 1299
    the max_inv_lifetime/max_noninv_lifetime interval has already elapsed.
1300 1300
 
1301
-   Example 56. t_is_expired usage
1301
+   Example 62. t_is_expired usage
1302 1302
 ...
1303 1303
 failure_route[0]{
1304 1304
         if (t_is_expired()){
... ...
@@ -1319,7 +1434,7 @@ failure_route[0]{
1319 1319
    CANCELs were successfully sent to the pending branches, true if the
1320 1320
    INVITE was not found, and false in case of any error.
1321 1321
 
1322
-   Example 57. t_relay_cancel usage
1322
+   Example 63. t_relay_cancel usage
1323 1323
 if (method == CANCEL) {
1324 1324
         if (!t_relay_cancel()) {  # implicit drop if relaying was successful,
1325 1325
                                   # nothing to do
... ...
@@ -1346,7 +1461,7 @@ if (method == CANCEL) {
1346 1346
    overwritten with the flags of the INVITE. isflagset() can be used to
1347 1347
    check the flags of the previously forwarded INVITE in this case.
1348 1348
 
1349
-   Example 58. t_lookup_cancel usage
1349
+   Example 64. t_lookup_cancel usage
1350 1350
 if (method == CANCEL) {
1351 1351
         if (t_lookup_cancel()) {
1352 1352
                 log("INVITE transaction exists");
... ...
@@ -1371,7 +1486,7 @@ if (method == CANCEL) {
1371 1371
    branch is added to the transaction, or it is explicitly replied in the
1372 1372
    script!
1373 1373
 
1374
-   Example 59. t_drop_replies() usage
1374
+   Example 65. t_drop_replies() usage
1375 1375
 ...
1376 1376
 failure_route[0]{
1377 1377
         if (t_check_status("5[0-9][0-9]")){
... ...
@@ -1402,7 +1517,7 @@ failure_route[0]{
1402 1402
    The transaction must be created by t_newtran() before calling
1403 1403
    t_save_lumps().
1404 1404
 
1405
-   Example 60. t_save_lumps() usage
1405
+   Example 66. t_save_lumps() usage
1406 1406
 route {
1407 1407
         ...
1408 1408
         t_newtran();
... ...
@@ -1438,7 +1553,7 @@ failure_route[1] {
1438 1438
 
1439 1439
    This function can be used from REQUEST_ROUTE.
1440 1440
 
1441
-   Example 61. t_load_contacts usage
1441
+   Example 67. t_load_contacts usage
1442 1442
 ...
1443 1443
 if (!t_load_contacts()) {
1444 1444
         sl_send_reply("500", "Server Internal Error - Cannot load contacts");
... ...
@@ -1463,7 +1578,7 @@ if (!t_load_contacts()) {
1463 1463
 
1464 1464
    This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.
1465 1465
 
1466
-   Example 62. t_next_contacts usage
1466
+   Example 68. t_next_contacts usage
1467 1467
 ...
1468 1468
 # First call after t_load_contacts() when transaction does not exist yet
1469 1469
 # and contacts should be available
... ...
@@ -1527,11 +1642,45 @@ Note
1527 1527
 
1528 1528
    See also: t_lookup_request(), t_lookup_cancel().
1529 1529
 
1530
-   Example 63. t_check_trans usage
1530
+   Example 69. t_check_trans usage
1531 1531
 if ( method == "CANCEL" && !t_check_trans())
1532 1532
         sl_reply("403", "cancel out of the blue forbidden");
1533 1533
 # note: in this example t_check_trans() can be replaced by t_lookup_cancel()
1534 1534
 
1535
+1.4.34.  t_set_disable_6xx(0|1)
1536
+
1537
+   Turn off/on 6xx replies special rfc conformant handling on a per
1538
+   transaction basis. If turned off (t_set_disable_6xx("1")) 6XXs will be
1539
+   treated like normal replies.
1540
+
1541
+   It overrides the disable_6xx_block value for the current transaction.
1542
+
1543
+   See also: disable_6xx_block.
1544
+
1545
+   Example 70. t_set_disable_6xx usage
1546
+...
1547
+route {
1548
+...
1549
+        if (src_ip==1.2.3.4) # bad user agent that sends 603
1550
+                t_set_disable_6xx(1); # turn off 6xx special handling
1551
+...
1552
+}
1553
+
1554
+1.4.35.  t_set_disable_failover(0|1)
1555
+
1556
+   Turn off/on dns failover on a per transaction basis.
1557
+
1558
+   See also: use_dns_failover.
1559
+
1560
+   Example 71. t_set_disable_failover usage
1561
+...
1562
+route {
1563
+...
1564
+        if (uri=~"@foo.bar$")
1565
+                t_set_disable_failover(1); # turn off dns failover
1566
+...
1567
+}
1568
+
1535 1569
 1.5. TM Module API
1536 1570
 
1537 1571
    Revision History
... ...
@@ -138,7 +138,7 @@ cfg_def_t	tm_cfg_def[] = {
138 138
 		"restart final response timer on each provisional reply"},
139 139
 	{"pass_provisional_replies",	CFG_VAR_INT | CFG_ATOMIC,	0, 1, 0, 0,
140 140
 		"enable/disable passing of provisional replies "
141
-		"to FIFO applications"},
141
+		"to TMCB_LOCAL_RESPONSE_OUT callbacks"},
142 142
 	{"aggregate_challenges",	CFG_VAR_INT /* not atomic */,	0, 1, 0, 0,
143 143
 		"if the final response is a 401 or a 407, aggregate all the "
144 144
 		"authorization headers (challenges) "
... ...
@@ -1179,4 +1179,59 @@ if ( method == "CANCEL" && !t_check_trans())
1179 1179
 	</example>
1180 1180
 	</section>
1181 1181
 
1182
+	<section id="t_set_disable_6xx">
1183
+	<title>
1184
+		<function>t_set_disable_6xx(0|1)</function>
1185
+	</title>
1186
+	<para>
1187
+		Turn off/on 6xx replies special rfc conformant handling on a per
1188
+		transaction basis. If turned off
1189
+		(<function>t_set_disable_6xx("1")</function>) 6XXs will be treated
1190
+		like normal replies.
1191
+	</para>
1192
+	<para>
1193
+		It overrides the <varname>disable_6xx_block</varname> value for
1194
+		the current transaction.
1195
+	</para>
1196
+	<para>
1197
+		See also: <varname>disable_6xx_block</varname>.
1198
+	</para>
1199
+	<example>
1200
+		<title><function>t_set_disable_6xx</function> usage</title>
1201
+		<programlisting>
1202
+...
1203
+route {
1204
+...
1205
+	if (src_ip==1.2.3.4) # bad user agent that sends 603
1206
+		t_set_disable_6xx(1); # turn off 6xx special handling
1207
+...
1208
+}
1209
+		</programlisting>
1210
+	</example>
1211
+	</section>
1212
+
1213
+	<section id="t_set_disable_failover">
1214
+	<title>
1215
+		<function>t_set_disable_failover(0|1)</function>
1216
+	</title>
1217
+	<para>
1218
+		Turn off/on dns failover on a per transaction basis.
1219
+	</para>
1220
+	<para>
1221
+		See also: <varname>use_dns_failover</varname>.
1222
+	</para>
1223
+	<example>
1224
+		<title><function>t_set_disable_failover</function> usage</title>
1225
+		<programlisting>
1226
+...
1227
+route {
1228
+...
1229
+	if (uri=~"@foo.bar$")
1230
+		t_set_disable_failover(1); # turn off dns failover
1231
+...
1232
+}
1233
+		</programlisting>
1234
+	</example>
1235
+	</section>
1236
+
1182 1237
 </section>
... ...
@@ -904,4 +904,180 @@ modparam("tm", "unmatched_cancel", "2")
904 904
 			</programlisting>
905 905
 		</example>
906 906
 	</section>
907
+
908
+	<section id="ruri_matching">
909
+	<title><varname>ruri_matching</varname> (integer)</title>
910
+	<para>
911
+		If set it will also try to match the request uri  when doing
912
+		pre-3261 transaction matching (the via branch parameter does
913
+		not contain the 3261 cookie).
914
+	</para>
915
+	<para>
916
+		The only reason to have it not set is for interoperability with old,
917
+		broken implementations.
918
+	</para>
919
+	<para>
920
+		Default value is 1 (on).
921
+	</para>
922
+	<para>
923
+		Can be set at runtime, e.g.:
924
+		<programlisting>
925
+	$ sercmd cfg.set_now_int tm ruri_matching 0
926
+		</programlisting>
927
+	</para>
928
+	<example>
929
+		<title>Set <varname>ruri_matching</varname> parameter</title>
930
+		<programlisting>
931
+...
932
+modparam("tm", "ruri_matching", 1)
933
+...
934
+	    </programlisting>
935
+	</example>
936
+	</section>
937
+
938
+	<section id="via1_matching">
939
+	<title><varname>via1_matching</varname> (integer)</title>
940
+	<para>
941
+		If set it will also try to match the topmost via when doing
942
+		pre-3261 transaction matching (the via branch parameter does
943
+		not contain the 3261 cookie).
944
+	</para>
945
+	<para>
946
+		The only reason to have it not set is for interoperability with old,
947
+		broken implementations.
948
+	</para>
949
+	<para>
950
+		Default value is 1 (on).
951
+	</para>
952
+	<para>
953
+		Can be set at runtime, e.g.:
954
+		<programlisting>
955
+	$ sercmd cfg.set_now_int tm via1_matching 0
956
+		</programlisting>
957
+	</para>
958
+	<example>
959
+		<title>Set <varname>via1_matching</varname> parameter</title>
960
+		<programlisting>
961
+...
962
+modparam("tm", "via1_matching", 1)
963
+...
964
+	    </programlisting>
965
+	</example>
966
+	</section>
967
+
968
+	<section id="pass_provisional_replies">
969
+	<title><varname>pass_provisional_replies</varname> (integer)</title>
970
+	<para>
971
+		If set, TMCB_LOCAL_REPONSE_OUT tm registered callbacks will be called
972
+		also for provisional replies.
973
+	</para>
974
+	<para>
975
+		Default value is 0 (off).
976
+	</para>
977
+	<para>
978
+		Can be set at runtime, e.g.:
979
+		<programlisting>
980
+	$ sercmd cfg.set_now_int tm pass_provisional_replies 1
981
+		</programlisting>
982
+	</para>
983
+	<example>
984
+		<title>Set <varname>pass_provisional_replies</varname> parameter
985
+		</title>
986
+		<programlisting>
987
+...
988
+modparam("tm", "pass_provisional_replies", 1)
989
+...
990
+	    </programlisting>
991
+	</example>
992
+	</section>
993
+
994
+	<section id="default_code">
995
+	<title><varname>default_code</varname> (integer)</title>
996
+	<para>
997
+		Default response code sent by <function>t_reply()</function> if it
998
+		cannot retrieve its parameters (e.g. inexistent avp).
999
+		Valid values are between 400 and 699.
1000
+	</para>
1001
+	<para>
1002
+		Default value is 500.
1003
+	</para>
1004
+	<para>
1005
+		Can be set at runtime, e.g.:
1006
+		<programlisting>
1007
+	$ sercmd cfg.set_now_int tm default_code 505
1008
+		</programlisting>
1009
+	</para>
1010
+	<example>
1011
+		<title>Set <varname>default_code</varname> parameter </title>
1012
+		<programlisting>
1013
+...
1014
+modparam("tm", "default_code", 501)
1015
+...
1016
+	    </programlisting>
1017
+	</example>
1018
+	</section>
1019
+
1020
+	<section id="default_reason">
1021
+	<title><varname>default_reason</varname> (string)</title>
1022
+	<para>
1023
+		Default SIP reason phrase sent by <function>t_reply()</function> if it
1024
+		cannot retrieve its parameters (e.g. inexistent avp).
1025
+	</para>
1026
+	<para>
1027
+		Default value is "Server Internal Error".
1028
+	</para>
1029
+	<para>
1030
+		Can be set at runtime, e.g.:
1031
+		<programlisting>
1032
+	$ sercmd cfg.set_now_string tm default_reason "Unknown error"
1033
+		</programlisting>
1034
+	</para>
1035
+	<example>
1036
+		<title>Set <varname>default_reason</varname> parameter </title>
1037
+		<programlisting>
1038
+...
1039
+modparam("tm", "default_reason", "Unknown reason")
1040
+...
1041
+	    </programlisting>
1042
+	</example>
1043
+	</section>
1044
+
1045
+	<section id="disable_6xx_block">
1046
+	<title><varname>disable_6xx_block</varname> (integer)</title>
1047
+	<para>
1048
+		If set tm will treat all the 6xx replies like normal replies 
1049
+		(warning: this would be non-rfc conformant behaviour).
1050
+	</para>
1051
+	<para>
1052
+		If not set (default) receiving a 6xx will cancel all the running
1053
+		parallel branches, will stop dns failover and forking. However
1054
+		serial forking using <function>append_branch()</function> in the
1055
+		<function>failure_route</function> will still work.
1056
+	</para>
1057
+	<para>
1058
+		It can be overwritten on a per transaction basis using
1059
+		<function>t_set_disable_6xx()</function>.
1060
+	</para>
1061
+	<para>
1062
+		Default value is 0 (off, rfc conformant behaviour).
1063
+	</para>
1064
+	<para>
1065
+		Can be set at runtime, e.g.:
1066
+		<programlisting>
1067
+	$ sercmd cfg.set_now_int tm disable_6xx_block 0
1068
+		</programlisting>
1069
+	</para>
1070
+	<para>
1071
+		See also: <function>t_set_disable_6xx()</function>.
1072
+	</para>
1073
+	<example>
1074
+		<title>Set <varname>disable_6xx_block</varname> parameter</title>
1075
+		<programlisting>
1076
+...
1077
+modparam("tm", "disable_6xx_block", 1)
1078
+...
1079
+	    </programlisting>
1080
+	</example>
1081
+	</section>
1082
+
907 1083
 </section>