Browse code

Merge branch 'master' of ssh://git.sip-router.org/sip-router

Juha Heinanen authored on 03/10/2012 06:29:32
Showing 3 changed files
... ...
@@ -14,9 +14,9 @@ Ramona-Elena Modroiu
14 14
 
15 15
    <ramona@rosdev.ro>
16 16
 
17
-   Copyright © 2009-2010 asipto.com
17
+   Copyright � 2009-2010 asipto.com
18 18
 
19
-   Copyright © 2005 Voice Sistem
19
+   Copyright � 2005 Voice Sistem
20 20
      __________________________________________________________________
21 21
 
22 22
    Table of Contents
... ...
@@ -34,15 +34,16 @@ Ramona-Elena Modroiu
34 34
               3.1. rr_from_store_param (string)
35 35
               3.2. rr_to_store_param (string)
36 36
               3.3. restore_mode (string)
37
-              3.4. restore_passwd (string)
38
-              3.5. restore_from_avp (string)
39
-              3.6. restore_to_avp (string)
40
-              3.7. credential (string)
41
-              3.8. auth_realm_avp (string)
42
-              3.9. auth_username_avp (string)
43
-              3.10. auth_password_avp (string)
44
-              3.11. reg_db_url (string)
45
-              3.12. reg_timer_interval (string)
37
+              3.4. restore_mode (int)
38
+              3.5. restore_passwd (string)
39
+              3.6. restore_from_avp (string)
40
+              3.7. restore_to_avp (string)
41
+              3.8. credential (string)
42
+              3.9. auth_realm_avp (string)
43
+              3.10. auth_username_avp (string)
44
+              3.11. auth_password_avp (string)
45
+              3.12. reg_db_url (string)
46
+              3.13. reg_timer_interval (string)
46 47
 
47 48
         4. reg_contact_addr (string)
48 49
         5. Functions
... ...
@@ -66,27 +67,28 @@ Ramona-Elena Modroiu
66 67
    1.1. Set rr_from_store_param parameter
67 68
    1.2. Set rr_to_store_param parameter
68 69
    1.3. Set restore_mode parameter
69
-   1.4. Set restore_passwd parameter
70
-   1.5. Set restore_from_avp parameter
71
-   1.6. Set restore_to_avp parameter
72
-   1.7. Set credential parameter
73
-   1.8. Set auth_realm_avp parameter
74
-   1.9. Set auth_username_avp parameter
75
-   1.10. Set auth_password_avp parameter
76
-   1.11. Set reg_db_url parameter
77
-   1.12. Set reg_timer_inteval parameter
78
-   1.13. Set reg_contact_addr parameter
79
-   1.14. uac_replace_from usage
70
+   1.4. Set restore_dlg parameter
71
+   1.5. Set restore_passwd parameter
72
+   1.6. Set restore_from_avp parameter
73
+   1.7. Set restore_to_avp parameter
74
+   1.8. Set credential parameter
75
+   1.9. Set auth_realm_avp parameter
76
+   1.10. Set auth_username_avp parameter
77
+   1.11. Set auth_password_avp parameter
78
+   1.12. Set reg_db_url parameter
79
+   1.13. Set reg_timer_inteval parameter
80
+   1.14. Set reg_contact_addr parameter
80 81
    1.15. uac_replace_from usage
81
-   1.16. uac_restore_from usage
82
-   1.17. uac_replace_to usage
82
+   1.16. uac_replace_from usage
83
+   1.17. uac_restore_from usage
83 84
    1.18. uac_replace_to usage
84
-   1.19. uac_restore_to usage
85
-   1.20. uac_auth usage
86
-   1.21. uac_req_send usage
87
-   1.22. uac_reg_lookup usage
88
-   1.23. uac_reg_request_to usage
89
-   1.24. lookup remote registrations usage
85
+   1.19. uac_replace_to usage
86
+   1.20. uac_restore_to usage
87
+   1.21. uac_auth usage
88
+   1.22. uac_req_send usage
89
+   1.23. uac_reg_lookup usage
90
+   1.24. uac_reg_request_to usage
91
+   1.25. lookup remote registrations usage
90 92
 
91 93
 Chapter 1. Admin Guide
92 94
 
... ...
@@ -103,15 +105,16 @@ Chapter 1. Admin Guide
103 105
         3.1. rr_from_store_param (string)
104 106
         3.2. rr_to_store_param (string)
105 107
         3.3. restore_mode (string)
