I also have worked with sip.js projects to implement a failover strategy for our softphone application. This required implementing new data into our token which allowed sip.js to identify failover servers. I also implemented logic to ensure the end user was not dropped off of their current call if the primary server came back online. This development allowed our customers to experience greater uptime and an increase in service that they had not seen before.
One of my first projects was working with an event centric application which is used by clients to monitor calls being placed in larger organizations. I developed a new application to allow calls a drag and drop functionality to be put on hold, transfered or unparked depending upon the users wishes. This relied heavily on events coming in through websocket connections.