Android SIP Protocol Tutorial

Advertisements


SIP stands for (Session Initiation Protocol). It is a protocol that let applications easily set up outgoing and incoming voice calls, without having to manage sessions, transport-level communication, or audio record or playback directly.

Applications

Some of the common applications of SIP are.

  • Video conferencing
  • Instant messaging

Requirements

Here are the requirements for developing a SIP application:

  1. Android OS must be 2.3 or higher
  2. You must have a data connection or WIFI
  3. You must have an SIP account in order to use this service.

SIP Classes

Here is a summary of the classes that are included in the Android SIP API:

Sr. NOClass and description
1SipAudioCall
Handles an Internet audio call over SIP
2SipErrorCode
Defines error codes returned during SIP actions
3SipManager
Provides APIs for SIP tasks, such as initiating SIP connections, and provides access to related SIP services
4SipProfile
Defines a SIP profile, including a SIP account, domain and server information
5SipSession
Represents a SIP session that is associated with a SIP dialog or a standalone transaction not within a dialog

Functions of SIP

SIP has following major funcitons.

  1. SIP allows for the establishment of user location
  2. SIP provides a mechanism for call management
  3. SIP provides feature negotiation, so that all the parties in the call can agree to the features supported among them

Components of SIP

SIP has two major components which are listed below.

  1. User Agent Client (UAC)
  2. User Agent Server (UAS)

UAC

UAC or User Agent Client are those end users who generates requests and send those requests to the server.These requests are generated by the client applications running on their systems.

UAS

UAS or User Agent Server are those systems which get the requeste generated by UAC. The UAS process those requests and then according to the requests it generates responses accordingly.

SipManager

SipManager is an android API for SIP tasks, such as initiating SIP connections, and provides access to related SIP services. This class is the starting point for any SIP actions. You can acquire an instance of it with newInstance().

The SipManager has many functions for managing SIP tasks. Some of the functions are listed below.

Sr. NOClass and description
1close(String localProfileUri)
Closes the specified profile to not make/receive calls
2getCallId(Intent incomingCallIntent)
Gets the call ID from the specified incoming call broadcast intent
3isOpened(String localProfileUri)
Checks if the specified profile is opened in the SIP service for making and/or receiving calls
4isSipWifiOnly(Context context)
Returns true if SIP is only available on WIFI
5isRegistered(String localProfileUri)
Checks if the SIP service has successfully registered the profile to the SIP provider (specified in the profile) for receiving calls
6isVoipSupported(Context context)
Returns true if the system supports SIP-based VOIP API
7takeAudioCall(Intent incomingCallIntent, SipAudioCall.Listener listener)
Creates a SipAudioCall to take an incoming call
8unregister(SipProfile localProfile, SipRegistrationListener listener)
Manually unregisters the profile from the corresponding SIP provider for stop receiving further calls


Advertisements
Advertisements