Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 142 additions & 69 deletions .env-example
Original file line number Diff line number Diff line change
@@ -1,69 +1,142 @@
VONAGE_API_KEY=VONAGE_API_KEY
VONAGE_API_SECRET=VONAGE_API_SECRET
VONAGE_APPLICATION_ID=VONAGE_APPLICATION_ID
VONAGE_PRIVATE_KEY_PATH=VONAGE_PRIVATE_KEY_PATH
VONAGE_NUMBER=YOUR_VONAGE_NUMBER
VONAGE_BRAND_NAME=VONAGE_BRAND_NAME
RCS_SENDER_ID=VonageRCSDemo-DevRel
VONAGE_VIBER_SERVICE_MESSAGE_ID=VONAGE_VIBER_SERVICE_MESSAGE_ID
VONAGE_WHATSAPP_NUMBER=WABA_NUMBER
TO_NUMBER=NUMBER_TO_CALL
RECIPIENT_NUMBER=YOUR_RECIPIENTS_NUMBER
YOUR_SECOND_NUMBER=YOUR_SECOND_NUMBER
APPLICATION_NAME=APPLICATION_NAME
NEW_SUBACCOUNT_NAME=NEW_SUBACCOUNT_NAME
NEW_SUBACCOUNT_SECRET=NEW_SUBACCOUNT_SECRET
SUBACCOUNT_KEY=SUBACCOUNT_KEY
AMOUNT=AMOUNT
EMOJI=🐱
MESSAGE_UUID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"

# Set to true to look up CNAM data when using Insights:
CNAM=TRUE_OR_FALSE
EVENT_URL=https://requestb.in/UUID_OR_https://UUID.ngrok.io

# Number Insight building blocks
INSIGHT_NUMBER=NUMBER_TO_PROVIDE_INSIGHT_FOR

# Additional variables
NUMBER_SEARCH_PATTERN=NUMBER_SEARCH_PATTERN
NUMBER_SEARCH_CRITERIA=NUMBER_SEARCH_CRITERIA
COUNTRY_CODE=COUNTRY_CODE
VONAGE_NUMBER_FEATURES=VONAGE_NUMBER_FEATURES
SMS_CALLBACK_URL=SMS_CALLBACK_URL
VOICE_CALLBACK_TYPE=VOICE_CALLBACK_TYPE
VOICE_CALLBACK_VALUE=VOICE_CALLBACK_VALUE
VOICE_STATUS_URL=VOICE_STATUS_URL
INSIGHT_NUMBER=INSIGHT_NUMBER
ASYNC_CALLBACK_URL=ASYNC_CALLBACK_URL
NEW_SECRET=NEW_SECRET
VONAGE_SECRET_ID=VONAGE_SECRET_ID
VONAGE_REDACT_ID=VONAGE_REDACT_ID
REQUEST_ID=REQUEST_ID
CODE=CODE
PAYEE_NAME=PAYEE_NAME
AMOUNT=AMOUNT
NAME=YOUR_NAME
TEMPLATE_ID=TEMPLATE_ID
TEMPLATE_FRAGMENT_ID=TEMPLATE_FRAGMENT_ID
STICKER_URL=STICKER_URL
HEADER_IMAGE_URL=HEADER_IMAGE_URL
WHATSAPP_TEMPLATE_NAMESPACE=WHATSAPP_TEMPLATE_NAMESPACE
WHATSAPP_TEMPLATE_NAME=WHATSAPP_TEMPLATE_NAME
STICKER_ID=STICKER_ID
CATALOG_ID=CATALOG_ID
PRODUCT_ID=PRODUCT_ID
SESSION_ID=SESSION_ID
DISPLAY_NAME=DISPLAY_NAME
ROOM_ID=ROOM_ID
THEME_ID=THEME_ID
RECORDING_ID=RECORDING_ID
EXPIRATION_DATE=2033-07-21T13:37:59.810Z
LOGO_TYPE=favicon

## For Messages Sandbox
MESSAGES_SANDBOX_WHATSAPP_NUMBER=MESSAGES_SANDBOX_WHATSAPP_NUMBER
MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER=MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER
MESSAGES_SANDBOX_FB_ID=MESSAGES_SANDBOX_FB_ID
MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID=MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID
MESSAGES_SANDBOX_VIBER_SERVICE_ID=MESSAGES_SANDBOX_VIBER_SERVICE_ID
# Auth / General
VONAGE_API_KEY=a1b2c3d4
VONAGE_API_SECRET=1234567890abcdef
VONAGE_SIGNATURE_SECRET=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz
VONAGE_APPLICATION_ID=aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab
VONAGE_PRIVATE_KEY_PATH=/path/to/aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab_private.key
VONAGE_VIRTUAL_NUMBER=447700900000

