<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello,<br>
<br>
the patch cannot be applied as it is. The comments contain
references to request processing, which is obviously wrong. Then I
have seen code specific to requests, like managing the request uri
or dst uri -- these fields shouldn't be set for replies, it's ok as
safety to clear them up, but not cloning.<br>
<br>
From the patch I see the new function are only for internal usage,
not for config file. Are they supposed to be used only in the
transaction context (i.e., after the transaction is matched for
reply)?<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<div class="moz-cite-prefix">On 7/4/13 5:24 PM, Richard Good wrote:<br>
</div>
<blockquote
cite="mid:CAOvD117BwLZyAJtsuwYDHU9iwoJGx7cMbf9f06T5Qh_qXrFbPQ@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Hi<br>
<br>
</div>
I've finally got working functionality for
t-suspend and t_continue for SIP responses in the
tmp/tm_async_reply_support branch.<br>
<br>
</div>
I've memory and load tested the branch and have also
isolated the changes so that if there are problems
they will only be experienced if you use the new API
functions.<br>
<br>
</div>
However keeping mind that TM can be tricky to program
(as mentioned in the documentation ;)) - I've included
below a summary of the changes and a git diff against
the latest master. So the TM experts can have a look
and see if there are any obvious problems. <br>
<br>
If there are no complaints or queries I will commit
the changes to master next week Friday (July 12).<br>
<br>
</div>
<div>Regards<br>
Richard.<br>
</div>
<div><br>
</div>
Change summary:<br>
1. parser/msg_parser.h: added new message state
FL_RPL_SUSPENDED<br>
</div>
2. tm_load.c: new api functions: <b>t_suspend_reply</b>,
<b>t_continue_reply</b> and <b>t_cancel_suspend_reply</b><br>
3. t_suspend.c/h: new methods: <b>t_suspend_reply</b>, <b>t_continue_reply</b>
and <b>t_cancel_suspend_reply<br>
</b>4. tm/t_reply.c: if msg is in state FL_RPL_SUSPENDED
then we skip sending the <span class="">reply</span> on<br>
</div>
5. tm/t_reply.c/h: new methods to fake env for responses: <b>faked_env_resp,
faked_resp, free_faked_resp<br>
</b></div>
6. API documentation to include new functions: <b>t_suspend_reply</b>,
<b>t_continue_reply</b> and <b>t_cancel_suspend_reply<br>
<br>
</b></div>
<b><br>
</b>
<div>
<div>
<div>
<div><b><br>
</b>
<div><br>
<div>
<div><br>
<br>
<div>
<div>
<div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On 18 March 2013
14:13, Richard Good <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:richard.good@smilecoms.com"
target="_blank">richard.good@smilecoms.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Hi
Daniel and other TM experts<br>
<br>
We have been working on a prototype
for being able to use the t_suspend()
and t_continue() methods for SIP
responses. The version in branch
/tmp/tm_async_reply_support is
working, though still needs to be 100%
tested and only works for 1 branch
(i.e. no forking)<br>
<br>
Would it be possible for you to have a
look at this branch code and see if we
are on the right track. The code is
working but TM (as mentioned in the
documentation ;)) can be tricky to
program and we want to make sure we
are not breaking anything, as the goal
is to get this into the master branch.<br>
<br>
The changes we have done:<br>
<ol>
<li>parser/msg_parser.h: added new
message state FL_RPL_SUSPENDED</li>
<li>tm/h_table.h: added int
suspended_request to ua_server and
int suspended_reply to ua_client</li>
<li>tm/t_suspend.c:t_suspend</li>
<ol>
<li>Changed suspend method to
check if the message is a
request or response and set the
suspended_request/suspended_reply
variable accordingly</li>
<li>If its a request we do as the
existing code<br>
</li>
<li>If its a response we get the
correct uac branch, clone the
msg into t->uac[branch].reply
and set the msg state to
FL_RPL_SUSPENDED</li>
</ol>
<li>tm/t_reply.c: if msg is in state
FL_RPL_SUSPENDED then we skip
sending the reply on<br>
</li>
<li>tm/t_suspend.c:t_continue</li>
<ol>
<li>Check if this uas was
suspended - if so this is a
continue for a request so
continue with existing code<br>
</li>
<li>If not then we search for the
branch that was suspended</li>
<li>Once branch is found unsuspend
the message state</li>
<li>do pre-script, run_top_route
and post scripts</li>
<li>Relay the reply using
basically the same code we
skipped in step 4</li>
</ol>
</ol>
<p>First next step after we confirm we
are on the right track is to add
forking support - this will require
a new t_continue method where the
calling application passes in the
branch of the suspended reply when
wanting to continue.</p>
<p>Any comments/feedback would be
appreciated. <br>
</p>
<p>Regards</p>
<span><font color="#888888">
<p>Richard.<br>
</p>
</font></span>
<div>
<div>
<p><br>
</p>
<p><br>
</p>
<br>
<br>
<br>
<br>
<div class="gmail_quote">On 11
March 2013 14:34,
Daniel-Constantin Mierla <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:miconda@gmail.com"
target="_blank">miconda@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF"> Hello,<br>
<br>
t_suspend() and t_continue()
are only for requests at
this moment.<br>
<br>
Cheers,<br>
Daniel
<div>
<div><br>
<br>
<div>On 3/6/13 2:49 PM,
Richard Good wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>Hi<br>
<br>
We are using the
t_suspend and
t_continue
functionality to
asynchronously send
Diameter messages. <br>
<br>
This works nicely when
we suspend and resume
on a SIP request.
However in some
circumstances we want
to send a Diameter
message on a SIP
response.<br>
<br>
I have found that the
SIP responses continue
to be relayed despite
being suspended and
returning 0 to the cfg
file.<br>
<br>
I am investigating the
cause but before I get
any deeper does anyone
know if the t_suspend
and t_continue
functionality in the
tm module can be used
on a SIP response?<br>
<br>
Regards<br>
Richard.
<table
style="width:450pt"
border="0"
cellpadding="0"
cellspacing="0"
width="600">
<tbody>
<tr
style="min-height:10.5pt">
<td rowspan="3"
style="width:173.25pt;padding:0cm;min-height:10.5pt" valign="top"
width="231"> <br>
</td>
<td
style="padding:0cm;min-height:10.5pt"
valign="top"><br>
</td>
</tr>
<tr
style="min-height:42.75pt">
<td
style="padding:0cm;min-height:42.75pt"
valign="top"><br>
</td>
</tr>
</tbody>
</table>
<span
style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"></span>
</div>
</div>
<pre>This email is subject to the disclaimer of Smile Communications (PTY) Ltd. at <a moz-do-not-send="true" href="http://www.smilecoms.com/disclaimer" target="_blank">http://www.smilecoms.com/disclaimer</a>
<fieldset></fieldset>
<pre>_______________________________________________
sr-dev mailing list
<a moz-do-not-send="true" href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a moz-do-not-send="true" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
</pre>
<span><font
color="#888888"> </font></span></blockquote>
<span><font color="#888888">
<br>
<pre cols="72">--
Daniel-Constantin Mierla - <a moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Kamailio World Conference, April 16-17, 2013, Berlin
- <a moz-do-not-send="true" href="http://conference.kamailio.com" target="_blank">http://conference.kamailio.com</a> -</pre>
</font></span></div>
<br>
_______________________________________________<br>
sr-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:sr-dev@lists.sip-router.org"
target="_blank">sr-dev@lists.sip-router.org</a><br>
<a moz-do-not-send="true"
href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev"
target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br>
</blockquote>
</div>
<table style="width:450pt"
border="0" cellpadding="0"
cellspacing="0" width="600">
<tbody>
<tr style="min-height:10.5pt">
<td rowspan="3"
style="width:173.25pt;padding:0cm;min-height:10.5pt"
valign="top" width="231">
<br>
</td>
<td
style="padding:0cm;min-height:10.5pt"
valign="top"><br>
</td>
</tr>
<tr style="min-height:42.75pt">
<td
style="padding:0cm;min-height:42.75pt"
valign="top"><br>
</td>
</tr>
</tbody>
</table>
<span
style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"></span></div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<pre>This email is subject to the disclaimer of Smile Communications at <a class="moz-txt-link-freetext" href="http://www.smilecoms.com/disclaimer">http://www.smilecoms.com/disclaimer</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
</pre>
</body>
</html>