Sinch Developer Documentation

Building blocks to enable rich customer communication

Sinch Voice Android SDK

See how our platform is evolving. Keep track of new features, API versions and bug fixes.

2021-03-18 | SINCH SDK ANDROID 3.17.6

- Fix crash: catch unexpected android.os.TransactionTooLargeException from getPackageInfo(); - Failure of internal database initialization at SinchClient/UserController creation time will now cause IOException, instead of failing silently; - Add comment to the sample apps' SinchService explaining recommended lifecycle management.

2020-09-30 | SINCH SDK ANDROID 3.17.5

- Add VideoController.setLocalVideoResizeBehaviour() to control local video scaling. - Fix potential crash in logging when receiving weird-looking media streams.

2020-03-20 | SINCH SDK ANDROID 3.17.4

- Fix video-related crash on selected devices that do not expose required HW codecs.

2020-03-15 | SINCH SDK ANDROID 3.17.3

- Fix multiple B-sides scenario (callee) not working.

2020-02-10 | SINCH SDK ANDROID 3.17.2

- Cleaned up aar library to make compatible with Android Bundle build process.

2019-11-12 | SINCH SDK ANDROID 3.17.1

- WebRTC updated - Updated Sample Applications (-push, -push-video) to show how to use Android 10 - time-sensitive notification for incoming calls. - Cancel Call Push notification is deprecated for consistency with other platforms (namely iOS 13) due to new requirements. If such a push notification is received, it'll have property `isValid` set to `false`

2019-11-12 | SINCH SDK ANDROID 3.17.0

- WebRTC updated - Java source code requires JAVA 8 (1.8)

2019-11-10 | SINCH SDK ANDROID 3.16.0

- Introduced UserController, an independent component that registers user w/o starting of SinchClient. - Instant Messaging functionality removed. Public API interfaces are still present, but will throw exceptions.

2019-09-06 | SINCH SDK ANDROID 3.15.0

- Added ManagedPush API which provides callbacks on FCM token registration success/failure. - Internal improvements related to API request timeouts and resending.

2019-05-30 | SINCH SDK ANDROID 3.14.4

- Fixed crash that happen on certain condition during un-graceful termination of SinchClient.

2019-05-25 | SINCH SDK ANDROID 3.14.3

- Fixed bug that caused premature ICE Restart (e.g. re-connection when there is no available network connection).

2019-05-24 | SINCH SDK ANDROID 3.14.2

- Fixed bug in media handover logic that triggered reconnection attempt while no network is available thus hindering proper reconnection later.

2019-05-23 | SINCH SDK ANDROID 3.14.1

- Google Services dependencies are updated to revision 4.2.0 which contains the fix of rare 'Firebase not init' bug. - Sample-push and Sample-video-push application are amended to provide 'display name' via push notification. - Fixed bug in handling of network change during the call if MediaHandoverConfig was not set via Beta.setMediaHandoverConfig() API.

2019-05-22 | SINCH SDK ANDROID 3.14.0

- Source code is Java 8 desugared. Requirement to use Java 8 dropped (use Java 7 or Java 8 as you please).

2019-05-15 | SINCH SDK ANDROID 3.13.2

- Fix HTTP requests being cancelled too early during SinchClient graceful shutdown. - New API: Beta.canEnableManagedPush(Context) - Internally remapping UnsatisfiedLinkError due to OOM to java.lang.OutOfMemoryError - Extend internal signaling timeout values

2019-03-27 | SINCH SDK ANDROID 3.13.1

- Added Beta Auto Audio Routing functionality. - Added Beta Torch Mode control. - "Call Cancelled" push notification are sent also when call is finished due to timeout or no answer. - Fixed ringtone going to earpiece form speaker. - Fixed connectivity listener bug. - STUN server is read from config. - added setTorchMode() API to VideoController to control torchlight during video call. - added enable/disable automatic audio routing APIs to AudioController to control audio routing.

2018-12-10 | SINCH SDK ANDROID 3.13.0

- Improved audio processing (AGC). - Added API to select camera before starting a videocall. - PubNub subscriber uses HTTPS by default. - PubNub and Sinch APIs now working via Sinch HttpClient. - WebRTC updated. - Bug fixes and improvements.

2018-12-03 | SINCH SDK ANDROID 3.12.8

- Ready for use with application with targetSdk=28, meeting Google Play's target API level requirement for November 2018. - Sample Applications are updated to target API 28 and be Android P compliant.

2018-09-05 | SINCH SDK ANDROID 3.12.7

