[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