<div dir="ltr"><div>Hi Daniel,</div>I woke up this morning with the idea to implement this, I swear!<div>I'm just wondering now if it still makes sense to use the current uri by default to store the transactions.</div><div>If we use the current uri in the "basic" scenario we have to explicitly call ts_store("$ou") after lookup(), while maybe it would be cleaner to call it with a uri when we know that the original uri is not the uri we want to use for storing the transaction. I don't know if I've been clear enough :)</div><div>Anyway it's not a big point.</div><div>Thanks a lot for the contribution which moreover open new use cases for tsilo in which I didn't think at the beginning.</div><div><br></div><div>Cheers,</div><div><br></div><div>Federico</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 19, 2015 at 12:17 AM, Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Module: kamailio<br>
Branch: master<br>
Commit: 19e608f803b7198543091bf41c468153567741d3<br>
URL: <a href="https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3" rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3</a><br>
<br>
Author: Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>><br>
Committer: Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>><br>
Date: 2015-09-18T22:59:44+02:00<br>
<br>
tsilot: t_store(...) accepts uri as parameter<br>
<br>
- uri can be explicitely given as parameter instead of taking it from<br>
  r-uri<br>
- can help avoiding: backup r-uri, set it to another uri and then restore<br>
  r-uri from backup<br>
<br>
---<br>
<br>
Modified: modules/tsilo/ts_store.c<br>
Modified: modules/tsilo/ts_store.h<br>
Modified: modules/tsilo/tsilo.c<br>
<br>
---<br>
<br>
Diff:  <a href="https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.diff" rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.diff</a><br>
Patch: <a href="https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.patch" rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/19e608f803b7198543091bf41c468153567741d3.patch</a><br>
<br>
---<br>
<br>
diff --git a/modules/tsilo/ts_store.c b/modules/tsilo/ts_store.c<br>
index a05a4ef..2cec2ef 100644<br>
--- a/modules/tsilo/ts_store.c<br>
+++ b/modules/tsilo/ts_store.c<br>
@@ -39,7 +39,7 @@<br>
<br>
 extern int use_domain;<br>
<br>
-int ts_store(struct sip_msg* msg) {<br>
+int ts_store(struct sip_msg* msg, str *puri) {<br>
        struct cell             *t;<br>
        str aor;<br>
        struct sip_uri ruri;<br>
@@ -48,12 +48,16 @@ int ts_store(struct sip_msg* msg) {<br>
        ts_urecord_t* r;<br>
        int res;<br>
<br>
-       if (msg->new_uri.s!=NULL) {<br>
-               /* incoming r-uri was chaged by cfg or other component */<br>
-               suri = msg->new_uri;<br>
+       if(puri && puri->s && puri->len>0) {<br>
+               suri = *puri;<br>
        } else {<br>
-               /* no changes to incoming r-uri */<br>
-               suri = msg->first_line.u.request.uri;<br>
+               if (msg->new_uri.s!=NULL) {<br>
+                       /* incoming r-uri was chaged by cfg or other component */<br>
+                       suri = msg->new_uri;<br>
+               } else {<br>
+                       /* no changes to incoming r-uri */<br>
+                       suri = msg->first_line.u.request.uri;<br>
+               }<br>
        }<br>
<br>
        if (use_domain) {<br>
diff --git a/modules/tsilo/ts_store.h b/modules/tsilo/ts_store.h<br>
index 3a3a8a9..824ccc9 100644<br>
--- a/modules/tsilo/ts_store.h<br>
+++ b/modules/tsilo/ts_store.h<br>
@@ -22,6 +22,6 @@<br>
 #ifndef _TS_STORE_H<br>
 #define _TS_STORE_H<br>
<br>
-int ts_store(struct sip_msg* msg);<br>
+int ts_store(struct sip_msg* msg, str *puri);<br>
<br>
 #endif<br>
diff --git a/modules/tsilo/tsilo.c b/modules/tsilo/tsilo.c<br>
index 51c1e81..f9bcfa9 100644<br>
--- a/modules/tsilo/tsilo.c<br>
+++ b/modules/tsilo/tsilo.c<br>
@@ -65,7 +65,8 @@ static int fixup_ts_append_to(void** param, int param_no);<br>
 static int w_ts_append(struct sip_msg* _msg, char *_table, char *_ruri);<br>
 static int fixup_ts_append(void** param, int param_no);<br>
<br>
-static int w_ts_store(struct sip_msg* msg);<br>
+static int w_ts_store(struct sip_msg* msg, char *p1, char *p2);<br>
+static int w_ts_store1(struct sip_msg* msg, char *_ruri, char *p2);<br>
<br>
 extern stat_var *stored_ruris;<br>
 extern stat_var *stored_transactions;<br>
@@ -80,6 +81,8 @@ static cmd_export_t cmds[]={<br>
                fixup_ts_append, 0, REQUEST_ROUTE | FAILURE_ROUTE },<br>
        {"ts_store", (cmd_function)w_ts_store,  0,<br>
                0 , 0, REQUEST_ROUTE | FAILURE_ROUTE },<br>
+       {"ts_store", (cmd_function)w_ts_store1,  1,<br>
+               fixup_spve_null , 0, REQUEST_ROUTE | FAILURE_ROUTE },<br>
        {0,0,0,0,0,0}<br>
 };<br>
<br>
@@ -279,7 +282,22 @@ static int w_ts_append_to(struct sip_msg* msg, char *idx, char *lbl, char *table<br>
 /**<br>
  *<br>
  */<br>
-static int w_ts_store(struct sip_msg* msg)<br>
+static int w_ts_store(struct sip_msg* msg, char *p1, char *p2)<br>
 {<br>
-       return ts_store(msg);<br>
+       return ts_store(msg, 0);<br>
+}<br>
+<br>
+<br>
+/**<br>
+ *<br>
+ */<br>
+static int w_ts_store1(struct sip_msg* msg, char *_ruri, char *p2)<br>
+{<br>
+       str suri;<br>
+<br>
+       if(fixup_get_svalue(msg, (gparam_t*)_ruri, &suri)!=0) {<br>
+               LM_ERR("failed to conert r-uri parameter\n");<br>
+               return -1;<br>
+       }<br>
+       return ts_store(msg, &suri);<br>
 }<br>
<br>
<br>
_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" rel="noreferrer" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
</blockquote></div><br></div></div>