[Users] BRANCH route support
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Wed Aug 24 17:28:58 CEST 2005
Hi Iqbal,
I was thinking to a short doc to describe the route types and their
utility, what functions may or may not be called and so on....
regards,
bogdan
Iqbal wrote:
> tks, I was just thinking with all these new features a simple one
> paragraph of "how to use it" would help , because then users like me
> could see how it may help/fit into their scenario
>
> Iqbal
>
> Bogdan-Andrei Iancu wrote:
>
>> Hi Iqbal,
>>
>> you can use the branch route if you want to add/remove headers
>> independently, per branch. Imagine the following scenario:
>>
>> you are doing parallel forking to a phone and to a GW; for the phone
>> you want to add header to set the ringing type, but this make no
>> sense to send also to GW; on the other hand you want to add to GW
>> some headers containing billing information, info that you do not
>> want to go also to the phone.
>>
>> So, what you do in branch route? if uri points to GW, add the billing
>> (or whatever) header to the request; if points to an usrloc client,
>> add the ringing type header.
>>
>> regards,
>> bogdan
>>
>> Iqbal wrote:
>>
>>> So as a user, how would/could I use this
>>>
>>> Iqbal
>>>
>>> Bogdan-Andrei Iancu wrote:
>>>
>>>> Hi everybody,
>>>>
>>>> I just finished adding support for BRANCH routes. The idea and
>>>> frame were partial ported from SER (thanks to Juha for extracting
>>>> and adapting patches). For those who are not familiar with this
>>>> concept: branch route is a route to be execute separately for each
>>>> branch before being sent out - changes in that route should reflect
>>>> only on that branch.
>>>>
>>>> I say partial because the features, implementation were improved.
>>>> Shortly here is a list:
>>>> - remove from grammar default BRANCH ROUTE definition - since
>>>> this is a 100% TM route, make no sense
>>>> - RURI may be changed from a branch route (the routing will
>>>> accordingly change); This capability is essential, since there are
>>>> core function which alter the RURI, functions which cannot be
>>>> blocked in specific route types - not handling this, may easyly
>>>> lead to memory faults or leaks.
>>>> - flags per branch - if flags are changed in branch_route, the
>>>> change will not be visible for other branches, but it will be
>>>> visible for all replies of that branch (it might be useful for per
>>>> branch NAT traversal)
>>>> - full AVP support in branch route
>>>> - more efficient handling of lumps (changes in request) -
>>>> instead of cloning and removing the entire lump tree for each
>>>> branch, using lump flags, after each branch, the original lump tree
>>>> will be just cleaned only what was added during branch route will
>>>> be removed).
>>>>
>>>>
>>>> still pending: how to handle append_branch() core function.....I
>>>> will prefer to handle properly all core functions, since their
>>>> execution cannot be banned from specific routes.
>>>>
>>>> For the moment only textops, avpops and xlog modules were enabled
>>>> for branch route. Other will come in the future.
>>>>
>>>>
>>>> regards,
>>>> Bogdan
>>>> PS: testing done only superficial (is quite late now).....any
>>>> help/reports are welcomed :D
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openser.org
>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>
>>>> .
>>>>
>>>
>>
>>
>> .
>>
>
More information about the Users
mailing list