[content from plivo website]
What is Plivo?
Plivo is a Communications Framework to rapidly build voice based apps, to make or receive calls, using your existing web development skills and your existing infrastructure.
* Communications Framework
Plivo is a framework which provides web developers with basic building blocks to create voice based apps in the form of RESTXML (a small set of specific XML elements that can control a call) and RESTAPI (REST-based APIs). So developers can completely do away with learning the nitty-gritty of a telephony engine.
* Rapidly build voice based apps –
Next-gen voice apps need to integrate with external entities like DBs, Social Networks, External APIs etc. When apps are written from within a telephony engine, this integration tends to consume a lot of time. Plivo catalyzes this process.
* Existing web development skills –
Plivo can be used by any web developer – be it Java, .NET, node.js, Perl, PHP, Python or Ruby.
* Existing infrastructure – Plivo values your freedom. Developers using Plivo can run applications from their preferred hosting solution and they also get to choose their preferred carrier(s).
Already sold?
What problem does Plivo solve?
Many a times, developers want their web apps to be able to interact with phone callers – allowing customers to call in and get information from their account or building an IVR menu. Normally, this would require developers to learn the ropes of a telephony engine. This is where Plivo steps in. It lets developers use their existing web development skills (Existing Language, Code, Libraries, Databases) to program their custom business logic (via HTTP) that can control incoming and outgoing phone call instances.
How Plivo works?
Plivo abstracts the underlying telephony engine, exposes it to developers in two ways:
1. RESTXML – a small set of specific XML elements that can control a call. This set is referred to as Plivo Elements.
2. RESTAPIs – REST based APIs.
1. RESTXML
Plivo Elements comprises of the following:
These act as a replacement for complex telephony functions. The elements, can be combined in different ways, to perform complex actions. This is generally used to control an incoming call to the telephony engine. E.g. A customer calls and a dynamic IVR menu needs to be played. OR You may want to record a voicemail for an incoming call to a phone number.
The below diagram outlines a typical case where RESTXML is used and how Plivo works in such cases:
http://www.plivo.org/wp-content/uploads/2011/04/1.png
2. RESTAPIs
RESTAPI exposes the following APIs to developers: BulkCall, Call, CancelScheduleHangup, HangupAllCalls, HangupCall, ScheduleHangup, TransferCall. These provide a mecahnism to initiate new calls and control the live calls in realtime. E.g. Make an outbound call to a phone number OR Transfer a queued customer (currently listening to the hold music) to an agent.
The below diagram outlines how Plivo RESTAPIs work:
http://www.plivo.org/wp-content/uploads/2011/04/2.png