Evo Voice (Voice) is a communication platform designed to provide the major features found in the typical PBX but in a much more flexible matter.
Voice was designed with the very specific goal of providing highly flexible, multi-channel communications.
The Voice platform is built around 3 core concepts: Endpoints, Flows, and Nodes.
An Endpoint in Voice represents anything which is capable of making or receiving communication. For example, a Phone Number (DID) is an endpoint that can receive phone calls (and also SMS messages). Users/SIP devices (extensions) are endpoints which can make AND receive phone calls (as well as chat messages). Email addresses are endpoints which can receive chat messages (by sending an email to the address).
The following images show a phone number endpoint and a user endpoint:
A Flow is a set of communication instructions that are processed or Executed when an endpoint initiates communication. For example, a Flow is executed when someone dials a Phone Number or when a User tries to dial/chat.
A simple example of a Flow is shown below.
The Flow above is very simple, whenever an Endpoint associated with that flow initiates communication (e.g. someone dials the Phone Number or the user tries to dial out), the system will Say in a British Female voice "Hello World!". The selected box is called a Node. Flows are a series of nodes that are connected together by transitions. Here is another example of a Flow with multiple Nodes
As you can see in the above flow, we have a Say node which has a Transition to a Dial node. In the above flow, when someone dials that Phone Number, the system will first say "Hello World" and then it will dial the user "patrick".
Flows can become very complicated, but the Voice system was designed to allow for simple, but powerful flows that can be broken down into reusable chunks.
Nodes are the individual units that make up a Flow. Nodes are connected together by Transitions. For example, in the following Flow:
You can see that the Say Node has a single Transition "Done" which is connected to the Dial node and which will be followed as soon as the Say node is done talking. Most Nodes have at least one Transition, but some have multiple Transitions, for example:
In the above example, you can see that we used a Day of Week node which has multiple Transitions. The above flow Dials the Operators Mon-Fri otherwise it sends the call to Voicemail.
The Voice platform was designed to be a flexible, user driven communication platform that can handle multiple communication scenarios easily. It is multi-channel and uses the same communication primitives (Endpoint, Flow, and Node) for all of its programming.
These core concepts introduced above will be further explored in the topics at the left.