All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Close HTTP responses to prevent resource leaks
- Added
RedactResponseException
and deprecatedVonageBadRequestException
- Added
maxBitrate
tocom.vonage.client.video.Archive
- Added varargs
removeCapabilities
method toApplication.Builder
- Added support for Verify custom templates
- Added
network_apis
capability to Application API - Added
mode
property toInputAction
NCCO - Refactored
InputAction.Builder
and added constructor validation - Added
endpoint_type
toAnswerWebhook
- Added
@JsonCreator
annotation to webhook classes'fromJson(String)
method - Added
app_id
tocom.vonage.client.numbers.OwnedNumber
- Fixed Viber Video message TTL field being set incorrectly
- Fixed incorrect serialisation of outbound WhatsApp Location message
- Added end-to-end encryption support for Video sessions
- Added
leg_persistence_time
to Application Voice capability - Added
signed_callbacks
to Application RTC capability - Added
name
field tocom.vonage.client.video.RenderResponse
- Added custom user agent property setting to
HttpConfig
- Added RCS channel to Messages API
- Added
ackInboundMessage
andrevokeOutboundMessage
methods toMessagesClient
- Fixed
viber_service
deserialization incom.vonage.client.messages.Channel
- Added
thumbnail_url
,video_url
,image_url
,ctwa_clid
andmedia_type
to WhatsAppReferral
- Added
_self.href
property tocom.vonage.client.messages.InboundMessage
- Added
reaction
andbutton
types to WhatsApp messages - Added
content
property toInboundMessage
for MMS messages - Removed
com.vonage.client.messages.internal.Text
- Factored out common properties & validation for text, media and custom messages into
MessageRequest
- Added interfaces for text and media
MessageRequest
builders
- Added
targetApiKey
for buy & cancel number endpoints - Added Builder for
UpdateNumberRequest
and deprecated setters - Added
app_id
property toUpdateNumberRequest
(replacesmessagesCallbackValue
) - Added
applicationId
andhasApplication
toListNumbersFilter
- Builders for
ListNumbersFilter
andSearchNumbersFilter
- Improved / added missing documentation in Numbers API
- Deprecated setters in Numbers API
state
not included in Number Verification auth URL if null- Deprecated Meetings API
- Fixed UUID validation in
ConversationAction.Builder#canHear
andcanSpeak
- Changed signature of
canHear
andcanSpeak
methods to return Strings instead of UUIDs
- Changed signature of
- Validation for
endpoint
,limit
andtimeOut
inConnectAction
- Added Builder to
DtmfSettings
with validation
- Made
com.vonage.client.conversations.GenericEvent
public - Bumped
commons-codec
andcommons-lang3
versions
- Refactoring to accommodate using v2.0.0 of Vonage JWT library
- Made
timestamp
optional in Conversion API - Added response object to
Verify2Client.checkVerificationCode
- Fixed
SpeechSettings.Language.NEPALI
(de)serialisation fromRandomNumber
true iffrom
is not specified inCall.Builder
- Fixed
com.vonage.client.voice.EventWebhook
deserialisation issuegetCallUuid()
andgetRecordingUuid()
now return String instead of UUID
- Fixed parsing issue in
ConversationsClient#listEvents
body
method inCustomEvent.Builder
is now accessible- Bumped JWT library version to 1.1.3
- Added
User-to-User
header in Voice Connect SIP endpoint - Added missing custom
headers
field incom.vonage.client.voice.SipEndpoint
- Added Number Verification API
- Refactored Network auth
- Reduced Verify v2 minimum channel timeout
- Fixes Maven POM metadata
- Refactored auth
- Split
TokenAuthMethod
intoApiKeyQueryParamsAuthMethod
andApiKeyHeaderAuthMethod
AuthMethod#apply(RequestBuilder)
removed to decouple from Apache HttpClient- Refactored
RequestSigning
- Deprecated methods that use
NameValuePair
and modify the input collection
- Deprecated methods that use
- Improved testing of auth method application
- Introduced intermediate interfaces
- Split
- Added Vonage Network Auth API (intended for internal use only)
- Added SIM Swap API
- Migrated to Maven from Gradle
- Added missing supported languages to
TextToSpeechLanguage
enum - Added
ttl
field to outbound MMS messages - Added message reply context to Whatsapp outbound requests
- Added network code to
InboundMessage
- Added Experience Composer to Video API
- Fixed regression in
createSession
Video endpoint muteSession
Video endpoint now returnsProjectDetails
- Added Verify capability to Application API
- Added Live Captions and Audio Connector endpoints to Video API
- Added
publisheronly
role to Video API - Added Verify v2 "Next Workflow" endpoint
- Updated validation logic for Verify v2
brand
and SMSfrom
parameters - Removed
com.vonage.client.sms.HexUtil
- Global configuration for Jackson in
Jsonable#createDefaultObjectMapper()
- Removed annotations on domain classes
- Added
createJsonObjectMapper()
configuration override mechanism toJsonableBaseObject
- Added Conversation API implementation
- Type inference for User channels (
com.vonage.client.users.channels
)- Added
com.vonage.client.common.ChannelType
enum - Added
@JsonSubTypes
for improved deserialisation support - Added
type
field toChannel
- Methods
setTypeField()
andremoveTypeField()
for automatically setting / unsetting based on the class
- Methods
- Added
- New class
com.vonage.client.common.HalFilterRequest
- Added
com.vonage.client.common.SortOrder
- Used for grouping common "List*Request" fields
- Added
- Bumped Jackson version to 2.17.0
- Bumped JWT library version to 1.1.1
- Made
from
parameter mandatory in Verify v2 WhatsApp workflows - Added
com.vonage.client.sms.MessageEvent
for SMS webhooks- Deprecated SMS classes in
com.vonage.client.incoming
package
- Deprecated SMS classes in
- Added Number Insight v2 API implementation
- New webhook deserialisation POJOs for Voice:
AnswerWebhook
andEventWebhook
toString
,equals
andhashCode
implemented for all domain response objects- Added
content_id
andentity_id
parameters for Verify v2 SMS workflow - Added Builder for Verify v2 SMS & Silent Auth workflow requests
- Updated Voice NCCOs:
- Added
mute
,canSpeak
andcanHear
toConversationAction
- Added support for call recording transcription
- Added
randomFromNumber
andringbackTone
toConnectAction
- Improved
SpeechSettings
:- Added
sensitivity
andsaveAudio
- Builder for (setters and constructor are now deprecated)
endOnSilence
is now a Double instead of Integer- Validation for parameter boundaries
- Added
- Added
- Added various missing fields in Messages API:
webhook_version
andwebhook_url
for all outbound messages- MMS vCard
caption
(outbound) - MMS image
caption
(inbound) - Whatsapp file
name
(outbound) - Whatsapp
context_status
andreferral
(inbound) - SMS
count_total
andnetwork_code
(inbound) - SMS
ttl
,encoding_type
,content_id
andentity_id
(outbound) - Whatsapp conversation type and ID (status update)
- Added optional
from
parameter to Verify v2 SMS workflow - Fixed
length
not being set inVerifyClient.verify
overload method - Fixed incorrect HTTP method for updating Video Broadcast layout
- Internal refactoring of Video API implementation
- Added
redirect_url
parameter toSilentAuthWorkflow
- Bumped Jackson version to 2.16.0
- Use String instead of UUID in
VoiceClient
call modification methods - Added public
verifyRequestSignature
method toRequestSigning
- Replaced custom
Locale
enum in Verify v2 withjava.util.Locale
- Removed packages:
com.vonage.client.legacyutils
com.vonage.client.logging
com.vonage.client.sns
- Removed all references to
snsBaseUri
- All future releases from v8.0.0 onwards will be to
com.vonage:server-sdk
Maven coordinates
- Deprecated SNS client,
legacyutils
andLoggingUtils
- Un-deprecated Redact client
- Published relocation information in artifact metadata
- Includes Video API from
8.0.0-beta4
- Removed deprecations:
- Removed dependency on
jakarta.servlet
and all methods which useHttpServletRequest
- Including
com.vonage.client.voice.servlet
andcom.vonage.client.sms.callback.AbstractMOServlet
- Including
- Removed dependency
jackson-dataformat-hal
- Refactored
ListSecretsResponse
- Refactored
- Various public classes, methods & constructors have been removed from public view
ip_address
inAdvancedInsightRequest
andCheckRequest
LineType
inVerifyRequest
Call
public no-args constructor- Setter methods in Voice API
ModifyCallResponse
andRecording
classesmodifyCall
method inVoiceClient
LogoUploadsUrlResponse
uses String instead ofjavax.activation.MimeType
- Removed dependency on
- Added
verifySignature
utility method to Voice and Messages clients - Added
applicationId(UUID)
overload toVonageClient.Builder
- Added direct call modification methods to
VoiceClient
- Added
downloadRecordingRaw
andsaveRecording
methods toVoiceClient
- Deprecated
ModifyCallResponse
andVoiceClient.modifyCall
- Deprecated
VoiceClient.downloadRecording
andRecording
class - Internal refactoring of Voice API implementation
- Bumped
com.vonage:jwt
version to 1.1.0
- Added more locales for Verify v2 and Meetings APIs
- Added
check_url
toVerificationResponse
to support synchronous Silent Authentication - Removed previously deprecated internal classes & methods
- Internal refactoring of Proactive Connect and Meetings API implementations
- Bumped Jackson version to 2.15.3
- Migrated all remaining tests to JUnit 5 and removed dependency on
vintage-engine
- Added
get-full-pricing
implementation of Pricing API inAccountClient
- Added master API key default overloads for secret management in Account API
- Deprecated public internal request classes in Account API
- Internal refactoring of Verify v1 and Account API implementations
- Added
/v1
to Meetings API endpoint URL paths - Migrated assertions and test dependencies to JUnit 5
- Added capability to configure request timeouts (default is 60 seconds)
- Deprecated custom HTTP client implementation setting
- Internal refactoring of Numbers, Conversion and Number Insight API implementations
- Added Users API implementation
- Major refactoring of how endpoints are implemented internally
- SMS, SNS, Redact, Verify v2, Subaccounts, Messages, Application have been refactored
- Introduced
Jsonable
andQueryParams
in addition toDynamicEndpoint
to reduce boilerplate - Added missing fields to Application, capabilities and webhooks
- Removed
PageList
(replaced byHalPageResponse
) - Improved documentation for Application API implementation
- Relaxed UUID validation in
VoiceClient
- Added Proactive Connect API implementation
- Added Meetings API implementation
- Updated Subaccounts name & secret validation logic
- Added Subaccounts API implementation
- Added custom PIN functionality to Verify v1
- Fixed Silent Auth action URL webhook deserialization issue
- Added Verify v2 API implementation
- Added Advanced Machine Detection to Voice API
- Fixed VbcEndpoint NCCO
- Removed dependency on
jakarta.xml.bind
- Made
jakarta.servlet
an optional dependency - Deprecated all methods and classes that use
javax.servlet.HttpServletRequest
- Viber video message now requires setting duration and file size
- Numbers API now uses Basic auth in header rather than query params
- Made
jakarta.servlet-api
a required dependency (replacingjavax.servlet
as compileOnly) - Use
jakarta.xml.bind-api
instead ofjavax.xml.bind
- Added
premium
andlevel
fields to Start Talk request - Refactored
TalkPayload
to use Builder pattern - Added
vbc
andapp
endpoint types for voice calls - Fixed incorrect serialisation of
random_from_number
- Added Builder for constructing
Call
request - Added validation for UUIDs, URLs and request objects in
VoiceClient
- Made internal request classes for Voice API package-private
- Deprecated public-facing usages of
CallModifer
&ModifyCallPayload
- Deprecated setters on classes in Voice API in favour of builders / constructors
com.vonage.client.voice.WebSocketEndpoint
now uses Map for headers
- Updates to Messages v1:
- Added
InboundMessage
webhook class - Fixed timestamp format deserialization for MessageStatus (now returns an Instant)
- Added Viber file and video message types
- Added Action button support to Viber image and text messages
- Added WhatsApp Sticker message type
- Added WhatsApp Location custom message type
- Added WhatsApp Product custom message types
client_ref
character limit increased to 100- Expanded valid message types to accommodate webhooks (MMS text, WhatsApp order, reply & unsupported)
- Added
- Deprecated Pay NCCO action (removed in 8.x)
- Deprecated WAPPush SMS (removed in 8.x)
- Bumped dependency versions
- Removed Payments over the Phone NCCO
- Added SIP functionality to video API
- Added Broadcast functionality to video API
- Refactored Archives for consistency with Broadcast
- Use UUID as return type for IDs where applicable
- Removed
WAPPush
SMS message type - Fixed token generation (added missing claim & role as string)
- Fixed incorrect responses for
muteSession
andmuteStream
(they don't return anything) - Improved handling of 200 / 204 responses for video endpoints which don't return anything
- Added token generation capability to
VideoClient
- Added varargs for
SetStreamLayoutRequest
listArchives
endpoint takes as inputListArchivesRequest
using builder pattern- Simplified
muteSession
andmuteStream
invocation
- Bumped Jackson version to 2.14
- Maven artifact moved to
com.vonage:server-sdk
- Initial implementation of Vonage Video API, with following functionality:
- Create sessions
- Retrieve or update stream layouts in a session
- Create, retrieve, delete archives
- Add / remove streams from archive
- Change archive layout
- Mute streams or individual participants in a session
- Disconnect participants from a session
- Send signal to participants in a session
- Fixed parsing
MessageResponseException
when entity body is empty - Added toggle for using Messages API Sandbox to
MessagesClient
- Deprecated
request_type
inVerifyRequest
- Deprecated
ip_address
inCheckRequest
- Fixed incorrect
Content-Type
header inVerifyEndpoint
(issue #405) andCheckEndpoint
- Added
network
field toVerifyResponse
- Added
estimated_price_messages_sent
toCheckResponse
andVerifyDetails
- Updated
VerifyStatus
enum values - Added missing documentation and validation to requests and responses in Verify API
- Removed SMS Search API
- Deprecated Redact client
- Use
vonage-jwt-jdk:1.0.2
library instead ofnexmo-jwt-jdk:1.0.1
- Ensure
User-Agent
is set in request headers - Allow alphanumeric characters for SMS and MMS sender fields in Messages API
WhatsappRequest
sender must now be an E164 number- Fixed incorrect restrictions on
WhatsappTemplateRequest
- Policy is now optional
- Default locale is now
en
- Locale is now an enum rather than String
parameters
is nowList<String>
- Removed dependency on
commons-io
andcommons-lang3
- Ensured User-Agent is set in request headers
- Added Premium text-to-speech flag in
TalkAction
NCCO - Removed support for legacy
voiceName
parameter - Updated SMS error status codes
- Added support for voice payments using NCCO action
- Updated NCCO classes
- Fixed Action deserialization (issue #373)
- Permit Object values for
WebSocketEndpoint
headers - Removed varargs
headers
method inWebSocketEndpoint.Builder
- Made Builder constructors package-private
- Added
headers
field toSipEndpoint
- Use
java.net.URI
instead of String for URI fields
- Updated Number Insight to be consistent with API specification
- Deprecated IP Address
- Added missing
InsightStatus
codes - Added documentation to Insight Response fields
- Moved AdvancedInsight enums to separate files
- Added
real_time_data
to AdvancedInsightResponse
- Added Messages v1 API implementation
- Added
get-full-pricing
endpoint - Added
Content-Type
andAccept
headers in requests where applicable - Substantial internal refactoring
- Added
call_uuid
to webhook call event. - Bumped dependency versions
- Adding Random From Number Feature for the Voice API, if set to
true
, thefrom
number will be randomly selected from the pool of numbers available to the application making the call. - adjusting operator used to check json payloads
- Adding extra parsing for top level Roaming Status in Advanced Number Insights
- Added parsing for JSON payloads when reading inbound SMS signatures
- Adding ContentId and EntityId to message class for DLT
- Adding Detail enum and string for certain voice webhooks
- Adding Language and Style to the Voice Talk Action and the Talk Request
- Marking VoiceName as Deprecated
- ASR (Automatic Speech Recognition)
- Refactored Application v2 requests to remove duplicated code
- Deprecated Product.MESSAGE from RedactRequest. Use Product.MESSAGES instead
- Deprecated InsightClient#getStandardNumberInsight(number, country, cnam). Use InsightClient#getStandardNumberInsight(StandardInsightRequest) instead
- Deprecated InsightClient.getAdvancedNumberInsight(number, country, ipAddress, cnam). Use InsightClient#getAdvancedNumberInsight(AdvancedInsightRequest) instead
- Deprecated InsightClient.getAdvancedNumberInsight(number, country, ipAddress). Use InsightClient#getAdvancedNumberInsight(AdvancedInsightRequest) instead
- Deprecated public constructors and setters in VerifyRequest use VerifyRequest.Builder instead
- Deprecated MD5Util use HashUtil instead
- Removed setters from BaseRequest. Set fields in the builders of Psd2Request or VerifyRequest instead.
- NotifyEvent structure for Notify Actions
- SHA256 hashing option
- Changed application requests to use basic auth in header for authentication
- Fixed error throw when trying to log No Content responses
- Nexmo rebranded to Vonage
- Added support for PSD2 verification
- Added AppEndpoint support for ConnectAction.
- Added the ability to log the API response in when logger is set to debug mode.
- Added ability to override base url for:
- Modify Call
- Send DTMF
- Stop Talk
- Added support for new voice names added to the Voice API for Text to Speech
- Improved error handling when there are apparent networking issues
- Added new workflows in
VerifyRequest
- Added support for verification workflows inside of
VerifyRequest
. - Added support for transfer to NCCO via
VoiceClient#transferCall
.
VerifyClient
had methods that were still claiming to throw anIOException
. This has been removed as it is not possible for it to be thrown.
- Added support for setting an application id as a messages callback value in updating a number.
- Added support for specifying a number type when searching for a number to purchase.
- Added support for updating account settings (delivery receipt URL and inbound SMS URL)
- Added support for Async Number Insights by setting the property
async
andcallback
on theAdvancedInsightRequest
object. - Add
ringback
support to theonAnswer
part of thePhoneEndpoint
.
- Changed from Auth0 to the Nexmo JWT Library.
- Renamed the
com.nexmo.client.applications
package tocom.nexmo.client.application
ApplicationClient
now supports the Applications v2 API. This change has resulted in some backwards incompatibility.NexmoClientException
is now aRuntimeException
. The various sub client methods will still declare that it is being thrown, but it is no longer a requirement to catch the exception. Additionally, theIOException
that was being thrown in each method has been converted to aNexmoResponseParseException
to more accurately reflect when it is thrown. This is also an unchecked exception and catching is no longer required.- The
NexmoUnacceptableAuthException
will now add which parameters are missing instead of which internal auth methods.
- Added new voice 'MATTHEW' to
VoiceName
enum.
- Fix UTF-8 Encoding for endpoints using JSON bodies.
- Added
NotifyAction
for use inNCCO
.
- Added header (application/json) for Redact client.
- Fixed Application Update to send json body as it is what the API now expects.
- Fixed the product name in Redact API for
messages
.
- Missing builders for
StreamAction
,AdvancedInsightRequest
,StandardInsightRequest
, andBasicInsightRequest
.
AbstractMethod
will force UTF-8 charset for requests usingStringEntity
.- Tests will now run using static builder methods for each of the classes that use builders for construction.
- Added static
builder
methods toAction
classes to reduce some of the verbosity around using them. You can now doTalkAction action = TalkAction.builder("Hello World!").build();
instead of justTalkAction action = new TalkAction.Builder("Hello World).build();
. - Added static
builder
methods toNexmoClient
to reduce some of the verbosity around instantiating the client. - Added
ncco
property to theCall
object for use in theVoiceClient.createCall
method. You can now send anNcco
directly to the API instead of defining ananswer_url
.
channels
property toRecordAction
as it was unintentionally removed during the version 4 release.
- Added
Ncco
class to wrapCollection<Action>
and handle the serialization of NCCO json throughtoJson
. - Added the following
Builder
classes:ConnectAction.Builder
ConversationAction.Builder
InputAction.Builder
RecordAction.Builder
StreamAction.Builder
TalkAction.Builder
- Added
PhoneEndpoint
tocom.nexmo.voice.ncco
package for use withConnectAction
. - Added
WebSocketEndpoint
tocom.nexmo.voice.ncco
package for use withConnectAction
. - Added
SipEndpoint
tocom.nexmo.voice.ncco
package for use withConnectAction
. - Added
EventMethod
enumeration to replace the usage of strings. - Added
EventType
enumeration and the ability to specify theeventType
property ofConnectAction
. - Added
NexmoClient.Builder
to allow for fluent creation ofNexmoClient
. - Added
getBasicNumberInsight
,getStandardNumberInsight
, andgetAdvancedNumberInsight
toInsightClient
which takes a respective*InsightRequest
. - Added
CallerIdentity
data object to be used in number insight. - Added
Builder
toCallsFilter
class to make filtering search results more intuative.
- Renamed all
Ncco
classes toAction
classes:- Renamed
Ncco
interface toAction
- Renamed
ConnectNcco
toConnectAction
- Renamed
ConversationNcco
toConversationAction
- Renamed
InputNcco
toInputAction
- Renamed
RecordNcco
toRecordAction
- Renamed
StreamNcco
toStreamAction
- Renamed
TalkNcco
toTalkAction
- Renamed
- All
Action
classes now must be constructed through the providedBuilder
class. - All
Action
classes are now immutable. - The
eventUrl
property ofConnectAction
,ConversationAction
,InputAction
, andRecordAction
is now aCollection<String>
instead of an array. - The
eventMethod
property ofConnectAction
,ConversationAction
,InputAction
, andRecordAction
is now anEventMethod
enum instead of a String. - Removed
ConnectWebSocketNcco
as it is built intoConnectAction
. VerifyClient
will now return*Response
instead of*Result
objects.- Refactored
com.nexmo.client.voice.endpoints
to be part of thecom.nexmo.client.voice
package. - Made all
*Endpoint
and*Method
classes package scoped. Users should always go through the appropriateClient
classes. - Moved
AbstractMethod
to the root package. - Removed legacy
setUri
methods from the variousVoiceClient
endpoints. This should be done throughHttpConfig
. - Changed
BasicInsightRequest
,StandardInsightRequest
, andAdvancedInsightRequest
to use builders as constructor telescoping is clunky. Added some static factory methods to these classes to allow shortcutting through the builder for "simple" requests. - Updated
BasicInsightEndpoint
,StandardInsightEndpoint
, andAdvancedInsightEndpoint
to a more restrictive scope and moved them to thecom.nexmo.client.insight
package. - Changed
status
property ofBasicInsightResponse
to anInsightStatus
enumeration. - Changed
SendMessageEndpoint
from XML to JSON. It now returns aSmsSubmissionResponse
instead of an array result.
- Added the ability to specify the number of channels to record in
RecordNcco
- Update base uri to always have the version string appended to it.
- Added missing voices to
VoiceName
enum. - Added configuration object to be used with
HttpWrapper
to allow for customization. - Added the ability to customize the base URI used for the various endpoints.
- Added
ConnectWebSocketNcco
to handle connecting to WebSocket endpoints similar toConnectNcco
to maintain backwards compatibility. - Added
getDisplayName
method toVoiceName
to represent the name that is used in serialization.
TalkNcco
to useVoiceName
object instead ofString
HttpWrapper
now uses system properties by default.
- Added
com.nexmo.client.incoming.MessageEvent
to assist with the deserialization of the JSON payload used for incoming messages. - Added
com.nexmo.client.incoming.CallEvent
to assist with the deserialization of the JSON payload used for call events. - Added
com.nexmo.client.incoming.InputEvent
to assist with the deserialization of the JSON payload used for input events. - Added
com.nexmo.client.incoming.RecordEvent
to assist with the deserialization of the JSON payload used for record events. - Added secret management methods to
AccountClient
in the form of the following methods:listSecrets
for listing all secrets.getSecret
for getting information on a specific secret.revokeSecret
for revoking a secret.createSecret
for creating a new secret.
- User Agent String now includes the Java version in addition to the client version.
enum
classes that are used to deserialize JSON have been updated to return anUNKNOWN
value instead of throwing anIllegalArgumentException
when the value cannot be deserialized. Theseenum
s are:RecordingFormat
MachineDetection
ModifyCallAction
CallDirection
CallStatus
RoamingDetails.RoamingStatus
AdvancedInsightResponse.PortedStatus
AdvancedInsightResponse.Validity
AdvancedInsightResponse.Reachability
- Updated
StreamNcco
'sstreamUrl
to serialize into an array for use in the Voice API.
- Added
RedactClient
and the ability to interact with the Nexmo Redact API.
TalkNcco
now usesVoiceName
internally instead ofString
for thevoiceName
property.
- Added
getSmsPrice
toAccountClient
for getting SMS pricing for a country. - Added
getVoicePrice
toAccountClient
for getting voice pricing for a country. - Added
getPrefixPrice
toAccountClient
for getting SMS and voice pricing for a prefix. - Added
topUp
toAccountClient
for topping up your account which has auto-reload enabled. - Added
getSms
toSmsClient
for searching for a single message by id. - Added
ConversionClient
and the ability to interact with the Nexmo Conversion API.
-
Updated
VerifyClient
to use the JSON endpoints instead of XML. -
Updated endpoints which are used by
VerifyClient
from public to package scope in order to encourage usage throughVerifyClient
. -
Deprecated XML version of the following endpoints:
VerifyEndpoint
CheckEndpoint
SearchEndpoint
-
Deprecated the following XML results:
VerifyResult
should useVerifyResponse
CheckResult
should useCheckResponse
SearchResult
should useSearchVerifyResponse
-
Deprecated the following XML methods:
VerifyCheckMethod
- Added
VerifyStatus
enumeration to use for statuses coming back from the verify endpoint. - Added
VerifyResponse
,CheckResponse
, andSearchVerifyResponse
for JSON responses to match other JSON using endpoints. - Added
VerifyMethod
,CheckMethod
, andSearchMethod
for better segregation between endpoint and method classes. - Add
split
attribute to theRecordNcco
object.
- Updated
ConversationNcco
'smusicOnHoldUrl
to serialize into an array for use in the Voice API.
- Updated Jackson Databind dependency to newer version.
- Modify call now works with the API again, returning
null
(because the API now returns 204 No Content) - VerifyRequest now supports all supported parameters.
- Client-side validation for the
from
parameter's length on theMessage
class has been removed.
- Add
level
attribute to theTalkNcco
object.
- Add signature authentication support to the API endpoints which support it.
- Add
NexmoClient.generateJwt
- Add
VoiceClient.downloadRecording
- Made exceptions from
AuthCollection
'sgetAuth
andgetAcceptableAuthMethod
more specific. (Backwards compatible change)
ModifyCallPayload.action
is now a value of the enumModifyCallPayload.Action
.- All calls now throw
HttpResponseException
if an abnormal HTTP status code is returned from the Nexmo API.
- Added missing values for CallStatus: FAILED, REJECTED, BUSY & CANCELLED
- Add missing setter for the Message.statusReportRequired property.
- Add
AccountClient.getBalance
method for getting an account balance. - Add
NumbersClient.listNumbers
method. - Add
NumbersClient.searchNumbers
method. - Add
NumbersClient.cancelNumber
method. - Add
NumbersClient.buyNumber
method. - Add
NumbersClient.updateNumber
andNumbersClient.linkNumber
. - Add the ability to mute, unmute, earmuff, unearmuff and transfer an ongoing call.
- Add
VerifyClient.advanceVerification
andVerifyClient.cancelVerification
- Add
ApplicationClient
end methods for creating, updating, deleting, listing and getting configured applications. - Add extra endpoints for searching SMS messages.
- All URL-encoded PUT and POST requests are now UTF-8 instead of ISO-8859-1.
- The event url is properly set on a
Call
- Number Insight now supports the
cnam
parameter for Standard and Advanced requests.
- Made servlet-api an optional dependency, so it isn't bundled in WAR files. (This could result in class conflicts in Tomcat.)
- Nexmo Voice API
- Automated testing and code quality with Travis CI, Codecov and Codacy
- Publishing to Maven Central
- Complete refactoring and reorganisation of the library. All classes are now
under the
com.nexmo.client
package.
- New Insight API using non-deprecated endpoints.
- Migrate to Gradle
- Internal refactoring for unit testing
- Removed example code. See nexmo-community/nexmo-java-quickstart instead.
- Support for USSD submission
- Include LICENSE.txt file and license in all source files
- Updated signature generation/verification in line with updates to Nexmo Service
- Include the 'network' field in the SmsSubmissionResult object
- Migrate to apache httpclient 4.1
- Switch from use of username/password to 'api_key' / 'api_secret'
- Add support for 'signed' requests (using
NexmoSmsClientSignedRequests
) - Message submissions can now specify a protocol-id value where required
- Add support for supplying a ValidityPeriod along with a Message when submitting a snsRequest
- Add support for performing reachability checks if the feature is enabled on your account
- Message submissions can now specify a message-class using the enum
com.nexmo.messaging.sdk.messages.parameters.MessageClass
- Add support for supplying a network code to override the Nexmo automatic network detection (Feature must be enabled on your account)
- Adding constants for all current response codes
- Adding 'destination' and 'reachability' values to response object
- Correcting some comments and log statements
- Fix some small things reported by findbugs
- Re-factor NexmoSmsClient. There are now subclasses of this client class depending on the level of security required
com.nexmo.messaging.sdk.NexmoSmsClient
: The default clientcom.nexmo.messaging.sdk.NexmoSmsClientSSL
: Uses SSL / HTTPS to encrypt the requestscom.nexmo.messaging.sdk.NexmoSmsClientSignedRequests
: Signs the requests using the secret key assigned to your accountcom.nexmo.messaging.sdk.NexmoSmsClientSignedRequestsSSL
: Signs the requests and uses SSL / HTTPS to encrypt
- Add https support to message submissions
- Add 'ant example-https' example task
- Add support for 'messagePrice' in the api response
- Add reporting of remaining-balance and message-price in the example scripts
- Add support for nexmo SNS service
- Ams submission - report comms-failure as an error response, not as an exception
- Ams submission - add support for 'remainingBalance' in the api response