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

Lucian Balaceanu lucian.balaceanu at 1and1.ro
Wed Aug 27 13:19:59 CEST 2014


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140827/86e3bd00/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: onsend_route.patch
Type: text/x-patch
Size: 4981 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140827/86e3bd00/attachment.bin>


More information about the sr-dev mailing list