Record a message

A code snippet that shows how to record a conversation. Answer an incoming call and return an NCCO that includes a record action. When the call is complete, a webhook is sent to the eventUrl you specify. The webhook includes the URL of the recording.

Example

Prerequisites

Write the code

Add the following to record-a-message.js:

const Express = require('express');
const bodyParser = require('body-parser');

const app = new Express();
app.use(bodyParser.json());

const onInboundCall = (request, response) => {
  const ncco = [
    {
      action: 'talk',
      text: 'Please leave a message after the tone, then press #. We will get back to you as soon as we can.',
    },
    {
      action: 'record',
      endOnKey: '#',
      beepStart: 'true',
      endOnSilence: '3',
      eventUrl: [`${request.protocol}://${request.get('host')}/webhooks/recordings`],
    },
    {
      action: 'talk',
      text: 'Thank you for your message. Goodbye.',
    },
  ];

  response.json(ncco);
};

const onRecording = (request, response) => {
  const recording_url = request.body.recording_url;
  console.log(`Recording URL = ${recording_url}`);

  response.status(204).send();
};

app
  .get('/webhooks/answer', onInboundCall)
  .post('/webhooks/recordings', onRecording);

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});

View full source

Run your code

Save this file to your machine and run it:

node record-a-message.js

Try it out

You will need to:

  1. Record a message by dialling your Vonage Number, and leaving your message after the tone (this code snippet).
  2. Download the recording. See the Download a recording code snippet for how to do this.

Further Reading

  • Voicemail - Learn how to record audio from inbound calls using .NET and the Vonage Voice API.