Building video apps on Salesforce - Northen User Group - Jul 2015.pdfآ  Building video apps on Salesforce

  • View
    0

  • Download
    0

Embed Size (px)

Transcript

  • 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

    Innovation

    Passion

    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

    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.

  • 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

    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

  • 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 record String 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');

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

  • Thank You