Hi Lucian,
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.
On 17/09/14 18:09, Lucian
Balaceanu wrote:
Hi Daniel,
Please forgive me for my delay in responding to your
mail.
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:
Issue1
From performances point of view, there
can be added a config parameter to enable running of
onsend_route for replies:
onsend_route_reply = 0|1
Following http://www.asipto.com/pub/kamailio-devel-guide/#c08add_parameters
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:
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
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:
ERROR: bad config file (2 errors)
The issue is:
+<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; }
Issue2
#define onsend_enabled(rtype)
(onsend_rt.rlist[DEFAULT_RT]?((rtype==SIP_REPLY)?onsend_route_reply:1):0)
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()?
This is to detect whether the onsend_route should be
executed for SIP replies. The condition being:
- if is a sip reply and onsend_route is set and the
onsend_route_reply parameter is 1
Issue3
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).
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).
Could you point me to the reply relaying function that
is called for state-full processing?
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.
Cheers,
Daniel
Thank you and sorry again for my late answer,
Lucian
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda