Hi,

As 4.0.0 is now out I thought it would be a good time to post a summary for those who are interested in outbound support.

I have listed the known issues below, their status, and what is likely to be available as bug-fixes in the 4.0 branch.

1 Registrar module issues surrounding Require:/Supported: headers and outbound
Detail: The registrar module doesn't quite follow the procedures in RFC 5626 with regards to checking and setting Require: and Supported: headers (issue identified by Olle during SIPit)
Status: Fixed in pd/outbound (some tidying of the parser code still required)
4.0 branch: won't be fixed in this branch as some extensive changes have been made to the Kamailio parser code to support these fixes

2 Registrar module cannot unregister on broken flow
Detail: When a broken flow is detected the contact binding associated with that flow should be removed to prevent it being used again.  Failure to do so could result in a large number of old, broken, contact bindings ending up in usrloc (especially if long registration expiry times are used)
Status: Fix in progress in pd/outbound (updated API needs to be tested and ruid needs to be added to the destination set and made available as a PV)
4.0 branch: won't be fixed in this branch as the changes are architectural in nature

3 Forking issues with outbound
Detail: When a broken flow is found during forking we need to be able to re-send the request to that client instance immediately without waiting for all other forked legs to complete (issue identified by Olle during SIPit)
Status: Hugh Waite is working on this. An email describing the proposed fix will be sent to sr-dev soon for others to comment on.
4.0 branch: won't be fixed in this branch as this will require extensive architectural changes relating to the handling of branch failures

4) Broken in-dialog routing when using outbound
Detail: In-dialog requests (including ACK and BYE) are incorrectly routed when outbound is used (issued identified by Olle during SIPit)
Status: The bug is in the loose routing code in the rr module.  I now have a test system for this here and will work on this issue once issues 1 and 2 are finished.
4.0 branch: will be fixed in this branch.  It should be a relatively small change in one function in the rr module.

The upshot of this is that I expect Kamailio 4.0.1 (when it is released) to be suitable for use as an outbound edge proxy, but anyone wanting to use Kamailio as an outbound registrar will need Kamailio 4.1.0 and above.

Regards,

Peter