# Print output for @column tags ?> SipAudioCall - Android SDK | Android Developers

Most visited

Recently visited

SipAudioCall

public class SipAudioCall
extends Object

java.lang.Object
   ↳ android.net.sip.SipAudioCall


Handles an Internet audio call over SIP. You can instantiate this class with SipManager, using SipManager#makeAudioCall and SipManager#takeAudioCall.

Note: Using this class require the Manifest.permission.INTERNET and Manifest.permission.USE_SIP permissions. In addition, startAudio() requires the Manifest.permission.RECORD_AUDIO, Manifest.permission.ACCESS_WIFI_STATE, and Manifest.permission.WAKE_LOCK permissions; and setSpeakerMode() requires the Manifest.permission.MODIFY_AUDIO_SETTINGS permission.

Developer Guides

For more information about using SIP, read the Session Initiation Protocol developer guide.

Summary

Nested classes

class SipAudioCall.Listener

Listener for events relating to a SIP call, such as when a call is being recieved ("on ringing") or a call is outgoing ("on calling"). 

Public constructors

SipAudioCall(Context context, SipProfile localProfile)

Creates a call object with the local SIP profile.

Public methods

void answerCall(int timeout)

Answers a call.

void attachCall(SipSession session, String sessionDescription)

Attaches an incoming call to this call object.

void close()

Closes this object.

void continueCall(int timeout)

Continues a call that's on hold.

void endCall()

Ends a call.

SipProfile getLocalProfile()

Gets the local SIP profile.

SipProfile getPeerProfile()

Gets the peer's SIP profile.

int getState()

Gets the state of the SipSession that carries this call.

void holdCall(int timeout)

Puts a call on hold.

boolean isInCall()

Checks if the call is established.

boolean isMuted()

Checks if the call is muted.

boolean isOnHold()

Checks if the call is on hold.

void makeCall(SipProfile peerProfile, SipSession sipSession, int timeout)

Initiates an audio call to the specified profile.

void sendDtmf(int code)

Sends a DTMF code.

void sendDtmf(int code, Message result)

Sends a DTMF code.

void setListener(SipAudioCall.Listener listener, boolean callbackImmediately)

Sets the listener to listen to the audio call events.

void setListener(SipAudioCall.Listener listener)

Sets the listener to listen to the audio call events.

void setSpeakerMode(boolean speakerMode)

Puts the device to speaker mode.

void startAudio()

Starts the audio for the established call.

void toggleMute()

Toggles mute.

Inherited methods

Public constructors

SipAudioCall

public SipAudioCall (Context context, 
                SipProfile localProfile)

Creates a call object with the local SIP profile.

Parameters
context Context: the context for accessing system services such as ringtone, audio, WIFI etc

localProfile SipProfile

Public methods

answerCall

public void answerCall (int timeout)

Answers a call. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError will be called.

Parameters
timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.

Throws
SipException if the SIP service fails to answer the call

See also:

attachCall

public void attachCall (SipSession session, 
                String sessionDescription)

Attaches an incoming call to this call object.

Parameters
session SipSession: the session that receives the incoming call

sessionDescription String: the session description of the incoming call

Throws
SipException if the SIP service fails to attach this object to the session or VOIP API is not supported by the device

See also:

close

public void close ()

Closes this object. This object is not usable after being closed.

continueCall

public void continueCall (int timeout)

Continues a call that's on hold. When succeeds, Listener#onCallEstablished is called. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError will be called.

Parameters
timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.

Throws
SipException if the SIP service fails to unhold the call

See also:

endCall

public void endCall ()

Ends a call.

Throws
SipException if the SIP service fails to end the call

getLocalProfile

public SipProfile getLocalProfile ()

Gets the local SIP profile.

Returns
SipProfile the local SIP profile

getPeerProfile

public SipProfile getPeerProfile ()

Gets the peer's SIP profile.

Returns
SipProfile the peer's SIP profile

getState

public int getState ()

Gets the state of the SipSession that carries this call. The value returned must be one of the states in SipSession.State.

Returns
int the session state

holdCall

public void holdCall (int timeout)

Puts a call on hold. When succeeds, Listener#onCallHeld is called. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError will be called.

Parameters
timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.

Throws
SipException if the SIP service fails to hold the call

See also:

isInCall

public boolean isInCall ()

Checks if the call is established.

Returns
boolean true if the call is established

isMuted

public boolean isMuted ()

Checks if the call is muted.

Returns
boolean true if the call is muted

isOnHold

public boolean isOnHold ()

Checks if the call is on hold.

Returns
boolean true if the call is on hold

makeCall

public void makeCall (SipProfile peerProfile, 
                SipSession sipSession, 
                int timeout)

Initiates an audio call to the specified profile. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError will be called.

Parameters
peerProfile SipProfile: the SIP profile to make the call to

sipSession SipSession: the SipSession for carrying out the call

timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.

Throws
SipException if the SIP service fails to create a session for the call or VOIP API is not supported by the device

See also:

sendDtmf

public void sendDtmf (int code)

Sends a DTMF code. According to RFC 2883, event 0--9 maps to decimal value 0--9, '*' to 10, '#' to 11, event 'A'--'D' to 12--15, and event flash to 16. Currently, event flash is not supported.

Parameters
code int: the DTMF code to send. Value 0 to 15 (inclusive) are valid inputs.

sendDtmf

public void sendDtmf (int code, 
                Message result)

Sends a DTMF code. According to RFC 2883, event 0--9 maps to decimal value 0--9, '*' to 10, '#' to 11, event 'A'--'D' to 12--15, and event flash to 16. Currently, event flash is not supported.

Parameters
code int: the DTMF code to send. Value 0 to 15 (inclusive) are valid inputs.

result Message: the result message to send when done

setListener

public void setListener (SipAudioCall.Listener listener, 
                boolean callbackImmediately)

Sets the listener to listen to the audio call events. A SipAudioCall can only hold one listener at a time. Subsequent calls to this method override the previous listener.

Parameters
listener SipAudioCall.Listener: to listen to the audio call events of this object

callbackImmediately boolean: set to true if the caller wants to be called back immediately on the current state

setListener

public void setListener (SipAudioCall.Listener listener)

Sets the listener to listen to the audio call events. The method calls setListener(listener,false).

Parameters
listener SipAudioCall.Listener: to listen to the audio call events of this object

See also:

setSpeakerMode

public void setSpeakerMode (boolean speakerMode)

Puts the device to speaker mode.

Note: Requires the Manifest.permission.MODIFY_AUDIO_SETTINGS permission.

Parameters
speakerMode boolean: set true to enable speaker mode; false to disable

startAudio

public void startAudio ()

Starts the audio for the established call. This method should be called after Listener#onCallEstablished is called.

Note: Requires the Manifest.permission.RECORD_AUDIO, Manifest.permission.ACCESS_WIFI_STATE and Manifest.permission.WAKE_LOCK permissions.

toggleMute

public void toggleMute ()

Toggles mute.