Today real-time communications in mobile devices typically means general purpose, non-contextual audio and video calling. WebRTC promises more by embedding real-time with context. For mobile this means apps enabled with WebRTC capabilities. While mobile implementations of WebRTC are now available for iOS and Android, there are still many decisions that need to be made to take advantage of it. Things like what frameworks to use, native vs. hybrid, how to handle security and much more. This session will discuss going from concept to delivered application and what steps and decisions need to be made along the way.
2. Introduction
This session discusses the
importance of WebRTC in the
mobile environment and what to
consider when developing with
WebRTC in your application.
AndroidApple
Mobile is ubiquitous
WebRTC is disruptive
1
3. Be Mobile First
Enterprise use of mobile technology is growing at 25% per year
But most critical decisions still require a desktop computer
The average adult has 24 apps on their phone
But spends 80% of their time on just 5 of them
The number of custom mobile apps will double compared to 2014
But 85% of companies have a mobile backlog of up to 20 apps
The average person has their mobile devices within arms reach 90% of the time
But at any given time malicious code is infecting more than 11.6 million of them
Creating opportunity
to reinvent the nature
of work
Raising the stakes for
real
time relevant
engagement
Making speed and
agility more critical
than ever
Making security as
important as
convenience 2
4. 3
Use Case: WebRTC Unified Calling Service
with Analytics
1) Dr. Jones attempts to initiate a video
call with Dr. Smith through the hospital's
WebRTC enabled web portal.
2) UC service tries Dr. Smith at home
first because she provisioned her UC
profile that way.
3) UC service completes call to Dr.
Smith on her mobile device (using app
with shoulder tap).
4) Doctor calls out to Analytics service
to get specific questions/insights on
problem being discussed
Unified Calling
Service
Scenario: Doctors and nurses communicate over a hospital's IP network via a web
portal enabled with WebRTC service. Real-time analytics provided as a call-in
service.
5. Real-Time, Contextual Communication in apps
Systems of Interactions
Contextless Communication
using Individual applications
Contextual Communication
with embedded WebRTC
• Mobile Audio/Video can be hard.
WebRTC can make it easy.
• User experience is key. In app real
time communications can enhance
and simplify this experience through
context.
4
6. • Getting WebRTC on mobile is not too hard, but there are challenges to consider:
• Signaling for WebRTC
• Security
• Multi-platform development
Getting WebRTC on Mobile Platforms
• WebRTC is available to be built natively
• There are cordova plugins that provide WebRTC (ex.
cordova.plugins.iosrtc)
• No native browsers for mobile web* , though you can build
your own or use Ericsson’s Bowser Browser.
• WebRTC is available to be built natively
• WebView provides access to WebRTC for Hybrid apps
• Android Chrome provides WebRTC for mobile web
* Apple is slowly adding things: “Apple implements features of GetUserMedia and MediaStreams in the mac
ports of webkits(Aug. 15th, 2015)”
5
7. • WebRTC does not provide a signaling standard
• Provides means to connect two (or more) parties/services
Signaling
Peer to Peer Connection
Challenges
• Choosing a library vs. creating your own
• Pub/sub vs. Sip over WebSockets
• Web and Mobile portability
• Hybrid vs. Native networking
• Sleeping devices and power consumption
• Identifying available peers and services
• WebRTC Island vs. Federation
6
8. • Authentication
• Authorization
• Identity verification
• Encrypted Signaling
• App authenticity (did you download the correct app and is it secure)
Challenges:
• Enterprise Security Integration (LTPA, OAuth)
• Access Control Lists and Identity Propagation
• Need Mobile SDK/App Store Authority
Note: Browsers are moving to https only (no getUserMedia requests)
Security
7
9. • Developing for omni-channel
• Native (iOS/Android), Hybrid and Web
• Hybrid JavaScript frameworks
Challenges
• Native
• Multiple codebases (UI and Signaling)
• Building Native WebRTC OpenSource
• Development Resources with native skills
• Hybrid
• Framework selection
• Performance
• iOS WebRTC plugin support
• Testing
• Automation due to lack of WebRTC support in emulators
• Future proofing your SDK decision
Multi-platform development
8
10. Hybrid Development
Native OS
Cordova Native Code & Native Plugin Code
Your Hybrid Application
cordova.js & plugin JavaScript APIs
HTML5/JavaScript in WebView
• Apache Cordova(formerly PhoneGap)
provides native functionality via Plugins that
expose a JavaScript API (Cordova has
~580 plugins)
• Single Page Applications are
recommended (Can use any library like
AngularJS, EmberJS, Backbone, ReactJS,
jQuery Mobile, etc…)
• WebRTC functionality is provided by a
plugin: cordova.plugins.iosrtc
• React Native enables developers to use JavaScript and React.
• For additional native functionality, you must provide it yourself.
• WebRTC plugin can be built from webrtchacks.com
Hybrid frameworks like Apache Cordova and React Native provide OS
abstraction and allow developers to code in HTML5/JavaScript
9
11. • The quickest route with hybrid mobile is through a JavaScript
framework. Some very different ones to consider are:
Hybrid Development – JavaScript mobile frameworks
Ionic is implemented on top of angular.js and uses
cordova. WebRTC is provided via
cordova.plugins.iosrtc.
React Native – Mobile environment using JavaScript and
React. Build your own React Native WebRTC plugin from
webrtchacks.com
• These provide a consistent UI look and feel as well as 3rd party plugins and
modules to enable extended functionality.
• React Native is React specific
10
13. WebRTC Middleware for Mobile
Coturn
Open Source
STUN/TURN Server
Dialogic XMS
Media Server
(Transcoding, Multiway,
Record/Playback)
WebSphere
Liberty
(Rtcomm Gateway, JSR
289 SIP Servlets)
Web/Signaling
Proxy
(HTTP, SIP, WebSockets)
STUN/TURN
Server
Sig Gateway,
App Server.
Message Broker
(SIP Servlets )
Media
Processing Server
DMZ
SIP Services
(Contact Center)
Media + ICE
JSR 309
Intranet
Media +
ICE
Media Relay
HTTP/REST
Signaling
HTTP/REST
WebRTC Middleware
Signaling
Analytics
Services
Systems of
Record
Enterprise
IMS Core
Microservices
Business Services
Mobile Notifications
Push
12
14. • Think Mobile First
• Future proofing (Frameworks/SDKs/Open Source)
• Hybrid vs Native
• Omni-channel perspective
• Middleware
Conclusions
13
To learn more visit: www.wasdev.net/webrtc
ABSTRACT: Today real-time communications in mobile devices typically means general purpose, non-contextual audio and video calling. WebRTC promises more embedding rea-time with context. For mobile this means apps enabled with WebRTC capabilities. While mobile implementations of WebRTC are now available for iOS and Android, there are still many decisions that need to be made to take advantage of it. Thins like what frameworks to use, native vs. hybrid ahow to handle security and much more. This session will discuss going from concept to delivered application and what steps and decisions need to be made along the way.
Story to weave : decision points that need to make are not important, mobile apps for enterprise what you need to deal with and
?
Unifying signaling, federation with PSTN, Unified push notifications,
THEME: Contextual Communications, only reason WebRTC matters is ‘context’ – try glue between context & webrtc. “Systems of Engagement” where is context from… Systems of record, analytics, iot, big data…
What does mobile mean relative to this? Just an entry point to Systems of Engagement? Can mobile be source of media to a backend for real time analytics
Along with its tremendous impact on the enterprise, mobile is also opening up valuable new opportunities. With mobile we can:
Reinvent how we work. More of us are using mobile technologies at work. In fact, use of mobile in the enterprise is growing at about 25% per year. (1) Unfortunately, many companies that have developed strategies for mobile haven’t yet moved beyond using mobile as a new way to transact with customers or communicate with employees. But by combining mobile and analytics to serve up rich data on location and in context, we can empower employees to quickly acquire new skills, work better with their organizations and improve decision making.
Enable relevant engagement in real time. The ubiquity of mobile and the proliferation of apps is creating an intense battle for mobile mind share. If everyone has an app – and research shows that out of the two dozen apps each of us has on our phones that we spend 80% of our time on just five of them – how do you stand out? (2) Successful companies are using data to design engagement systems that seamlessly connect with customers across all channels and turn each new mobile touch point into an opportunity to attract new customers and deepen relationships with existing ones.
Prioritize speed and agility. This year, the number of custom mobile apps will double compared to 2014. (3) Organizations are already struggling keep pace with app requests thanks to the complexity of multiple platforms; the need to continuously update and improve apps; and complex and time consuming backend integration requirements. As a result, 85% of companies of a mobile app backlog of up to 20 apps. (4) With speed and agility as a top requirement, now is the time design a unified approach to mobile systems, platforms and operating models to deliver new levels of integration while managing all manner of complexity.
Make security as important as convenience. For most of us, our mobile device is within arm’s reach 90% of the time. (5) And in the race for mobile mind share, it’s tempting to prioritize speed over security. In fact, about 65% of companies admit that the security of mobile apps is sometimes put at risk to meet customer demand. But at any given moment, malicious code is infecting 11.6 million of our mobile devices. (6) A mobile first approach is reliant on enterprise-grade security robust enough to ensure that the apps, devices, data and transactions involved in mobile interactions are trustworthy.
Sources:
Bring Your Own Device (BYOD) & Enterprise Mobility Market Global Advancements, Market Forecast and Analysis (2014 – 2019) https://w3-03.sso.ibm.com/marketing/mi/compdlib.nsf/41b3dc2211cc2f6ac12566a200259ba4/20a877a7a24e1d6700257cf60039f6d2/$FILE/Bring%20Your%20Own%20Device%20(BYOD)%20&%20Enterprise%20Mobility%20Market%20(2014%20-%202019).pdf
Forrester’s US Consumer Technographics Behavioral Study, August 2014 to October 2014
IDC http://www.idc.com/getdoc.jsp?containerId=prUS25285614
Outsystems; http://www.outsystems.com/company/news/2014/mobile-trend-statistics/
Morgan Stanley, 2013 (link pending)
IBM and Ponemon Institute The State of Mobile Application Insecurity” http://ibm.co/1F595xW
Web/Hybrid are typically over Websockets, Native use native networking which means the protocol may need to be implemented in several languages.
Need native authentication over the socket for security with native signaling
Push Notification Need way to hook Apple/Google Push Notifications to your signaling infrastructure. Your app needs to be able to handle inbound notification and treat it like an inbound ‘offer’
Battery power usage with persistent connections
services Identity management and registration Need addresses of record, registration and authentication to ensure identities and enable inbound call routing.
Whether adding WebRTC to existing applications or building it from scratch, the goal is often to use the context of the application with respect to WebRTC. This means the application will integrate apps running on Android, iOS and the Web together in a common context.
Native --
Native applications require development of similar functionality for different platforms (Android – Java, iOS – Swift , Web – JavaScript/HTML )
Hybrid applications can use a common code base but require different plugins for iOS.
In all cases, you must test on physical devices to verify platform and application functionality (emulators are not enough with WebRTC)
In all cases, Signaling is the issue – which you’ll either have to implement yourself or use a pre-built signaling library.
Cordova stuff into the Cordova Slide… Add a block diagram.