Why SIP and why Verto?
Remember: this choice only impacts how you write the Javascript on the webpage the browser loads to access FreeSWITCH server. We'll see later in this chapter we can have the same exact application written for each one of protocols, indistinguishable from the end user's point of view and experience.
SIP albeit complex will be intimately known to all programmers coming from a telecom background, with its concepts of session, dialog, transaction, the familiar REGISTER-INVITE-BYE methods, etc. It's the perfect choice to integrate WebRTC clients in a complex environment, and enjoys 20 years of experience in scaling, monitoring, deploying.
Verto is a completely different experience: is very simple and it uses programming constructs already familiar to web programmers, such as JSON data structures. Also, Verto optionally provides for interaction with FreeSWITCH internal server side APIs and bidirectional synchronization of data structures.
For example, with Verto you can have a data structure in FreeSWITCH (let's say the list of videoconference participants) that's synchronized on all Verto clients transparently and in real time, so if a new participant comes in (even from PSTN) its presence will be immediately visualized by all Verto clients' browsers, without any need for any client side action (eg, no polling).
You can replicate this behavior in a SIP based JavaScript (a clever programmer can do whatever she wants, are not them all just bytes?) using data streams, special messaging, push techniques, and so on, but in Verto it's native and takes just a few lines of code.