Module: kamailio
Branch: master
Commit: 19e608f803b7198543091bf41c468153567741d3
URL: 
https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2015-09-18T22:59:44+02:00

tsilot: t_store(...) accepts uri as parameter

- uri can be explicitely given as parameter instead of taking it from
  r-uri
- can help avoiding: backup r-uri, set it to another uri and then restore
  r-uri from backup

---

Modified: modules/tsilo/ts_store.c
Modified: modules/tsilo/ts_store.h
Modified: modules/tsilo/tsilo.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.diff
Patch: 
https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.patch

---

diff --git a/modules/tsilo/ts_store.c b/modules/tsilo/ts_store.c
index a05a4ef..2cec2ef 100644
--- a/modules/tsilo/ts_store.c
+++ b/modules/tsilo/ts_store.c
@@ -39,7 +39,7 @@
 
 extern int use_domain;
 
-int ts_store(struct sip_msg* msg) {
+int ts_store(struct sip_msg* msg, str *puri) {
        struct cell             *t;
        str aor;
        struct sip_uri ruri;
@@ -48,12 +48,16 @@ int ts_store(struct sip_msg* msg) {
        ts_urecord_t* r;
        int res;
 
-       if (msg->new_uri.s!=NULL) {
-               /* incoming r-uri was chaged by cfg or other component */
-               suri = msg->new_uri;
+       if(puri && puri->s && puri->len>0) {
+               suri = *puri;
        } else {
-               /* no changes to incoming r-uri */
-               suri = msg->first_line.u.request.uri;
+               if (msg->new_uri.s!=NULL) {
+                       /* incoming r-uri was chaged by cfg or other component 
*/
+                       suri = msg->new_uri;
+               } else {
+                       /* no changes to incoming r-uri */
+                       suri = msg->first_line.u.request.uri;
+               }
        }
 
        if (use_domain) {
diff --git a/modules/tsilo/ts_store.h b/modules/tsilo/ts_store.h
index 3a3a8a9..824ccc9 100644
--- a/modules/tsilo/ts_store.h
+++ b/modules/tsilo/ts_store.h
@@ -22,6 +22,6 @@
 #ifndef _TS_STORE_H
 #define _TS_STORE_H
 
-int ts_store(struct sip_msg* msg);
+int ts_store(struct sip_msg* msg, str *puri);
 
 #endif
diff --git a/modules/tsilo/tsilo.c b/modules/tsilo/tsilo.c
index 51c1e81..f9bcfa9 100644
--- a/modules/tsilo/tsilo.c
+++ b/modules/tsilo/tsilo.c
@@ -65,7 +65,8 @@ static int fixup_ts_append_to(void** param, int param_no);
 static int w_ts_append(struct sip_msg* _msg, char *_table, char *_ruri);
 static int fixup_ts_append(void** param, int param_no);
 
-static int w_ts_store(struct sip_msg* msg);
+static int w_ts_store(struct sip_msg* msg, char *p1, char *p2);
+static int w_ts_store1(struct sip_msg* msg, char *_ruri, char *p2);
 
 extern stat_var *stored_ruris;
 extern stat_var *stored_transactions;
@@ -80,6 +81,8 @@ static cmd_export_t cmds[]={
                fixup_ts_append, 0, REQUEST_ROUTE | FAILURE_ROUTE },
        {"ts_store", (cmd_function)w_ts_store,  0,
                0 , 0, REQUEST_ROUTE | FAILURE_ROUTE },
+       {"ts_store", (cmd_function)w_ts_store1,  1,
+               fixup_spve_null , 0, REQUEST_ROUTE | FAILURE_ROUTE },
        {0,0,0,0,0,0}
 };
 
@@ -279,7 +282,22 @@ static int w_ts_append_to(struct sip_msg* msg, char *idx, 
char *lbl, char *table
 /**
  *
  */
-static int w_ts_store(struct sip_msg* msg)
+static int w_ts_store(struct sip_msg* msg, char *p1, char *p2)
 {
-       return ts_store(msg);
+       return ts_store(msg, 0);
+}
+
+
+/**
+ *
+ */
+static int w_ts_store1(struct sip_msg* msg, char *_ruri, char *p2)
+{
+       str suri;
+
+       if(fixup_get_svalue(msg, (gparam_t*)_ruri, &suri)!=0) {
+               LM_ERR("failed to conert r-uri parameter\n");
+               return -1;
+       }
+       return ts_store(msg, &suri);
 }


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to