Android SIP library Description

The Mizu Android SIP SDK (AJVoIP) is a compact and flexible SIP library for Android, allowing developers to quickly build Android VoIP solutions (such as a SIP Softphone) or add VoIP call capabilities into existing Android app. The library implements the latest Android SDK features (Android 13 / API level 33+) while keeping backward compatibility down to SDK level 14 (released in 2011), thus compatible with all Android devices present on the market, including support for all CPU architectures (arm, x86, mips).

SIP is defined in RFC 3261 and it is the IETF signaling protocol for multimedia session initiation, which can be used to initiate text, voice, video and multimedia sessions for IP phone calls, conference, streaming, text messaging or gaming.

The AJVoIP Android library is a full implementation for the SIP protocol including signaling, media, codecs and auxiliary services which lets you implement VoIP capabilities for any Android application, compatible with any SIP server or device.

AJVoIP was written specifically for Android (not a port of some existing codebase or from other platform) thus allowing radical optimizations for the platform, offering maximum compatibility and a perfect fit for the Android ecosystem. It can be used from any development environment (Android Studio, Eclipse, IDEA or other IDE) and any Android compatible programming language (Java, Kotlin or any others which can include aar or jar and emit Android apk/aab).

Our development team is focusing to take out the most from Android device capabilities with optimal CPU usage and minimal battery consumption. This includes device specific fine-tuning using the latest API version features and optimal multi-core usage on multi-core systems.
Special care was taken to auto adapt to device hardware/cpu/network circumstances thus offering the best possible call quality for every enduser.
 

Download Android SIP library

Example

//download and include the AJVoIP.aar or the AJVoIP.jar to your project first
import com.mizuvoip.jvoip.SipStack;  //import AJVoIP
   
//create SipStack class object instance:
SipStack mysipclient = new SipStack();

//initialize the SDK:
mysipclient.Init((Context)this); 

//set parameters (replace uppercase words):
mysipclient.SetParameter("serveraddress", "VOIP_SERVER_IP_OR_DOMAIN");
mysipclient.SetParameter("username", "SIP_USERNAME");
mysipclient.SetParameter("password", "SIP_PASSWORD");
//you might set other parameters here

//start the sipstack:
mysipclient.Start();  

//make a call to a user/extension/phone number/SIP URI:
mysipclient.Call(-1, "DESTINATION");
//call any API as required such as SendChat(), Dtmf(), Transfer(), Conf() and others

/*
You might also subscribe for the AJVoIP notifications (SetNotificationListener)
. 
You can also register, accept incoming calls, send chat message and perform other operations, mostly with a single line of code.

See the quick start and documentation for a more details.
Download a fully working example from here or see its main activity java source file here.
*/

Features

  • Standard SIP/RTP client for voice, video, chat, conference, presence and others
  • Implements all standard SIP transports, layers and components including UAC and UAS
  • SIP/media stack compatible with any VoIP server or device (Asterisk, FreeSWITCH or any other softswitch, IP-PBX, VoIP gateway, ATA, softphones, IP Phones, X-Lite and many more)
  • Works with all Android devices (phones, tablets, TV and others) since SDK level 9 released in 2010. This means covering 100% of the current market share
  • Takes advantage of the the latest Android features (API level 33+ / Android 13+) while keeping full backward compatibility. It is prepared and tested also with the Android 14 preview (API level 34).
  • Auto fine-tune for user hardware (CPU, memory) and networking (bandwidth, packet-loss, jitter) circumstances offering smooth performance also for ancient devices on a slow internet connection while capable to optimally utilize also the latest multi-core devices with lowest possible delay crystal clear audio in adequate network conditions
  • Protocols: IPv4/IPv6, UDP/TCP/PUSH, SIP/RTP/RTCP/RTC
  • Encryption: SIPS TLS/SRTP, tunneling (including optional HTTP transport), support for VPN connections
  • Peer to peer encrypted media (no server support required for this; can be disabled)
  • NAT/Firewall traversal: stable SIP and RTP ports, keep-alive, rport support, UPnP, proxy traversal, fast ICE/fast STUN protocols and auto configuration
  • Firebase (FCM) push notifications support
  • RFC’s: 2543, 3261, 2976, 3892, 2778, 2779, 3428, 3265, 3515, 3311, 3911, 3581, 3842, 1889, 2327, 3550, 3960, 4028, 3824, 3966, 2663, 3022 and many others
  • IMS/3GPP/VoLTE (basic compatibility and features such as USSD or 3GPP SMS)
  • Supported methods: REGISTER, INVITE, reINVITE, ACK, PRACK, BYE, CANCEL, UPDATE, MESSAGE, INFO, OPTIONS, SUBSCRIBE, NOTIFY, REFER
  • Codec: PCMU, PCMA, G.729, GSM, iLBC, SPEEX, OPUS
  • RTC video: H264, VP8 (optional as-is)
  • HD Audio: Wideband and ultra-wideband mode for speex and opus
  • Audio enhancements: AEC (acoustic echo cancellation), noise suppression, silence suppression, AGC (automatic gain control), PLC (packet loss concealment) and auto QoS
  • Conference calls with local RTP mixer
  • Voice call recording (SIPREC, local, FTP or HTTP upload in wav, gsm or ogg format)
  • Custom audio streaming: playback a sound file to the peer or get the audio stream for further processing (for example for speech-to-text)
  • DTMF (NTE RFC 2833 / RFC 4733, SIP INFO method in signaling or in-band)
  • IM/Chat (RFC 3428), SMS (including 3GPP SMS support), offline messaging, group chat
  • Presence (PUBLISH and/or SUBSCRIBE/NOTIFY) and BLF (busy lamp field)
  • Redial, call hold, MOH, mute, forward and transfer (attended and unattended)
  • Additional call features: call fork, re-INVITE, re-dial, 3PCC, ED-137, early media, PRACK and 100rel, replaces
  • Balance display, call timer, inbound/outbound calls, Caller-ID display, Voicemail (MWI)
  • Custom ringtone (system sound or from file)
  • Call optimizations such as proximity sensor, optimal wake-looks and WiFi lock/reconnect
  • Native call integration support
  • Auto handle phone power state, idle state and airplane mode
  • Additional features: call parking, barge-in, early media, 3PCC, local ring-back, PRACK and 100rel, replaces and more
  • Unlimited lines for both simultaneous calls and conference (number of peers) up to the device hardware capabilities
  • Multi-account support: you can use the same instance to register to multiple SIP servers or multiple accounts on the same SIP server