106
-        3.4. restore_passwd (string)
107
-        3.5. restore_from_avp (string)
108
-        3.6. restore_to_avp (string)
109
-        3.7. credential (string)
110
-        3.8. auth_realm_avp (string)
111
-        3.9. auth_username_avp (string)
112
-        3.10. auth_password_avp (string)
113
-        3.11. reg_db_url (string)
114
-        3.12. reg_timer_interval (string)
108
+        3.4. restore_mode (int)
109
+        3.5. restore_passwd (string)
110
+        3.6. restore_from_avp (string)
111
+        3.7. restore_to_avp (string)
112
+        3.8. credential (string)
113
+        3.9. auth_realm_avp (string)
114
+        3.10. auth_username_avp (string)
115
+        3.11. auth_password_avp (string)
116
+        3.12. reg_db_url (string)
117
+        3.13. reg_timer_interval (string)
115 118
 
116 119
    4. reg_contact_addr (string)
117 120
    5. Functions
... ...
@@ -158,9 +161,9 @@ Chapter 1. Admin Guide
158 161
    The following modules must be loaded before this module:
159 162
      * TM - Transaction Module
160 163
      * RR - Record-Route Module, but only if restore mode for FROM URI is
161
-       set to “auto”.
164
+       set to "auto".
162 165
      * Dialog Module, but only if restore mode for FROM URI is set to
163
-       “auto” and you want uac_replace_from or uac_replace_to to store the
166
+       "auto" and you want uac_replace_from or uac_replace_to to store the
164 167
        values of the URIs as dialog variables.
165 168
 
166 169
 2.2. External Libraries or Applications
... ...
@@ -174,22 +177,23 @@ Chapter 1. Admin Guide
174 177
    3.1. rr_from_store_param (string)
175 178
    3.2. rr_to_store_param (string)
176 179
    3.3. restore_mode (string)
177
-   3.4. restore_passwd (string)
178
-   3.5. restore_from_avp (string)
179
-   3.6. restore_to_avp (string)
180
-   3.7. credential (string)
181
-   3.8. auth_realm_avp (string)
182
-   3.9. auth_username_avp (string)
183
-   3.10. auth_password_avp (string)
184
-   3.11. reg_db_url (string)
185
-   3.12. reg_timer_interval (string)
180
+   3.4. restore_mode (int)
181
+   3.5. restore_passwd (string)
182
+   3.6. restore_from_avp (string)
183
+   3.7. restore_to_avp (string)
184
+   3.8. credential (string)
185
+   3.9. auth_realm_avp (string)
186
+   3.10. auth_username_avp (string)
187
+   3.11. auth_password_avp (string)
188
+   3.12. reg_db_url (string)
189
+   3.13. reg_timer_interval (string)
186 190
 
187 191
 3.1. rr_from_store_param (string)
188 192
 
189 193
    Name of Record-Route header parameter that will be used to store
190 194
    (encoded) the original FROM URI.
191 195
 
192
-   This parameter is optional, it's default value being “vsf”.
196
+   This parameter is optional, it's default value being "vsf".
193 197
 
194 198
    Example 1.1. Set rr_from_store_param parameter
195 199
 ...
... ...
@@ -201,7 +205,7 @@ modparam("uac","rr_from_store_param","my_param")
201 205
    Name of Record-Route header parameter that will be used to store
202 206
    (encoded) the original TO URI.
203 207
 
204
-   This parameter is optional, it's default value being “vst”.
208
+   This parameter is optional, it's default value being "vst".
205 209
 
206 210
    Example 1.2. Set rr_to_store_param parameter
207 211
 ...
... ...
@@ -212,34 +216,47 @@ modparam("uac","rr_to_store_param","my_param")
212 216
 
213 217
    There are 3 mode of restoring the original FROM URI and the original TO
214 218
    URI:
215
-     * “none” - no information about original URI is stored; restoration
219
+     * "none" - no information about original URI is stored; restoration
216 220
        is not possible.
217
-     * “manual” - all following replies will be restored, but not also the
221
+     * "manual" - all following replies will be restored, but not also the
218 222
        sequential requests - this must be manually updated based on
219 223
        original URI.
220
-     * “auto” - all sequential requests and replies will be automatically
224
+     * "auto" - all sequential requests and replies will be automatically
221 225
        updated based on stored original URI.
222 226
 
223
-   This parameter is optional, it's default value being “auto”.
227
+   This parameter is optional, it's default value being "auto".
224 228
 
225 229
    Example 1.3. Set restore_mode parameter
226 230
 ...
