# Acrobits

Acrobits is a privately owned software development company creating VoIP Clients for mobile platforms, based in Prague, Czech Republic.

## Company history

Acrobits was founded in November 2008, and builds mobile VoIP software with a polished user interface, supporting encrypted calls using SRTP/SDES and ZRTP, Google Voice integration, and the G.729 Annex A audio codec.
In 2009 Acrobits Softphone was released on the iTunes App Store.
The following year Acrobits released their SIP Client with business features, Groundwire. In early 2011 Acrobits Softphone was released on the Android Market.
In 2010 Acrobits also launched a service allowing SIP providers to appear on the list of pre-configured providers in Acrobits Softphone.
In 2012 Acrobits added video calls over WiFi support for the iOS version of its softphone.

## Acrobits Softphone

Acrobits Softphone is a VoIP client which uses Session Initiation Protocol. Acrobits Softphone is the leading SIP Client on the App Store, featuring push notifications and the G.729 Annex A audio codec, backgrounding, Google Voice integration and encrypted calls through ZRTP.

### History of Softphone

The first version of Acrobits Softphone was released on the App Store in April 2009. Version 1.0 supported only a single SIP account and the G711 and GSM codecs. During the following months new updates were released rapidly, adding new features, and the app quickly became the most downloaded paid SIP app for iOS worldwide. Support for push notifications for incoming calls was added to Softphone in September 2009, shortly after push notifications were introduced in iOS3. The G729 codec was added in Apr 2010. In August 2010, a business-caliber version of Softphone called Groundwire was released on the App Store, adding support for conferencing, voicemail, call transfers, call forwarding and other advanced features of business-grade phones.
With the release of Groundwire, the app reached the level of maturity and completeness and attracted much interest from VoIP providers, who asked for white-label versions of the app, optimized and fine-tuned for their network only. Until now, around 50 different white-label versions were created.
Later, the following features were added to Softphone: ZRTP support (December 2010), NAT Bridge to help NAT traversal in difficult networking conditions (July 2011), support for video calls (Dec 2011), support for ICE (March 2012)
Acrobits Softphone for Android was released in Feb 2011, followed by Android Groundwire in April 2012. Android apps are now on par with their iOS counterparts, with the exception of video calls which are not yet supported on Android.

### Features

Acrobits Softphone and especially Groundwire support all features and technologies expected of the modern SIP client, plus some unique features described below.

#### Push notifications for incoming calls

The challenge with VoIP on mobile devices is to make sure that the device is ready to receive incoming calls while keeping the power consumption as low as possible. Due to the inherent mobility of mobile devices, the network conditions change often and frequent SIP re-registrations and keep-alive traffic are needed to make sure the mobile client is properly registered and will receive incoming call at all times. This has a significant impact on battery life.
Acrobits Softphone uses a proprietary SIP Instance Server (SIPIS) to register on behalf of user when the mobile app is not running in foreground on the mobile device. As soon as the app is suspended to background or exited completely, SIPIS server takes over, registers the account and starts listening for incoming calls. When a call arrives, the mobile app is woken up using the Apple Push Notification Service (APNS) and the call is handed over to the mobile app.
The advantage of this solution is that the mobile app does not need to run at all on the device, consuming no additional battery power, and is still able to receive incoming calls. The media of the call (audio and video) are still transferred directly to the mobile app, for lowest latency and security - no extra relaying is done. Using push notifications doesn't require any support on the SIP server side and uses only SIP protocol standard.
An important point and a potential drawback of this solution is the need to transfer full SIP account credentials to SIPIS server, as it needs them to be able to register, which is an obvious security risk. One way to avoid it is to install the SIPIS server on the premises of the VoIP service provider, in which case the security risk is eliminated - the provider already knows the passwords anyway.

#### Secure Calls

Acrobits Softphone supports encrypted voice and video calls using the standard SRTP protocol. It is able to encrypt media packets with the AES-128, AES-192 or AES-256 ciphers and authenticate them using either 32-bit or 80-bit HMAC-SHA1 algorithm.
For key exchange, Acrobits Softphone offers support for SDES and ZRTP protocols.
* The SDES protocol transmits the encryption keys in plain text inside SIP+SDP messages. This key exchange protocol is therefore pretty much useless for most users, unless they have a complete control over the SIP signalling system to ensure that the TLS transport protocol is used all the way from the originating to the receiving device. Even if a SIP provider guarantees usage of TLS everywhere in his infrastructure, the provider itself is still able to see the encryption keys in plain text, because its SIP proxies must decrypt the SIP+SDP messages in order to route them forward.
* To address the above shortcomings of the SDES protocol, Phil Zimmermann devised a military grade key exchange protocol, ZRTP, which is built on ideas from public-key cryptography. Using ZRTP, two devices can securely exchange encryption keys even over an inherently insecure communication channel. Moreover, by employing human brains to compare short authentication strings (SAS) spoken by the other party, ZRTP severely reduces the probability of a successful man-in-the-middle attack, which requires a single shot guess of the correct SAS out of 65536 possibilities. The whole point of SAS is that one human being compares and confirms spoken words of another human being whom the first recognizes (e.g. by voice) as the intended remote party. Any other usage of SAS is meaningless.
Acrobits Softphone supports the following algorithms employed by ZRTP:
* SRTP Cipher:
** AES1 (AES with 128-bit key)
** AES2 (AES with 192-bit key)
** AES3 (AES with 256-bit key)
* SRTP Authentication:
** HS32 (HMAC-SHA1 32-bit)
** HS80 (HMAC-SHA1 80-bit)
* ZRTP Hash:
** S256 (SHA-2 256-bit)
* Key Agreement:
** DH3k (Finite Field Diffie-Hellman with 3072-bit Prime)
** DH2k (Finite Field Diffie-Hellman with 2048-bit Prime)
** Prsh (Pre Shared Mode)
** Mult (Multi Stream Mode)
* Short Authentication Strings:
** B32 (Base32, Four Letters and Digits)
** B256 (Base256, Two English Words)

## Other products

* Acrobits Groundwire

## Customers

In addition to their flagship products Acrobits creates white label SIP Solutions for VoIP providers around the world.