[OpenSIPS-Users] [Release] Planing 1.8.1 minor release

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Aug 14 14:05:55 CEST 2012


Hi Saul,

The idea with the "apply_changes" is not the most fortunate, I would say 
- mainly as it is difficult to use and needs scripting. Why difficult? 
basically you should keep track of changes over the body and decide when 
to call it from script. Like in your case you should call it before call 
it before the strip_body() - to be sure you strip all previous changes 
too - and once again after - so future functions will see the actual strip.
Now considering that you may have 3-4 functions changing the body (codec 
ops, removing/adding body, media relay, etc), the whole scripting 
integration will become a nightmare - or to be on the safe side, you 
should call it all the time before body related functions. But not even 
this should cover all cases - think about body changes you are not aware 
from script (via callbacks when using rtpproxy or mediaproxy).....

What I would rather explore is : making the lump mechanism to 
automatically discard all changes over a msg chunk that is to be 
deleted. This will simply solve the problem. Whatever the order of ops 
(change versus delete), at the end you will see that there is a change 
inside a delete part, so simply drop the change.

What do you think ?

Regards,
Bogdan

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 08/14/2012 11:29 AM, Saúl Ibarra Corretgé wrote:
> Hi guys,
>
> On Aug 13, 2012, at 9:55 PM, Saúl Ibarra Corretgé wrote:
>
>> Hi Rudy,
>>
>> On Aug 13, 2012, at 8:19 PM, Rudy wrote:
>>
>>> Bogdan,
>>>
>>> Great work on all the improvements. There is a patch I submitted a
>>> while back for media proxy. I explained this to Vlad that there could
>>> be other scripts / modules effected. Basically, once you call
>>> strip_body() on a message, internally you are still able to access
>>> that body (in some cases an SDP). The get_body() function should not
>>> return anything if strip_body() was called. My patch fixes this
>>> problem only in mediaproxy by checking lumps for deleted body. A more
>>> elegant solution would be to fix opensips internally as described
>>> above (ie: get_body() should fail after strip_body() being called) .
>>>
>>> https://sourceforge.net/tracker/?func=detail&aid=3530859&group_id=232389&atid=1086412
>>>
>>> It would be great if we can get this fix, or a more proper one into 1.8.1 .
>>>
>> I talked about this with Vlad at ClueCon and there doesn't seem to be a better approach given the limitations of the lump system. I think we can get this into 1.8.1 after a final look.
>>
> After sleeping over it, I don't think this is such a good idea, because it doesn't work in all cases. If you use the separated functions like this it will not work:
>
> use_media_proxy();
> ....
> strip_body();
>
> Any other module that also operates on the message body suffers from this, and I'd rather not add tens of workarounds here-and-there.
>
> The proper solution would of course be to get rid of the lumps :-), but since that is unlikely to happen soon, I suggest we reconsider having a apply_message_changes function, which would apply all the lumps immediately, so the next function that operates on the message would find it changed already. Example:
>
> strip_body();
> apply_message_changes();
> ...
> use_media_proxy();
>
> This function is already implemented in Kamailio and a while ago I started porting it but I didn't finish it. It should be pretty straightforward to finish it, so if we settle on this approach I could finish it. However, being a new feature it would only make it to 1.9 version.
>
>
> Regards,
>
> --
> Saúl Ibarra Corretgé
> AG Projects
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>



More information about the Users mailing list