SlideShare a Scribd company logo
ORTC Lib 
Real-time Communication Library 
Introduction | August 2014
ORTC Lib - Introduction 
What is ORTC Lib? 
A C++ library and mobile wrappers based on ORTC (Object 
Real-time Communication) API Public Draft. 
API Public Draft: http://ortc.org (upper right hand side) 
Codebase: https://github.com/openpeer/ortc-lib 
1
ORTC - Other related projects 
Other ORTC projects dependent on ORTC Lib: 
Open Peer: P2P communications project 
http://openpeer.org 
ORTC Node: Node.js implementation (will require ORTC Lib server hardening) 
https://github.com/openpeer/ortc-node 
Other related proposed projects: 
JavaScript Shims 
● Upshim (WebRTC 1.0 ORTC) 
● Downshim (ORTC WebRTC 1.0)
ORTC Project Maintainer 
Who are the maintainers? 
Hookflash Inc. is the primary sponsor of the ORTC Open Source projects. 
This Canadian company, made up industry veterans, offers a PaaS for Real-time 
Communications. Hookflash is also the creator and custodian of Open 
Peer, an Open Source project for P2P communications. 
More on Hookflash: http://hookflash.com
ORTC Lib - Introduction 
What can it be used for? 
Enabling real-time communications (Voice, Video, Data Channel) for mobile and web via C++ & 
JavaScript libraries. The JS libs are out of scope for this project. 
What are the goals? 
The primary goal is to build an open source ORTC client reference implementation that will support all 
of the ORTC API objects, methods & attributes, using WebRTC open source components for 
maximum interoperability. 
Platforms: 
Under development: C++, iOS, Android 
Under consideration: Mac, Windows, Windows Phone
ORTC Lib - Value Statement 
Why should I use ORTC Lib? 
The libs have been built to the ORTC spec as it has 
evolved. This is the open source ORTC C++ library that is 
maintained by the specification founders, editors and 
authors.
ORTC Lib - Chrome Dependencies 
A word about Chrome Dependencies 
The maintainers wanted to provide an implementation of ORTC providing 
maximum flexibility for developers. 
Signaling: As signaling on the wire is not defined as part of WebRTC 1.0, the 
the maintainers removed all “on the wire” signalling from the library, (e.g. SDP 
offer/answer and Libjingle). 
ORTC is a WebRTC wire compatible "do as I say" API, that allows the 
developer to provide their own signalling in Javascript. As a result, a built-in 
SDP parser is not needed and the PeerConnection ICE implementation was 
replaced with a custom ICE implementation.
ORTC Lib - Chrome Compatibility 
Is ORTC Lib compatible with Chrome? 
Yes, it is interoperable with Chrome “on the wire” protocols. 
ORTC Lib uses Chrome's WebRTC real-time communication engine internally, 
minus the library formerly known as “Libjingle” (XMPP/Peer Connection, ICE 
and TURN). Thus RTP, SRTP, and codecs are all compatible, as they are 
common to Chrome.
ORTC Lib - License 
What is the license model? 
ORTC Lib is utilizes the FreeBSD open source model 
(see slide 21 for details).
ORTC Lib - Coverage 
Is it compatible with the ORTC Public Draft? 
Not yet. 
The public draft specification was completed and released 
on Aug. 20, 2014. As a result, the codebase has not yet 
achieved parity with the ORTC API Public Draft.
ORTC Lib - Work Completed 
● Removed Chrome dependencies: 
○ WebRTC renderer 
○ JSEP/SDP 
○ PeerConnection 
○ Libjingle 
● Codecs 
○ VP8 Support (Non SVC) 
○ ISAC Support 
○ Opus Support 
● Security 
○ OpenSSL 
● NAT Traversal 
○ Custom ICE/STUN/TURN implementation 
(RFC Standard) 
○ IPv6 
○ Extended support for Trickle ICE 
○ Extended support for Continuous 
Gathering Mode 
○ Multiple Network Interfaces (multi-homed) 
○ ICE Consent Freshness 
● DNS 
○ IDN (Internationalized Domain Names) 
○ SRV 
○ A / AAAA 
● Mobile 
○ Reduced energy consumption 
○ Application Backgrounding 
○ Reduced footprint 
● Assembly optimizations 
○ YUV conversion 
○ ...and too much more to list here 
● Media 
○ RTP / RTCP Multiplexing 
○ A/V Multiplexing 
○ Enhanced audio routing 
○ Video rotation control 
○ Facial recognition (iOS) 
● Logging 
○ Remote 
○ Local 
● Bug fixes
ORTC Lib - Outstanding Work Items 
What’s left to do? 
● General “tidying up” of the codebase. 
● RTCRTPSender / Receiver (+ support for "encoding params") 
● RTCDtlsTransport 
○ DTLS demux 
○ DTLS/SRTP key management 
● Data Channel (e.g. SCTP/DTLS/UDP, proprietary RTP data channel, etc.) 
● ICE 
○ Wrappers for ICE Listener/ICE Transport 
○ Support for "continuous" gather vs "complete" mode 
○ ICE Transport controller (bandwidth and ICE freezing) 
○ Custom gathering options (for mobility) 
● Media 
○ MediaStreamTrack 
○ Advanced VP8 - temporal scalability and simulcast 
○ H.264 support - RFC 6184 RTP payload transport 
● DTMF Sender 
● Stats 
● IdP
ORTC Lib - H.264 Work Plan 
The goal is to support the RFC 6184 RTP payload format based on the existing 
Chromium patch and Cisco’s Open H.264 encoder/decoder. 
However, the Open H.264 source will NOT be pulled into the codebase (though 
the build process will support compiling it, if desired). 
Initial goal is to support Constrained Baseline Profile, and to interoperate with 
with Mozilla Firefox. 
H.264/SVC (e.g. temporal scalability) and the RFC 6190 RTP payload format 
will not be supported initially.
ORTC Lib - Extending 
Should I contribute or fork? 
We encourage contributions & extensions to this library versus forking. By 
potentially creating multiple incompatible implementations of the ORTC API, 
forking could cause confusion among developers as well as in the market, 
adversely impacting the viability of the ORTC initiative. Once forked, recreating 
a unified code base will be time consuming and difficult.
ORTC Lib - Standards Compliance 
How will standards compliance be handled? 
The implementers of ORTC Lib intend to produce an implementation faithful to 
the WebRTC protocol specifications as well as the ORTC API specification. In 
order to keep the ORTC toolset close to the intent of the specifications, issues 
discovered will be brought back to the IETF RTCWEB WG and ORTC CG for 
discussion and resolution. 
The ORTC API is designed to support all features of the WebRTC 1.0 API as 
well as to be backward-compatible with the WebRTC 1.0 API via “shims”.
ORTC Lib - Contributing 
How do I contribute? 
Want to help? Excellent! 
Send an email to contribute@ortc.org with your 
ideas and we will respond with next steps.
ORTC Lib - Sponsoring 
How do I sponsor work? 
If you would like to contract the maintainers to do work that 
would be contributed back to the open source project under 
BSD license, please email your project ideas to 
sponsor@ortc.org
ORTC Lib - Thanks 
This Open Source work would not have been possible without valuable 
contributions from the community. The maintainers would like to thank those who 
contributed for their effort. 
Google Inc. 
- WebRTC contributions 
Microsoft Open Tech Inc. & Microsoft Inc. 
- Demo and Node.js contributions
ORTC Lib - Links 
Codebase: https://github.com/openpeer/ortc-lib 
Dev Forum: https://groups.google.com/a/ortc.org/forum/#!forum/discuss-ortc 
W3C CG: http://www.w3.org/community/ortc/ 
Current API Specification: http://ortc.org/ 
Contribute: contribute@ortc.org 
Sponsor: sponsor@ortc.org
ORTC Deep Dive
ORTC Lib - License Details 
License: 
Copyright (c) 2014, Hookflash Inc. 
All rights reserved. 
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the 
documentation and/or other materials provided with the distribution. 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing 
official policies, either expressed or implied, of the FreeBSD Project.
ORTC Lib - 3rd Party Libraries 
Library License Usage 
WebRTC BSD RTP, Codecs 
libvpx BSD VP8 
libyuv BSD YUV scaling and conversion 
opus BSD Audio codec 
usrsctp BSD SCTP 
libsrtp BSD SRTP 
op-services-cpp BSD Open Peer "services" submodule (ICE, TURN, STUN) 
OpenSSL BSD DTLS [replaceable] 
curl MIT/X HTTP [optional, HTTP usage outside browser context] 
CryptoPP Public Domain Crypto random, Buffering, Hex/base64 transforms [replaceable] 
UDNS LGPL DNS lookup (e.g. TURN server) [replaceable] 
zsLib BSD Asynchronous interface delegate API, timer, sockets, logging, JSON 
boost BSL Smart/weak pointer, Time, Threading, numerical parsing [replaceable]
ORTC Lib - Chrome Sync Policy 
Chrome Code Syncing 
While ORTC Lib uses Chromium's WebRTC engine, a fork of the WebRTC 
engine was performed. Updates from Chromium are synchronized periodically 
(and delta changes from Chromium are re-applied). 
Pull requests are not performed back to Chromium simply due to the amount of 
manual labour that is required to perform such duties.
Chrome WebRTC Architecture
ORTC Lib - Architecture 
RTP 
Encoding 
Params 
DTLS Transport 
IdP 
SCTP 
DNS Cache Settings 
UDNS 
3rd party library 
STUN 
zsLib 
boost 
HTTP/ 
HTTPS 
curl 
replaceable 
ICE TURN 
DTMF 
Sender 
ICE 
Transport 
Logger 
RUDP Security 
RSA 
(public 
key) 
Diffie 
Hellman 
Message 
Layer 
Security 
CryptoPP 
ICE 
Transport 
Controller 
ICE 
Listener 
RTP 
Sender 
RTP 
Receiver 
OpenSSL WebRTC 
Track 
(capture/r 
ender) 
ortc-lib 
mandatory component 
optional 
Backgro 
unding 
(mobile) 
op-services-cpp 
usrsctp
ORTC Lib - WebRTC Architecture 
Video 
Engine 
Voice 
Engine 
Audio 
Coding 
webrtc library 
webrtc media engine 
Audio 
Processing 
Audio 
Device 
Audio 
Mixer 
Video 
Coding 
Video 
Processing 
Video 
Capture 
Video 
Renderer 
libsrtp ICU JsonCPP libc++ libjpeg 
libvpx libyuv 
openssl 
/nss 
opus 
sql-lite usrsctp 
DTLS 
Transport 
ICE 
Negotiation 
JSEP/SDP 
Engine 
Peer 
Connection 
Media 
Stream/ 
Track 
RTP/RTCP 
WebRTC media component 
WebRTC library component 
removed 
3rd party library 
moved 
isac

