Top Banner
1 Building video apps on Salesforce Platform
22

Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Nov 02, 2019

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: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

1

Building video apps on Salesforce Platform

Page 2: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Salesforce PLATINUM Partner

More than 400 successful Salesforce project deliveries

Leaders in Customer Engagement solutions

#1 Professional Services Partner for Salesforce in the UK

Innovation

Passion

All about makepositive

Page 3: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

FRANCESCO IERVOLINO Salesforce Certified Technical Architect @socialcloudtech

Page 4: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

•  Objectives

•  Video Platforms

•  WebRTC

EXAMPLE

•  Streams, Connections, and Sessions

•  Publishers / Subscribers

•  High Level Architecture

•  Stream Recording

•  Apex SDK

DEMO

•  Use Cases and Next Steps

•  Resources

•  Q&A

Agenda

Page 5: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Objectives Extend the Force.com capabilities

Powering Force.com apps with real time communication

Enhancing the user experience

Provide multi-channel video capabilities

Build scalable and cost effective video apps

Page 6: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

•  OpenTok

•  GoToMeeting

•  WebEx

•  Adobe Connect

•  BuddyMeeting

•  Google Hangout

Video Platforms

•  Skype

•  Vidyo

•  Vsee

•  Skype

•  Etc.

Video Platform vs Standalone Apps

Page 7: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

WebRTC

•  Open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs

•  Supported by Google, Mozilla and Opera

•  WebRTC enforces the usage of encryption for both the media and the signalling.

Page 8: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

What’s the best?

Page 9: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Capabilities: •  Robust Messaging •  Multi-part calls •  Archiving •  Voice •  Intelligent Quality Control (IQC)

•  WebRTC (No desktop client needed) •  IE plugin •  Rest API/Javascript SDK •  Android / iOS SDK

OpenTok The OpenTok Platform allows developers to integrate live, face-to-face video directly into their website and mobile apps using WebRTC

Page 10: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Example 1

Page 11: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

•  A connection is a logical abstraction of a single browser tab's interaction with a Session. The connection is the mechanism through which a browser publishes and subscribes to streams within a Session

STREAMS

•  A session represents an entire video chat environment. It is a collection of connections publishing and subscribing to streams.

•  A stream is a single audio-video signal, which includes a user's published webcam and microphone feed.

CONNECTIONS SESSIONS

Streams, Connections, and Sessions

Page 12: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Publishers / Subscribers

▪  A Publisher publishes audio-video streams to the chat session.

▪  When you instantiate a Publisher, your browser notifies the Session that it is now streaming a new audio-video stream.

▪  When you destroy your publisher, its stream is terminated and the Session is notified appropriately.

Publisher Subscriber ▪  A Subscriber consumes an audio-video stream in a

Session, displaying it on the web page based on calls to the OpenTok client-side library.

▪  When a web page is notified that a new stream is being published to the Session, it must decide whether or not to subscribe to that stream.

▪  If the application logic deems that the stream should be subscribed to, it uses the OpenTok client-side library to instantiate a subscriber for that stream.

Page 13: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

High Level Architecture

▪  The vast majority of functionality is delivered through the OpenTok client-side library. This is executed on the client's browser, iOS app, or Android app.

▪  The web server needs to get involved when creating new Sessions or new Tokens.

Page 14: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Stream Recording

▪ Record, archive, and access every OpenTok session

▪ The Archiving API include a number of convenient features such as start-and-stop capabilities, server-side recording

▪ Archives are pushed directly to Amazon S3 account or Windows Azure, with the OpenTok Cloud serving as a 72-hour backup

Page 15: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

The OpenTok Server SDKs let you create OpenTok sessions, generate tokens, and work with OpenTok archiving.

•  Java

•  PHP

•  Python

•  NodeJS

•  .NET

•  Ruby

Server SDKs

15

Page 16: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

What was missing?

Page 17: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Apex SDK ▪ We built the OpenTok Apex SDK

and we open sourced

Creating Sessions

Generating Tokens

Working with Archives

//Ensure custom setting has recordString apiKey = openTokKey__c.getValue('key').Api_Key__c;OpenTok openTok = new OpenTok(Integer.valueOf(this.apiKey),

openTokKey__c.getValues('key').Secret__c);OpenTokSession session = openTok.createSession(null);String sessionId = session.sessionId;

OpenTokSession session = new OpenTokSession(sessionId, Integer.valueOf(apiKey), openTokKey__c.getValues('key').Secret__c);OpenTokTokenOptions tokenOptions = new OpenTokTokenOptions(OpenTokRole.PUBLISHER, 30, UserInfo.getName());String token = session.generateToken(tokenOptions);

OpenTokHTTPClient openTokHttpClient = new OpenTokHTTPClient('https://api.opentok.com', Integer.valueof(openTokKey__c.getValues('key').Api_Key__c), openTokKey__c.getValues('key').Secret__c);openTokHttpClient.startArchive('sessionId', 'Test_Recording');

Page 18: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

DEMO

Page 19: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Use Cases •  Recruiting Application

•  Customer Service (overlap with the SOS functionality)

•  Training Application

•  Interview Management Application

Next Steps •  Embedding co-browsing functionality leveraging

OpenTok signaling

•  Screensharing

Page 20: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Resources OpenTok •  https://tokbox.com/ OpenTok Developer Guide •  https://tbrel.tokbox.com/developer/ Server SDKs •  https://github.com/opentok Apex SDK •  https://github.com/nchristopher/openTok-Salesforce WebRTC •  http://www.webrtc.org/

Page 21: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Q&A FRANCESCO IERVOLINO Technical Architect, makepositive @socialcloudtech [email protected]

Page 22: Building video apps on Salesforce Platformfiles.meetup.com/5530672/makepositive - Northen User Group - Jul 2015.pdf · Building video apps on Salesforce Platform . Salesforce PLATINUM

Thank You