Vonage (Nexmo) SDK Integration in Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Vonage (Nexmo) SDK Integration in Mobile App
Complex
~3-5 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Vonage (Nexmo) SDK Integration for Communication in Mobile Application

Vonage (formerly Nexmo, after Ericsson acquisition renamed Vonage, now part of Ericsson) provides several independent mobile SDKs: Vonage Client SDK for In-App Voice and Messaging, Vonage Video API (ex-TokBox OpenTok) for video, and separate REST APIs for SMS/WhatsApp. Important not to confuse these products — different billing, different SDKs, different documentation.

Vonage Client SDK: Voice Calls

Vonage Client SDK for voice built over WebRTC but provides high-level API with JWT authentication and integration with Vonage Voice API.

JWT generation on backend:

import jwt, time

payload = {
    "application_id": VONAGE_APP_ID,
    "iat": int(time.time()),
    "exp": int(time.time()) + 3600,
    "sub": user_id,
    "acl": {
        "paths": {
            "/*/users/**": {},
            "/*/conversations/**": {},
            "/*/legs/**": {}
        }
    }
}

token = jwt.encode(payload, private_key, algorithm="RS256")

Vonage uses RSA-signed JWT, not HMAC. Private key generated on Vonage Application creation in Dashboard — this .key file must be stored on server, not mobile app.

Android SDK:

// build.gradle
implementation 'com.vonage:client-sdk-android:8.x.x'

// Initialization
val client = VonageClient.Builder(context)
    .build()

client.setConnectionListener { connectionStatus, connectionStatusReason ->
    // CONNECTED, DISCONNECTED, etc.
}

// Login with JWT
client.login(jwt) { loginResult ->
    when (loginResult) {
        is LoginResult.Success -> { /* ready for calls */ }
        is LoginResult.Failure -> { /* handle error */ }
    }
}

Outgoing call via PSTN (to phone number) or In-App (to another app user):

// call another app user
client.call(callee_user_name, CallType.InApp, callListener)

iOS SDK — similar structure, VGClient:

VGClient.setLogger(VGClientLogger(level: .info))
let config = VGClientConfig(region: .US)
VGClient.shared.configure(config)
VGClient.shared.login(withJWT: jwt) { error in }

Incoming calls via push — VoIP PushKit for iOS, FCM for Android. Vonage Dashboard configures Delivery Channel with APNs certificates / FCM key.

Vonage Video API (OpenTok)

If task is video calls or video conferences, Vonage Video API (OpenTok) — separate product with richer functionality: screen sharing, recording, broadcast, signaling via built-in channels.

// Android OpenTok SDK
implementation 'com.vonage:client-sdk-video:x.x.x'

val session = Session.Builder(context, API_KEY, sessionId).build()
session.setSessionListener(sessionListener)
session.connect(token)

val publisher = Publisher.Builder(context).build()
session.publish(publisher)

Session created on server via REST API, client gets sessionId and token. Model similar to Twilio Video.

Vonage SMS and WhatsApp Business

SMS via Vonage REST API — simplest scenario, SDK not needed:

POST https://rest.nexmo.com/sms/json
api_key=xxx&api_secret=yyy&from=Vonage&to=79001234567&text=Hello

WhatsApp Business via Vonage Messages API — requires approved template from Meta for first message (outbound), any user reply opens 24-hour window for free messaging.

Comparison with Twilio

Criterion Vonage Twilio
iOS/Android SDK Maturity Sufficient, rare updates Good, active support
PSTN Coverage Strong in Europe Strong in US, good globally
Video API OpenTok — mature Twilio Video — actively developed
Documentation Worse than Twilio Among best in industry
Voice Cost Comparable to Twilio

Main practical disadvantage of Vonage Client SDK — documentation. Versions 7.x and 8.x have incompatible APIs, migration guide incomplete. Several times had to parse SDK changelog to understand why callbacks stopped working after dependency update.

What's Included

Create and configure Vonage Application, generate RSA key pair, implement backend for JWT, integrate Client SDK or Video API on Android/iOS, setup push for incoming calls, test on real devices.

Timeline: 1–3 weeks depending on required functionality (voice only or full communication platform).