227 231
 modparam("uac","restore_mode","auto")
228 232
 ...
229 233
 
230
-3.4. restore_passwd (string)
234
+3.4. restore_mode (int)
235
+
236
+   If set to 1, the module uses dialog variables to store initial and new
237
+   values for From/To headers. Dialog module has to be loaded and all
238
+   calls that involve chages to From/To headers must be tracked.
239
+
240
+   Default value of this parameter is 0.
241
+
242
+   Example 1.4. Set restore_dlg parameter
243
+...
244
+modparam("uac", "restore_dlg", 1)
245
+...
246
+
247
+3.5. restore_passwd (string)
231 248
 
232 249
    String password to be used to encrypt the RR storing parameters. If
233 250
    empty, no encryption will be used.
234 251
 
235 252
    Default value of this parameter is empty.
236 253
 
237
-   Example 1.4. Set restore_passwd parameter
254
+   Example 1.5. Set restore_passwd parameter
238 255
 ...
239 256
 modparam("uac","restore_passwd","my_secret_passwd")
240 257
 ...
241 258
 
242
-3.5. restore_from_avp (string)
259
+3.6. restore_from_avp (string)
243 260
 
244 261
    If defined and restore_mode is manual or auto, the avp is used to save
245 262
    the original from uri in order to be able to restore it in replies.
... ...
@@ -253,12 +270,12 @@ modparam("uac","restore_passwd","my_secret_passwd")
253 270
 
254 271
    Default value of this parameter is empty.
255 272
 
256
-   Example 1.5. Set restore_from_avp parameter
273
+   Example 1.6. Set restore_from_avp parameter
257 274
 ...
258 275
 modparam("uac","restore_from_avp","$avp(original_uri_from)")
259 276
 ...
260 277
 
261
-3.6. restore_to_avp (string)
278
+3.7. restore_to_avp (string)
262 279
 
263 280
    If defined and restore_mode is manual or auto, the avp is used to save
264 281
    the original to uri in order to be able to restore it in replies. That
... ...
@@ -272,83 +289,83 @@ modparam("uac","restore_from_avp","$avp(original_uri_from)")
272 289
 
273 290
    Default value of this parameter is empty.
274 291
 
275
-   Example 1.6. Set restore_to_avp parameter
292
+   Example 1.7. Set restore_to_avp parameter
276 293
 ...
277 294
 modparam("uac","restore_to_avp","$avp(original_uri_to)")
278 295
 ...
279 296
 
280
-3.7. credential (string)
297
+3.8. credential (string)
281 298
 
282 299
    Contains a multiple definition of credentials used to perform
283 300
    authentication.
284 301
 
285 302
    This parameter is required if UAC authentication is used.
286 303
 
287
-   Example 1.7. Set credential parameter
304
+   Example 1.8. Set credential parameter
288 305
 ...
289 306
 modparam("uac","credential","username:domain:password")
290 307
 ...
291 308
 
292
-3.8. auth_realm_avp (string)
309
+3.9. auth_realm_avp (string)
293 310
 
294 311
    The definition of an AVP that might contain the realm to be used to
295 312
    perform authentication.
296 313
 
297
-   If you define it, you also need to define “auth_username_avp”
298
-   (Section 3.9, “auth_username_avp (string)”) and “auth_username_avp”
299
-   (Section 3.10, “auth_password_avp (string)”).
314
+   If you define it, you also need to define "auth_username_avp"
315
+   (Section 3.10, "auth_username_avp (string)") and "auth_username_avp"
316
+   (Section 3.11, "auth_password_avp (string)").
300 317
 
301
-   Example 1.8. Set auth_realm_avp parameter
318
+   Example 1.9. Set auth_realm_avp parameter
302 319
 ...
303 320
 modparam("uac","auth_realm_avp","$avp(i:10)")
304 321
 ...
305 322
 
306
-3.9. auth_username_avp (string)
323
+3.10. auth_username_avp (string)
307 324
 
308 325
    The definition of an AVP that might contain the username to be used to
309 326
    perform authentication.
310 327
 
311
-   If you define it, you also need to define “auth_realm_avp”
312
-   (Section 3.8, “auth_realm_avp (string)”) and “auth_username_avp”
313
-   (Section 3.10, “auth_password_avp (string)”).
328
+   If you define it, you also need to define "auth_realm_avp"
329
+   (Section 3.9, "auth_realm_avp (string)") and "auth_username_avp"
330
+   (Section 3.11, "auth_password_avp (string)").
314 331
 
