What is custom Linphone and PJSIP development?
Custom Linphone development means building a branded, white-label VoIP dialer app using the liblinphone SDK — fully customised with your logo, colours, features, ZRTP encryption, push notifications, and CRM integrations for iOS and Android. PJSIP customization means building a custom SIP dialer from scratch on the PJSIP/PJSUA2 library for maximum control over call routing, codec selection, and business logic. CelloIP Technologies has delivered 25+ production Linphone and PJSIP mobile dialers.
Linphone vs PJSIP comparison
Linphone is better for white-label products (faster development, ZRTP native, Flutter support). PJSIP is better for enterprise apps requiring custom business logic, embedded devices, or unusual SIP behaviours. Both support iOS, Android, TLS, SRTP, push notifications, and all major SIP servers.
Custom Linphone & PJSIP Development:
The Complete Guide to White-Label VoIP Dialer Apps
Everything you need to know about custom Linphone app development, PJSIP mobile dialer customization, liblinphone SDK integration, ZRTP/SRTP encryption, push notifications, CRM integration, and building production white-label SIP softphones for iOS and Android — from a team that has delivered 25+ apps.
Kaushik Parmar
Founder & VoIP Architect
25+
Apps Delivered
15+
Countries
8 wks
Typical Delivery
100%
Source Code Yours
What Are Linphone and PJSIP?
Linphone and PJSIP are the two most widely used open-source SIP stacks for building custom mobile VoIP dialers. Both are production-proven, run on iOS and Android, and support enterprise-grade security — but they serve different development needs.
Linphone / liblinphone
By Belledonne Communications · GPLv3
A complete SIP softphone + high-level SDK. Provides a ready-to-customise app for Android, iOS, Windows, macOS, and Linux. The liblinphone API handles all SIP signalling, media, encryption, push notifications, and conferencing — so your team focuses on UI and business logic.
- Maven (Android) / SPM (iOS) integration
- ZRTP + post-quantum CRYSTALS-KYBER
- Native video conferencing via Flexisip
- MSRP instant messaging built-in
- Flutter dart wrapper available
Best for
White-label products · Healthcare · Enterprise UCaaS · SaaS embed
PJSIP / PJSUA2
By Teluu Inc. · GPLv2
A low-level, highly portable SIP and media library. No default UI — your team builds everything. Provides granular control over SIP RFC behaviour, codec selection, ICE/NAT traversal, and media routing. The preferred foundation for complex enterprise apps, embedded devices, and custom call-flow logic.
- Full codec set including hardware H.265
- Runs on RTOS / embedded platforms
- Fine-grained SRTP & ICE control
- AEC, AGC, noise suppression built-in
- React Native module available
Best for
Complex call logic · Call centres · Embedded VoIP · Custom SIP behaviour
liblinphone SDK Architecture
liblinphone is structured in layers — your app sits on top of a complete real-time communications stack. Understanding the layers helps when deciding which features require custom integration work.
Your Application
Custom UI · Brand identity · Business logic
liblinphone API
Java/Kotlin · Swift · C# · Python · Dart wrappers
SIP Signalling (belle-sip)
REGISTER · INVITE · BYE · REFER · NOTIFY · SUBSCRIBE
Media (mediastreamer2)
Audio/Video codecs · Jitter buffer · AEC · AGC · Transcoding
Encryption
ZRTP · SRTP-DTLS · SDES · TLS 1.3 · CRYSTALS-KYBER
NAT / Transport
ICE · STUN · TURN · UDP · TCP · TLS · WebSocket
Android
Maven AAR
iOS
Swift Package Manager
Flutter
Dart wrapper
Windows
NuGet package
PJSIP / PJSUA2: Architecture & Integration
PJSIP gives developers granular control at every layer. Unlike liblinphone's high-level API, PJSUA2 exposes the full SIP/media stack — codec routing, ICE behaviour, SRTP policy, call-flow hooks — making it the foundation of choice for enterprise call centres, embedded VoIP devices, and apps with non-standard SIP requirements.
PJSUA2 Stack Layers
Your Application (Kotlin/Swift/JS)
Custom UI · Business logic · CRM hooks
PJSUA2 High-Level API
Account · Call · Buddy · Media classes
PJSIP Core (SIP stack)
RFC 3261 · INVITE · REFER · SUBSCRIBE
PJMEDIA (Media Engine)
AEC · AGC · Jitter buffer · Codecs
PJNATH (NAT Traversal)
ICE · STUN · TURN · DTLS-SRTP
PJSIP Customization Includes
PJSUA2 Account Config
SIP domain, credentials, transport (TLS/UDP), STUN server, re-registration interval
Audio Device Manager
Earpiece / speaker / BT headset routing, echo cancellation tuning, AGC levels
SRTP Policy
DTLS-SRTP or SDES key exchange, AES-128/256 cipher selection, mandatory vs optional
ICE / NAT Traversal
STUN binding, TURN relay, ICE candidate gathering — works through CGNAT & firewalls
CallKit / ConnectionService
Native OS calling UI on iOS (CallKit) and Android (Telecom API) — no custom call screen needed
Custom Call Event Hooks
on_incoming_call, on_call_state, on_call_media_state — insert CRM lookup, recording, logging
PJSIP Android — Kotlin Account Registration
Kotlin// PJSUA2 Kotlin — Configure SIP Account with TLS + SRTP
val accountConfig = AccountConfig().apply {
idUri = "sip:[email protected]"
regConfig.registrarUri = "sip:yourdomain.com"
regConfig.registerOnAdd = true
// TLS transport for encrypted signalling
sipConfig.proxies.add("<sip:yourdomain.com;transport=TLS;lr>")
// SRTP: mandatory DTLS-SRTP (WebRTC-compatible)
mediaConfig.srtpUse = pjmedia_srtp_use.PJMEDIA_SRTP_MANDATORY
mediaConfig.srtpSecureSignaling = 0 // DTLS-SRTP (no SDP key exchange)
// NAT traversal via ICE + STUN
natConfig.iceEnabled = true
natConfig.stunServer.add("stun.yourdomain.com")
}
// Register inbound call handler
object : Account() {
override fun onIncomingCall(prm: OnIncomingCallParam) {
val call = MyCall(this, prm.callId)
// CRM lookup before answering
lookupCRM(call.remoteUri) { contact ->
showIncomingCallUI(contact, call)
}
}
}Android
JNI / PJSUA2 Java
iOS / Swift
Objective-C wrapper
React Native
react-native-pjsip
Windows / Linux
C++ / Python bindings
Custom Softphone vs Off-the-Shelf: Why Not Zoiper or Bria?
Many businesses consider commercial softphones like Zoiper, Grandstream Wave, Bria, or Microsip before commissioning a custom build. Here's the honest comparison — and why 95% of SaaS, MVNO, and enterprise clients ultimately choose custom.
| Capability | Zoiper / Grandstream / Bria | Custom Linphone / PJSIP App |
|---|---|---|
| Your brand on App Store / Play | ❌ Published under vendor name | ✅ 100% your brand, your listing |
| White-label branding | ❌ Vendor logo always visible | ✅ Logo, colours, fonts, icons — all yours |
| CRM screen-pop on inbound | ❌ Not available | ✅ Salesforce, HubSpot, Zoho, custom API |
| Prepaid balance & top-up | ❌ Not available | ✅ Real-time billing integration |
| Remote provisioning via URL | ⚠️ Limited (Zoiper only) | ✅ Full XML/JSON config, QR code activation |
| Custom call routing logic | ❌ Fixed behaviour | ✅ Any logic — CRM lookup, balance check, IVR |
| ZRTP end-to-end encryption | ⚠️ Zoiper Pro only ($) | ✅ Native liblinphone — included |
| Post-quantum CRYSTALS-KYBER | ❌ None | ✅ liblinphone 5.2+ — first in industry |
| Subscription cost (per user) | 💰 $1–5/user/month ongoing | ✅ One-time build cost, no per-user fee |
| Source code ownership | ❌ Closed source | ✅ Full source handover on delivery |
| Custom features (recording etc.) | ❌ Fixed feature set | ✅ Any feature you can spec |
| Google Play / App Store control | ❌ Vendor controls listing | ✅ Your developer account, your control |
$0
Per-user monthly fees
vs $1–5/user/month for Zoiper/Bria at scale
100%
Brand ownership
Your name on the App Store listing, forever
∞
Feature extensibility
Add any feature after launch with no vendor approval
Linphone vs PJSIP: Full Technical Comparison
12 criteria compared across both stacks — based on real project experience, not spec sheets.
| Criteria | Linphone / liblinphone | PJSIP / PJSUA2 | Winner |
|---|---|---|---|
| Setup Speed | Maven / CocoaPods / SPM | JNI bindings / Obj-C wrappers | Linphone |
| Default UI | Full app (fully customisable) | None — build from scratch | Linphone |
| API Level | High-level (simpler) | Low-level (more control) | |
| ZRTP E2E encryption | Native ✓ | Via ZRTP4PJ add-on | Linphone |
| Post-Quantum (KYBER) | Yes (v5.2+) ✓ | Not available | Linphone |
| Video Conferencing | Yes via Flexisip ✓ | Custom bridging required | Linphone |
| Instant Messaging | MSRP + SIP MESSAGE ✓ | SIP MESSAGE only | Linphone |
| Custom Business Logic | Limited (high-level API) | Full control ✓ | PJSIP |
| Codec Flexibility | Opus, G.711, G.722, H.264 | Full set + hardware H.265 ✓ | PJSIP |
| Embedded / IoT support | Limited | Yes — runs on RTOS ✓ | PJSIP |
| Flutter support | Yes (dart wrapper) ✓ | Via community dart-sip-ua | Linphone |
| Development time | 8–10 weeks typical | 10–14 weeks typical | Linphone |
What Custom Linphone Development Includes
A production-grade custom Linphone app is far more than a logo change. Every layer — UI, features, security, integrations, push notifications — is built to your exact specification.
White-Label UI
Full rebrand — logo, colours, fonts, icons, app name, Play/App Store listing
ZRTP End-to-End Encryption
True E2E audio encryption — server cannot decrypt calls
Background Push Calls
APNs VoIP + CallKit (iOS) · FCM + ConnectionService (Android)
Remote Provisioning
Zero-touch SIP config via URL — no manual setup for end users
HD Voice & Video
Opus wideband, H.264 hardware, VP8 — crystal-clear audio/video
CRM Integration
Screen-pop from Salesforce, HubSpot, Zoho on inbound calls
Conference Calling
Multi-party audio/video via Flexisip or Asterisk conference bridge
Multi-Account SIP
Register multiple SIP accounts, switch identities mid-session
Call Recording
Server-side or client-side recording with pause/resume controls
Multi-Language
Localisation in 20+ languages including RTL (Arabic, Hebrew)
Post-Quantum Encryption
CRYSTALS-KYBER in liblinphone 5.2+ — quantum-safe calls
NAT Traversal
ICE, STUN, TURN — calls through firewalls, CGNAT, enterprise proxies
Audio & Video Codec Support
Codec selection directly affects call quality, bandwidth usage, and compatibility with your SIP server. CelloIP configures the optimal codec priority list for your specific use case — HD voice for enterprise, low-bandwidth for mobile data networks, hardware H.264 for video.
Audio Codecs
| Codec | Bitrate | Use Case |
|---|---|---|
| Opus | 6–510 kbps | Best overall — HD voice, adaptive bitrate |
| G.711 | 64 kbps | PSTN compatibility, call centres |
| G.722 | 64 kbps | Wideband HD voice, enterprise PBX |
| G.729 | 8 kbps | Low bandwidth (licence required) |
| iLBC | 15 kbps | Packet-loss resilient, mobile networks |
| Speex | 2–44 kbps | Open-source narrowband/wideband |
Video Codecs
| Codec | Resolution | Notes |
|---|---|---|
| H.264 | Up to 1080p | Hardware accel iOS + Android |
| H.265 | Up to 4K | PJSIP only — ultra-efficient |
| VP8 | Up to 720p | WebRTC compatible, royalty-free |
| VP9 | Up to 4K | Better compression than VP8 |
| AV1 | Up to 4K | Next-gen, limited mobile support |
CelloIP Recommended Configuration
Mobile Data (3G/4G/5G)
Opus 12–32 kbps → G.711 fallback
Enterprise Wi-Fi / LAN
Opus 64 kbps → G.722 → G.711
Video Calling
H.264 (HW) → VP8, Opus audio
4-Layer Security Stack
Enterprise Linphone deployments use a layered encryption model. Each layer adds a protection dimension — from SIP credential encryption to quantum-safe media keys.
Layer 4 — Post-Quantum
CRYSTALS-KYBER (Linphone 5.2+)
Future-proof key exchange resistant to quantum computer attacks
Layer 3 — ZRTP
ECDH X25519/X448 + AES-256
End-to-end media encryption. Even your SIP server cannot decrypt calls
Layer 2 — SRTP
AES-128/256 · DTLS-SRTP · SDES
RTP media packets encrypted. Stops packet-capture audio interception
Layer 1 — TLS 1.3
SIP signalling over TLS
Encrypts REGISTER, INVITE, credentials. Prevents SIP credential theft
Industry First: Post-Quantum VoIP Encryption
liblinphone 5.2+ is the world's first open-source VoIP library to implement CRYSTALS-KYBER (NIST PQC standard) — protecting call audio against future quantum computer decryption attacks. Mandatory for government, defence, and healthcare deployments handling sensitive communications.
Platform & Framework Support
CelloIP delivers custom Linphone and PJSIP dialers for every major platform and cross-platform framework.
Android
Kotlin / Java
iOS
Swift
Flutter
Dart
React Native
JavaScript
Windows
C# / C++
macOS / Linux
Swift / C++
Push Notification Call Flow
Without push, users miss calls when the app is backgrounded. CelloIP implements production-grade wake-up for both platforms so calls always ring — even on a locked screen.
iOS — APNs VoIP + CallKit
Caller dials your extension
Asterisk / FreeSWITCH
Server sends APNs VoIP push
Apple Push Server
PushKit wakes app (same run loop)
iOS OS
App posts CallKit incoming call
Your Linphone App
Native lock-screen call UI appears
CallKit
User accepts → SIP re-registers → call connects
liblinphone
Android — FCM + ConnectionService
Caller dials your extension
Asterisk / FreeSWITCH
Server sends FCM high-priority data message
Firebase Cloud Messaging
FCM wakes app headless isolate
Android OS
Foreground service started immediately
Your Linphone App
ConnectionService shows system call screen
Android Telecom API
User accepts → SIP registers → call bridges
liblinphone
Remote Provisioning: Zero-Touch Deployment
Eliminate manual SIP setup. Users activate the app by scanning a QR code or clicking a magic link — the server delivers all configuration automatically.
User installs app
From App Store / Google Play under your brand
Scans QR / magic link
One-time activation token issued by your admin portal
App fetches config
SIP domain, credentials, codecs, TURN, push tokens — all delivered
Config delivered via remote provisioning URL
Integration Ecosystem
A custom Linphone or PJSIP dialer connects to your entire business stack — not just a SIP server.
SIP Server Compatibility
- Asterisk 20/21 (PJSIP endpoint)
- FreeSWITCH 1.10.x (Sofia-SIP)
- OpenSIPS 3.x / Kamailio 5.x
- FusionPBX · FreePBX · 3CX
- Hosted SIP: Twilio, Vonage, Plivo
CRM & Business Apps
- Salesforce — screen-pop + call log
- HubSpot — contact lookup on dial
- Zoho CRM — activity logging
- Freshdesk — ticket creation
- Custom REST API (any system)
Billing & Prepaid
- Balance display before/during call
- Real-time CDR-based deduction
- Low-balance warning + top-up
- A2Billing · CGRateS · custom engine
- Payment gateway integration
Directory & Identity
- LDAP / Active Directory sync
- Device address book integration
- Corporate extension directory
- BLF presence subscription
- SSO via SAML / OAuth2
Who Needs Custom Linphone Development?
Custom Linphone and PJSIP dialers serve every industry that needs secure, branded mobile voice communication.
Healthcare
Secure patient-provider calls with E2E encryption and full HIPAA compliance.
Enterprise UCaaS
Branded softphone integrating with corporate PBX, CRM, and AD.
MVNO / ITSP
Subscriber-facing white-label dialer with billing integration.
Call Centres
Agent softphone with real-time queue monitoring and disposition logging.
SaaS / CPaaS
Embed voice calling into your SaaS product via liblinphone SDK.
Government / Defence
CRYSTALS-KYBER quantum-safe communications for high-security deployments.
Our 6-Step Delivery Process
From brief to App Store in 8–11 weeks. Every milestone is fixed-price with source code handover on completion.
Discovery Call
Week 1Technical brief, SIP server audit, feature scope, NDA signed Day 1.
UI/UX Design
Weeks 2–3Full-fidelity Figma mockups for every screen in your brand identity.
SDK Integration
Week 4liblinphone or PJSIP integrated, SIP registration verified with your server.
Core Development
Weeks 5–8All features, push notifications, CRM APIs, remote provisioning built.
QA & Device Testing
Weeks 9–1020+ device models, 3G/4G/5G/Wi-Fi, security pen-test, edge cases.
App Store Submission
Week 11Google Play + Apple App Store submission. Full source handover.
Transparent Pricing
Fixed-price milestone contracts. No hourly billing surprises. Source code yours on final payment.
Starter
From $3,500
Typical delivery: 8 weeks
- Custom branding & UI
- HD Voice (Opus/G.711)
- Single SIP account
- Push notifications (iOS + Android)
- Remote provisioning
- App Store submission
- 60-day warranty
Professional
From $7,500
Typical delivery: 10–12 weeks
- Everything in Starter, plus:
- Video calling (H.264)
- ZRTP end-to-end encryption
- Multi-account SIP
- CRM screen-pop integration
- Call recording
- Conference calling
- Admin portal API
Enterprise
From $12,000
Typical delivery: 12–16 weeks
- Everything in Professional, plus:
- Post-quantum CRYSTALS-KYBER
- Prepaid billing integration
- Custom call routing logic
- LDAP / Active Directory
- White-label desktop app
- SLA maintenance contract
- Dedicated Slack channel
Hire Linphone & PJSIP Developers
CelloIP's dedicated Linphone and PJSIP developers are available for fixed-price project builds, dedicated monthly engagements, or team augmentation. All developers have shipped production VoIP dialer apps on iOS and Android.
Fixed-Price Project
Full app from specification to App Store. Milestone-based payments, fixed scope, source code on delivery.
- Discovery → Design → Build → QA → Launch
- NDA signed on Day 1
- 48-hr quote turnaround
Dedicated Developer
Hire a dedicated Linphone/PJSIP developer embedded in your team. Full-time or part-time, month-to-month.
- From $25/hr · $4,000/month
- Daily standups, direct Slack access
- 30-day trial, cancel anytime
Team Augmentation
Extend your existing mobile or backend team with VoIP-specialist engineers — iOS, Android, Flutter, or backend.
- 2–8 developers available immediately
- Match your existing tools & workflow
- IP fully owned by your company
Related CelloIP Services
Mobile SIP Dialer
White-label softphone solutions
Flutter VoIP Apps
SIP + CallKit + Push in Flutter
Hire Flutter Developers
Dart/Flutter VoIP specialists
Hire React Native Devs
RN + PJSIP + CallKit experts
WebRTC Development
Browser-based SIP/WebRTC apps
Asterisk Development
Server-side SIP platform
FreeSWITCH Development
High-volume SIP softswitch
AI Voice Bot
STT → LLM → TTS pipelines
Frequently Asked Questions
What is the difference between Linphone and PJSIP?
Linphone (liblinphone) is a full-featured VoIP SDK providing a high-level API for calls, video, messaging, ZRTP encryption, and push notifications out of the box. PJSIP is a lower-level SIP and media library with no default UI, giving developers maximum control over call logic and SIP behaviour. Linphone is faster to customise; PJSIP suits complex enterprise applications with custom routing logic.
Can I publish a custom Linphone app under my own brand on App Store and Google Play?
Yes. You need a commercial licence from Belledonne Communications for closed-source distribution of a Linphone-based app. CelloIP handles the licence negotiation and all App Store / Google Play submission requirements as part of the project.
Does the app receive calls when the phone is locked?
Yes, via push notifications. CelloIP implements APNs VoIP push + CallKit on iOS and FCM high-priority push + ConnectionService on Android, so incoming calls ring on locked devices with a native system calling UI — no persistent SIP socket required.
What SIP servers are compatible?
Both Linphone and PJSIP apps are fully SIP RFC 3261 compliant and work with Asterisk, FreeSWITCH, OpenSIPS, Kamailio, FusionPBX, 3CX, Cisco CUCM, and all major hosted SIP providers. CelloIP configures and tests server compatibility during development.
Is ZRTP encryption available?
Yes — ZRTP is native in liblinphone and provides true end-to-end encrypted calls where even your SIP server cannot decrypt the audio. Linphone is also the first open-source VoIP library with CRYSTALS-KYBER post-quantum encryption (v5.2+), protecting against future quantum computer attacks.
How long does development take and what does it cost?
A standard white-label Linphone dialer (custom branding, HD voice, push notifications, single SIP account) takes 8–10 weeks from USD 3,500. A full-featured enterprise app with video, CRM, ZRTP, multi-account, and admin portal ranges from USD 8,000–18,000. Fixed-price milestone contracts guaranteed.
Can the app integrate with our CRM system?
Yes. CelloIP builds CRM screen-pop (caller ID lookup on inbound), automatic call log creation after the call, and contact sync. Supported CRMs include Salesforce, HubSpot, Zoho, Freshdesk, and any system with a REST API.
Do you provide source code?
Yes. Full source code is handed over upon final payment. You own 100% of the IP. CelloIP retains no rights to client-specific deliverables.
Ready to Build Your Custom Linphone App?
CelloIP Technologies has delivered 25+ white-label VoIP dialers. Share your requirements and get a detailed quote within 48 hours.