building video apps on salesforce platform
Post on 14-Aug-2015
385 Views
Preview:
TRANSCRIPT
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
• 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
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
• OpenTok
• GoToMeeting
• WebEx
• Adobe Connect
• BuddyMeeting
• Google Hangout
Video Platforms
• Skype
• Vidyo
• Vsee
• Skype
• Etc.
Video Platform vs Standalone Apps
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.
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
• 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
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.
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.
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
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
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');
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
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/
Q&A FRANCESCO IERVOLINO Technical Architect, makepositive @socialcloudtech francesco.iervolino@makepositive.com
top related