315
-   Example 1.9. Set auth_username_avp parameter
332
+   Example 1.10. Set auth_username_avp parameter
316 333
 ...
317 334
 modparam("uac","auth_username_avp","$avp(i:11)")
318 335
 ...
319 336
 
320
-3.10. auth_password_avp (string)
337
+3.11. auth_password_avp (string)
321 338
 
322 339
    The definition of an AVP that might contain the password to be used to
323 340
    perform authentication.
324 341
 
325
-   If you define it, you also need to define “auth_password_avp”
326
-   (Section 3.10, “auth_password_avp (string)”) and “auth_username_avp”
327
-   (Section 3.10, “auth_password_avp (string)”).
342
+   If you define it, you also need to define "auth_password_avp"
343
+   (Section 3.11, "auth_password_avp (string)") and "auth_username_avp"
344
+   (Section 3.11, "auth_password_avp (string)").
328 345
 
329
-   Example 1.10. Set auth_password_avp parameter
346
+   Example 1.11. Set auth_password_avp parameter
330 347
 ...
331 348
 modparam("uac","auth_password_avp","$avp(i:12)")
332 349
 ...
333 350
 
334
-3.11. reg_db_url (string)
351
+3.12. reg_db_url (string)
335 352
 
336 353
    DB URL to fetch user profiles for registration.
337 354
 
338
-   Example 1.11. Set reg_db_url parameter
355
+   Example 1.12. Set reg_db_url parameter
339 356
 ...
340 357
 modparam("uac", "reg_db_url",
341 358
     "mysql://openser:openserrw@localhost/openser")
342 359
 ...
343 360
 
344
-3.12. reg_timer_interval (string)
361
+3.13. reg_timer_interval (string)
345 362
 
346 363
    Timer interval (in seconds) at which registrations are managed, e.g.
347 364
    renewed as needed.
348 365
 
349 366
    The default value is 90 seconds.
350 367
 
351
-   Example 1.12. Set reg_timer_inteval parameter
368
+   Example 1.13. Set reg_timer_inteval parameter
352 369
 ...
353 370
 modparam("uac", "reg_timer_interval", 60)
354 371
 ...
... ...
@@ -358,7 +375,7 @@ modparam("uac", "reg_timer_interval", 60)
358 375
    Address to be used to build contact address. Must be at least host
359 376
    part, can have port and parameters. Must not include 'sip:'.
360 377
 
361
-   Example 1.13. Set reg_contact_addr parameter
378
+   Example 1.14. Set reg_contact_addr parameter
362 379
 ...
363 380
 modparam("uac", "reg_contact_addr", "192.168.1.2:5080")
364 381
 ...
... ...
@@ -376,7 +393,7 @@ modparam("uac", "reg_contact_addr", "192.168.1.2:5080")
376 393
    5.9. uac_reg_lookup(uuid, dst)
377 394
    5.10. uac_reg_request_to(user, mode)
378 395
 
379
-5.1.  uac_replace_from(display,uri)
396
+5.1. uac_replace_from(display,uri)
380 397
 
381 398
    Replace in FROM header the display name and the URI part.
382 399
 
... ...
@@ -402,7 +419,7 @@ modparam("uac", "reg_contact_addr", "192.168.1.2:5080")
402 419
    dialog variables and registering callbacks in dialog module for in
403 420
    dialog requests.
404 421
 
405
-   Example 1.14. uac_replace_from usage
422
+   Example 1.15. uac_replace_from usage
406 423
 ...
407 424
 # replace both display and uri
408 425
 uac_replace_from("$avp(s:display)","$avp(s:uri)");
... ...
@@ -414,7 +431,7 @@ uac_replace_from("","sip:robin@gotham.org");
414 431
 uac_replace_from("","");
415 432
 ...
416 433
 
417
-5.2.  uac_replace_from(uri)
434
+5.2. uac_replace_from(uri)
418 435
 
419 436
    Replace in FROM header the URI part without altering the display name.
420 437
 
... ...
@@ -422,12 +439,12 @@ uac_replace_from("","");
422 439
 
423 440
    This function can be used from REQUEST_ROUTE and from BRANCH_ROUTE.
424 441
 
425
-   Example 1.15. uac_replace_from usage
442
+   Example 1.16. uac_replace_from usage
426 443
 ...
427 444
 uac_replace_from("sip:batman@gotham.org");
428 445
 ...
429 446
 
430
-5.3.  uac_restore_from()
447
+5.3. uac_restore_from()
431 448
 