More Related Content

What's hot

IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
Samsung Open Source Group
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networkingsuniltomar04
 
Video delivery in WebRTC – VP8, VP9 and beyond
Video delivery in WebRTC – VP8, VP9 and beyondVideo delivery in WebRTC – VP8, VP9 and beyond
Video delivery in WebRTC – VP8, VP9 and beyond
IMTC
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
Douglas Tait
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
Ryan Jespersen
 
Cisco's journey from Verbs to Libfabric
Cisco's journey from Verbs to LibfabricCisco's journey from Verbs to Libfabric
Cisco's journey from Verbs to Libfabric
Jeff Squyres
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond calls
Luis Lopez
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
srinivasa teja
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
openflow
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
Moises Silva
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
Patrick Cason
 
Rina sim workshop
Rina sim workshopRina sim workshop
Rina sim workshop
ICT PRISTINE
 
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)
Chad Hart
 
Python for IoT, A return of experience
Python for IoT, A return of experiencePython for IoT, A return of experience
Python for IoT, A return of experience
Alexandre Abadie
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
DevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSocketsDevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 
Webrtc overview
Webrtc overviewWebrtc overview
Webrtc overview
Olle E Johansson
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - redux
SDN_Paris
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
Luis Lopez
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
ALTANAI BISHT
 

