Skip to main content

Codename One Adds Native VoIP and VPN Support

Codename One introduces PR #5604 and #5693, bringing cross-platform VoIP push handling and managed VPN capabilities via its build server architecture.

AI-written
Inewgen
12 Sep 2026Source: Dev.to2 min read (0 views)
Share
Codename One Adds Native VoIP and VPN Support

Stock photo for illustration only, not from the actual event

Font size
  • Codename One officially adds cross-platform support for VoIP and VPN features.
  • The build server automatically compiles and configures necessary native extensions.
  • Package boundaries prevent unused native code from triggering Apple App Store rejections.

Back in 2019, open-source framework Codename One—which builds native iOS, Android, desktop, and web apps from Java or Kotlin—drew a firm line against supporting VoIP because the native integration setup was too demanding for the project at the time.

Features like VoIP and VPN do not live neatly inside a standard application process. On iOS, a VoIP push can arrive before the application initializes a Java listener, yet CallKit demands that incoming calls reach the lock screen immediately. Android presents similar requirements through ConnectionService, VpnManager, and VpnService.

mobile app development screen code editor

Stock photo for illustration only, not from the actual event

smartphone app interface design workspace

Stock photo for illustration only, not from the actual event

Never miss the latest news?

Subscribe to get news summaries by email - not often enough to be annoying.

โฆษณา

To overcome this, Codename One leverages its build system. Because builders already assemble the native product, they can dynamically alter its shape based on the Java packages the application actually utilizes, linking frameworks and injecting required permissions automatically through PR #5604 and PR #5693.

Enabling cross-platform runtimes to handle complex native lifecycle hooks and system extensions via a centralized build server addresses a fundamental limitation in multiplatform app development, sparing engineering teams from maintaining separate native build pipelines.

Furthermore, isolating features into specific packages—such as com.codename1.call.session and com.codename1.call.voip—ensures that applications only compile the native machinery they actually require, helping developers avoid Apple App Store rejections tied to unused background entitlements.

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article