Building a Real-time Presentation App Using SkyWay and Box Platform

Native Box apps are great for sharing and collaborating on content. But what if you want a customized way to present content to customers or partners, incorporating secure content from Box with real-time chat and video? In this blog post, Kensaku Komatsu, Senior Technical Manager at NTT Communications, demonstrates how to use Box Platform with SkyWay, their new Communications Platform as a Service, to bring together secure content sharing with video conferencing.

In this post, we’ll showcase a real-time video conferencing application developed using Box Platform for secure content collaboration, and SkyWay, a Communications Platform as a Service from NTT Communications. This application exemplifies the benefits of building software using platform-as-a-service components, the initial version was delivered in a matter of days, and it gets better as the underlying services get better.

Modern Video Conferencing

Currently, most video conferencing services are based on video chat and screen sharing features. With these features, users can easily discuss topics using voice, facial expressions and gestures, chat text, and streaming copies of their screens. However, the experience of video conferencing to collaborate on content is weak. The user is forced to see exactly what the presenter is showing, and get a low quality streamed representation of the content, rather than the high fidelity original version. This is especially true with documents where reading is important, the text is often blurry and too small.

Instead of that current state, imaging taking the secure sharing features and high quality content rendering from Box, and integrating them with a real-time service for synchronizing displays and providing the video and text chat components. Using Box Platform and SkyWay, we can do exactly that and integrate this next generation video conferencing capability into custom applications across industries. This can be used in a wide range of use cases, including:

  • Remote Healthcare: Using the integration described here, we could power real-time review of X-Ray and MRI images, where a doctor and specialist can have a video conversation while at the same time manipulating a DICOM image and updating the other side in real time. Taking this a step further, you could imagine using the same SkyWay messaging layer to send sensor data in real-time, so that as the conversation is happening the parties can see heart-rate, temperature, and any other data connected to the system.
  • Online education: Box and Box Platform are both widely used in the education space, we provide great tools for sharing and collaborating on projects and assignments. But what if you want to deliver a tutorial online, with real-time collaboration? Existing web conference tools have the limitations described above, but through a more modern approach to video conferencing, we can not only streamline current collaborations but foster new ways of sharing. Applications built this way could foster fully remote study groups, or more peer to peer collaboration.

Code Wins Arguments

We’ve now set the stage for why Box Platform and SkyWay could be used to power modern cloud applications. Now let’s talk about how to it's done. 

SkyWay

SkyWay is a signaling gateway services of Japanese telecommunications company, NTT Communications, for providing easy API to develop real time video streaming application with WebRTC technology. For example, the code below is the snippet to develop easy video chat service with our MultiParty sdk.

simple_video_chat.js

simple_video_chat.js

Using SkyWay is super simple as it is shown above.

box-skyway

With the combination of Box Platform and the SkyWay MultiParty API, we have developed a prototype video conference application, box-skyway, to demonstrate the idea of real-time communication with archiving.

box-skyway is a basic video conference application that provides video chat and secure content collaboration. The user starts by authenticating to Box, and choosing which file to share first. There is a preview window that can be used to confirm that the file is the right one, before it is broadcast to the other parties in the conference.

The content collaboration portion of the app is done using the Embed Link endpoint of the Box Content API. Embed Link is an expiring URL that allows a specific file to be shared with a non-owner of the file, for up to 60 minutes. Note that while this is the most flexible solution for sharing broadly, though if we wanted to restrict access to specific users or organizations, that could be done as well. Because embed link uses local rendering technology to create content previews, rather than screen share, we give each user complete control of their content. Each user gets a full resolution version of the file being viewed, and can control features like magnification.

In the box-skyway application, several Box and SkyWay APIs are used. Here are a few of the more interesting features:

Display embed link for content owner

We can fetch an embed URL as described above, using the Content API, and pass that through to the browser. Now we simply embed that content preview as an iFrame. In this example, we’re using Backbone for the client side MVC.

libs/box/slideshare.js

libs/box/slideshare.js

By calling View#render() from backbone model object after retrieving expiring_embed_link, the view of the content will be displayed in content owner window.

Display embed link for attendees

To share and display expiring embed link from content owner to attendees, I utilized the SkyWay MultiParty API:

libs/skyway/index.js

libs/skyway/index.js

Once this method is invoked, the data including “expiring embed url” will be transfered in P2P technology via WebRTC to all attendees inside video conferencing. Note that this is direct peer to peer, there is no web server in the middle!

When attendees received above message, MultiParty object will emit “message” event.

libs/skyway/index.js

libs/skyway/index.js

This way, the embed link is now available on each client and can be rendered locally.

This proof the concept demonstrates how to use Box Platform and SkyWay together to deliver a modern video conferencing solution. The box-skyway application is public, and if you have a Box account, download it and try it out. Note that SkyWay depends on WebRTC, which is currently not supported on Safari or IE. The complete source code is also available from the box-skyway repo on GitHub.