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

Daniel-Constantin Mierla miconda at gmail.com
Wed Aug 27 13:43:42 CEST 2014


Hello,

parsing should be done only if the onsend route is enabled:

- perhaps would be good to add a define in onsend.h, not to hardcode in 
other modules the test on onsend_rt.rlist, like:

#define onsend_enabled() (onsend_rt.rlist[DEFAULT_RT]?1:0)

 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

#define onsend_enabled(rtype) 
(onsend_rt.rlist[DEFAULT_RT]?((rtype==SIP_REPLY)?onsend_route_reply:1):0)

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).

Cheers,
Daniel

On 27/08/14 13:19, Lucian Balaceanu wrote:
> Hi,
>
> In response to the previous mail, I have attempted to create a 
> suitable patch for calling onsend_route in the replies. However, I 
> need some input from somebody more knowledgeable.
>
> You will find I changed the following code locations:
>
> forward.c  -> do_forward_reply() function
> sl_funcs.c -> sl_reply_helper() function
> t_reply.c  -> _reply_light() function
>
> Am I missing out any location where the onsend function should be 
> called? I am particularly thinking of such cases as relayed replies, 
> retransmitted replies (t_retransmit_reply).
>
> Additionally, in t_reply.c, I force the parsing of the message buffer 
> into a sip_msg; do you see this as a perceivable slowdown in general 
> kamailio performance?
>
> Any input is valuable.
>
> Thank you,
> Lucian
>
> On 08/04/2014 05:16 PM, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> the reason for onsend_route was to get access to outgoing buffer 
>> (what is sent to network) as well as the local socket and remote 
>> socket attributes (proto, ip, port). There is no option to make 
>> changes on the outgoing buffer anymore, the action that could be done 
>> is stop sending to the network (discarding).
>>
>> It was done for requests, but there were discussions to make this 
>> available for replies as well. The code you provided in not in public 
>> repository, but it seems it aims for that (at least for stateless 
>> replies). The onsend callback should be indeed called before 
>> msg_send() to get the behavior expected (to be able to drop the 
>> reply, for example).
>>
>> If you get a patch to have the onsend_route for replies, it would be 
>> welcomed on the public repo.
>>
>> Cheers,
>> Daniel
>>
>> On 04/08/14 15:57, Lucian Balaceanu wrote:
>>> Hi,
>>>
>>> I am currently trying to understand some kamailio code and came 
>>> across this construct inside do_forward_reply() function (code in 
>>> italics is not part of upstream kamailio):
>>>
>>> *do_forward_reply(struct sip_msg* msg, int mode){*
>>>     ...
>>>     ...
>>>     apply_force_send_socket(&dst, msg);
>>>
>>>     if (msg_send(&dst, new_buf, new_len)<0)
>>>     {
>>>         STATS_RPL_FWD_DROP();
>>>         goto error;
>>>     }
>>> /*    ...
>>>     dst.send_sock=get_send_socket(msg, &dst.to, dst.proto);
>>>     ...
>>>     run_onsend(msg, &dst, new_buf, new_len);*/
>>> *}*
>>>
>>> Is there really a sense in calling run_onsend() after the msg_send() 
>>> function? In my understanding (based on onsend_route uasge) 
>>> run_onsend() is used to make some last minute changes before a 
>>> message is sent to a destination.
>>>
>>> Thank you,
>>> Lucian Balaceanu
>>>
>>>
>>> _______________________________________________
>>> sr-dev mailing list
>>> sr-dev at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>> -- 
>> Daniel-Constantin Mierla -http://www.asipto.com
>> http://twitter.com/#!/miconda  -http://www.linkedin.com/in/miconda
>>
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany ::: Oct 15-17, San Francisco, USA

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


More information about the sr-dev mailing list