Building video apps on Salesforce - Northen User Group...

of 22 /22
1 Building video apps on Salesforce Platform

Embed Size (px)

Transcript of Building video apps on Salesforce - Northen User Group...

  • 1

    Building video apps on Salesforce Platform

  • Salesforce PLATINUM Partner

    More than 400 successful Salesforce project deliveries

    Leaders in Customer Engagement solutions

    #1 Professional Services Partner for Salesforce in the UK



    All about makepositive

  • FRANCESCO IERVOLINO Salesforce Certified Technical Architect @socialcloudtech

  • •  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


  • Objectives Extend the capabilities

    Powering 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.

  • What’s the best?

  • 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

  • Example 1

  • •  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


    •  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.


    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


  • What was missing?

  • 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('', Integer.valueof(openTokKey__c.getValues('key').Api_Key__c), openTokKey__c.getValues('key').Secret__c);openTokHttpClient.startArchive('sessionId', 'Test_Recording');

  • DEMO

  • 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 • OpenTok Developer Guide • Server SDKs • Apex SDK • WebRTC •

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

  • Thank You