66
ENABLING VOICE APPLICATIONS WITH WEBRTC & ORTC IN MICROSOFT EDGE MARK ROBERTS SOFTWARE ENGINEER [email protected]

Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

Embed Size (px)

Citation preview

Page 1: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

ENABLING VOICE APPLICATIONS WITH WEBRTC & ORTC IN MICROSOFT EDGE

MARK ROBERTS SOFTWARE ENGINEER

[email protected]

Page 2: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Page 3: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Page 4: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Page 5: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

PSTN

Page 6: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Ready Not Ready

Page 7: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Ready Not Ready

Page 8: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Ready Not Ready

Page 9: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Ready Not Ready

Page 10: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

+ =

Page 11: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

<script src="twilio.js"></script>

Page 12: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application:

Page 13: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone

Page 14: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone 2. Send audio to an endpoint

Page 15: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone 2. Send audio to an endpoint 3. Receive audio from an endpoint

Page 16: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone 2. Send audio to an endpoint 3. Receive audio from an endpoint 4.Playback received audio

Page 17: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

FIRST, THERE WAS FLASH…

Page 18: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

<script src="twilio.js"></script>

Page 19: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

ALONG CAME WEBRTC…

Page 20: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

WebRT-what⁇

Page 21: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

WebRT-what⁇

• Simple JavaScript APIs • RTCPeerConnection • RTCIceCandidate • RTCSessionDescription

• First-class browser support

• Built on open standards(STUN, TURN, ICE, DTLS, RTP)

Page 22: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone 2. Send audio to an endpoint 3. Receive audio from an endpoint 4.Playback received audio

Page 23: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Four Basic Tasks

Four basic tasks for a voice application: 1. Capture audio from a microphone 2. Send audio to an endpoint 3. Receive audio from an endpoint 4.Playback received audio

Page 24: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint WebRTC Endpoint

Page 25: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint WebRTC Endpoint

establish connectivity

Page 26: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

WebRTC Endpoint

establish connectivity

Page 27: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

WebRTC Endpoint

establish connectivity

secure connectivity

Page 28: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

WebRTC Endpoint

establish connectivity

secure connectivity

Page 29: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

WebRTC Endpoint

establish connectivity

secure connectivity

send and receive media

Page 30: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

Secure Real-time Transport Protocol (SRTP)

WebRTC Endpoint

establish connectivity

secure connectivity

send and receive media

Page 31: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

WebRT-what⁇

• Simple JavaScript APIs • RTCPeerConnection • RTCIceCandidate • RTCSessionDescription

• First-class browser support

• Built on open standards(STUN, TURN, ICE, DTLS, RTP)

Page 32: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

WebRT-what⁇

• Simple JavaScript APIs • RTCPeerConnection • RTCIceCandidate • RTCSessionDescription

• First-class browser support

• Built on open standards(STUN, TURN, ICE, DTLS, RTP)

• Interoperability

• No plugins required!

• Bring-your-own signaling

Page 33: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

Secure Real-time Transport Protocol (SRTP)

WebRTC Endpoint

establish connectivity

secure connectivity

send and receive media

Page 34: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint WebRTC Endpoint

Page 35: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

<script src="twilio.js"></script>

Page 36: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

<script src="twilio.js"></script>

Page 37: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

Page 38: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

<script src="twilio.js"></script>

Page 39: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

EDGE & ORTC ANNOUNCED…

Page 40: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

Page 41: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

• Built on the same open standards as WebRTC (STUN, TURN, ICE, DTLS, RTP)

• Bring-your-own signaling

Page 42: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

• Built on the same open standards as WebRTC (STUN, TURN, ICE, DTLS, RTP)

• Bring-your-own signaling

• Does not use Session Description Protocol (SDP)

Page 43: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

Secure Real-time Transport Protocol (SRTP)

WebRTC Endpoint

establish connectivity

secure connectivity

send and receive media

Page 44: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

Secure Real-time Transport Protocol (SRTP)

SDP

WebRTC Endpoint

Page 45: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Session Description Protocol (SDP)

v=0 o=- 7419095041521713450 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS BcUNfqxMTfmJ2aPDEipCTK4BnvabR7xKeTil m=audio 35898 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126 c=IN IP4 54.244.51.11 a=rtcp:39742 IN IP4 54.244.51.11 a=sendrecv a=rtcp-mux a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10; useinbandfec=1 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000

a=fingerprint:sha-256 F1:A4:DB:A3:AA:CC:1C:B5:2F:91:A0:2F:E8:FD:0B:80:F7:02:1F:9E:23:49:1C:06:1F:4F:AB:96:44:F1:CB:D6 a=setup:actpass m=video 51034 UDP/TLS/RTP/SAVPF 100 101 116 117 96 c=IN IP4 54.244.51.11 a=rtcp:27538 IN IP4 54.244.51.11 a=ice-ufrag:mKHEfIR34arV95jd a=ice-pwd:YdwDVrwNPLwIsFF2sJtHZDSk a=fingerprint:sha-256 F1:A4:DB:A3:AA:CC:1C:B5:2F:91:A0:2F:E8:FD:0B:80:F7:02:1F:9E:23:49:1C:06:1F:4F:AB:96:44:F1:CB:D6 a=setup:actpass a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:4 urn:3gpp:video-orientation a=sendrecv a=rtcp-mux a=rtpmap:100 VP8/90000 a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack

Page 46: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Session Description Protocol (SDP)

v=0 o=- 7419095041521713450 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS BcUNfqxMTfmJ2aPDEipCTK4BnvabR7xKeTil m=audio 35898 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126 c=IN IP4 54.244.51.11 a=rtcp:39742 IN IP4 54.244.51.11 a=sendrecv a=rtcp-mux a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10; useinbandfec=1 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000

Page 47: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Session Description Protocol (SDP)

v=0 o=- 7419095041521713450 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS BcUNfqxMTfmJ2aPDEipCTK4BnvabR7xKeTil m=audio 35898 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126 c=IN IP4 54.244.51.11 a=rtcp:39742 IN IP4 54.244.51.11 a=sendrecv a=rtcp-mux a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10; useinbandfec=1 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000

Page 48: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

• Built on the same open standards as WebRTC (STUN, TURN, ICE, DTLS, RTP)

• Bring-your-own signaling

• Does not use Session Description Protocol (SDP)

• Lower-level JavaScript APIs

Page 49: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Page 50: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

RTCIceTransport

RTCIceGatherer

Page 51: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

RTCIceTransport

RTCIceGatherer

RTCDtlsTransport

Page 52: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

WebRTC Endpoint

Interactive Connectivity

Establishment (ICE)

Datagram Transport Layer Security (DTLS)

Secure Real-time Transport Protocol (SRTP)

RTCIceTransport

RTCIceGatherer

RTCDtlsTransport

RTCRtpReceiver

RTCRtpSender

Page 53: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

• Built on the same open standards as WebRTC (STUN, TURN, ICE, DTLS, RTP)

• Bring-your-own signaling

• Does not use Session Description Protocol (SDP)

• Lower-level JavaScript APIs • RTCIceGatherer • RTCIceTransport • RTCDtlsTransport • RTCRtpSender • RTCRtpReceiver

Page 54: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Object RTC (ORTC)

• Built on the same open standards as WebRTC (STUN, TURN, ICE, DTLS, RTP)

• Bring-your-own signaling

• Does not use Session Description Protocol (SDP)

• Lower-level JavaScript APIs • RTCIceGatherer • RTCIceTransport • RTCDtlsTransport • RTCRtpSender • RTCRtpReceiver

• Power and flexibility over “plain” WebRTC

Page 55: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Bridging the Gap

ORTC

• RTCIceGatherer

• RTCIceTransport

• RTCDtlsTransport

• RTCRtpSender

• RTCRtpReceiver

WebRTC

• RTCPeerConnection

• RTCIceCandidate

• RTCSessionDescription

Page 56: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

Page 57: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

<script src="twilio.js"></script>

Page 58: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Browser Support

ORTC

<script src="twilio.js"></script>

Page 59: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Review

Page 60: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Review

• Flash is no longer the only real-time communications solution for browsers.

Page 61: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Review

• Flash is no longer the only real-time communications solution for browsers.

• WebRTC and ORTC enable interoperable, plugin-free communication.

Page 62: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Review

• Flash is no longer the only real-time communications solution for browsers.

• WebRTC and ORTC enable interoperable, plugin-free communication.

• Real-time communications is complex, but developing voice applications does not have to be complicated.

Page 63: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

© 2009 - 2014 Twilio, Inc. All rights reserved.

Voice Applications

Ready Not Ready

Page 64: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

<script src="twilio.js"></script>

Page 65: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

twilio.js

Page 66: Enabling Voice Applications with WebRTC and ORTC in Microsoft Edge

THANK YOU

MARK ROBERTS SOFTWARE ENGINEER

[email protected]