Nexmo is excited to announce a new and improved Voice application management section of the Nexmo Dashboard that will make it easier to set up and manage voice applications.
Our new Voice application management capability will enable better administration of existing Voice applications as well as faster configuration changes. New Voice application creation will also be streamlined.
The concept of applications as configurable containers is becoming the norm across CPaaS and other SaaS providers. They facilitate the management of more detailed information and instructions that allow our customers to build and deliver complex, multi-directional communications solutions.
For example, you can use Voice applications with the Nexmo Call Control Object (NCCO) to direct calls being received through a virtual number for a proxy use case or actions taken to direct a call when the Voice API is used to initiate a call. Previously, the only way to create and manage Nexmo Applications was through the Application API or CLI. Now with this new Dashboard feature we have made it easier for you to create and manage your applications.
Webhooks are used to enable tracking events (event_url) so you can capture an event on your server-side with a callback or control changes to your call (answer_url) via a configurable JSON object (NCCO).
One other benefit of applications is the ability to leverage asymmetric cryptography security by using JWTs with your Voice API requests. First you generate a public and private key pair, upload the public key to the Dashboard and use the private key stored safely on your server to generate the JWT. We have made it easy to generate your key pair from the Dashboard.
Voice Application Management Key Features
In improving the experience of the Voice application management section of the Dashboard, we have added three new pages to the Voice section.
We have listed all your voice applications on the “Your Applications” page so you can easily view and make changes to their configuration while staying informed. We also highlight whether or not your application has a saved public key or not (required for outbound use).
Applications are listed by:
- Name: human readable description
- Creation Date (UTC)
- Unique ID
- Security settings: highlights if public key saved
Create an Application
On the “Create an Application” page, you will be able to create your new Voice application as well as configure its settings.
What is required when creating an application:
- API key (if you have subaccounts)
- Application name
- Event URL (POST or GET)
- Answer URL (POST or GET)
- Public key (optional)
- Automatically generate public/private key pair link
Edit Application Settings
When you go to the “Edit Application” page, by default you will land on the “Settings” tab. Here you will be able to view application information including application ID as well as update the configuration of any existing voice application.
There you can check if the Answer URL and Event URL are responding to the selected method (POST/GET) and get any feedback if the response is anything other than a 200 message.
The following can be updated for:
- Application name
- Event URL
- Answer URL
- Public key
Numbers can be assigned to an application after you initially save it or if you are editing an existing application. Click on the “Numbers” tab at the top under the application name to see your Numbers.
Numbers allow you to receive inbound calls or be used in the senderID when making a call. In order to add a number to an application you need to make sure there is one purchased; you can check by clicking on the “Numbers” tab or go to Your numbers in the Numbers product section.
Actions available on the “Numbers” tab:
- Search numbers form:
- 4 digit search parameter
- Numbers table:
- Type: Mobile, Landline, Toll Free
- Feature: VOICE or VOICE & SMS
- Link/unlink to application
- Buy numbers link if you need more numbers or haven’t any assigned
Create Your First Voice Application
To get started with Voice applications in the Dashboard go to the Voice section and explore the newly added Applications pages where you can create a new voice application in virtually no time.
To create a new application:
- Go to the Create an application page
- Name your voice application
- If you have more than one API key, select the one you want to associate with the application from the drop-down list
- Provide an Answer URL
- Provide an Event URL
- Generate a private/public key pair locally or click on the “Generate private/public key pair” link on the page and one will be generated for you in your browser
- Click on the “Create application” button, all done
Link a Number to a Voice Application
Long virtual numbers (LVNs) can be used to show the caller’s number when using outbound API requests as well as for receiving a call if you have an inbound use case. To link a number with a voice application:
- Go to Your applications
- Click on “Edit” for the application to which you want to link a number
- Go to the “Numbers” tab on the “Edit application” page
- Link/unlink one or more of your available numbers with the application
Security in More Detail
Nexmo’s Voice API uses public and private keys to cryptographically sign requests you send to the API. Public key cryptography works by giving you a private key with which to sign requests. We hold the public key and check that the requests you send to us match cryptographically with the public key to ensure that the requests actually come from you.
You can generate a key pair on your own computer and upload it to the Dashboard, or we can generate the public and private keys in your browser. Once the private key has been generated, you must download and store it safely because we will not keep a copy for security reasons. If you lose your private key, you can always generate a new key pair and upload the new public key to Nexmo.
Please note that when generating a key pair with the “Generate key pair” link to protect your security, Nexmo is unable to access the private key because the key pair is generated locally in your browser.
When generating the key pair for your application in your browser the public key field is automatically populated with the public key, and the private key is downloaded as a file to your device.
The easiest way to use the private keys that you have generated is with Nexmo’s client libraries available for Node.js, Python, PHP, Ruby, Java and .NET.
JSON Web Token and How It Is Used
A JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact, self-contained way for securely transmitting information between parties as a JSON object, according to JWT.io. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA.
JWTs are consumed by the Voice API to authenticate user access to the API to make calls and in some cases receive them.
Voice Application Management Important Notes
- You can still use the Nexmo CLI to create and manage your voice applications
- Voice applications created via the Nexmo CLI will appear in the Dashboard
- A JSON Web Token (JWT) is required for the Voice application to be authorized with Nexmo voice endpoints for outbound calls
If you have any questions, please contact support. You should also look for our monthly newsletter. You’re already a subscriber if you signed up for the Nexmo Dashboard.Tags: dashboard, JWTs, key pair, long virtual numbers, LVNs, Nexmo API platform, voice application, voice application management
This post was written by Oliver Schlieben