One thing that would speed up the development of outbound is if someone else (who knows about the internals of the registrar and usrloc modules) took on the tasks relating to those. These are basically:
- Handle multiple registrations with same instance ID but difference reg-id (may already be supported)
It needs to be handled properly in parallell and serial forking, which I have not seen. May have missed it though.
My point exactly. I have no experience with the registrar and usrloc modules, and the outbound development breaks neatly into two parts:
- Have registrar populate an AVP array (specified as a modparam), ordered by reg-id, when a lookup() is performed - similar to dispatcher (but don't break parallel and serial forking) - set $du to first contact in the AVP array.
Right.
And for being able to use outbound for NAT traversal on a single server (so no Edge proxies):
- New API (lookup_next_dest()) in registrar that allow you to work through the set in order if a 430 is returned (API needs to remove failed contacts from the location table) - again, similar to dispatcher
- Make registrar able to detect that the top Path-URI for the contact is actually an interface on the local server, and if it has an ;ob parameter and a flow token, set $du based on that.
This would allow me to focus on the Edge server behaviour, which involves changes to path, rr, a new outbound module, and some configuration examples (for edge and proxy/registrar).
And new response codes.
All of the checking/handling of the new response codes will be in failure_routes. So I don't think there is really any work required here.
I do long for an eventroute for broken TCP connections from clients.
Not sure how this would help with outbound as the proxy/registrar and edge server (with the client connections) will be separate anyway?
Thanks for the feedback. I guess we have to visit Berlin and feed an unspecified group of developers with Bratwurst and Beer to get some help here... :-)
If I had time to visit Berlin I'd have more time to spend on outbound in the first place
-- Peter Dunkley Technical Director Crocodile RCS Ltd |