5
votes

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?

3
You could use a SIP server that supports both traditional SIP (over TCP/UDP) and WebSockets to implement a gateway function. An example enabling technology would be Mobicents SIP Servlets (see code.google.com/p/sipservlets/wiki/Welcome?tm=6).yotommy
Would making a gateway be as simple as just connecting the user agents though a proxy that supports both or would certain headers need to patched/media encoded/etc.?awriis
The answer to this depends on the interoperability of your endpoints (sipml5 and some other unspecified SIP UAs). To be clear, you would need to implement a proxy in Mobicents SIP Servlets. The gateway function has to be done somewhere, after all.yotommy

3 Answers

3
votes

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

1
votes

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 .

1
votes

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.