Telephony call-center functionality easily integrated into your app - built on top of twilio and pusher
Ruby JavaScript CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
db/migrate Reject numbers on blacklist Oct 9, 2013
features Initial commit for zestphone Aug 8, 2013
lib bump gem up to 1.2.0 Apr 18, 2014
script Initial commit for zestphone Aug 8, 2013
spec Allow some events on terminated call to transition to terminate. Aug 25, 2014
.gitignore upgrade ruby to 2.1.1 Apr 18, 2014
.travis.yml upgrade ruby to 2.1.1 Apr 18, 2014
Gemfile.lock bump gem up to 1.2.0 Apr 18, 2014
MIT-LICENSE Initial commit for zestphone Aug 8, 2013 Add project icon (amateur) Apr 16, 2014
Rakefile Initial commit for zestphone Aug 8, 2013 in contents - anchors to page sections Apr 16, 2014
telephony.gemspec Changed gem name to 'telephony' Sep 6, 2013

ZestPhone Build Status Code Climate


What is ZestPhone?

Zestphone is a telephony call center agent-coordination software. ZestPhone is a drop-in phone widget that can be simply added to any web application to give you full call center functionality.
ZestPhone uses Twilio for calls, and uses Pusher to synchronize call states across multiple agents.


  • Inbound and outbound calling
  • Call outbound to anywhere in the world*
  • Cold and warm transfers
  • Put a call on hold / resume a call
  • Agent status / presence
  • Ability to respond to telephony events in your application
  • Uses existing agent names/numbers/ids
  • Embeds into your existing javascript-enabled application
  • PSTN or VoIP (i.e. use a regular phone, SIP, or twilio client)
  • Call recording and storage
  • Voicemail
  • History and auditing

Why use ZestPhone

Am I (or my company) a good candidate?

  • Quick integration You want to quickly and easily add phone capabilities to your application
  • 1:1 Customer Service Experience You want to empower your call center agents to provide 1:1 support to customers with easy-to-use transfer and voicemail capabilities
  • Use any type of phone You have call centers with different phone setups and want software to support them all (PSTN, SIP, VoIP)
  • Low cost per minute You want to take advantage of twilio’s competitive usage pricing

Running ZestPhone

ZestPhone is a ruby on rails application, backed by a MySql database. It's only known to work for sure using ruby 1.9.3, but any 1.9.x ruby version is probably fine.

  • You need a Twilio account of course.
  • A Pusher account
  • A database that is supported by rails, and that supports locking (only MySql is known to work)
  • Your client-side application needs to include backbone.js

The full setup instructions are here (or click on the button below)



Zestphone is essentially an agent state coordination software in the call and conferencing domain. While twilio handles the mechanics of connecting agents and customers over the phone, ZestPhone provides a layer that allows:

  1. Agents to signal availablility to receive calls (presence)
  2. Ability to enter / exit conferences
  3. See other agent's availability statuses for transfers
  4. Play greetings to inbound customers and routing functionality
  5. Ability to embed a call widget into any web-based application

An architectural document is available here: ZestPhone Architecture

Here's a list of all possible states that an agent can be in (ZestPhone coordinates this): Agent States