Hello,
I have merged the Edge Proxy support into git master. I'd appreciate it
if anyone who has a client that supports outbound (and a registrar that
supports it) as I have been travelling the last couple of weeks while I've
been working on this and have had access to neither.
I thought it would also be worth summarising what I know is still required
for full outbound support on Kamailio. I hope to have time to do some of
this (items 1 and 2 specifically) during the week, but it will be my first
week back in the office and I am travelling again the week after. If I
have time I will do some of these - but if there is anyone else who sees
these as particularly important and wants to pick them up I'd be grateful:
1) registrar module support for RFC 5626 section 6:
When receiving a REGISTER request, the registrar MUST check from its
Via header field if the registrar is the first hop or not. If the
registrar is not the first hop, it MUST examine the Path header of
the request. If the Path header field is missing or it exists but
the first URI does not have an "ob" URI parameter, then outbound
processing MUST NOT be applied to the registration. In this case,
the following processing applies: if the REGISTER request contains
the reg-id and the outbound option tag in a Supported header field,
then the registrar MUST respond to the REGISTER request with a 439
(First Hop Lacks Outbound Support) response; otherwise, the registrar
MUST ignore the "reg-id" parameter of the Contact header.
2) registrar modparam that specifies whether outbound is supported,
required, or neither.
Behaviour when neither:
* As now
Behaviour when supported:
* Add Supported: header with outbound options-tag to the 200 OK
Behaviour when required:
* Reject (with 421 Extension Required) REGISTER requests without the
outbound options-tag in a Supported: or Require: header
* Add Supported: and Require: headers with outbound options-tag to the
200 OK
3) Single server (combined edge proxy and registrar) behaviour
4) Testing along side registrar and usrloc module changes for multiple
registrations from a single UA.
Note: There shouldn't be any conflict here as the edge and registrar
changes should be independent of each other. However, I have no idea
how to configure and use the new registrar and usrloc features.
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd