PJSIP for Android features

PJSIP is a comprehensive, open source, portable SIP, media, and NAT traversal library/SDK to develop SIP applications supporting voice/VoIP calls, video, secure communication using TLS and secure RTP (SRTP), and NAT traversal resolution helper for Android, iOS/iPhone, Linux, Windows, MacOS, embedded OSes, RTOSes, and other platforms.

This page presents the features of PJSIP for Android.

SIP features

All SIP features in PJSIP SIP features datasheet are supported, including but not limited to:

  • support for multiple SIP accounts,

  • call features such as voice and video call, call hold, call transfer, both attended and unattended, call redirection,

  • protocol features such as UPDATE, 100rel, PRACK, tel: URI, Session Timers, outbound, Path header, IPv6, DNS SRV resolution,

  • NAT traversal features such as symetric transport, SIP outbound, Service-Route, ICE and trickle ICE option,

  • presence and instant messaging,

  • security related, such as digest, AKA, AKA-v2, OAuth 2.0 authentication, TLS transport

Security features

The following SIP security and secure media features are supported and included in this tutorial:

NAT traversal features

The PJNATH Android NAT traversal stack supports most NAT traversal features in PJSIP NAT features datasheet, including but not limited to:

By default the features above are included in the build (including in this tutorial), but may not be enabled by the sample Android applications (this will be explained later in the sample application documentation).

Below are currently not supported:

  • uPnP, unless you’re able to build libupnp on Android.

Audio features

General audio features

All audio features in PJSIP media features datasheet are supported (they are platform independent).

Audio devices, codecs, and video will be discussed separately below.

Android audio codecs

Refer to PJSIP codecs datasheet for list of all supported codecs. PJSIP supports some of highly versatile audio codecs for Android, including:

These codecs are supported and included in this tutorial:

These codecs are supported for Android, but are not built by default nor included in this tutorial:

Android audio devices

The following audio devices are supported:

Android Video Features

General video features

Video call is supported by PJSIP SIP and media SDK for Android since version 2.4. General video features as listed in PJMEDIA video features are supported and built by default (they are platform independent), including but not limited to:

Android specific video codecs and devices are discussed in the next sections below.

Android video codecs

The PJMEDIA Android video framework supports some of highly versatile video codecs, including:

Android video devices

The PJMEDIA Android video device implementation include the following video devices:

Sample applications

Yes, we include the batteries as well. The Android implementation comes with three sample applications:

What’s next

Coming up, we will install the required libraries and tools to build our Android SIP VoIP and video call client application.