[Devel] BRANCH route support

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Aug 23 20:02:31 CEST 2005


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



More information about the Devel mailing list