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(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
.