Hi Jan,
Wow, that's a bold move! Knowing that it is relatively easy to migrate
such stuff to sip-router is very encouraging, thanks.
Could you send this patch to the mailing list and cc Juha?
> * enum - support for query on the originating side, useful in PSTN
> inbound processing
I think your improvements made it to the kamailio version which now
> * ratelimit - a much extended ratelimit module, with multiple
> queues, dynamic limiting capabilities based on internal/external
> indicators, random retry-after capabilities, etc; which although
> sent towards the SER trunk, never made it
resides in sip-router/modules_k/ratelimit. Please try to see if it
contains everything that you need. If yes then we can adopt the
kamailio version of the module and junk the ser version (and move the
module from modules_k to modules directory).
> * tls - some hashing functions
I'd be happy to see how we can integrate it into the tls module if you
send me a patch.
Yeah, we would be happy to host your code in our git repository on
sip-router, I think that this is a good idea, having all the stuff
available through git would make it much easier to integrate stuff.
First of all I suggest that we start by importing the whole openims
svn tree into a standalone project in our git repository. We can setup
scripts that will track the svn tree for a while and import any
changes done by your developers there until you announce that the
project migrated. Having the whole SVN repository imported this way
would allow us to merge selected parts (i.e. openims modules) into the
main repository with full history. That would be the first step. I
volunteer to set this up if you send me berlios usernames, full names
and email addresses (needed to convert svn commit usernames to git
commit logs with full names and emails) of all developers.
After that we can decide how to integrate it with sip-router. Let me
just enumerate all the options that come to my mind:
1) We keep openims as a standalone project within our git repository
2) We import all the patches and extra modules on a separate branch
within the main
repository.
3) We add all extra openims modules into to the master branch into a
new module
directory such as modules_o and commit patches that those modules needs.
4) We drop new openims modules into the directory modules and
integrate patches.
I think that there is no single best option, what would work best
depends on the nature of the changes that we need to do to existing
code (i.e. patches to sip-router core and modules) and also on your
long term goals with the openims project.
Option 1) would work well if you plan to keep openims as a standalone
project that draws code from sip-router. This option would give you
considerable freedom to do changes to the code (even extensive ones)
and yet remain synchronized with the main sip-router tree. We would
setup a new project for openims in our git repository and set it up in
such a way that it becomes easy to pull changes from the sip-router
repository into the openims repository. Whenever you have something
that is ready to be integrated into the main sip-router tree, you
could simply let us know that there is something we should pull and
once we do, the change would eventually propagate from sip-router to
openims next time you pull. Git makes this mode of operation
relatively painless, this is also roughly the model that the Linux
kernel uses.
Option 2) would give you the same amount of freedom as 1), but it
would probably be difficult to maintain a large number of changes on a
separate branch for extended periods of time (my own experience). In
my opinion this would only be suitable if the long term goal is to
fully integrate openims with sip-router, but we are unsure how long it
will take to integrate all necessary changes and patches.
Option 3) (a new module directory), I am not sure whether we really
need to put openims modules into a separate module directory. Having
two module directories is a temporary measure because we have two
versions of most modules, but our long term goal was to migrate them
where possible. I suppose that all openims modules are new, so we can
either put them in "modules" directory right away, or in "modules_s"
or "modules_k", depending on which version of existing modules their
require.
Option 3) and 4) are suitable if your long term goals is to merge
openims modules into sip-router and make them part of the sip-router
project. Note that this means that openims developers would have to
follow the sip-router way o development (releases, testing, code
integration), no matter how bad or good it is :-).
I would personally favor 1) if you want to continue on your own or 4)
if you want to integrate your stuff with sip-router, but let's see
what other have to say. In any case we can start with importing svn
into git, that's something we will need anyway.