8/4/2013

A Sample Zimbra API Integration for Real-Time Video (Part I)

Katie Smart's profile picture
Katie Smart Sr. Manager, Global Marketing Communications
Let's say that you've been tasked with integrating real-time video communications into your business application. Maybe you're a product manager who's scoping out what's available in the marketplace, or maybe you're a software developer who's looking at it from a coding standpoint. No worries, my friend -- I'm going to show you how easy it is to do this with Weemo. I've been at it for a few months now, and that makes me a veritable expert. I'm not joking -- it's really easy -- and I'm about to describe how I've done it in a sample open source application: Zimbra. First, let's consider the API integration process. At Weemo, we always like to say that it's a 3-step process but one step is more important than the others. First, request an API key by contacting us at bizdev@sightcall.com, and get our code and docs on GitHub. Second, and this is the important part, think about the use cases for real-time video in your app. Where is it going to fit? How are you going to initiate calls with other users? I'll show you several examples below, but think about this creatively. What I've done for Zimbra isn't the only way to go. I'm sure there are more interesting ways to integrate real-time video in your specific app, and it's up to you to figure it out. Third, write the code. That's actually the easy part. Let's take a look at Zimbra (out of the box) to see where it's logical to add a video chat button. Zimbra is an enterprise-class e-mail, calendar, and collaboration solution, so it makes sense that you'd want to initiate a video chat with users in your address book: Sample Zimbra address book with Weemo video chat implementation I coded a little "business card" that appears whenever you hover over an e-mail address. In fact, it works anytime an e-mail address is present in Zimbra (in the address book, in mail folders, in an e-mail, etc.). Hover over an e-mail address until that "business card" appears and you'll see two buttons. The first one says "Video Chat" and it's designed to initiate a 1-to-1 video connection. The second says "Join Group Video" and it's meant for joining a multi-party chat that may or may not be underway/active.

Sample Zimbra address book - Weemo video chat with "business card"

There are 4 particular cases to consider when writing the code: 1 - You're trying to call someone in 1-to-1 mode and they're not on the system 2 - You're trying to call someone in 1-to-1 mode and they ARE actively on the system 3 - You're trying to join someone's Group Video chat 4 - You're trying to initiate your own Group Video chat We've seen the first 3 cases in the screenshot above (you'll notice that the "Video Chat" button in the screenshot is grayed out, indicating that the contact is not connected). Below is an example of a different business card that appears in Case 4, which means that you're hovering over your own e-mail address and about to host a Group Video chat:

Sample Zimbra address book - Weemo video chat with "business card"

The examples above should give you a pretty good idea of where you can ... In Part II, I'll cover the coding that made this possible.

Next Up