- Fixed a bug in HttpRequester, which led to crash.

2018-08-10 | SINCH SDK ANDROID 3.12.6

- Fixed a bug in HttpRequester which made PubNub re-tries not reliable. - Sample Applications shows how to check and request necessary permissions. - Push Sample Applications demonstrate how to receive call from locked screen.

2018-05-23 | SINCH SDK ANDROID 3.12.5

- Removed the use of android instanceId in phone meta data gathering.

2018-01-13 | SINCH SDK ANDROID 3.12.4

- Added support for cancellation of a call via VoIP push notifications. - Added API for retrieving custom public headers from push notifications. - Fixed a crash occurring while receiving incoming call push notification while in native call with "respectNativeCalls" enabled.

2017-11-23 | SINCH SDK ANDROID 3.12.3

- Improved Wifi/Cellular handover for App calling

2017-11-06 | SINCH SDK ANDROID 3.12.2

- Minor video capture bug fix.

2017-11-03 | SINCH SDK ANDROID 3.12.1

- Improved robustness of video pipeline. - De-coupled capturing and preview (now it’s possible dynamically show/hide preview w/o affecting capturing and sending video). - Added new VideoController’s API: setVideoFrameListener() to set a callback that receives remote video frames w/o affecting rendering. Allows to do “screenshot” of remote video. - Added new VideoController’s API: setLocalVideoFrameListener() to set a callback that receives local video frames instead of sending them to remote side. Allows processing of local video before sending it. Does not affect rendering of local preview. Sample application “sinch-rtc-sample-video-filter” is added for demonstration. - Managed push notifications migrated from GCM to FCM (Google -\> Firebase Cloud Messaging). - Sample applications updated with regards of FCM use and SinchClient auto-restart.

2017-10-20 | SINCH SDK ANDROID 3.11.1

- General improvement.

2017-03-10 | SINCH SDK ANDROID 3.11.0

- Video Calling General Availability Release - Add support for pausing and resuming video stream - Known issue: Compatibility problem on a few specific 64 bits devices

2017-01-24 | SINCH SDK ANDROID 3.9.14

- Video calling bug fixes

2016-11-14 | SINCH SDK ANDROID 3.9.10

- Fixed local DTMF feedback playout. - IPv6 compatibility.

2016-09-30 | SINCH SDK ANDROID 3.9.9

- Video calling bug fixes.

2016-07-14 | Sinch SDK Android 3.9.8

- Improve robustness of native library loading for Android \< 4.3 (Jellybean MR2).This should improve on the situation described in - Fixed Message.timestamp() to return server-side timestamp for a Message passed to MessageClientListener.onMessageSent(…).

2016-06-29 | Sinch SDK Android 3.9.7

- Fixed an issue affecting incoming call ringtone on some devices. - Fixed a possible crash occurring while logging certain HttpRequest errors.

2016-06-23 | Sinch SDK Android 3.9.6

- Address BoringSSL version compatibility with regards to Google Play Store.

2016-05-11 | Sinch SDK Android 3.9.5

- Upgrade BoringSSL to revision c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9. This revision includes fixes for described in

2016-05-03 | Sinch SDK Android 3.9.4

- Fixed a possible crash for video calling when navigating away from the video call screen and back. - Fixed a possible crash on devices with custom OEM Android when the app is missing BLUETOOTH permission.

2016-03-04 | Sinch SDK Android 3.9.3

- Updated the SDK to use HttpURLConnection instead of Apache HTTP client which is obsolete in Android 6.

2016-02-02 | Sinch SDK Android 3.9.2

- Support for 64 bit architectures. - Support for dual webrtc. - Fixed a regression since 3.8.0 which affected setting proper AudioManager mode during a call.

2016-01-27 | Sinch SDK Android 3.9.1

- SIP errors reporting.

2015-09-25 | Sinch SDK Android 3.7.1

- Introduced Sinch conference calling.

2015-07-08 | Sinch SDK Android 3.6.2

- Adaptive bitrate support for OPUS codec in app-to-app calls.

2015-06-01 | Sinch SDK Android 3.6.1

- x86 support - Exposed getter for push display name on NotificationResult - Minor internal improvements

2015-04-10 | Sinch SDK Android 3.6.0

- Support for managed push, where the Sinch backend will handle sending of push messages. See the reference documentation for setSupportManagedPush, unregisterManagedPush, the new sample app and the user-guide for more information. - relayRemotePushNotificationPayload will now correctly start the client when relaying payload for an IM. - Additional exception catching for undocumented exceptions thrown by Android audio related APIs.

