Earmuff a call

This code snippet earmuffs and unearmuffs a call. When a call is earmuffed, the user cannot hear other participants, but other participants can hear the user.

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

Replace the following variables in the example code:

KeyDescription
UUID

The UUID of the call leg.

Prerequisites

Execute the following command at your terminal prompt to create the JWT for authentication:

export JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$NEXMO_APPLICATION_ID)

Write the code

Add the following to earmuff-a-call.sh:

curl -X PUT https://api.nexmo.com/v1/calls/$UUID \
  -H "Authorization: Bearer $JWT"\
  -H "Content-Type: application/json"\
  -d '{"action": "earmuff"}'

sleep 5s

curl -X PUT https://api.nexmo.com/v1/calls/$UUID \
  -H "Authorization: Bearer $JWT"\
  -H "Content-Type: application/json"\
  -d '{"action": "unearmuff"}'

View full source

Run your code

Save this file to your machine and run it:

bash earmuff-a-call.sh

Try it out

When you run the code the call identified by UUID will be earmuffed or unearmuffed.

Further Reading

  • Conference Calling - This guide explains the two concepts Vonage associates with a call, a leg and a conversation.