[sr-dev] git:master: uac(k): new paramter restore_dlg

Daniel-Constantin Mierla miconda at gmail.com
Tue Oct 2 22:05:00 CEST 2012


Module: sip-router
Branch: master
Commit: 0d299fea8a642887305797203536e1340cdf74f9
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0d299fea8a642887305797203536e1340cdf74f9

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Tue Oct  2 21:50:59 2012 +0200

uac(k): new paramter restore_dlg

- if set to 1, then the module uses dialog variables to store the
  initial and new values for From/To headers
- default set to 0 - otherwise all calls that have changes to From/To
  headers must be tracked by dialog
- result of checking a report from Alex Balashov

---

 modules_k/uac/uac.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/modules_k/uac/uac.c b/modules_k/uac/uac.c
index 63282a1..2ca13e1 100644
--- a/modules_k/uac/uac.c
+++ b/modules_k/uac/uac.c
@@ -74,6 +74,7 @@ unsigned short restore_from_avp_type;
 int_str restore_from_avp_name;
 unsigned short restore_to_avp_type;
 int_str restore_to_avp_name;
+static int uac_restore_dlg = 0;
 
 /* global param variables */
 str rr_from_param = str_init("vsf");
@@ -146,6 +147,7 @@ static param_export_t params[] = {
 	{"rr_from_store_param", STR_PARAM,				&rr_from_param.s       },
 	{"rr_to_store_param",   STR_PARAM,				&rr_to_param.s       },
 	{"restore_mode",        STR_PARAM,				&restore_mode_str      },
+	{"restore_dlg",         INT_PARAM,				&uac_restore_dlg       },
 	{"restore_passwd",      STR_PARAM,				&uac_passwd.s          },
 	{"restore_from_avp",	STR_PARAM,				&restore_from_avp.s },
 	{"restore_to_avp",		STR_PARAM,				&restore_to_avp.s },
@@ -290,13 +292,14 @@ static int mod_init(void)
 			/* we need the append_fromtag on in RR */
 
 			memset(&dlg_api, 0, sizeof(struct dlg_binds));
-			if (load_dlg_api(&dlg_api)!=0) {
+			if (uac_restore_dlg==0 || load_dlg_api(&dlg_api)!=0) {
 				if (!uac_rrb.append_fromtag) {
 					LM_ERR("'append_fromtag' RR param is not enabled!"
 						" - required by AUTO restore mode\n");
 					goto error;
 				}
-				LM_DBG("failed to find dialog API - is dialog module loaded?\n");
+				if (uac_restore_dlg!=0)
+					LM_DBG("failed to find dialog API - is dialog module loaded?\n");
 			}
 
 			/* get all requests doing loose route */




More information about the sr-dev mailing list