Your Voice app interacts with the Voice API to securely create, receive and control Voice communication with your users.
The components in a Voice app are:
- Outbound - this component:
- Generates JSON Web Tokens (JWTs) using the private_key allocated to your Voice app
- Makes requests to Voice API to create calls to one or more users
- From webhook endpoints, provides the Nexmo Call Control Objects (NCCO) to control the calls
- Customizes live calls following user interaction using the Voice API and NCCOs
- Inbound - From webhook endpoints, provides the NCCOs that handle inbound calls to and conferences hosted on the virtual number associated with this app
- Status - a webhook endpoint that handles the progression of a live call and downloads recordings when the call status is complete
Your Voice app components communicate with one or more users in either a:
- Conversation - a collection of one or more Calls. From an inbound text-to-speech message to a company conference call. The audio is a mix of all legs connected to the Conversation.
- Call - a single leg connected to a Conversation. The audio in a Call consists of transmitted audio (Tx) and received audio (Rx). You use a Call to communicate between two end points.
A Conversation and the legs connected to it are identified by separate UUIDs (Universally Unique IDentifiers). This means you can manipulate Conversations and legs independently. For example, you can move a leg from one Conversation to another.
The following figure shows the components for a private voice communication system:
Using the Voice API or NCCOs you can:
|Connect to a phone number.||
|Record your Call.||
|Create a standard or moderated conference.||
|Send synthesized speech to a Call or Conversation.||
|Send an audio stream to a Call or Conversation.||
|Collect digits input by the person you are calling.||
|Send dual-tone multi-frequency signalling (DTMF) tones to an active call||