Track NCCO progress

In this code snippet you see how to track how far through an NCCO a caller gets using the notify action

Prerequisites

Create an Application

You can install the CLI with the following command:

npm install --location=global @vonage/cli

Before you can start working with your apps, you need to register your configuration: API Key and Secret. You can find them via the Dashboard, in API Settings. Once set, initialize your account using the following command:

vonage config:set --apiKey=XXXXXX --apiSecret=XXXXXX

As soon as the CLI is both installed and configured, use it to create a Vonage application using the following command:

vonage apps:create

The command starts an interactive prompt to ask for the application name, and the capabilities you want to enable - make sure to enable Voice.

When finished, it creates the vonage_app.json file in the current directory containing the Application ID, Application name and private key. It also creates a second file with the private key name app_name.key.

Rent a Number

You can rent a number using the Vonage CLI. The following command purchases an available number in the United States:

vonage numbers:search USvonage numbers:buy 15555555555 US

Specify an alternative two-character country code to purchase a number in another country.

Now that you have both an application and a number, you need to link them together.

Replace YOUR_VONAGE_NUMBER with the number you bought and APPLICATION_ID with your application id, then run the following command:

vonage apps:link APPLICATION_ID --number=YOUR_VONAGE_NUMBER

Example

Prerequisites

npm install express

Write the code

Add the following to notify-a-call.js:

const Express = require('express');
const app = new Express();

const onInboundCall = (request, response) => {
  const ncco = [
    {
      'action': 'talk',
      'text': 'Thanks for calling the notification line',
    },
    {
      'action': 'notify',
      'payload': {
        'foo': 'bar',
      },
      'eventUrl': [`${request.protocol}://${request.get('host')}/webhooks/notification`],
    },
    {
      'action': 'talk',
      'text': 'You will never hear me as the notification URL will return an NCCO ',
    },
  ];

  response.json(ncco);
};

const onNotification = (request, response) => {
  const ncco = [
    {
      'action': 'talk',
      'text': 'Your notification has been received, loud and clear',
    },
  ];

  response.json(ncco);
};

app
  .get('/webhooks/answer', onInboundCall)
  .post('/webhooks/notification', onNotification);

app.listen(3000);

View full source

Run your code

Save this file to your machine and run it:

node notify-a-call.js

Try it out

When you call your Vonage Number you will hear a text-to-speech message and receive a request to your notification URL