What's hot (20)

IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Video delivery in WebRTC – VP8, VP9 and beyond
Video delivery in WebRTC – VP8, VP9 and beyondVideo delivery in WebRTC – VP8, VP9 and beyond
Video delivery in WebRTC – VP8, VP9 and beyond
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
 
Cisco's journey from Verbs to Libfabric
Cisco's journey from Verbs to LibfabricCisco's journey from Verbs to Libfabric
Cisco's journey from Verbs to Libfabric
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond calls
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
Rina sim workshop
Rina sim workshopRina sim workshop
Rina sim workshop
 
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)
 
Python for IoT, A return of experience
Python for IoT, A return of experiencePython for IoT, A return of experience
Python for IoT, A return of experience
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
DevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSocketsDevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSockets
 
Webrtc overview
Webrtc overviewWebrtc overview
Webrtc overview
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - redux
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 

Similar to ORTC Library - Introduction

Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218
phrobb
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec
 
FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?
SeanDuBois3
 
ONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDXONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDX
APNIC
 
WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)
Oracle
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
UppersideConferences
 
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge InteroperabilityWebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
Amir Zmora
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
Amir Zmora
 
Webrtc and tokbox
Webrtc and tokboxWebrtc and tokbox
Webrtc and tokbox
Muhammed YALÇIN
 
Charlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing InterfaceCharlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing Interface
CloudCamp Hamburg
 
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Itaapy
 
OOoCon Lpod
OOoCon LpodOOoCon Lpod
OOoCon Lpod
Alexandro Colorado
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
Ghodhbane Mohamed Amine
 
Webrtc - rich communication - quobis - victor pascual
Webrtc  - rich communication - quobis - victor pascualWebrtc  - rich communication - quobis - victor pascual
Webrtc - rich communication - quobis - victor pascual
Alan Quayle
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)
Victor Pascual Ávila
 
From leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_finalFrom leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_final
Lukas Ott
 
Using Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadieUsing Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre Abadie
Pôle Systematic Paris-Region
 
OGF standards for cloud computing
OGF standards for cloud computingOGF standards for cloud computing
OGF standards for cloud computing
Alan Sill
 
Day: Open Development
Day: Open DevelopmentDay: Open Development
Day: Open Development
Day Software
 
CoAPing with the Internet of Things
CoAPing with the Internet of ThingsCoAPing with the Internet of Things
CoAPing with the Internet of Things
Anmol Sarma
 

Similar to ORTC Library - Introduction (20)

Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218Open daylight openstack_meetup_20140218
Open daylight openstack_meetup_20140218
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?FOSDEM 2020: How can we make WebRTC Easier?
FOSDEM 2020: How can we make WebRTC Easier?
 
ONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDXONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDX
 
WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge InteroperabilityWebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
Webrtc and tokbox
Webrtc and tokboxWebrtc and tokbox
Webrtc and tokbox
 
Charlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing InterfaceCharlton Barreto - The OGF | Open Cloud Computing Interface
Charlton Barreto - The OGF | Open Cloud Computing Interface
 
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
 
OOoCon Lpod
OOoCon LpodOOoCon Lpod
OOoCon Lpod
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
Webrtc - rich communication - quobis - victor pascual
Webrtc  - rich communication - quobis - victor pascualWebrtc  - rich communication - quobis - victor pascual
Webrtc - rich communication - quobis - victor pascual
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)
 
From leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_finalFrom leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_final
 
Using Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadieUsing Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre Abadie
 
OGF standards for cloud computing
OGF standards for cloud computingOGF standards for cloud computing
OGF standards for cloud computing
 
Day: Open Development
Day: Open DevelopmentDay: Open Development
Day: Open Development
 
CoAPing with the Internet of Things
CoAPing with the Internet of ThingsCoAPing with the Internet of Things
CoAPing with the Internet of Things
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

