[sr-dev] Is there a sense in calling run_onsend() after the msg_send() function?

Daniel-Constantin Mierla miconda at gmail.com
Tue Sep 30 15:42:33 CEST 2014


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140930/bcfe83f6/attachment.html>


More information about the sr-dev mailing list