Inside a Voice Mashup Chrome Extension

This guest post comes from Oren Forer, Software Engineer at Junction Networks. Oren manages OnSIP API Documentation and is the go-to person for all OnSIP mashups.

OnSIP is a business VoIP service that uses SIP to provide end users the ability to make unconventional phone calls in a very conventional way: picking up a desk phone and dialing a number. Crank open the hood, and you’ll find that SIP technologies operate a lot like Google [Services] while behaving more like a Verizon [Telco]. The OnSIP & Highrise Click-To-Call mashup, for example, is a new Chrome extension that highlights how phone service as a software opens the gates to smarter business solutions.

The OnSIP Click-To-Call & Highrise mashup combines Highrise customer relationship management and OnSIP telephony services, adding valuable features for OnSIP and Highrise users:

Click-to-call phone numbers in web pages
Real-time notifications when Highrise contacts are calling
Automatic call logging within a user’s Highrise account

The Click-To-Call feature mirrors functionality on Android. Anyone who has the memory recall of a goldfish can appreciate the ability to click a phone number on a web page, without having to look back and forth to dial the 10 digits. With Click-To-Call, you click the link to dial the number right from a Highrise contact’s profile, or any website, and OnSIP will do the rest. A second feature is caller ID browser notifications, which lets you know who’s calling. If the number can be linked to a contact in Highrise, that contact name will appear in the Chrome notification in place of the 10 digit number. Finally, a comment will be saved in the account, automatically tracking phone calls with your customer (a Highrise contact). For instance, if customer John Doe called at 4:00pm, the text “John Doe called @ 4:00 PM EST on February 20 By OnSIP” would be add as a comment under the Highrise contact John Doe.

The Chrome extension relies directly on the Highrise API, OnSIP XMPP API, and indirectly on the SIP core base of telephony technologies. Access to the Highrise API is fairly straightforward thanks to documentation that’s easy to digest. XMPP is an open protocol used for real-time communication like instant messaging. The Click-To-Call extension depends on the XMPP API, which in turn leverages these core standards along side enhancements to the XMPP standard, known as XEPs.

XEPs are used to advance the XMPP protocol beyond its core functionality. For instance, to create a call when clicking a link of a phone number on a web page, the chrome extension sends a message to the XMPP API, which has an implementation of a XEP called Ad-Hoc Commands. This XEP is responsible for translating that request into a phone call. There are dozens of client-side implementations of XMPP that can leverage Ad-Hoc commands to emulate the call create feature. Furthermore, to achieve true real-time push Eventing about the current state of a phone call, the XMPP API uses a XEP called Publish-Subscribe, or PubSub. When a call is incoming, outgoing, hung up, or answered, there is a corresponding event that the XMPP API delivers by way of its Publish-Subscribe service to the client application.

Implementing Click-To-Call in Chrome is more of a case study than anything else. For the developer, Chrome provides an easy interface to debug code, reload code changes, and utilize a built-in notifications Framework to manage alerts. And for marketing, the Chrome Web Store offers hosting and exposure to a community of end users that would hopefully produce invaluable feedback necessary to gauge the quality of the product. It also offers simple system requirements to express to the end users (download Chrome).

In the future, Click-To-Call can be adapted into other applications: The Mail Client on the Mac, Outlook (which OnSIP already has), Thunderbird, Firefox, etc. Additionally, the ability to create a custom log of inbound and outbound calls can be implemented as a simple server-side Ruby script that runs 24x7, rather than within a browser, which stops processing events when the end user shuts off their computer. The potential is there to build and evolve Click-To-Call into all kinds of goodness using OnSIP’s services.

Be sure to read the next Mashups article: Best New Mashups: Travel Mashups, From Hotels to Guide Books