432 449
    This function will check if the FROM URI was modified and will use the
433 450
    information stored in header parameter to restore the original FROM URI
... ...
@@ -435,12 +452,12 @@ uac_replace_from("sip:batman@gotham.org");
435 452
 
436 453
    This function can be used from REQUEST_ROUTE.
437 454
 
438
-   Example 1.16. uac_restore_from usage
455
+   Example 1.17. uac_restore_from usage
439 456
 ...
440 457
 uac_restore_from();
441 458
 ...
442 459
 
443
-5.4.  uac_replace_to(display,uri)
460
+5.4. uac_replace_to(display,uri)
444 461
 
445 462
    Replace in TO header the display name and the URI part.
446 463
 
... ...
@@ -448,7 +465,7 @@ uac_restore_from();
448 465
 
449 466
    This function can be used from REQUEST_ROUTE and from BRANCH_ROUTE.
450 467
 
451
-   Example 1.17. uac_replace_to usage
468
+   Example 1.18. uac_replace_to usage
452 469
 ...
453 470
 # replace both display and uri
454 471
 uac_replace_to("$avp(display)","$avp(uri)");
... ...
@@ -460,7 +477,7 @@ uac_replace_to("","sip:robin@gotham.org");
460 477
 uac_replace_to("","");
461 478
 ...
462 479
 
463
-5.5.  uac_replace_to(uri)
480
+5.5. uac_replace_to(uri)
464 481
 
465 482
    Replace in TO header the URI part without altering the display name.
466 483
 
... ...
@@ -486,12 +503,12 @@ uac_replace_to("","");
486 503
    variables and registering callbacks in dialog module for in dialog
487 504
    requests.
488 505
 
489
-   Example 1.18. uac_replace_to usage
506
+   Example 1.19. uac_replace_to usage
490 507
 ...
491 508
 uac_replace_to("sip:batman@gotham.org");
492 509
 ...
493 510
 
494
-5.6.  uac_restore_to()
511
+5.6. uac_restore_to()
495 512
 
496 513
    This function will check if the TO URI was modified and will use the
497 514
    information stored in header parameter to restore the original TO URI
... ...
@@ -499,12 +516,12 @@ uac_replace_to("sip:batman@gotham.org");
499 516
 
500 517
    This function can be used from REQUEST_ROUTE.
501 518
 
502
-   Example 1.19. uac_restore_to usage
519
+   Example 1.20. uac_restore_to usage
503 520
 ...
504 521
 uac_restore_to();
505 522
 ...
506 523
 
507
-5.7.  uac_auth()
524
+5.7. uac_auth()
508 525
 
509 526
    This function can be called only from failure route and will build the
510 527
    authentication response header and insert it into the request without
... ...
@@ -512,12 +529,12 @@ uac_restore_to();
512 529
 
513 530
    This function can be used from FAILURE_ROUTE.
514 531
 
515
-   Example 1.20. uac_auth usage
532
+   Example 1.21. uac_auth usage
516 533
 ...
517 534
 uac_auth();
518 535
 ...
519 536
 
520
-5.8.  uac_req_send()
537
+5.8. uac_req_send()
521 538
 
522 539
    This function sends a SIP message from the configuration file. The
523 540
    message is built out of $uac_req(...) pseudo-variable.
... ...
@@ -525,7 +542,7 @@ uac_auth();
525 542
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
526 543
    BRANCH_ROUTE, ONREPLY_ROUTE, LOCAL_ROUTE.
527 544
 
528
-   Example 1.21. uac_req_send usage
545
+   Example 1.22. uac_req_send usage
529 546
 ...
530 547
 $uac_req(method)="OPTIONS";
531 548
 $uac_req(ruri)="sip:kamailio.org";
... ...
@@ -534,14 +551,14 @@ $uac_req(turi)="sip:kamailio.org";
534 551
 uac_req_send();
535 552
 ...
536 553
 
537
-5.9.  uac_reg_lookup(uuid, dst)
554
+5.9. uac_reg_lookup(uuid, dst)
538 555
 
539 556
    This function sets the PV dst to SIP URI that correspond to uuid in uac
540 557
    registations table. uuid and dst must be pseudo-variables.
541 558
 
542 559
    This function can be used from ANY_ROUTE.
543 560
 
544
-   Example 1.22. uac_reg_lookup usage
561
+   Example 1.23. uac_reg_lookup usage
545 562
 ...
546 563
 
547 564
 if(uac_reg_lookup("$rU", "$ru"))
