0.1.1-2 • Published 12 years ago

sipws v0.1.1-2

Weekly downloads
19
License
-
Repository
github
Last release
12 years ago

INTRO

sip.js is a SIP stack for node.js. It implements tranaction and transport layers as described in RFC3261.

This fork fixes a few bugs, and adds WebSocket transport (giving us 'tcp', 'udp', and 'ws'). It also uses a single UDP socket per transport instead of creating one per client dialog.

Things are a bit messy. Sorry!

INSTALL

npm install sipws

API

API is documented in doc/api.markdown

WEBSOCKET -> SIP PROXY

websocket-proxy.js contains a very basic proxy implementation. examples/websocket.js shows an example of its use.

Initially, this was written to provide a proxy for sipML5 (by Doubango Telecom). I have been attempting to support interoperability with FreeSWITCH. Although I can successfully REGISTER a sipML5 client, it attempts a bundled audio & video INVITE even when video is disabled, and I am unable to support this on my FreeSWITCH instance.

There are a few other issues with this: 1) SIP INVITEs can get really big, forcing you to use TCP transport 2) However, when you have "auth-calls"="true" in your FreeSWITCH SIP profile, sipML5 seems to send a dodgy 2nd SIP INVITE (the one containing the auth credentials) which is then rejected. 3) Furthermore, sipML5 (or WebRTC?) breaks standards in sending a=crypto in RTP/AVP, but thankfully Anthony M. has added an NDLB ("No Device Left Behind") option to support this: http://wiki.freeswitch.org/index.php?title=NDLB&redirect=no#NDLB-allow-crypto-in-avp

If anybody manages to get further than I did, please let me know. And I am more than willing to accept pull requests & patches.

-MDW

0.1.1-2

12 years ago

0.1.1-1

12 years ago

0.1.1

12 years ago

0.1.0

12 years ago