I'm trying to implement a sip server for connecting to from an HTML
sip client(made using sipml5). During my research into doing this I've come across sip over web-sockets which might be useful to me, however, I am unsure if a user agent connecting through sip over web-sockets
to a compatible server would then be able to successfully make a call to some one using an incompatible server(i.e. calling from SIP over web-sockets
to true SIP).
I know webrtc2sip
can be used for connecting to legacy networks but I would rather avoid using another proxy if at all possible. So, is it possible to connect to a compatible SIP
server using SIP
over web-sockets
then make a call from this user agent to another that does not support SIP
over web-sockets
without using a gateway
?
You are right, SIP over Websockets is a draft, not specification. And I do not know many SIP vendors who support this draft.
Possible solution is truly websocket-SIP gateway. For example Flashphoner Web Call Server is implemented as a gateway which works through websockets with browser and works via SIP(TCP and UDP) with SIP servers. Therefore it is compatible with any server that supports RFC3261 - standard SIP specification.
Brief signaling scheme is:
Browser - [Websockets] - Web Call Server - [SIP TCP, UDP] - any SIP Server
Brief streaming scheme:
Browser - [WebRTC = SRTP, DTLS, ICE, STUN ] - Web Call Server - [RTP UDP] - any SIP/RTP Server
Mobicents SIP
Servlets Example already provides a B2BUA
Application taking care of that for you. The Media is peer to peer (or through a TURN
Relay Server) but if you need to bridge to a Media Server, you can indeed patch the SDP
Body to make the media of each party go through the Media Server (pending it supports Media related codecs from WebRTC, DTLS-SRTP
etc) to add conferencing, recording type of capabilities.
An alternate way is to use kamailio as it understands both sip and ws sip .
when you say "implementing a sip server " is it a simple registrar or proxy server or you want cal control logic / presence other features ?
In all cases kamailio fulfills all requirements , plus it is opensource .