webrtc customer experience optimizations - kranky geek presentation
TRANSCRIPT
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Tips & Tricks for Optimizing the Customer Experience (CX) with WebRTC Amitha Pulijala Oracle Communications
1
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
cus·tom·er ex·pe·ri·ence
The sum of all experiences a consumer has with a supplier of goods or services, over the duration of their relationship with that supplier.
2
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
What do Customers Expect from Great Experiences?
CONSISTENT VIDEO & VOICE
CONNECTED INTERACTIONS
PERSONALIZED JOURNEY
EFFICIENT SERVICE
REWARDING RELATIONSHIP
3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 4
Today’s Customer Journeys are Complex
Multiple Devices Multiple Networks Multiple Channels
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 5
Broken Journeys Drive Customers Away
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
CX Tip 1: Enable Seamless Journeys
6
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Connectivity and Reliability
• Customers expect a seamless experience across
– “Web” style Browser reloads
– “Web” style “Back Button” navigation
– Native app crashes
– IP network connectivity changes (WiFi <-> 4G)
– Device Handoffs
– Server-side failures
• This can be solved using the concept of Session Rehydration
– Ability to keep the session alive when connectivity is interrupted and recreate it as soon as the connectivity is re-established
7
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Rehydration
• In the event that the local app state is reinitialized, either due to a user reload of the page, or a decision within the app to reload itself it is possible to keep an existing session alive, via a process called "rehydration“
• Inspired by the approach described in IETF rtcweb-jsep-03 draft
• Upon reconnect, resurrect the session (voice, video, Data Channel)
– Client Information (sessionId etc) is stored in LocalStorage
– Completely reliable signaling protocol
– WebSocket connection is kept for a short time and the message resynchronization happens when clients is reconnected
– Restart ICE procedures, send new SDP
8
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Dynamic Media Peering • Fast call set up times impact the customer experience
• WebRTC call set up procedure takes a considerable amount of time to establish a session
– Gather Candidates, Prioritize, Exchange with remote party
– Connectivity Checks
• This can be solved by
– Dynamic Media Peering • Prioritize the candidates that are most likely to work first (“relay” or “TURN” candidates)
• Establish the connection
• Try in parallel whether the parties can communicate directly
• If they can, then the media switches to a direct channel seamlessly
– Trickle ICE • Alternately, trickle ICE reduces the time necessary for ICE processing to complete
9
Connecting…
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
CX Tip 2: Identify and Solve Weak Points
10
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Don’t Be Afraid To Take a Step Back!
• Patchy videos and mid call-drops impair Customer Experience
• The solution for this is:
– Use webrtc-stats API to measure
• Jitter
• Packets Lost
• Bandwidth
– RTCP feedback mechanisms, CPU/Frame Rate, Battery!
– Fall back to Low Resolution Video -> Audio depending on the bandwidth, packet loss
– Network options, handoffs WiFi -> LTE-> 3G
– Encode the same video stream twice in different resolutions and bitrates – Simulcast!
11
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
The World is a chatty place!
• Customers expect to stay “engaged” when they wander away from the app without draining device resources – battery power
• This can be solved by:
– Optimizing the WebSocket connections with Push Notifications • Hibernation of the session during periods of inactivity
• Session rehydration upon wake up/ call resume
– Mobile Push Notification Gateway • Manages connectivity to APNS, GCM; registers and activates multiple apps
• Supports templates
• Delivers push notifications to iOS and Android
– Chrome Push Notifications – Service Worker, W3C API • On desktop and mobile browsers
12
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Elephant in the Room
• Interoperability is the “Key” to success in the enterprise applications
• 60% of the Oracle’s Enterprise Customers run their desktop applications on Internet Explorer
• How to solve IE stop gap on desktop?
– Plug-ins for multiple versions of IE
– Microsoft Edge – getUserMedia Support
• How about Safari?
– Stop gap hedged by native WebRTC support
13
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Mobile…is different!
• Customers do not like if their video calls quickly drain the battery on their device
• Hardware acceleration on mobile
– Video coding with dedicated hardware allows for better video performance as well as significant battery savings
– Stopgap - Fallback to H.264 where VP8 is not supported by the native chip sets
– VP9, Daala, Thor - the war never ends!
14
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Additional Developer Resources
16
• Oracle WebRTC Developer Page : http://www.oracle.com/technetwork/developer-tools/webrtc/overview/index.html
• Oracle WebRTC Session Controller: http://www.oracle.com/us/products/applications/communications/web-rtc-session-controller/overview/index.html
• Sandbox (partner maintained): http://tadhack.optaresolutions.com/