Receive an inbound call
This code snippet demonstrates how to receive an inbound call on your Smart Number.
Prerequisites
Create an Application
Go to the Application's page on the Dashboard, and define a Name for your Application.

Make sure to click on the Generate public and private key button, and keep the file private.key around.
Then, enable the Voice capability. For the moment, leave everything by default.

Finally, click Generate new application at the bottom of the page.
Check out Getting Started with Vonage CLI for more information on how to install and configure the CLI.
Use the following command to create a Vonage application:
vonage apps create 'Your application'
✅ Creating Application
Saving private key ... Done!
Application created
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
None Enabled
vonage apps create 'Your application'
✅ Creating Application
Saving private key ... Done!
Application created
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
None Enabled
Once you have the application, you then need to add the voice capabilities; make sure you replace the webhook URLs with your own:
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
--voice-answer-url='https://example.com/webhooks/voice/answer' `
--voice-event-url='https://example.com/webhooks/voice/event' `
--voice-fallback-url='https://example.com/webhooks/voice/fallback'
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
VOICE:
Uses Signed callbacks: On
Conversation TTL: 41 hours
Leg Persistence Time: 6 days
Event URL: [POST] https://example.com/webhooks/voice/event
Answer URL: [POST] https://example.com/webhooks/voice/answer
Fallback URL: [POST] https://example.com/webhooks/voice/fallback
vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice ^
--voice-answer-url='https://example.com/webhooks/voice/answer' ^
--voice-event-url='https://example.com/webhooks/voice/event' ^
--voice-fallback-url='https://example.com/webhooks/voice/fallback'
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000
Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set
Capabilities:
VOICE:
Uses Signed callbacks: On
Conversation TTL: 41 hours
Leg Persistence Time: 6 days
Event URL: [POST] https://example.com/webhooks/voice/event
Answer URL: [POST] https://example.com/webhooks/voice/answer
Fallback URL: [POST] https://example.com/webhooks/voice/fallback
The application is then created and has the required capabilities. Creating an application and adding application capabilities are covered in detail in the Application documentation.
Install dependencies
Initialize your dependencies
Create a file named receive-an-inbound-call.js and add the following code:
const app = require('express')()
Write the code
Add the following to receive-an-inbound-call.js:
const onInboundCall = (request, response) => {
const from = request.query.from
const fromSplitIntoCharacters = from.split('').join(' ')
const ncco = [{
action: 'talk',
text: `Thank you for calling from ${fromSplitIntoCharacters}`
}]
response.json(ncco)
}
app.get('/webhooks/answer', onInboundCall)
Try it out
Save the file to your machine and run it using the following command:
When you call your Smart Number you will hear a text-to-speech message.