# Account
ACCOUNT_ID=f9e8d7c6
ACCOUNT_SECRET=fedcba9876543210
ACCOUNT_SECRET_ID=abcdef09-8765-4321-8cde-0123456789ab
ACCOUNT_SMS_CALLBACK_URL=https://example.org/webhooks/sms-status

# Application
APPLICATION_NAME="My Test Application"

# Messages
MESSAGES_TO_NUMBER="447900000001"
MESSAGES_API_URL="https://api.nexmo.com/v1/messages"
MESSAGES_GEOSPECIFIC_API_URL="https://api-eu.nexmo.com/v1/messages"
MESSAGES_GEOSPECIFIC_API_HOST="api-eu"
MESSAGES_SANDBOX_URL="https://messages-sandbox.nexmo.com/v1/messages"
MESSAGES_MESSAGE_ID="00000000-0000-4000-8000-000000000000"
MESSAGES_IMAGE_URL="https://example.org/image.jpg"
MESSAGES_AUDIO_URL="https://example.org/audio.mp3"
MESSAGES_VIDEO_URL="https://example.org/video.mp4"
MESSAGES_FILE_URL="https://example.org/file.pdf"
MESSAGES_VCARD_URL="https://example.org/vcard.vcf"
MESSAGES_EMOJI="🐱"
MESSAGES_CAPTION="Additional text to accompany the message"

MESSAGES_SANDBOX_VIBER_SERVICE_ID="16273"
MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER="447900000001"
MESSAGES_SANDBOX_FB_ID="100614398987044"
MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID="123456789012345"
MESSAGES_SANDBOX_WHATSAPP_NUMBER="14157386102"

SMS_SENDER_ID="447700900000"
MMS_SENDER_ID="447700900000"
RCS_SENDER_ID="VonageRCSDemo-DevRel"
WHATSAPP_SENDER_ID="14157386102"
VIBER_SENDER_ID="16273"
MESSENGER_SENDER_ID="100614398987044"
MESSENGER_RECIPIENT_ID="1234567890"

VIBER_VIDEO_DURATION="30"
VIBER_THUMB_URL="https://example.org/thumbnail.jpg"
VIBER_VIDEO_FILE_SIZE="64"
VIBER_VIDEO_TTL="86400"
WHATSAPP_TEMPLATE_NAME="verify"
WHATSAPP_OTP="54321"
WHATSAPP_CATALOG_ID="fedcba9876543210"
WHATSAPP_PRODUCT_ID="2lc20305pt"
WHATSAPP_STICKER_ID="13aaecab-2485-4255-a0a7-97a2be6906b9"
WHATSAPP_STICKER_URL="https://example.org/sticker.webp"
WHATSAPP_HEADER_IMAGE_URL="https://example.org/header.png"
WHATSAPP_TEMPLATE_NAMESPACE="9b6b4fcb_da19_4a26_8fe8_78074a91b584"
WHATSAPP_AUTH_TEMPLATE_NAME="auth"
WHATSAPP_TEMPLATE_REPLACEMENT_TEXT="Vonage Verification"

# Network APIs
VNA_AUTH_REQ_ID="arid/ec53bef5-f41b-406e-95b5-fd2b80fd7a94"
VNA_AUTH_CODE="12a56g213ad69asdjfc322"
NV_MSISDN="+99012345678"
NV_REDIRECT_URI="https://example.org/webhooks/number-verification/redicrect"
SIMSWAP_MSISDN="99012345677"
SIMSWAP_MAX_AGE="240"

# Number Insight
INSIGHT_NUMBER="447123456789"
INSIGHT_CALLBACK_URL="https://example.org/webhooks/insight"

# Numbers
NUMBER_MSISDN="447700900000"
NUMBER_COUNTRY_CODE="GB"
NUMBER_TYPE="mobile-lvn"
NUMBER_FEATURES="VOICE,SMS"
NUMBER_SEARCH_CRITERIA="234"
NUMBER_SEARCH_PATTERN="1"
NUMBER_SMS_CALLBACK_URL="https://example.org/webhooks/inbound-sms"
NUMBER_VOICE_CALLBACK_URL="https://example.org/webhooks/voice/status"
NUMBER_VOICE_CALLBACK_TYPE="tel"
NUMBER_VOICE_STATUS_CALLBACK_URL="https://example.org/webhooks/voice/status"

# Pricing
PRICING_COUNTRY_CODE="GB"
PRICING_DIAL_PREFIX="44"

# Redact
VONAGE_REDACT_ID="abcdef09-8765-4321-8cde-0123456789ab"

# SMS
SMS_TO_NUMBER="447700900000"

# Subaccounts
SUBACCOUNT_KEY="4d3c2b1a"
SUBACCOUNT_NAME="Expenses Department Subaccount"
SUBACCOUNT_SECRET="0987654321abcdef"
SUBACCOUNT_BALANCE_AMOUNT="100.00"
SUBACCOUNT_CREDIT_AMOUNT="50.00"
SUBACCOUNT_START_DATE="2025-01-01T00:00:00Z"

