"
WebRTC's signaling protocol (JINGLE)"
There is no signaling protocol (ex: SIP, XMPP, ...) or signaling transport protocol (ex: UDP, TCP, ....) mandated by WebRTC specs. Web applications are free to use whatever they want as long as it is supported by the browsers. SDP, offer/Answer, Encryption, and a few other things are mandatory though, and those part is described in the JSEP specification.
Practically, this is only a restriction for the signaling transport protocol mainly since browser do not let web app create UDP, TCP sockets. You are free to use SIP, XMPP, or JINGLe, or whatever you want as a signaling protocol in your web app, you just need to have JS code that implements the signaling part. There are many JS SIP libraries available today (jssip, sip,js, ....), and using SIP over WebSocket seems to be the most common approach for those who want to interoperation with the VOIP world. Most recent VoiP servers (kamailo, freeswitch, asterisk) will handle both SIP/WS and SIP/UDP-TCP and translate between each.
Some also use REST apis instead of WS for the signaling transport protocol. It makes repurposing an existing gateway for the web easier (e.g. Genband's SpiDR).
Finally, some other, who likes federation and presence, and/or want to interoperate with jabber, use XMPP or variations of XMPP (JINGLE, Matrix.org), which provides those two features out of the box.
There is no one-fit-all signaling. For some specific orthogonal use cases (see above) SIP and XMPP are great choices, for generic use case with no interoperability in mind (I dare say most of the web), some proprietary is always more flexible. JSON-formated content sent over WebSocket seems quite popular in that last case. The content itself would be application specific.
HTH
alex.