ORTC Library - Introduction

  • 1. ORTC Lib Real-time Communication Library Introduction | August 2014
  • 2. ORTC Lib - Introduction What is ORTC Lib? A C++ library and mobile wrappers based on ORTC (Object Real-time Communication) API Public Draft. API Public Draft: http://ortc.org (upper right hand side) Codebase: https://github.com/openpeer/ortc-lib 1
  • 3. ORTC - Other related projects Other ORTC projects dependent on ORTC Lib: Open Peer: P2P communications project http://openpeer.org ORTC Node: Node.js implementation (will require ORTC Lib server hardening) https://github.com/openpeer/ortc-node Other related proposed projects: JavaScript Shims ● Upshim (WebRTC 1.0 ORTC) ● Downshim (ORTC WebRTC 1.0)
  • 4. ORTC Project Maintainer Who are the maintainers? Hookflash Inc. is the primary sponsor of the ORTC Open Source projects. This Canadian company, made up industry veterans, offers a PaaS for Real-time Communications. Hookflash is also the creator and custodian of Open Peer, an Open Source project for P2P communications. More on Hookflash: http://hookflash.com
  • 5. ORTC Lib - Introduction What can it be used for? Enabling real-time communications (Voice, Video, Data Channel) for mobile and web via C++ & JavaScript libraries. The JS libs are out of scope for this project. What are the goals? The primary goal is to build an open source ORTC client reference implementation that will support all of the ORTC API objects, methods & attributes, using WebRTC open source components for maximum interoperability. Platforms: Under development: C++, iOS, Android Under consideration: Mac, Windows, Windows Phone
  • 6. ORTC Lib - Value Statement Why should I use ORTC Lib? The libs have been built to the ORTC spec as it has evolved. This is the open source ORTC C++ library that is maintained by the specification founders, editors and authors.
  • 7. ORTC Lib - Chrome Dependencies A word about Chrome Dependencies The maintainers wanted to provide an implementation of ORTC providing maximum flexibility for developers. Signaling: As signaling on the wire is not defined as part of WebRTC 1.0, the the maintainers removed all “on the wire” signalling from the library, (e.g. SDP offer/answer and Libjingle). ORTC is a WebRTC wire compatible "do as I say" API, that allows the developer to provide their own signalling in Javascript. As a result, a built-in SDP parser is not needed and the PeerConnection ICE implementation was replaced with a custom ICE implementation.
  • 8. ORTC Lib - Chrome Compatibility Is ORTC Lib compatible with Chrome? Yes, it is interoperable with Chrome “on the wire” protocols. ORTC Lib uses Chrome's WebRTC real-time communication engine internally, minus the library formerly known as “Libjingle” (XMPP/Peer Connection, ICE and TURN). Thus RTP, SRTP, and codecs are all compatible, as they are common to Chrome.
  • 9. ORTC Lib - License What is the license model? ORTC Lib is utilizes the FreeBSD open source model (see slide 21 for details).
  • 10. ORTC Lib - Coverage Is it compatible with the ORTC Public Draft? Not yet. The public draft specification was completed and released on Aug. 20, 2014. As a result, the codebase has not yet achieved parity with the ORTC API Public Draft.
  • 11. ORTC Lib - Work Completed ● Removed Chrome dependencies: ○ WebRTC renderer ○ JSEP/SDP ○ PeerConnection ○ Libjingle ● Codecs ○ VP8 Support (Non SVC) ○ ISAC Support ○ Opus Support ● Security ○ OpenSSL ● NAT Traversal ○ Custom ICE/STUN/TURN implementation (RFC Standard) ○ IPv6 ○ Extended support for Trickle ICE ○ Extended support for Continuous Gathering Mode ○ Multiple Network Interfaces (multi-homed) ○ ICE Consent Freshness ● DNS ○ IDN (Internationalized Domain Names) ○ SRV ○ A / AAAA ● Mobile ○ Reduced energy consumption ○ Application Backgrounding ○ Reduced footprint ● Assembly optimizations ○ YUV conversion ○ ...and too much more to list here ● Media ○ RTP / RTCP Multiplexing ○ A/V Multiplexing ○ Enhanced audio routing ○ Video rotation control ○ Facial recognition (iOS) ● Logging ○ Remote ○ Local ● Bug fixes
  • 12. ORTC Lib - Outstanding Work Items What’s left to do? ● General “tidying up” of the codebase. ● RTCRTPSender / Receiver (+ support for "encoding params") ● RTCDtlsTransport ○ DTLS demux ○ DTLS/SRTP key management ● Data Channel (e.g. SCTP/DTLS/UDP, proprietary RTP data channel, etc.) ● ICE ○ Wrappers for ICE Listener/ICE Transport ○ Support for "continuous" gather vs "complete" mode ○ ICE Transport controller (bandwidth and ICE freezing) ○ Custom gathering options (for mobility) ● Media ○ MediaStreamTrack ○ Advanced VP8 - temporal scalability and simulcast ○ H.264 support - RFC 6184 RTP payload transport ● DTMF Sender ● Stats ● IdP
  • 13. ORTC Lib - H.264 Work Plan The goal is to support the RFC 6184 RTP payload format based on the existing Chromium patch and Cisco’s Open H.264 encoder/decoder. However, the Open H.264 source will NOT be pulled into the codebase (though the build process will support compiling it, if desired). Initial goal is to support Constrained Baseline Profile, and to interoperate with with Mozilla Firefox. H.264/SVC (e.g. temporal scalability) and the RFC 6190 RTP payload format will not be supported initially.
  • 14. ORTC Lib - Extending Should I contribute or fork? We encourage contributions & extensions to this library versus forking. By potentially creating multiple incompatible implementations of the ORTC API, forking could cause confusion among developers as well as in the market, adversely impacting the viability of the ORTC initiative. Once forked, recreating a unified code base will be time consuming and difficult.
  • 15. ORTC Lib - Standards Compliance How will standards compliance be handled? The implementers of ORTC Lib intend to produce an implementation faithful to the WebRTC protocol specifications as well as the ORTC API specification. In order to keep the ORTC toolset close to the intent of the specifications, issues discovered will be brought back to the IETF RTCWEB WG and ORTC CG for discussion and resolution. The ORTC API is designed to support all features of the WebRTC 1.0 API as well as to be backward-compatible with the WebRTC 1.0 API via “shims”.
  • 16. ORTC Lib - Contributing How do I contribute? Want to help? Excellent! Send an email to contribute@ortc.org with your ideas and we will respond with next steps.
  • 17. ORTC Lib - Sponsoring How do I sponsor work? If you would like to contract the maintainers to do work that would be contributed back to the open source project under BSD license, please email your project ideas to sponsor@ortc.org
  • 18. ORTC Lib - Thanks This Open Source work would not have been possible without valuable contributions from the community. The maintainers would like to thank those who contributed for their effort. Google Inc. - WebRTC contributions Microsoft Open Tech Inc. & Microsoft Inc. - Demo and Node.js contributions
  • 19. ORTC Lib - Links Codebase: https://github.com/openpeer/ortc-lib Dev Forum: https://groups.google.com/a/ortc.org/forum/#!forum/discuss-ortc W3C CG: http://www.w3.org/community/ortc/ Current API Specification: http://ortc.org/ Contribute: contribute@ortc.org Sponsor: sponsor@ortc.org
  • 21. ORTC Lib - License Details License: Copyright (c) 2014, Hookflash Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.
  • 22. ORTC Lib - 3rd Party Libraries Library License Usage WebRTC BSD RTP, Codecs libvpx BSD VP8 libyuv BSD YUV scaling and conversion opus BSD Audio codec usrsctp BSD SCTP libsrtp BSD SRTP op-services-cpp BSD Open Peer "services" submodule (ICE, TURN, STUN) OpenSSL BSD DTLS [replaceable] curl MIT/X HTTP [optional, HTTP usage outside browser context] CryptoPP Public Domain Crypto random, Buffering, Hex/base64 transforms [replaceable] UDNS LGPL DNS lookup (e.g. TURN server) [replaceable] zsLib BSD Asynchronous interface delegate API, timer, sockets, logging, JSON boost BSL Smart/weak pointer, Time, Threading, numerical parsing [replaceable]
  • 23. ORTC Lib - Chrome Sync Policy Chrome Code Syncing While ORTC Lib uses Chromium's WebRTC engine, a fork of the WebRTC engine was performed. Updates from Chromium are synchronized periodically (and delta changes from Chromium are re-applied). Pull requests are not performed back to Chromium simply due to the amount of manual labour that is required to perform such duties.
  • 25. ORTC Lib - Architecture RTP Encoding Params DTLS Transport IdP SCTP DNS Cache Settings UDNS 3rd party library STUN zsLib boost HTTP/ HTTPS curl replaceable ICE TURN DTMF Sender ICE Transport Logger RUDP Security RSA (public key) Diffie Hellman Message Layer Security CryptoPP ICE Transport Controller ICE Listener RTP Sender RTP Receiver OpenSSL WebRTC Track (capture/r ender) ortc-lib mandatory component optional Backgro unding (mobile) op-services-cpp usrsctp
  • 26. ORTC Lib - WebRTC Architecture Video Engine Voice Engine Audio Coding webrtc library webrtc media engine Audio Processing Audio Device Audio Mixer Video Coding Video Processing Video Capture Video Renderer libsrtp ICU JsonCPP libc++ libjpeg libvpx libyuv openssl /nss opus sql-lite usrsctp DTLS Transport ICE Negotiation JSEP/SDP Engine Peer Connection Media Stream/ Track RTP/RTCP WebRTC media component WebRTC library component removed 3rd party library moved isac