I download WebRTC's source code, but I can't find any libjingle's code at the WebRTC, and can't find how WebRTC use libjingle (can't find such as XmppTask Class in WebRTC's code)
Can anyone give me a guide?
These are two separate packages.
WebRTC is the multimedia part only - nothing to do with signaling (which is what XMPP and Jingle are).
libjingle is used to build an application that runs on a device or a PC while WebRTC is designed and targeted at being integrated into HTML pages using a web browser.
WebRTC - audio/video/data transfer p2p.
Signalling - establishes connection between 2 WebRTC based apps.
Take a look over this android webrtc videocall app and this nodejs signalling relay.
You send a 'message' (check in file sockets.js
in relay project at the following line
`client.on('message', function (details) {`
to see what's happening with it) of type 'init' from device A to device B, then device B creates an offer to device A. After that A answers to B, exchanging Ice Candidates then video connection is ready. (I'm sorry if i wasn't very explicit).
Libjingle is now part of the WebRTC project and code base. WebRTC is a set of API's that make video, audio, and data interaction simple through a peer-to-peer connection. Where as Libjingle is used as a part of the WebRTC implementation to handle NAT traversal and stream handling.
Libjingle was initially used solely through XMPP to create a point-to-point connection between two chat clients. The technologies used are ICE, STUN, and TURN.
WebRTC has a large focus on Javascript mainly because its core usefulness is using the functionality through a browser. However, WebRTC (with Libjingle), can be built for many platforms and has a number of different APIs in various languages.
Libjingle is written in C++, so can be used by itself without WebRTC. However, I recommend using Libjingle's functionality through the way of the WebRTC APIs.