<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello Lucian,<br>
    <br>
    I applied your patch with some fixes.<br>
    <br>
    I haven't checked with stateful replies, at some point a function
    from core should be used. You can go ahead and see if it works, if
    not, let me know and I can look into it as well. You can follow the
    callbacks for TMCB_RESPONSE_OUT or TMCB_RESPONSE_FWDED inside tm
    code, they should lead to the place where a sip response is going to
    be sent out.<br>
    <br>
    Cheers,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 27/10/14 12:51, Lucian Balaceanu
      wrote:<br>
    </div>
    <blockquote cite="mid:544E31B9.9060802@1and1.ro" type="cite">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      Hello Daniel,<br>
      <br>
      I must admit I only saw your mail last Friday. Until the 10th of
      October I was also on vacation. I know that you actually committed
      some of the changes together with your comments on the 12th this
      month. <br>
      <br>
      I don't know if we can consider the topic of the patch closed. As
      far as I understand, the state-full replies have not been
      addressed, right? (There should be a change in the t_reply.c) I
      followed the code to the relay_reply but I did not yet come to
      find the send function. Should I pursue further?<br>
      <br>
      Thank you,<br>
      Lucian Balaceanu<br>
      <br>
      <blockquote cite="mid:5448B8C5.5030007@1und1.de" type="cite">
        <div class="moz-forward-container"> Hi Lucian,<br>
          <br>
          somehow I forgot to follow up on this. But we need to get
          sorted out soon, before we release, so it works as expected
          with the new version. See more comments inline.<br>
          <br>
          <br>
          <div class="moz-cite-prefix">On 17/09/14 18:09, Lucian
            Balaceanu wrote:<br>
          </div>
          <blockquote cite="mid:5419B240.5000005@1and1.ro" type="cite">
            Hi Daniel,<br>
            <br>
            Please forgive me for my delay in responding to your mail.<br>
            Please find attached a second version of the
            onsend_route_reply patch (which again has some problems). As
            per your previous indications I did the following:<br>
            <br>
            <b>Issue1</b><br>
            <blockquote cite="mid:53FDC46E.7050909@gmail.com"
              type="cite"> From performances point of view, there can be
              added a config parameter to enable running of onsend_route
              for replies:<br>
              <br>
              onsend_route_reply = 0|1<br>
            </blockquote>
            <br>
            Following <a moz-do-not-send="true"
              class="moz-txt-link-freetext"
              href="http://www.asipto.com/pub/kamailio-devel-guide/#c08add_parameters">http://www.asipto.com/pub/kamailio-devel-guide/#c08add_parameters</a>
            I have tried to add onsend_route_reply parameter. The code
            compiles, but when trying to start kamailio with this
            parameter inside, the parsing fails with syntax errors
            signaling:<br>
            <br>
            <i> 0(1321) :<core> [cfg.y:3423]: yyerror_at(): parse
              error in config file kamailio-basic.cfg.4.1, from line
              107, column 1 to line 108, column 0: syntax error<br>
               0(1321) : <core> [cfg.y:3423]: yyerror_at(): parse
              error in config file kamailio-basic.cfg.4.1, from line
              107, column 1 to line 108, column 0: <br>
              ERROR: bad config file (2 errors)</i><br>
          </blockquote>
          <br>
          The issue is:<br>
          <br>
          <pre wrap="">+<INITIAL>{ONSEND_RT_REPLY}        {  yylval.intval=atoi(yytext);
+                                               yy_number_str=yytext; return NUMBER; }

It should be:

+<INITIAL>{ONSEND_RT_REPLY}       {  yylval.intval=atoi(yytext);
+                                               yy_number_str=yytext; return ONSEND_RT_REPLY; }
</pre>
          <br>
          <blockquote cite="mid:5419B240.5000005@1and1.ro" type="cite">
            <br>
            <b>Issue2</b><br>
            <blockquote cite="mid:53FDC46E.7050909@gmail.com"
              type="cite"> #define onsend_enabled(rtype)
(onsend_rt.rlist[DEFAULT_RT]?((rtype==SIP_REPLY)?onsend_route_reply:1):0)<br>
            </blockquote>
            That is to say you see it best to take the chek for
            onsend_rt.list[DEFAULT_RT] from inside run_onsend() function
            and call this onsend_enabled(...) before the run_onsend()? <br>
          </blockquote>
          <br>
          This is to detect whether the onsend_route should be executed
          for SIP replies. The condition being:<br>
          <br>
          - if is a sip reply and onsend_route is set and the
          onsend_route_reply parameter is 1<br>
          <blockquote cite="mid:5419B240.5000005@1and1.ro" type="cite">
            <br>
            <b>Issue3</b><br>
            <blockquote cite="mid:53FDC46E.7050909@gmail.com"
              type="cite"> On the other hand, is onsend_route also
              executed for local requests? I had in mind it is only for
              received requests that are forwarded ... Iirc, on
              onsend_route, the sip message is the one received, the
              outgoing content being accessible via $snd(buf).<br>
              <br>
            </blockquote>
            I agree with you with taking out the locally generated
            requests and only left the run_onsend call in
            do_forward_reply function (inside forward.c).<br>
            Could you point me to the reply relaying function that is
            called for state-full processing? <br>
          </blockquote>
          Stateful processing for replies is mainly done in t_reply.c
          from tm module. At some point there should be a send buffer
          function call.<br>
          <br>
          Cheers,<br>
          Daniel<br>
          <blockquote cite="mid:5419B240.5000005@1and1.ro" type="cite">
            <br>
            Thank you and sorry again for my late answer,<br>
            Lucian<br>
          </blockquote>
          <br>
          <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://twitter.com/#%21/miconda">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a></pre>
          <br>
        </div>
        <br>
      </blockquote>
      <br>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<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>