Advantages

We consider the AJVoIP SDK as a much superior implementation compared to other libraries such as PJSIP, MjSip, JainSIP, Belledonne/belle-sip, Doubango, Ozeki, ABTO, ImsDroid, Linphone, Sipdroid, CSipSimple or the built-in android.net.sip package due to multiple reasons:
 

  • Easy to use: one single class with a list of exported high-level API functions, ready to use working example code
  • Performance: the library is highly optimized and works fluently also on low-end devices
  • Low battery usage: the library have been optimized for minimal energy usage. No need for background service / background connection if you enable push notifications and even without push it is optimized for minimal resource consumption while in idle
  • Voice quality: fine-tuned for maximum call quality exploring all OS/hardware and software VoIP quality enhancement algorithms such as AEC, AGC, PLC and noise suppression
  • Full featured: manages both the SIP signaling and the media with native SIP capabilities and support for all common VoIP features and a long list of extra features
  • Compact: a single aar or jar file below 3 MB to be added to your project, including the complete SIP and media stack with all modules buit-in
  • Pure Java implementation: maximum user-space performance, no need for any JNI, not a port of old legacy code intended for other platforms
  • Flexible: all parameters/behavior can be changed/controlled by settings (parameters) and/or the API
  • Compatible: tested and used with a wide range of SIP devices: SIP servers (softswitch, IP-PBX), SIP proxies, SBC's, SIP gateways, SIP clients/softphones/hardware IP phones
  • IDE support: compatible with any IDE including Android Studio, Eclipse and others. We ship both aar and jar.
  • It can be used with any SDK capable to consume aar/jar such as Xamarin, Corona, Phonegap/Cordova, C++, Python, Groovy, Flutter, Xamarin, React, Ionic and others.
  • Optimized for latest Android features: we exploit new features from latest SDK as early as possible taking full advantage of the platform capabilities
  • Full support for old devices: we take the time to maintain backward compatibility and ensure correct functionality even with ancient devices
  • Auto adapt to hardware: auto turn on/off features based on CPU type and RAM size, thus it will run smoothly also on low-end hardware
  • Auto adapt to networking circumstances: different codec parameters and prioritization based on network type (WiFi/3G/LTE/others) and quality (bandwidth/packet loss/jitter)
  • NAT and firewall traversal: automatic network discovery with all best NAT traversal practices implemented
  • VoIP Push notifications: works even if your SIP server don't have support for push notifications
  • Extra features: the library contains a bunch of extra features and modules to help you quickly succeed with your Android development such as support for native call integration, workaround for the known background call listener restrictions, delivering the audio streams to a custom port and many others
  • Documentation: the SIP library has an easy to consume and detailed developer guide
  • Always backward compatible including the parameters and the API (you will never have to change your code when upgrading to new versions)
  • Long term support: we are committed to continuous development and long term support for our VoIP SDK solutions

What's New

The latest stable version have been released at December 7, 2023. See the development wiki about the details.

Licensing

 
  Demo Basic Advanced Gold
Demo Limiations: yes - - -
Max. nr. of Clients: 50 50 unlimited unlimited
Max. nr. of Servers: 1 1 4 10 or more
Features: advanced standard advanced all
Email Support: presales support 4 requests / 2 hours 15 requests / 8 hours 40 requests / 24 hours
Dev. Support: - - 1 hour included 8 hours included
Priority Support: - - yes yes, high
Maintenance Upgrades: - 1 year 2 years 4 years
Price: - $990 $1,900 $3,900
Pay with PayPal: Download Buy Now Buy Now Buy Now
Pay with Credit-Card: Download Buy Now Buy Now Buy Now

 

The prices represents all-time cost for perpetual life-time license.
All prices are in USD but payments can be made in other currencies. You can find the other payment options here. Delivery time: one workday.

Note: the card payment link will display "JVoIP" but this will refer to this SDK.
Note: the card payment link might display the cost with VAT tax by default which should dissapear once you enter your company details or contact us if still there and there should be no VAT tax obligations for your purchase.