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 (API level 28+) while keeping backward compatibility until SDK level 9 (released in 2010), 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 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, other IDE) and any Android compatible programming language (Java, Kotlin or any others which can include aar or jar and emit Android apk).

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 listen for the AJVoIP notifications from a separate thread using the mysipclient.GetNotificationsSync(); 
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 it 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 28+) while keeping full backward compatibility
  • 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: SIP, RTP/RTCP, RTC. Transport: UDP, TCP, PUSH
  • Encryption: 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 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 others
  • 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, H264, VP8
  • 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
  • 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 (RFC 2833, SIP INFO method in signaling or in-band)
  • IM/Chat (RFC 3428), SMS (via API), offline messaging, group chat
  • BLF (busy lamp field)
  • Presence (PUBLISH and/or SUBSCRIBE/NOTIFY)
  • Redial, call hold, mute, forward and transfer (attended and unattended)
  • 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, 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 of 1.5 MB to be added to your project
  • 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.
  • 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

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


All prices are in USD. You can find the other payment options here. Delivery time: one workday.