can anyone give me some pointers or a list of some of
these complications
so that I can further research to see how its is done.
There are 3 things you should do:
1. Stop Kamailio from acting as the registrar.
2. Make sure that NAT traversal information is captured and relayed to
the registrar.
3. Make sure the proxy stays in the path of future requests back to the client.
For (1) look at replacing save() with forward() in the default config.
For (2) I would recommend add_contact_alias() and handle_uri_alias(),
they are awesome.
For (3) You can add a Path header or just have outbound proxy settings
on your other servers.
The approach also depends on whether you still want Kamailio to do the
authentication or if this should be handled by the registrar too.
Richard