... ...
@@ -550,7 +567,7 @@ if(uac_reg_lookup("$rU", "$ru"))
550 567
 }
551 568
 ...
552 569
 
553
-5.10.  uac_reg_request_to(user, mode)
570
+5.10. uac_reg_request_to(user, mode)
554 571
 
555 572
    This function can be used to send an authenticated request to a remote
556 573
    user in the uac registrations table. It sets the request-uri, dst-uri
... ...
@@ -564,7 +581,7 @@ if(uac_reg_lookup("$rU", "$ru"))
564 581
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
565 582
    BRANCH_ROUTE.
566 583
 
567
-   Example 1.23. uac_reg_request_to usage
584
+   Example 1.24. uac_reg_request_to usage
568 585
 ...
569 586
 
570 587
 if(uac_reg_request_to("$fU", 0))
... ...
@@ -623,7 +640,7 @@ failure_route[REMOTE_AUTH] {
623 640
    if the call is coming from a remote SIP provider and can change the
624 641
    R-URI to local username@domain. Afterwards you can run location lookup.
625 642
 
626
-   Example 1.24. lookup remote registrations usage
643
+   Example 1.25. lookup remote registrations usage
627 644
 ...
628 645
     if(uac_reg_lookup("$rU", "$ru")) {
629 646
         xlog("request from a remote SIP provider [$ou => $ru]\n");
... ...
@@ -176,6 +176,27 @@ modparam("uac","rr_to_store_param","my_param")
176 176
 				<programlisting format="linespecific">
177 177
 ...
178 178
 modparam("uac","restore_mode","auto")
179
+...
180
+				</programlisting>
181
+			</example>
182
+		</section>
183
+		<section>
184
+			<title><varname>restore_mode</varname> (int)</title>
185
+			<para>
186
+			If set to 1, the module uses dialog variables to store initial and
187
+			new values for From/To headers. Dialog module has to be loaded and
188
+			all calls that involve chages to From/To headers must be tracked.
189
+			</para>
190
+			<para>
191
+				<emphasis>
192
+					Default value of this parameter is 0.
193
+				</emphasis>
194
+			</para>
195
+			<example>
196
+				<title>Set <varname>restore_dlg</varname> parameter</title>
197
+				<programlisting format="linespecific">
198
+...
199
+modparam("uac", "restore_dlg", 1)
179 200
 ...
180 201
 				</programlisting>
181 202
 			</example>
... ...
@@ -74,6 +74,7 @@ unsigned short restore_from_avp_type;
74 74
 int_str restore_from_avp_name;
75 75
 unsigned short restore_to_avp_type;
76 76
 int_str restore_to_avp_name;
77
+static int uac_restore_dlg = 0;
77 78
 
78 79
 /* global param variables */
79 80
 str rr_from_param = str_init("vsf");
... ...
@@ -146,6 +147,7 @@ static param_export_t params[] = {
146 147
 	{"rr_from_store_param", STR_PARAM,				&rr_from_param.s       },
147 148
 	{"rr_to_store_param",   STR_PARAM,				&rr_to_param.s       },
148 149
 	{"restore_mode",        STR_PARAM,				&restore_mode_str      },
150
+	{"restore_dlg",         INT_PARAM,				&uac_restore_dlg       },
149 151
 	{"restore_passwd",      STR_PARAM,				&uac_passwd.s          },
150 152
 	{"restore_from_avp",	STR_PARAM,				&restore_from_avp.s },
151 153
 	{"restore_to_avp",		STR_PARAM,				&restore_to_avp.s },
... ...
@@ -290,13 +292,14 @@ static int mod_init(void)
290 292
 			/* we need the append_fromtag on in RR */
291 293
 
292 294
 			memset(&dlg_api, 0, sizeof(struct dlg_binds));
293
-			if (load_dlg_api(&dlg_api)!=0) {
295
+			if (uac_restore_dlg==0 || load_dlg_api(&dlg_api)!=0) {
294 296
 				if (!uac_rrb.append_fromtag) {
295 297
 					LM_ERR("'append_fromtag' RR param is not enabled!"
296 298
 						" - required by AUTO restore mode\n");
297 299
 					goto error;
298 300
 				}
299
-				LM_DBG("failed to find dialog API - is dialog module loaded?\n");
301
+				if (uac_restore_dlg!=0)
302
+					LM_DBG("failed to find dialog API - is dialog module loaded?\n");
300 303
 			}
301 304
 
302 305
 			/* get all requests doing loose route */