# Users
USER_ID="USR-abcdef09-8765-4321-8cde-0123456789ab"
USER_NAME="test_user"
USER_DISPLAY_NAME="My Test User"
USER_NEW_NAME="new_test_username"
USER_NEW_DISPLAY_NAME="My New Test User"
WEBSOCKET_URI="wss://example.com/socket"
SIP_SECURE_URI="sip:4442138907@sip.example.com;transport=tls"
SIP_USERNAME="myUserName"
SIP_PASSWORD="P@ssw0rd"
VBC_EXTENSION="123"

# Verify
VERIFY_NUMBER="447700900000"
VERIFY_BRAND_NAME="Vonage"
VERIFY_PAYEE_NAME="Clientele"
VERIFY_AMOUNT="12.34"
VERIFY_REQUEST_ID="abcdef09876543218cde0123456789ab"
VERIFY_CODE="1234"
VERIFY_WORKFLOW_ID="5"
VERIFY_PSD2_WORKFLOW_ID="6"
VERIFY_TO_EMAIL="email@example.org"
VERIFY_FROM_EMAIL="do-not-reply@example.com"
VERIFY_WHATSAPP_NUMBER="14157386102"
VERIFY_TEMPLATE_NAME="verify"
VERIFY_TEMPLATE_ID="bcdef09-8765-4321-8cde-0123456789ab"
VERIFY_TEMPLATE_FRAGMENT_ID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"

# Voice
VOICE_CALL_ID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"
VOICE_TO_NUMBER="447700900000"
VOICE_TEXT="Hello from Vonage! Would you like to learn more?"
VOICE_LANGUAGE="en-US"
VOICE_DTMF_DIGITS="2468#"
VOICE_CONFERENCE_NAME="My conference call room"
VOICE_NCCO_URL="https://nexmo-community.github.io/ncco-examples/talk.json"
VOICE_ANSWER_URL="https://nexmo-community.github.io/ncco-examples/transfer.json"
VOICE_STREAM_URL="https://nexmo-community.github.io/ncco-examples/silent-loop.json"
VOICE_RECORDING_URL="https://api.nexmo.com/v1/files/bbbbbbbb-aaaa-cccc-dddd-0123456789ab.wav"
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Tooling Team
* @Vonage/server-sdk
* @SMadani
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Request/Response**
If applicable, please provide the request used and the response

**Java Version**
- Version:

**Java SDK Version**
- Version:

**Additional context/ Error Log**
Add any other context about the problem here.
6 changes: 6 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
_Describe your changes here_

## Contribution Checklist
* [ ] Unit tests!
* [ ] Updated [CHANGELOG.md](CHANGELOG.md)
* [ ] My name is in [CONTRIBUTORS.md](CONTRIBUTORS.md)
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build
on:
push:
branches:
- main
pull_request:

permissions: read-all

jobs:
build:
permissions:
contents: read
checks: write
statuses: write
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
java: [17, 21]
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout the repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Setup Java
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b
- name: Build with Gradle
run: ./gradlew build
39 changes: 39 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: "CodeQL"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '35 2 * * 2'

permissions: read-all

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: 'ubuntu-latest'
permissions:
security-events: write
packages: read
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: java-kotlin
build-mode: autobuild
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Initialize CodeQL
uses: github/codeql-action/init@dd746615b3b9d728a6a37ca2045b68ca76d4841a
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@dd746615b3b9d728a6a37ca2045b68ca76d4841a
with:
category: "/language:${{matrix.language}}"
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Vonage Quickstart Examples for Java

[![Build Status](https://github.com/Vonage/vonage-java-code-snippets/actions/workflows/build.yml/badge.svg)](https://github.com/Vonage/vonage-kotlin-sdk/actions/workflows/build.yml)
![CodeQL](https://github.com/Vonage/vonage-java-code-snippets/actions/workflows/codeql.yml/badge.svg)
![SLOC](https://sloc.xyz/github/Vonage/vonage-java-code-snippets)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Community Slack](https://img.shields.io/badge/Slack-4A154B?style=flat&logo=slack&logoColor=white)](https://developer.vonage.com/community/slack)

<img src="https://developer.nexmo.com/assets/images/Vonage_Nexmo.svg" height="48px" alt="Nexmo is now known as Vonage" />

Quickstarts also available for:
Expand Down
8 changes: 4 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ java {
}

dependencies {
implementation 'com.vonage:server-sdk:8.15.1'
implementation 'com.vonage:jwt:2.0.0'
implementation 'com.sparkjava:spark-core:2.9.4'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.2'
implementation 'com.vonage:server-sdk:8.+'
implementation 'com.vonage:jwt:2.+'
implementation 'com.sparkjava:spark-core:2.+'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.+'
}

tasks.register('fatJar', Jar) {
Expand Down
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
Expand Down
Loading