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