I read about both in kurento's java doc webrtcendpoint and rtpendpoint. But both of them indicate that they function in a very similar way. Both can be used as offerer and offeree to exchange media.
I also refered to a similar question where a use of the two is shown. But not able to get a distinct difference.
What is the need to create both explicitly? What is the typical use case scenario for the two. A couple of examples for both would be greatly appreciated.
WebRtcEndpoint
is the implementation of the WebRTC
specification. From this draft
The RTP framework comprises the RTP data transfer protocol, the RTP control protocol, and numerous RTP payload formats, profiles, and extensions. This range of add-ons has allowed RTP to meet various needs that were not envisaged by the original protocol designers, and to support many new media encodings, but raises the question of what extensions are to be supported by new implementations. The development of the WebRTC framework provides an opportunity to review the available RTP features and extensions, and to define a common baseline RTP feature set for all WebRTC Endpoints. This builds on the past 20 years of RTP development to mandate the use of extensions that have shown widespread utility, while still remaining compatible with the wide installed base of RTP implementations where possible.
RTP and RTCP extensions that are not discussed in this document can be implemented by WebRTC Endpoints if they are beneficial for new use cases. However, they are not necessary to address the WebRTC use cases and requirements identified in [RFC7478].
Basically, WebRTC is RTP with other things built on top of it. It focus on real-time communications for the browser. Using one or the other depends on whether you need to have a browser client or not, for one thing.