Hi,

I've added comments below...

On Wed, 2012-08-08 at 10:16 +0200, Muhammad Shahzad wrote:
1. try to forward registration requests to another registrar.
There is no reason this won't work as long as you take the NAT-like issues into account.  If it didn't work, then it won't have worked for the same reason that forwarding registers from a TCP client behind a NAT wouldn't work.

2. try to make calls between a webrtc and non-webrtc client.
This does work, but you have to make sure the client media stack supports the right set of options.  If there is a problem here it is probably to do with RTCweb interworking - not WebSockets.  I did a lot of testing with Boghe (http://code.google.com/p/boghe/ ) which does support the right media options.

3. try to send call from webrtc client to asterisk / freeswitch server to play e.g. some IVR, voice mail etc.

This will be a problem for the same reason as above.


and many other scenarios, which all have one thing common, that is one or more sip servers behind kamailio, webrtc clients do not work at all. They work only and only if kamailio is the only SIP server on the server side, mostly because kamailio currently do not have neither PATH nor outbound support.

Kamailio does have Path support (http://kamailio.org/docs/modules/stable/modules_k/path.html ), but it may require a small update to work with WebSockets.  Kamailio doesn't have Outbound support (yet), but there is a simple mechanism that means you can work without it (the example configuration for the WebSockets module contains this).

When I tested I used the following scenarios:
* WebSocket client -> Kamailio -> WebSocket client
* WebSocket client -> Kamailio -> TCP client
* WebSocket client -> Kamailio -> TLS client
* WebSocket client -> Kamailio -> UDP client
* WebSocket client -> Kamailio -> SCTP trunk -> Kamailio -> WebSocket client
* WebSocket client -> Kamailio -> TCP trunk -> Kamailio -> WebSocket client
* WebSocket client -> Kamailio -> TLS trunk -> Kamailio -> WebSocket client
* WebSocket client -> Kamailio -> UDP trunk -> Kamailio -> WebSocket client
* WebSocket client -> Kamailio -> SCTP trunk -> Kamailio -> TCP client
* WebSocket client -> Kamailio -> TCP trunk -> Kamailio -> TCP client
* ... and so on

I also did some testing with secure WebSocket connections.  All worked for me.

Regards,

Peter
-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd