Top Banner
#CiscoLive | #DevNetDay Adam Weeks, Technical Leader, Webex for Developers Embedding Webex features into web and mobile apps Elevating ‘face-to-face’ into the Cisco Collaboration Cloud
56

Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Oct 17, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

#CiscoLive | #DevNetDay

Adam Weeks, Technical Leader, Webex for Developers

Embedding Webex features into web and mobile apps

Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Page 2: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Agenda

#CiscoLive | #DevNetDay © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public

• Introduction• Webex Integrations• Webex Widgets• Webex Javascript SDK

• Webex iOS SDK

• Webex Android SDK• Conclusion

2

Page 3: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 3

How do we enable face to face meetings in our existing business apps?

Cloud Inc.

Page 4: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Integrations

Page 5: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay DEVWKS-3273 5

https://developer.webex.com

Page 6: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay Session ID 6

Page 7: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay Session ID 7

Page 8: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay Session ID 8

Page 9: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 9Session ID

Access Token Success!

Page 10: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Webex Widgets

Page 11: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 11

Webex Widgets

Recents

Space

Page 12: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 12Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 13: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 13Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 14: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 14Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 15: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 15Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 16: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 16Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 17: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 17Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 18: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 18Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 19: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 19Session ID

<!DOCTYPE html><html><head><meta charset="utf8"><title>Space Widget Demo</title><script src="https://code.s4d.io/widget-space/production/bundle.js"></script><link rel="stylesheet" href="https://code.s4d.io/widget-space/production/main.css"></head><body><div id="my-webexteams-widget" style="width: 500px; height: 500px;"/><script>var widgetEl = document.getElementById('my-webexteams-widget');// Init a new widgetwebex.widget(widgetEl).spaceWidget({accessToken: 'ACCESS_TOKEN',destinationId: 'SPACE_ID',destinationType: 'spaceId'});</script></body></html>

Sample code available at:https://developer.webex.com/docs/widgets

Page 20: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 20Session ID

Webex Widget Success!

Sample code available at:https://developer.webex.com/docs/widgets

Page 21: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Webex Javascript SDK

Page 22: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 22

Source code available:https://github.com/webex/webex-js-sdk

Page 23: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 23Session ID

Javascript SDK Bundle on CDN

Page 24: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Using the Javascript SDK for a Webex Meeting• Initialize the SDK with Access Token

• Register the web browser as an SDK client• Create Meeting

• Join Meeting• Add Local Media

• Display Meeting Media on the Page

24Session ID

Page 25: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Initialize the SDK with Access Token

25

const webex = Webex.init({credentials: {

access_token: myAccessToken}

});

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

Page 26: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Register the web browser as an SDK client

26

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

webex.meetings.register().catch((err) => {console.error(err);alert(err);throw err;

});

Page 27: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Create Meeting

27

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

const meeting = await webex.meetings.create(destination);

Page 28: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Join Meeting

28

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

await meeting.join();

Page 29: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Add Local Media

29

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

const mediaSettings = {receiveVideo: true,receiveAudio: true,receiveShare: false,sendVideo: true,sendAudio: true,sendShare: false};

return meeting.getMediaStreams(mediaSettings).then((mediaStreams) => {const [localStream, localShare] = mediaStreams;

meeting.addMedia({localShare,localStream,mediaSettings});});

Page 30: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Add Local Media

30

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

const mediaSettings = {receiveVideo: true,receiveAudio: true,receiveShare: false,sendVideo: true,sendAudio: true,sendShare: false};

return meeting.getMediaStreams(mediaSettings).then((mediaStreams) => {const [localStream, localShare] = mediaStreams;

meeting.addMedia({localShare,localStream,mediaSettings});});

Page 31: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Add Local Media

31

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

const mediaSettings = {receiveVideo: true,receiveAudio: true,receiveShare: false,sendVideo: true,sendAudio: true,sendShare: false};

return meeting.getMediaStreams(mediaSettings).then((mediaStreams) => {const [localStream, localShare] = mediaStreams;

meeting.addMedia({localShare,localStream,mediaSettings});});

Page 32: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Add Local Media

32

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

const mediaSettings = {receiveVideo: true,receiveAudio: true,receiveShare: false,sendVideo: true,sendAudio: true,sendShare: false};

return meeting.getMediaStreams(mediaSettings).then((mediaStreams) => {const [localStream, localShare] = mediaStreams;

meeting.addMedia({localShare,localStream,mediaSettings});});

Page 33: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Display Meeting Media on the Page

33

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

// Handle media streams changes to ready statemeeting.on('media:ready', (media) => {if (media.type === 'local') {document.getElementById('self-view').srcObject = media.stream;}if (media.type === 'remoteVideo') {document.getElementById('remote-view-video').srcObject = media.stream;

}if (media.type === 'remoteAudio') {document.getElementById('remote-view-audio').srcObject = media.stream;}

});

Page 34: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Display Meeting Media on the Page

34

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

// Handle media streams changes to ready statemeeting.on('media:ready', (media) => {if (media.type === 'local') {document.getElementById('self-view').srcObject = media.stream;}if (media.type === 'remoteVideo') {document.getElementById('remote-view-video').srcObject = media.stream;

}if (media.type === 'remoteAudio') {document.getElementById('remote-view-audio').srcObject = media.stream;}

});

Page 35: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Display Meeting Media on the Page

35

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

// Handle media streams changes to ready statemeeting.on('media:ready', (media) => {if (media.type === 'local') {document.getElementById('self-view').srcObject = media.stream;}if (media.type === 'remoteVideo') {document.getElementById('remote-view-video').srcObject = media.stream;

}if (media.type === 'remoteAudio') {document.getElementById('remote-view-audio').srcObject = media.stream;}

});

Page 36: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Display Meeting Media on the Page

36

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

// Handle media streams changes to ready statemeeting.on('media:ready', (media) => {if (media.type === 'local') {document.getElementById('self-view').srcObject = media.stream;}if (media.type === 'remoteVideo') {document.getElementById('remote-view-video').srcObject = media.stream;

}if (media.type === 'remoteAudio') {document.getElementById('remote-view-audio').srcObject = media.stream;}

});

Page 37: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Successfully Connected to Meeting!

37

Sample code available:https://github.com/WebexSamples/webex-meetings-quick-start

Page 38: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Webex iOS SDK

Page 39: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Creating a Meeting with the Webex iOS SDK

• Import SDK Via Cocoapods

• Authentication• Register Device

• Make a Call

39

Page 40: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Import SDK Via Cocoapods

40

Sample code available:https://github.com/webex/webex-ios-sdk-example

Page 41: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Authentication

41

Sample code available:https://github.com/webex/webex-ios-sdk-example

Page 42: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Register Device

42

Sample code available:https://github.com/webex/webex-ios-sdk-example

Page 43: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Make a Call

43

Sample code available:https://github.com/webex/webex-ios-sdk-example

Page 44: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 44

Webex iOS Meeting Success!

Page 45: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Webex Android SDK

Page 46: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Creating a Meeting with the Webex Android SDK

• Integrate the Webex Teams Android SDK

• Add the Webex Teams Android SDK Library• Authentication

• Register Device• Make a Call

46

Page 47: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Integrate the Webex Teams Android SDK

47

Sample code available:https://github.com/webex/webex-android-sdk-example

Page 48: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Add the Webex Teams Android SDK Library

48

Sample code available:https://github.com/webex/webex-android-sdk-example

Page 49: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Authentication

49

Sample code available:https://github.com/webex/webex-android-sdk-example

Page 50: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Register Device

50

Sample code available:https://github.com/webex/webex-android-sdk-example

Page 51: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Make a Call

51

Sample code available:https://github.com/webex/webex-android-sdk-example

Page 52: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay 52

Webex Android SDK Meeting Success!

Page 53: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public

Wrapping Things Up!

1. Create an Integration for Webex Authentication

2. Webex Widgets for quick browser based meetings

3. Webex Javascript SDK for custom browser experiences

4. Webex iOS SDK for iOS mobile meetings

5. Webex Android SDK for Android mobile meetings

53

Page 54: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public#CiscoLive | #DevNetDay

Explore More • Webex for Developers• https://developer.webex.com/

• Webex Widgets• https://developer.webex.com/docs/widgets

• Javascript SDK• https://developer.webex.com/docs/sdks/browser

• iOS SDK• https://developer.webex.com/docs/sdks/ios

• Android SDK• https://developer.webex.com/docs/sdks/android

Page 55: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

Thank you

#CiscoLive | #DevNetDay

Page 56: Elevating ‘face-to-face’ into the Cisco Collaboration Cloud

#CiscoLive | #DevNetDay