18
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

WebRTC Customer Experience Optimizations - Kranky Geek Presentation

Embed Size (px)

Citation preview

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. | 15

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Thank You!

17

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

DEMO

18