Browse code

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

Kamailio Dev authored on 26/05/2021 13:46:17
Showing 1 changed files
... ...
@@ -79,28 +79,29 @@ Ovidiu Sas
79 79
               4.38. remove_hf_re_pv(re)
80 80
               4.39. remove_hf_exp(expmatch, expskip)
81 81
               4.40. remove_hf_exp_pv(expmatch, expskip)
82
-              4.41. has_body(), has_body(mime)
83
-              4.42. is_audio_on_hold()
84
-              4.43. is_privacy(privacy_type)
85
-              4.44. in_list(subject, list, separator)
86
-              4.45. in_list_prefix(subject, list, separator)
87
-              4.46. cmp_str(str1, str2)
88
-              4.47. cmp_istr(str1, str2)
89
-              4.48. starts_with(str1, str2)
90
-              4.49. ends_with(str1, str2)
91
-              4.50. str_find(str1, str2)
92
-              4.51. str_ifind(str1, str2)
93
-              4.52. set_body_multipart([txt,content_type][,boundary])
94
-              4.53. append_body_part(txt,content_type[,
82
+              4.41. remove_hf_idx(hname, idx)
83
+              4.42. has_body(), has_body(mime)
84
+              4.43. is_audio_on_hold()
85
+              4.44. is_privacy(privacy_type)
86
+              4.45. in_list(subject, list, separator)
87
+              4.46. in_list_prefix(subject, list, separator)
88
+              4.47. cmp_str(str1, str2)
89
+              4.48. cmp_istr(str1, str2)
90
+              4.49. starts_with(str1, str2)
91
+              4.50. ends_with(str1, str2)
92
+              4.51. str_find(str1, str2)
93
+              4.52. str_ifind(str1, str2)
94
+              4.53. set_body_multipart([txt,content_type][,boundary])
95
+              4.54. append_body_part(txt,content_type[,
95 96
                       content_disposition])
96 97
 
97
-              4.54. append_body_part_hex(txt,content_type[,
98
+              4.55. append_body_part_hex(txt,content_type[,
98 99
                       content_disposition])
99 100
 
100
-              4.55. get_body_part(content_type, opv)
101
-              4.56. get_body_part_raw(content_type, opv)
102
-              4.57. remove_body_part(content_type)
103
-              4.58. regex_substring(itext, regexp, mindex, mcount, dpv)
101
+              4.56. get_body_part(content_type, opv)
102
+              4.57. get_body_part_raw(content_type, opv)
103
+              4.58. remove_body_part(content_type)
104
+              4.59. regex_substring(itext, regexp, mindex, mcount, dpv)
104 105
 
105 106
    2. Developer Guide
106 107
 
... ...
@@ -150,25 +151,26 @@ Ovidiu Sas
150 151
    1.38. remove_hf_re_pv usage
151 152
    1.39. remove_hf_exp usage
152 153
    1.40. remove_hf_exp_pv usage
153
-   1.41. has_body usage
154
-   1.42. is_audio_on_hold usage
155
-   1.43. is_privacy usage
156
-   1.44. in_list() usage
154
+   1.41. remove_hf_idx usage
155
+   1.42. has_body usage
156
+   1.43. is_audio_on_hold usage
157
+   1.44. is_privacy usage
157 158
    1.45. in_list() usage
158
-   1.46. cmp_str usage
159
+   1.46. in_list() usage
159 160
    1.47. cmp_str usage
160
-   1.48. starts_with usage
161
-   1.49. ends_with usage
162
-   1.50. str_find usage
163
-   1.51. str_ifind usage
164
-   1.52. set_body_multipart usage
165
-   1.53. append_body_part usage
166
-   1.54. append_body_part with headers
167
-   1.55. append_body_part_hex usage
168
-   1.56. get_body_part usage
169
-   1.57. get_body_part_raw usage
170
-   1.58. remove_body_part usage
171
-   1.59. _regex_substring usage
161
+   1.48. cmp_str usage
162
+   1.49. starts_with usage
163
+   1.50. ends_with usage
164
+   1.51. str_find usage
165
+   1.52. str_ifind usage
166
+   1.53. set_body_multipart usage
167
+   1.54. append_body_part usage
168
+   1.55. append_body_part with headers
169
+   1.56. append_body_part_hex usage
170
+   1.57. get_body_part usage
171
+   1.58. get_body_part_raw usage
172
+   1.59. remove_body_part usage
173
+   1.60. _regex_substring usage
172 174
 
173 175
 Chapter 1. Admin Guide
174 176
 
... ...
@@ -223,26 +225,27 @@ Chapter 1. Admin Guide
223 225
         4.38. remove_hf_re_pv(re)
224 226
         4.39. remove_hf_exp(expmatch, expskip)
225 227
         4.40. remove_hf_exp_pv(expmatch, expskip)
226
-        4.41. has_body(), has_body(mime)
227
-        4.42. is_audio_on_hold()
228
-        4.43. is_privacy(privacy_type)
229
-        4.44. in_list(subject, list, separator)
230
-        4.45. in_list_prefix(subject, list, separator)
231
-        4.46. cmp_str(str1, str2)
232
-        4.47. cmp_istr(str1, str2)
233
-        4.48. starts_with(str1, str2)
234
-        4.49. ends_with(str1, str2)
235
-        4.50. str_find(str1, str2)
236
-        4.51. str_ifind(str1, str2)
237
-        4.52. set_body_multipart([txt,content_type][,boundary])
238
-        4.53. append_body_part(txt,content_type[, content_disposition])
239
-        4.54. append_body_part_hex(txt,content_type[,
228
+        4.41. remove_hf_idx(hname, idx)
229
+        4.42. has_body(), has_body(mime)
230
+        4.43. is_audio_on_hold()
231
+        4.44. is_privacy(privacy_type)
232
+        4.45. in_list(subject, list, separator)
233
+        4.46. in_list_prefix(subject, list, separator)
234
+        4.47. cmp_str(str1, str2)
235
+        4.48. cmp_istr(str1, str2)
236
+        4.49. starts_with(str1, str2)
237
+        4.50. ends_with(str1, str2)
238
+        4.51. str_find(str1, str2)
239
+        4.52. str_ifind(str1, str2)
240
+        4.53. set_body_multipart([txt,content_type][,boundary])
241
+        4.54. append_body_part(txt,content_type[, content_disposition])
242
+        4.55. append_body_part_hex(txt,content_type[,
240 243
                 content_disposition])
241 244
 
242
-        4.55. get_body_part(content_type, opv)
243
-        4.56. get_body_part_raw(content_type, opv)
244
-        4.57. remove_body_part(content_type)
245
-        4.58. regex_substring(itext, regexp, mindex, mcount, dpv)
245
+        4.56. get_body_part(content_type, opv)
246
+        4.57. get_body_part_raw(content_type, opv)
247
+        4.58. remove_body_part(content_type)
248
+        4.59. regex_substring(itext, regexp, mindex, mcount, dpv)
246 249
 
247 250
 1. Overview
248 251
 
... ...
@@ -321,24 +324,25 @@ From: medabeda
321 324
    4.38. remove_hf_re_pv(re)
322 325
    4.39. remove_hf_exp(expmatch, expskip)
323 326
    4.40. remove_hf_exp_pv(expmatch, expskip)
324
-   4.41. has_body(), has_body(mime)
325
-   4.42. is_audio_on_hold()
326
-   4.43. is_privacy(privacy_type)
327
-   4.44. in_list(subject, list, separator)
328
-   4.45. in_list_prefix(subject, list, separator)
329
-   4.46. cmp_str(str1, str2)
330
-   4.47. cmp_istr(str1, str2)
331
-   4.48. starts_with(str1, str2)
332
-   4.49. ends_with(str1, str2)
333
-   4.50. str_find(str1, str2)
334
-   4.51. str_ifind(str1, str2)
335
-   4.52. set_body_multipart([txt,content_type][,boundary])
336
-   4.53. append_body_part(txt,content_type[, content_disposition])
337
-   4.54. append_body_part_hex(txt,content_type[, content_disposition])
338
-   4.55. get_body_part(content_type, opv)
339
-   4.56. get_body_part_raw(content_type, opv)
340
-   4.57. remove_body_part(content_type)
341
-   4.58. regex_substring(itext, regexp, mindex, mcount, dpv)
327
+   4.41. remove_hf_idx(hname, idx)
328
+   4.42. has_body(), has_body(mime)
329
+   4.43. is_audio_on_hold()
330
+   4.44. is_privacy(privacy_type)
331
+   4.45. in_list(subject, list, separator)
332
+   4.46. in_list_prefix(subject, list, separator)
333
+   4.47. cmp_str(str1, str2)
334
+   4.48. cmp_istr(str1, str2)
335
+   4.49. starts_with(str1, str2)
336
+   4.50. ends_with(str1, str2)
337
+   4.51. str_find(str1, str2)
338
+   4.52. str_ifind(str1, str2)
339
+   4.53. set_body_multipart([txt,content_type][,boundary])
340
+   4.54. append_body_part(txt,content_type[, content_disposition])
341
+   4.55. append_body_part_hex(txt,content_type[, content_disposition])
342
+   4.56. get_body_part(content_type, opv)
343
+   4.57. get_body_part_raw(content_type, opv)
344
+   4.58. remove_body_part(content_type)
345
+   4.59. regex_substring(itext, regexp, mindex, mcount, dpv)
342 346
 
343 347
 4.1.  search(re)
344 348
 
... ...
@@ -1105,7 +1109,29 @@ if(remove_hf_exp_pv("^$var(match)", "^$var(keep)"))
1105 1109
 }
1106 1110
 ...
1107 1111
 
1108
-4.41.  has_body(), has_body(mime)
1112
+4.41.  remove_hf_idx(hname, idx)
1113
+
1114
+   Remove from message the headers matching by name 'hname' with the index
1115
+   'idx'.
1116
+
1117
+   Returns true if the header is removed.
1118
+
1119
+   Meaning of the parameters is as follows:
1120
+     * hname - header name.
1121
+     * idx - index of the header, starting from 0 with first header;
1122
+       negative values count from the end of the headers, -1 being the
1123
+       last header matching the name.
1124
+
1125
+   The parameters can be config variables.
1126
+
1127
+   This function can be used from ANY_ROUTE.
1128
+
1129
+   Example 1.41. remove_hf_idx usage
1130
+...
1131
+remove_hf_idx("X-My-Header", "-1");
1132
+...
1133
+
1134
+4.42.  has_body(), has_body(mime)
1109 1135
 
1110 1136
    The function returns true if the SIP message has a body attached. The
1111 1137
    checked includes also the “Content-Length” header presence and value.
... ...
@@ -1120,7 +1146,7 @@ if(remove_hf_exp_pv("^$var(match)", "^$var(keep)"))
1120 1146
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1121 1147
    FAILURE_ROUTE and BRANCH_ROUTE.
1122 1148
 
1123
-   Example 1.41. has_body usage
1149
+   Example 1.42. has_body usage
1124 1150
 ...
1125 1151
 if(has_body("application/sdp"))
1126 1152
 {
... ...
@@ -1128,7 +1154,7 @@ if(has_body("application/sdp"))
1128 1154
 }
1129 1155
 ...
1130 1156
 
1131
-4.42.  is_audio_on_hold()
1157
+4.43.  is_audio_on_hold()
1132 1158
 
1133 1159
    The function returns true if the SIP message has a body attached and at
1134 1160
    least one audio stream in on hold. The return code of the function
... ...
@@ -1139,7 +1165,7 @@ if(has_body("application/sdp"))
1139 1165
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1140 1166
    FAILURE_ROUTE and BRANCH_ROUTE.
1141 1167
 
1142
-   Example 1.42. is_audio_on_hold usage
1168
+   Example 1.43. is_audio_on_hold usage
1143 1169
 ...
1144 1170
 if(is_audio_on_hold())
1145 1171
 {
... ...
@@ -1155,7 +1181,7 @@ if(is_audio_on_hold())
1155 1181
 }
1156 1182
 ...
1157 1183
 
1158
-4.43.  is_privacy(privacy_type)
1184
+4.44.  is_privacy(privacy_type)
1159 1185
 
1160 1186
    The function returns true if the SIP message has a Privacy header field
1161 1187
    that includes the given privacy_type among its privacy values. See
... ...
@@ -1165,7 +1191,7 @@ if(is_audio_on_hold())
1165 1191
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1166 1192
    FAILURE_ROUTE and BRANCH_ROUTE.
1167 1193
 
1168
-   Example 1.43. is_privacy usage
1194
+   Example 1.44. is_privacy usage
1169 1195
 ...
1170 1196
 if(is_privacy("id"))
1171 1197
 {
... ...
@@ -1173,7 +1199,7 @@ if(is_privacy("id"))
1173 1199
 }
1174 1200
 ...
1175 1201
 
1176
-4.44.  in_list(subject, list, separator)
1202
+4.45.  in_list(subject, list, separator)
1177 1203
 
1178 1204
    Function checks if subject string is found in list string where list
1179 1205
    items are separated by separator string. Subject and list strings may
... ...
@@ -1182,7 +1208,7 @@ if(is_privacy("id"))
1182 1208
 
1183 1209
    Function can be used from all kinds of routes.
1184 1210
 
1185
-   Example 1.44. in_list() usage
1211
+   Example 1.45. in_list() usage
1186 1212
 ...
1187 1213
 $var(subject) = "fi";
1188 1214
 $var(list) = "dk,fi,no,se";
... ...
@@ -1191,7 +1217,7 @@ if (in_list("$var(subject)", "$var(list)", ",")) {
1191 1217
 }
1192 1218
 ...
1193 1219
 
1194
-4.45.  in_list_prefix(subject, list, separator)
1220
+4.46.  in_list_prefix(subject, list, separator)
1195 1221
 
1196 1222
    Function checks if any element in list string is a prefix for subject
1197 1223
    string where list items are separated by separator string. Subject and
... ...
@@ -1200,7 +1226,7 @@ if (in_list("$var(subject)", "$var(list)", ",")) {
1200 1226
 
1201 1227
    Function can be used from all kinds of routes.
1202 1228
 
1203
-   Example 1.45. in_list() usage
1229
+   Example 1.46. in_list() usage
1204 1230
 ...
1205 1231
 $var(subject) = "final";
1206 1232
 $var(list) = "dk,fi,no,se";
... ...
@@ -1209,7 +1235,7 @@ if (in_list_prefix("$var(subject)", "$var(list)", ",")) {
1209 1235
 }
1210 1236
 ...
1211 1237
 
1212
-4.46.  cmp_str(str1, str2)
1238
+4.47.  cmp_str(str1, str2)
1213 1239
 
1214 1240
    The function returns true if the two parameters matches as string case
1215 1241
    sensitive comparison.
... ...
@@ -1217,7 +1243,7 @@ if (in_list_prefix("$var(subject)", "$var(list)", ",")) {
1217 1243
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1218 1244
    FAILURE_ROUTE and BRANCH_ROUTE.
1219 1245
 
1220
-   Example 1.46. cmp_str usage
1246
+   Example 1.47. cmp_str usage
1221 1247
 ...
1222 1248
 if(cmp_str("$rU", "kamailio"))
1223 1249
 {
... ...
@@ -1225,7 +1251,7 @@ if(cmp_str("$rU", "kamailio"))
1225 1251
 }
1226 1252
 ...
1227 1253
 
1228
-4.47.  cmp_istr(str1, str2)
1254
+4.48.  cmp_istr(str1, str2)
1229 1255
 
1230 1256
    The function returns true if the two parameters matches as string case
1231 1257
    insensitive comparison.
... ...
@@ -1233,7 +1259,7 @@ if(cmp_str("$rU", "kamailio"))
1233 1259
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1234 1260
    FAILURE_ROUTE and BRANCH_ROUTE.
1235 1261
 
1236
-   Example 1.47. cmp_str usage
1262
+   Example 1.48. cmp_str usage
1237 1263
 ...
1238 1264
 if(cmp_istr("$rU@you", "kamailio@YOU"))
1239 1265
 {
... ...
@@ -1241,7 +1267,7 @@ if(cmp_istr("$rU@you", "kamailio@YOU"))
1241 1267
 }
1242 1268
 ...
1243 1269
 
1244
-4.48.  starts_with(str1, str2)
1270
+4.49.  starts_with(str1, str2)
1245 1271
 
1246 1272
    The function returns true if the first string starts with the second
1247 1273
    string.
... ...
@@ -1249,7 +1275,7 @@ if(cmp_istr("$rU@you", "kamailio@YOU"))
1249 1275
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1250 1276
    FAILURE_ROUTE and BRANCH_ROUTE.
1251 1277
 
1252
-   Example 1.48. starts_with usage
1278
+   Example 1.49. starts_with usage
1253 1279
 ...
1254 1280
 if (starts_with("$rU", "+358"))
1255 1281
 {
... ...
@@ -1257,7 +1283,7 @@ if (starts_with("$rU", "+358"))
1257 1283
 }
1258 1284
 ...
1259 1285
 
1260
-4.49.  ends_with(str1, str2)
1286
+4.50.  ends_with(str1, str2)
1261 1287
 
1262 1288
    The function returns true if the first string ends with the second
1263 1289
    string. The parameters can contain variables.
... ...
@@ -1265,7 +1291,7 @@ if (starts_with("$rU", "+358"))
1265 1291
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
1266 1292
    FAILURE_ROUTE and BRANCH_ROUTE.
1267 1293
 
1268
-   Example 1.49. ends_with usage
1294
+   Example 1.50. ends_with usage
1269 1295
 ...
1270 1296
 if (ends_with("$rU", "8800"))
1271 1297
 {
... ...
@@ -1273,35 +1299,35 @@ if (ends_with("$rU", "8800"))
1273 1299
 }
1274 1300
 ...
1275 1301
 
1276
-4.50.  str_find(str1, str2)
1302
+4.51.  str_find(str1, str2)
1277 1303
 
1278 1304
    The function returns true (greater than 0) if the str2 string is found
1279 1305
    in str1, case sensitive comparison.
1280 1306
 
1281 1307
    This function can be used from ANY_ROUTE.
1282 1308
 
1283
-   Example 1.50. str_find usage
1309
+   Example 1.51. str_find usage
1284 1310
 ...
1285 1311
 if (str_find("$rU", "8800")) {
1286 1312
     # do interesting stuff here
1287 1313
 }
1288 1314
 ...
1289 1315
 
1290
-4.51.  str_ifind(str1, str2)
1316
+4.52.  str_ifind(str1, str2)
1291 1317
 
1292 1318
    The function returns true (greater than 0) if the str2 string is found
1293 1319
    in str1, case insensitive comparison.
1294 1320
 
1295 1321
    This function can be used from ANY_ROUTE.
1296 1322
 
1297
-   Example 1.51. str_ifind usage
1323
+   Example 1.52. str_ifind usage
1298 1324
 ...
1299 1325
 if (str_ifind("$rU", "Alice")) {
1300 1326
     # do interesting stuff here
1301 1327
 }
1302 1328
 ...
1303 1329
 
1304
-4.52.  set_body_multipart([txt,content_type][,boundary])
1330
+4.53.  set_body_multipart([txt,content_type][,boundary])
1305 1331
 
1306 1332
    Set multipart body to a SIP message. If called with no parameters, will
1307 1333
    convert present body to multipart.
... ...
@@ -1322,7 +1348,7 @@ if (str_ifind("$rU", "Alice")) {
1322 1348
    Note: it may be required that msg_apply_changes() from textopsx module
1323 1349
    has to be executed if there are other operations over the new body.
1324 1350
 
1325
-   Example 1.52. set_body_multipart usage
1351
+   Example 1.53. set_body_multipart usage
1326 1352
 ...
1327 1353
 set_body_multipart("test", "text/plain", "delimiter");
1328 1354
 msg_apply_changes();
... ...
@@ -1345,7 +1371,7 @@ text
1345 1371
 --delimiter
1346 1372
 ...
1347 1373
 
1348
-4.53.  append_body_part(txt,content_type[, content_disposition])
1374
+4.54.  append_body_part(txt,content_type[, content_disposition])
1349 1375
 
1350 1376
    Append a part on multipart body SIP message. Will use
1351 1377
    "unique-boundary-1" as boundary.
... ...
@@ -1366,7 +1392,7 @@ text
1366 1392
    Note: it may be required that msg_apply_changes() from textopsx module
1367 1393
    has to be executed if there are other operations over the new body.
1368 1394
 
1369
-   Example 1.53. append_body_part usage
1395
+   Example 1.54. append_body_part usage
1370 1396
 ...
1371 1397
 $var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c";
1372 1398
 append_body_part("$var(b)", "application/vnd.cirpack.isdn-ext", "signal;handling
... ...
@@ -1389,7 +1415,7 @@ Content-Disposition: signal;handling=required
1389 1415
    appended after the value of the content-type parameter, separated by
1390 1416
    `\r\n` (at the very end do not add the '\r\n').
1391 1417
 
1392
-   Example 1.54. append_body_part with headers
1418
+   Example 1.55. append_body_part with headers
1393 1419
 ...
1394 1420
 $var(b) = "7e Od 04 55 75 69 20 4d 61 6b 65 43 61 6c 6c";
1395 1421
 append_body_part("$var(b)", "application/vnd.cirpack.isdn-ext\r\nX-Header: xyz",
... ...
@@ -1409,7 +1435,7 @@ Content-Disposition: signal;handling=required
1409 1435
 --unique-boundary-1
1410 1436
 ...
1411 1437
 
1412
-4.54.  append_body_part_hex(txt,content_type[, content_disposition])
1438
+4.55.  append_body_part_hex(txt,content_type[, content_disposition])
1413 1439
 
1414 1440
    Append a part on multipart body SIP message, with the content provided
1415 1441
    in hexa format. Will use "unique-boundary-1" as boundary.
... ...
@@ -1433,7 +1459,7 @@ Content-Disposition: signal;handling=required
1433 1459
    Note: it may be required that msg_apply_changes() from textopsx module
1434 1460
    has to be executed if there are other operations over the new body.
1435 1461
 
1436
-   Example 1.55. append_body_part_hex usage
1462
+   Example 1.56. append_body_part_hex usage
1437 1463
 ...
1438 1464
 $var(b) = "6b 61 6d 61 69 6c 69 6f";
1439 1465
 append_body_part_hex("$var(b)", "application/my-custom-ext");
... ...
@@ -1453,7 +1479,7 @@ kamailio
1453 1479
    If other headers are wanted to be added for a body part, see the docs
1454 1480
    for append_body_part(...) function.
1455 1481
 
1456
-4.55.  get_body_part(content_type, opv)
1482
+4.56.  get_body_part(content_type, opv)
1457 1483
 
1458 1484
    Return the content of a multipart body SIP message, storing it in opv.
1459 1485
 
... ...
@@ -1466,12 +1492,12 @@ kamailio
1466 1492
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
1467 1493
    BRANCH_ROUTE, ONREPLY_ROUTE.
1468 1494
 
1469
-   Example 1.56. get_body_part usage
1495
+   Example 1.57. get_body_part usage
1470 1496
 ...
1471 1497
 get_body_part("application/vnd.cirpack.isdn-ext", "$var(pbody)");
1472 1498
 ...
1473 1499
 
1474
-4.56.  get_body_part_raw(content_type, opv)
1500
+4.57.  get_body_part_raw(content_type, opv)
1475 1501
 
1476 1502
    Return the content of a multipart body SIP message, including headers
1477 1503
    and boundary string, storing it in opv.
... ...
@@ -1485,12 +1511,12 @@ get_body_part("application/vnd.cirpack.isdn-ext", "$var(pbody)");
1485 1511
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
1486 1512
    BRANCH_ROUTE, ONREPLY_ROUTE.
1487 1513
 
1488
-   Example 1.57. get_body_part_raw usage
1514
+   Example 1.58. get_body_part_raw usage
1489 1515
 ...
1490 1516
 get_body_part("application/vnd.cirpack.isdn-ext", "$var(hbody)");
1491 1517
 ...
1492 1518
 
1493
-4.57.  remove_body_part(content_type)
1519
+4.58.  remove_body_part(content_type)
1494 1520
 
1495 1521
    Remove a part on a multipart body SIP message.
1496 1522
 
... ...
@@ -1508,13 +1534,13 @@ get_body_part("application/vnd.cirpack.isdn-ext", "$var(hbody)");
1508 1534
    Note: it may be required that msg_apply_changes() from textopsx module
1509 1535
    has to be executed if there are other operations over the new body.
1510 1536
 
1511
-   Example 1.58. remove_body_part usage
1537
+   Example 1.59. remove_body_part usage
1512 1538
 ...
1513 1539
 remove_body_part("application/vnd.cirpack.isdn-ext");
1514 1540
 msg_apply_changes();
1515 1541
 ...
1516 1542
 
1517
-4.58.  regex_substring(itext, regexp, mindex, mcount, dpv)
1543
+4.59.  regex_substring(itext, regexp, mindex, mcount, dpv)
1518 1544
 
1519 1545
    Search in text with given regular expression then sets dpv
1520 1546
    pseudo-variable with the matched token at provided index.
... ...
@@ -1534,7 +1560,7 @@ msg_apply_changes();
1534 1560
    Note that the regular expression extended is used. More info at:
1535 1561
    https://www.regular-expressions.info/posix.html.
1536 1562
 
1537
-   Example 1.59. _regex_substring usage
1563
+   Example 1.60. _regex_substring usage
1538 1564
         ...
1539 1565
         regex_substring("___ abc123def ___ ghi456 ___", "([a-z]*)([0-9]+)([a-z]*
1540 1566
 )",