[OpenSIPS-Users] [RFC] OpenSIPS 2.0 - changes on the SIP messages

Richard Revels rrevels at bandwidth.com
Wed Apr 28 20:07:26 CEST 2010


Being able to make changes on a branch and have those changes disappear when the branch does is very handy.

So far, the issue of not being able to change a header in script because it had already been changed in a function call hasn't been a major issue for me either.  I wonder if the example given in another email of needing to add a tag after calling fix_natted_contact couldn't be resolved by changing the fix_natted_contact function to accept a tag parameter.

Fast is good.  At least in this context.

Richard

On Apr 28, 2010, at 1:45 PM, Bogdan-Andrei Iancu wrote:

> Hi Brett,
> 
> Thanks for the feedback - one of the goals of my email was to see how 
> "serious" and "spreading" is the issue with changes being applied at the 
> end. If the users do actually see here no problem, fine with me :)
> 
> Best regards,
> Bogdan
> 
> Brett Nemeroff wrote:
>>> From a user's perspective...
>> I can clearly see the need to pull information from the original 
>> message as well as the "processed, unsent message". I'm aware of this 
>> issue, but I've never ran into an issue where it's really been a 
>> problem. Typically, these issues are resolved by instead of using 
>> something like message headers, using previously set AVPs in the 
>> script. Maybe my assumption is from my lack of running into the 
>> problem, but I *think* it can be resolved by smart scriptwriting...
>> 
>> I don't know a whole lot about how the message is processed under the 
>> hood, but.. from a user perspective, I'd rather change my 
>> scriptwriting to handle these issues (assuming there is a way to 
>> mitigate the issue) than make an architectural change that would 
>> overall impair performance and scalability.
>> 
>> -Brett
>> 
>> 
>> On Wed, Apr 28, 2010 at 5:40 AM, Bogdan-Andrei Iancu 
>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>> 
>>    Hi,
>> 
>>    sorry for crossposting, but I thing this topic is interesting both for
>>    users (as experience) and for developers (as solution).
>> 
>>    So, right now the code for 2.0 got to a stage were we need to "apply"
>>    changes on the received messages (like adding VIA headers, changing
>>    headers, etc). And before starting the work on this area, I would like
>>    to get some opinions on the available options:
>> 
>>       1) keep the current mechanism for changing the SIP messages by
>>    using
>>    lumps that are applied only when the message is sent out :
>>          Advantages: code is there and works; the mechanism is very
>>    fast ;
>>    no need to re-parse the message after the parsing
>>          Disadvantages : from script or code, you are not able to see the
>>    previous changes you did on the message, like:
>>                    if you remove a hdr, it will be marked to be removed,
>>    but you will still see it there after the removed
>>                    if you add a new hdr, you will not be able to see it
>>    (it will be actually added only when the message will be sent out)
>>                    if you replace the contact hdr (like after
>>    fix_nated_contact() ) will not see the new contact, but the old one
>>                    trying to apply 2 changes in the same area (like
>>    changing twice the contact) will result in bogus result.
>> 
>>       2) find a new approach that will allow to push in realtime the
>>    changes on messages
>>          Advantages: the change will take affect instantly, so all the
>>    disadvantages from 1) (as user experience in operating opensips) will
>>    disappear .
>>          Disadvantages : the code will probably be slower (the changes
>>    part), but will speed up other parts of the code (where you need to
>>    manually identify the prev changes);
>>                changed parts of the SIP message will require re-parsing
>>    (so the code will have to check the state of a header (if parsed
>>    or not)
>>    before each usage)
>>                you will not be able to undo changes on the SIP
>>    messages in
>>    an easy way (for example during the parallel and serial forking on
>>    per-branch changes)
>> 
>>    So this is the dilemma: if the current mechanism (with applying
>>    changes
>>    at the end) such a bad user experience (scripting) in order to try for
>>    2.0 a different approach ?
>> 
>>    I would like to hear some opinions from both people writing
>>    scripts and
>>    people writing code.
>> 
>>    Thanks and regards,
>>    Bogdan
>> 
>>    --
>>    Bogdan-Andrei Iancu
>>    www.voice-system.ro <http://www.voice-system.ro>
>> 
>> 
>>    _______________________________________________
>>    Users mailing list
>>    Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>    http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
>> 
>> ------------------------------------------------------------------------
>> 
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
> 
> 
> -- 
> Bogdan-Andrei Iancu
> www.voice-system.ro
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users




More information about the Users mailing list