2015-03-05 | Sinch SDK Android 3.5.0

- Support for web-to-app calling with the Sinch Javascript SDK. - OPUS codec support in app-to-app calls. - Decreased amount of messages exchanged during call setup, resulting in shorter set up time. - SinchClientListener.onClientFailed() will now be called if the audio device fails to initialize. - Samples updated to be compatible with Android Studio 1.0.

2014-12-19 | Sinch SDK Android 3.4.3

- Updated OpenSSL version to comply with Play Store requirements.

2014-12-08 | Sinch SDK Android 3.4.2

- Decreased amount of network requests during startup. - IllegalArgumentException is now correctly thrown when headers for a call exceed 1024 bytes.

2014-12-03 | Sinch SDK Android 3.4.1

- Improved internal call reporting.

2014-11-21 | Sinch SDK Android 3.4.0

- SinchClient.registerPushNotificationData() will now throw if support for push notifications has not been enabled before the method is called. - Added getCall(String) to CallClient, which returns the Call object for the given callId, if that call exists. - Added getHeaders() to Call, which returns the custom headers for the call. - Sample apps have been updated to include a more robust implementation where the SinchClient is contained inside a Service.

2014-10-27 | Sinch SDK Android 3.3.9

- Improvements to scenario where caller hangs up a call before certain internal REST API requests has completed, but the requests completes later during the graceful termination period.

2014-10-24 | Sinch SDK Android 3.3.8

- Added new method SinchClient.terminateGracefully()

2014-10-17 | Sinch SDK Android 3.3.7

- Fixed issue causing long call setup time when using certain codecs.

2014-10-10 | Sinch SDK Android 3.3.6

- Additional improvements for scenarios in which the caller cancels a call before the call is answered.

2014-10-09 | Sinch SDK Android 3.3.5

- Fixed issue if caller hung up call quickly and before the callee answer, the callee would not receive the event that the call actually ended.

2014-10-06 | Sinch SDK Android 3.3.4

- Improved thread handling while fetching history in specific cases.

2014-10-01 | Sinch SDK Android 3.3.3

- Improved logging of session events to enable debugging in cases where calls might fail to establish. - Enabled automatic provisioning of device specific settings to increase call quality.

2014-09-19 | Sinch SDK Android 3.3.2

- Improvements in handling unstable network connection when initiating a call. - Fix for Xperia Z devices not picking up any input from the microphone.

2014-09-04 | Sinch SDK Android 3.3.0<-h3> - Added persistence mechanism. Instant messages are now persisted internally in the SDK and retried automatically for 12 hours before failing.

2014-08-05 | Sinch SDK Android 3.2.6

- Bugfix: Incoming calls will from now on never have state PROGRESSING. Previously, incoming calls could either be in INITIATING or PROGRESSING just after CallClientListener.onIncomingCall. Now, the call will initially be in INITIATING, until transitioning to ESTABLISHED or ENDED. - Fixed crash when attempting to send DTMF during call setup. - Increased logging for rare instances where AudioTrack/AudioRecord would not initialize correctly. - Internal improvements for Call headers.

2014-07-11 | Sinch SDK Android 3.2.3

- Minor internal improvements. - Significantly reduced size of native binary.

2014-06-12 | Sinch SDK Android 3.1

- stop() has been deprecated in favor of the new terminate(). As part of this change, the SinchClient is now invalidated after terminate() (or stop()) is called and may not be started again. - SecurityExceptions thrown on network requests are caught internally in the SDK now, workaround for a potential Android bug that sometimes throws SecurityException when it should throw an exception related to unknown host. - CallDetails.getError() now correctly returns null if no error occurred. - Sample apps support for Eclipse - Other minor bug fixes and improvements

2014-05-20 | Sinch SDK Android 3.0.1

Bug fix:
  • Removed internal call to AudioManager.setMode() when establishing/tearing down a call.

2014-05-14 | Sinch SDK Android 3.0

Public release of the Android SDK with:
  • Better sound quality
  • Improved sample applications and documentation
  • Refactored calling and messaging API

2014-04-23 | Sinch SDK Android 3.0 BETA

First public beta version of the Sinch SDK for Android with support for:
  • App to app calling
  • App to phone calling
  • Instant messaging to single and multiple recipient

Edit on GitHub

Updated about a month ago

Sinch Voice Android SDK

See how our platform is evolving. Keep track of new features, API versions and bug fixes.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.