webrtc meetup @ oracle san francisco
TRANSCRIPT
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Connectivity in WebRTC WebRTC San Francisco Meet-up 28 April 2016
Amitha Pulijala Director, Product Management Oracle Communications
1
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 2
What’s Oracle Doing with WebRTC?
Audio Video Data
Connecting User’s journey through your application with WebRTC Communications
Data Transfer Screen Share
Chat Audio/Video
Call
Oracle WebRTC Session Controller
Client SDK
Signaling & Media Engine
Interoperability
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. |
WebRTC Simple View
Oracle Confidential – Internal/Restricted/Highly Restricted 4
Signaling Signaling
Media (SRTP) App App
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
WebRTC Session Controller
Signaling Engine
WebRTC “Real-World” Architecture
Oracle Confidential – Internal/Restricted/Highly Restricted 5
Identity Server
App
Notification Server
Signaling Normalization
Media Engine
Media Normalization
Transcoding
STUN/TURN
APNS, GCM
Web Server
Browser
PSTN Gateway JSON/ WebSocket
SIP
REST
RTP
JSON/ WebSocket
SRTP
SRTP
MCU/SFU
REST/ JSR 309
RTP
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
What makes WebRTC Connectivity Complex?
Oracle Confidential – Internal/Restricted/Highly Restricted 6
STUN
TURN
UDP/TCP/HTTP Proxy
Multiple Media Hops
End Point Latencies
Firewalls
Topology (Operational)
Congestion
Packet Loss
Bit Rate
Transcoding
Mixing
Network Conditions
Video Processing
Encoding & Decoding
WebRTC Connectivity
Geography
WebRTC Connectivity and Quality - Common Considerations
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 7
Sounds Familiar?
Copyright & Trademark Dilbert by Scott Adams
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Some Common Connectivity Issues
• We can see the video in the beginning, but some time later (a couple of seconds?), the video is frozen!
• Audio is only heard one-way
• Connected but can’t see video at all (this happens, but not very often!)
• Noise in the call, don’t quite know why?
• Delayed video track
8
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Why do you see these? Key Metrics to capture
• Talk over effects
– With round trip latencies above 300 msec or so, users may experience annoying talk-over effects.
• Garbled voice/video
– Jitter causes packets to arrive at their destination with different timing and possibly in a different order than they were sent (spoken), with some arriving faster and some slower than they should.
• Choppy voice/video
– Knowing the average packet loss for a call gives you an overall sense for the quality of the call. Key Frames are dropped.
• Frozen video, can’t see video after some time
– Check STUN/TURN connectivity, validity of long term credentials, TURN allocations and reconnection.
• Connected, audio choppy or goes out
– Check audioInputLevel, analyze packet loss (PLC/VLC) at every media interface
9
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How to capture the metrics and debug
• Tools
– Wireshark Traces
– WebRTC Statistics API (getStats)
– Advanced Quality Analysis • PESQ Tools for analyzing high-bandwidth audio
• PEVQ Tools for analyzing video quality
• Callstats io (proprietary quality metrics)
• Trouble Triggers – High Packet Loss
– High Jitter Buffer
– Total Frame Delay
– Round Trip Latency
10
WebRTC internals
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Better Connectivity Experience
• Optimize Topologies
– Avoid Multiple Hops
– Avoid Media Encoding/Decoding
• Fallback Strategies – Downgrade to audio
– Mid call resolution changes
11
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 12
Better Moments of Truth
Sometimes you just need to disconnect, but still stay engaged!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Notifications – Optimizing the Connectivity
• Customers expect to stay “engaged” when they wander away from the app without draining device resources
• This can be solved by:
– Optimizing the WebSocket connections with Push Notifications • Hibernation of the session during periods of inactivity
• Session is activated upon wake up/ call resume
– Mobile Push Notification Gateway • Manages connectivity to APNS, GCM; registers and activates multiple apps
• Delivers push notifications to iOS and Android
– Chrome Push Notifications – Service Worker, W3C API • On desktop and mobile browsers
13
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Additional Developer Resources
14
• 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
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Thank You!
15
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
DEMO (Oracle WebRTC Notifications)
16