这份文档还在翻译中,预期年底前完成。欢迎您提供宝贵的意见及建议。
Update a Number
This page shows you how to programmatically update the configuration settings for one of your numbers.
You can also update these settings online, using the developer dashboard. Select the "Your Applications" option from either the "Voice" or "Messages and Dispatch" menu. Or, you can use the Nexmo CLI.
Replace the following variables in the sample code with your own values:
Key | Description |
---|---|
VONAGE_API_KEY |
Your Vonage API key (see it on your dashboard). |
VONAGE_API_SECRET |
Your Vonage API secret (also available on your dashboard). |
COUNTRY_CODE |
The two digit country code for the number. For example: GB for the United Kingdom |
VONAGE_NUMBER |
Your Vonage Number. E.g. 447700900000
|
SMS_CALLBACK_URL |
An URL-encoded URI to the webhook endpoint that handles inbound messages. Your webhook endpoint must be active before you make this request. Vonage makes a GET request to the endpoint and checks that it returns a 200 OK response. Set this parameter's value to an empty string to remove the webhook. |
VONAGE_APPLICATION_ID |
The ID of the application that handles inbound traffic to this number. |
VOICE_CALLBACK_TYPE |
The Voice API webhook type: sip , tel or app
|
VOICE_CALLBACK_VALUE |
A SIP URI, telephone number or Application ID, depending on VOICE_CALLBACK_TYPE
|
VOICE_STATUS_URL |
A webhook URL for Vonage to POST Voice API status updates to |
Write the code
Add the following to update-number.sh
:
curl -X POST \
"https://rest.nexmo.com/number/update?api_key=$VONAGE_API_KEY&api_secret=$VONAGE_API_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "country=$COUNTRY_CODE&msisdn=$VONAGE_NUMBER&moHttpUrl=$SMS_CALLBACK_URL" \
-d "app_id=$VONAGE_APPLICATION_ID" \
-d "&voiceCallbackType=$VOICE_CALLBACK_TYPE&voiceCallbackValue=$VOICE_CALLBACK_VALUE&voiceStatusCallback=$VOICE_STATUS_URL"
Run your code
Save this file to your machine and run it:
sh update-number.sh
Prerequisites
npm install @vonage/server-sdk
Create a file named update.js
and add the following code:
const Vonage = require('@vonage/server-sdk');
const vonage = new Vonage(
{
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
},
{
debug: true,
}
);
Write the code
Add the following to update.js
:
vonage.number.update(
COUNTRY_CODE,
VONAGE_NUMBER,
{
messagesCallbackType: 'app',
messagesCallbackValue: VONAGE_APPLICATION_ID,
voiceCallbackType: VOICE_CALLBACK_TYPE,
voiceCallbackValue: VOICE_CALLBACK_VALUE,
voiceStatusCallback: VOICE_STATUS_URL,
moHttpUrl: SMS_CALLBACK_URL,
},
(err, res) => {
if (err) {
console.error(err);
} else {
console.log(JSON.stringify(res, null, 2));
}
}
);
Run your code
Save this file to your machine and run it:
node update.js
Prerequisites
Add the following to `build.gradle`:
compile 'com.vonage:client:6.2.0'
Create a class named UpdateNumber
and add the following code to the main
method:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();
Write the code
Add the following to the main
method of the UpdateNumber
class:
NumbersClient numbersClient = client.getNumbersClient();
UpdateNumberRequest request = new UpdateNumberRequest(VONAGE_NUMBER, COUNTRY_CODE);
request.setVoiceCallbackType(VOICE_CALLBACK_TYPE);
request.setVoiceCallbackValue(VOICE_CALLBACK_VALUE);
request.setVoiceStatusCallback(VOICE_STATUS_URL);
request.setMoHttpUrl(SMS_CALLBACK_URL);
try {
numbersClient.updateNumber(request);
} catch (VonageClientException | VonageResponseParseException e) {
System.out.println("Error updating number.");
}
System.out.println("Number updated.");
Run your code
We can use the application
plugin for Gradle to simplify the running of our application.
Update your build.gradle
with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''
Run the following gradle
command to execute your application, replacing com.vonage.quickstart.numbers
with the package containing UpdateNumber
:
gradle run -Pmain=com.vonage.quickstart.numbers.UpdateNumber
Prerequisites
Install-Package Vonage
Create a file named UpdateNumber.cs
and add the following code:
using Vonage;
using Vonage.Request;
using Vonage.Numbers;
Add the following to UpdateNumber.cs
:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);
Write the code
Add the following to UpdateNumber.cs
:
var request = new UpdateNumberRequest()
{
Country = COUNTRY_CODE,
Msisdn = VONAGE_NUMBER,
MoHttpUrl = SMS_CALLBACK_URL,
AppId = VONAGE_APPLICATION_ID,
VoiceCallbackType = VOICE_CALLBACK_TYPE,
VoiceCallbackValue = VOICE_CALLBACK_VALUE,
VoiceStatusCallback = VOICE_STATUS_URL
};
var response = client.NumbersClient.UpdateANumber(request);
Prerequisites
composer require vonage/client
Create a file named update.php
and add the following code:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);
Write the code
Add the following to update.php
:
try {
$number = $client->numbers()->get(VONAGE_NUMBER);
$number->setAppId(VONAGE_APPLICATION_ID);
$client->numbers()->update($number);
echo "Number updated" . PHP_EOL;
} catch (Exception $e) {
echo "Error updating number" . PHP_EOL;
}
Run your code
Save this file to your machine and run it:
php update.php
Prerequisites
pip install vonage
Create a file named update.py
and add the following code:
import vonage
client = vonage.Client(key=VONAGE_API_KEY, secret=VONAGE_API_SECRET)
Write the code
Add the following to update.py
:
try:
response = client.update_number(
{
"msisdn": VONAGE_NUMBER,
"country": COUNTRY_CODE,
"messagesCallbackType": "app",
"messagesCallbackValue": MESSAGES_APPLICATION_ID,
"voiceCallbackType": VOICE_CALLBACK_TYPE,
"voiceCallbackValue": VOICE_CALLBACK_VALUE,
"voiceStatusCallback": VOICE_STATUS_URL,
"moHttpUrl": SMS_CALLBACK_URL,
}
)
print("Number updated")
except Exception as exc:
print("Error updating number", exc)
Run your code
Save this file to your machine and run it:
python update.py
Prerequisites
gem install vonage
Create a file named update.rb
and add the following code:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)
Write the code
Add the following to update.rb
:
begin
response = client.numbers.update(
country: COUNTRY_CODE,
msisdn: VONAGE_NUMBER,
app_id: VONAGE_APPLICATION_ID,
voiceCallbackType: VOICE_CALLBACK_TYPE,
voiceCallbackValue: VOICE_CALLBACK_VALUE,
voiceStatusCallback: VOICE_STATUS_URL,
moHttpUrl: SMS_CALLBACK_URL
)
puts "Number updated"
rescue
puts "Error updating number"
end
Run your code
Save this file to your machine and run it:
ruby update.rb