# Migrating to Versioned Java SDK Sinch offers a Unified Java SDK ([com.sinch.sdk.sinch-sdk-java](https://mvnrepository.com/artifact/com.sinch.sdk/sinch-sdk-java)). This guide provides information on how to migrate from the initial release of the Sinch Unified Java SDK to the versioned release. ## Migration to versioned SDK The initial Sinch Unified Java SDK was based on adapter layers; each programmatic API required its own business logic. To reduce overhead and complexity, the SDK implemented "versioned" layers with v1.5. To provide a smooth transition, the un-versioned APIs are still supported. However, they will be tagged as `@Deprecated`, and will be removed with the next major release. With fewer layers, the SDK decreases memory consumption and increases performance. The versioned APIs are accessible from domains within the `SinchClient` (e.g. `client.sms()`) for SMS, but with an added `vX` suffix pointing to the version *namespace*. For example, previous calls to `client.sms().batches()` (using the inital, un-versioned SDK) are now available by addressing `client.sms().v1().batches()` (using the first versioned SDK). This also impacts packages and classes names. Tables providing mappings between un-versioned calls and versioned calls are below. The corresponding JavaDocs are linked for easy reference. ## Client | Product | Un-versioned | Versioned | | --- | --- | --- | | Voice | [client.voice()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/VoiceService.html) | [client.voice().v1()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/VoiceService.html) | ## Voice In addition to the table below, you can review the [corresponding syntax reference guide](/docs/voice/sdk/java/syntax-reference/) and [API reference guide](/docs/voice/api-reference/voice). ### Applications | Method | Un-versioned | Versioned | | --- | --- | --- | | assignNumbers | [void assignNumbers(ApplicationsAssignNumbersRequestParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#assignNumbers(com.sinch.sdk.domains.voice.models.requests.ApplicationsAssignNumbersRequestParameters)) | [void assignNumbers(UpdateNumbersRequest parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#assignNumbers(com.sinch.sdk.domains.voice.models.v1.applications.request.UpdateNumbersRequest)) | | getCallbackUrls | [CallbackUrls getCallbackUrls(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#getCallbackUrls(java.lang.String)) | [Callbacks getCallbackUrls(String applicationKey)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#getCallbackUrls(java.lang.String)) | | listNumbers | [AssignedNumbers listNumbers()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#listNumbers()) | [OwnedNumbersResponse listNumbers()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#listNumbers()) | | queryNumber | [NumberInformation queryNumber(E164PhoneNumber)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#queryNumber(com.sinch.sdk.models.E164PhoneNumber)) | [QueryNumberResponse queryNumber(String number)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#queryNumber(java.lang.String)) | | unassignNumber | [void unassignNumber(E164PhoneNumber, String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#unassignNumber(com.sinch.sdk.models.E164PhoneNumber,java.lang.String)) | [void unassignNumber(UnAssignNumberRequest parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#unassignNumber(com.sinch.sdk.domains.voice.models.v1.applications.request.UnAssignNumberRequest)) | | updateCallbackUrls | [void updateCallbackUrls(String, CallbackUrls)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ApplicationsService.html#updateCallbackUrls(java.lang.String,com.sinch.sdk.domains.voice.models.CallbackUrls)) | [void updateCallbackUrls(String applicationKey, Callbacks parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ApplicationsService.html#updateCallbackUrls(java.lang.String,com.sinch.sdk.domains.voice.models.v1.applications.Callbacks)) | ### Callouts | Method | Un-versioned | Versioned | | --- | --- | --- | | call | [String call(CalloutRequestParameter)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CalloutsService.html#call(com.sinch.sdk.domains.voice.models.requests.CalloutRequestParameters)) | [String call(CalloutRequest parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CalloutsService.html#call(com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequest)) | | conference | [String conference(CalloutRequestParametersConference)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CalloutsService.html#conference(com.sinch.sdk.domains.voice.models.requests.CalloutRequestParametersConference)) | [String conference(CalloutRequestConference parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CalloutsService.html#conference(com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestConference)) | | custom | [String custom(CalloutRequestParametersCustom)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CalloutsService.html#custom(com.sinch.sdk.domains.voice.models.requests.CalloutRequestParametersCustom)) | [String custom(CalloutRequestCustom parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CalloutsService.html#custom(com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestCustom)) | | textToSpeech | [String textToSpeech(CalloutRequestParametersTTS)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CalloutsService.html#textToSpeech(com.sinch.sdk.domains.voice.models.requests.CalloutRequestParametersTTS)) | [String textToSpeech(CalloutRequestTTS parameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CalloutsService.html#custom(com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestCustom)) | ### Calls | Method | Un-versioned | Versioned | | --- | --- | --- | | get | [CallInformation get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CallsService.html#get(java.lang.String)) | [CallInformation get(String)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CallsService.html#get(java.lang.String)) | | manageWithCallLeg | [void manageWithCallLeg(String, CallLegType, SVAMLControl)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CallsService.html#manageWithCallLeg(java.lang.String,com.sinch.sdk.domains.voice.models.CallLegType,com.sinch.sdk.domains.voice.models.svaml.SVAMLControl)) | [void manageWithCallLeg(String, CallLeg, SvamlControl)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CallsService.html#manageWithCallLeg(java.lang.String,com.sinch.sdk.domains.voice.models.v1.calls.request.CallLeg,com.sinch.sdk.domains.voice.models.v1.svaml.SvamlControl)) | | update | [void update(String, SVAMLControl)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/CallsService.html#update(java.lang.String,com.sinch.sdk.domains.voice.models.svaml.SVAMLControl)) | [void update(String, SvamlControl)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/CallsService.html#update(java.lang.String,com.sinch.sdk.domains.voice.models.v1.svaml.SvamlControl)) | ### Conferences | Method | Un-versioned | Versioned | | --- | --- | --- | | call | [`String call(CalloutRequestParametersConference)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ConferencesService.html#call(com.sinch.sdk.domains.voice.models.requests.CalloutRequestParametersConference)) | [`String call(CalloutRequestConference)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ConferencesService.html#call(com.sinch.sdk.domains.voice.models.v1.callouts.request.CalloutRequestConference)) | | get | [`Collection<ConferenceParticipant> get(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ConferencesService.html#get(java.lang.String)) | [`GetConferenceInfoResponse get(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ConferencesService.html#get(java.lang.String)) | | kickAll | [`void kickAll(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ConferencesService.html#kickAll(java.lang.String)) | [`void kickAll(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ConferencesService.html#kickAll(java.lang.String)) | | kickParticipant | [`void kickParticipant(String, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ConferencesService.html#kickParticipant(java.lang.String,java.lang.String)) | [`void kickParticipant(String, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ConferencesService.html#kickParticipant(java.lang.String,java.lang.String)) | | manageParticipant | [`void manageParticipant(String, String, ConferenceManageParticipantRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/ConferencesService.html#manageParticipant(java.lang.String,java.lang.String,com.sinch.sdk.domains.voice.models.requests.ConferenceManageParticipantRequestParameters)) | [`void manageParticipant(String, String, ManageConferenceParticipantRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/ConferencesService.html#manageParticipant(java.lang.String,java.lang.String,com.sinch.sdk.domains.voice.models.v1.conferences.request.ManageConferenceParticipantRequest)) | ### Webhooks | Method | Un-versioned | Versioned | | --- | --- | --- | | unserializeWebhooksEvent | [`unserializeWebhooksEvent(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/WebHooksService.html#serializeWebhooksResponse(com.sinch.sdk.domains.voice.models.svaml.SVAMLControl)) | [`VoiceWebhookEvent parseEvent(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/WebHooksService.html#parseEvent(java.lang.String)) | | serializeWebhooksResponse | [`String serializeWebhooksResponse(SVAMLControl)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/WebHooksService.html#unserializeWebhooksEvent(java.lang.String)) | [`String serializeResponse(SvamlControl)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/WebHooksService.html#serializeResponse(com.sinch.sdk.domains.voice.models.v1.svaml.SvamlControl)) | | validateAuthenticatedRequest | [`boolean validateAuthenticatedRequest(String, String, Map<String,String>, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.3.1/com/sinch/sdk/domains/voice/WebHooksService.html#validateAuthenticatedRequest(java.lang.String,java.lang.String,java.util.Map,java.lang.String)) | [`boolean validateAuthenticationHeader(String, String, Map<String,String>, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/voice/api/v1/WebHooksService.html#validateAuthenticationHeader(java.lang.String,java.lang.String,java.util.Map,java.lang.String)) |