SipAudioCall
public
class
SipAudioCall
extends Object
java.lang.Object | |
↳ | android.net.sip.SipAudioCall |
This class was deprecated
in API level 31.
SipManager
and associated classes are no longer supported and
should not be used as the basis of future VOIP apps.
Handles an Internet audio call over SIP. You can instantiate this class with SipManager
,
using makeAudioCall()
and 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 received ("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 |
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
onError(SipAudioCall, SipErrorCode.TIME_OUT, String)
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 |
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
onError(SipAudioCall, SipErrorCode.TIME_OUT, String)
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 |
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
onError(SipAudioCall, SipErrorCode.TIME_OUT, String)
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 |
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 onError(SipAudioCall, SipErrorCode.TIME_OUT, String)
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 |
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.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-04 UTC.