Interface Call


public interface Call
This object represents a call issued or received by the Core.

Linphone only allows at most one active call at any given time and it will be
in Call.State.StreamsRunning. However, if the core is locally hosting a
Conference, you may have some or all the calls in the conference in
Call.State.StreamsRunning as well as an additional active call outside of
the conference in Call.State.StreamsRunning if the local participant of the
Conference is not part of it.
You can get the Call.State of the call using getState(), it's current
CallParams with getCurrentParams() and the latest statistics by
calling getAudioStats() or getVideoStats().
  • Method Details

    • getAudioStats

      @Nullable CallStats getAudioStats()
      Returns a copy of the call statistics for the audio stream.

      Returns:
      a CallStats object for the audio stream or null if it isn't
      available.
    • getAuthenticationToken

      @Nullable String getAuthenticationToken()
      Returns the ZRTP authentication token to verify.

      Returns:
      the authentication token to verify or null if ZRTP isn't enabled.
    • getAuthenticationTokenVerified

      boolean getAuthenticationTokenVerified()
      Returns whether ZRTP authentication token is verified.

      If not, it must be verified by users as described in ZRTP procedure. Once done,
      the application must inform of the results with setAuthenticationTokenVerified(boolean)
      .
      Returns:
      true if authentication token is verifed, false otherwise.
    • setAuthenticationTokenVerified

      void setAuthenticationTokenVerified(boolean verified)
      Set the result of ZRTP short code verification by user.

      If remote party also does the same, it will update the ZRTP cache so that
      user's verification will not be required for the two users.
      Parameters:
      verified - whether the ZRTP SAS is verified.
    • getAverageQuality

      float getAverageQuality()
      Returns call quality averaged over all the duration of the call.

      See getCurrentQuality() for more details about quality measurement.
      Returns:
      the call average quality since tbe beginning of the call.
    • getCallLog

      @NonNull CallLog getCallLog()
      Gets the call log associated to this call.

      Returns:
      The CallLog associated with the specified Call.
    • isCameraEnabled

      boolean isCameraEnabled()
      Returns if camera pictures are allowed to be sent to the remote party.

      Returns:
      true if local video stream is being sent, false otherwise.
    • setCameraEnabled

      void setCameraEnabled(boolean enabled)
      Indicate whether camera input should be sent to remote end.

      Parameters:
      enabled - wether or not to send local video stream.
    • getChatRoom

      @Nullable ChatRoom getChatRoom()
      Create a new chat room for real time messaging from a call if not already
      existing, else return existing one.

      No reference is given to the caller: the chat room will be deleted when the
      call is ended.
      Returns:
      ChatRoom where real time messaging can take place or null if
      chat room couldn't be created.
    • getConference

      @Nullable Conference getConference()
      Return the associated conference object.

      Returns:
      A pointer on Conference or null if the call is not part of any
      conference.
    • getCore

      @NonNull Core getCore()
      Get the core that has created the specified call.

      Returns:
      The Core object that has created the specified call.
    • getCurrentParams

      @NonNull CallParams getCurrentParams()
      Returns current parameters associated to the call.

      Returns:
      the current CallParams of this call.
    • getCurrentQuality

      float getCurrentQuality()
      Obtain real-time quality rating of the call.

      Based on local RTP statistics and RTCP feedback, a quality rating is computed
      and updated during all the duration of the call. This function returns its
      value at the time of the function call. It is expected that the rating is
      updated at least every 5 seconds or so. The rating is a floating point number
      comprised between 0 and 5.
      4-5 = good quality 3-4 = average quality 2-3 = poor quality 1-2 = very poor
      quality 0-1 = can't be worse, mostly unusable
      Returns:
      The function returns -1 if no quality measurement is available, for
      example if no active audio stream exist. Otherwise it returns the quality
      rating.
    • getDir

      Call.Dir getDir()
      Returns direction of the call (incoming or outgoing).

      Returns:
      the Call.Dir
    • getDiversionAddress

      @Nullable Address getDiversionAddress()
      Returns the diversion address associated to this call.

      Returns:
      the diversion address as Address or null.
    • getDuration

      int getDuration()
      Returns call's duration in seconds.

      Returns:
      the call's duration in seconds.
    • isEchoCancellationEnabled

      boolean isEchoCancellationEnabled()
      Returns if echo cancellation is enabled.

      Returns:
      true if echo cancellation is enabled, false otherwise.
    • setEchoCancellationEnabled

      void setEchoCancellationEnabled(boolean enable)
      Enables or disable echo cancellation for this call.

      Parameters:
      enable - wether to enable echo cancellation or not.
    • isEchoLimiterEnabled

      boolean isEchoLimiterEnabled()
      Returns if echo limiter is enabled.

      Returns:
      true if echo limiter is enabled, false otherwise.
    • setEchoLimiterEnabled

      void setEchoLimiterEnabled(boolean enable)
      Enables or disable echo limiter for this call.

      Parameters:
      enable - wether to enable echo limiter or not.
    • getErrorInfo

      @NonNull ErrorInfo getErrorInfo()
      Returns full details about call errors or termination reasons.

      Returns:
      ErrorInfo object holding the reason error.
    • getInputAudioDevice

      @Nullable AudioDevice getInputAudioDevice()
      Gets the current input device for this call.

      Returns:
      the AudioDevice used by this call as input or null if there is
      currently no soundcard configured (depending on the state of the call)
    • setInputAudioDevice

      void setInputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as input for this call only.

      Parameters:
      audioDevice - The AudioDevice. null does nothing.
    • isRecording

      @Deprecated boolean isRecording()
      Deprecated.
      15/09/2021 Use CallParams.isRecording() instead.
      Returns whether or not the call is currently being recorded.

      Returns:
      true if recording is in progress, false otherwise
    • getMicrophoneMuted

      boolean getMicrophoneMuted()
      Get microphone muted state.

      Note that the microphone may be disabled globally if false was given to Core#enableMic
      .
      Returns:
      The microphone muted state.
      warning: This method returns state of the mute capability of the call passed as
      argument. If this call is part of a conference, it is strongly recommended to
      call Conference.getMicrophoneMuted() to know whether this device is muted
      or not.
    • setMicrophoneMuted

      void setMicrophoneMuted(boolean muted)
      Set microphone muted state.

      The boolean value given is applied logical-and with the value given to Core#enableMic
      .
      Parameters:
      muted - The microphone muted state.
      warning: This method only mutes the call passed as argument. If this call is
      part of a conference, it is strongly recommended to call Conference.setMicrophoneMuted(boolean)
      to ensure that the setting is correctly apply across all participants and the
      conference callbacks are called.
    • getMicrophoneVolumeGain

      float getMicrophoneVolumeGain()
      Get microphone volume gain.

      If the sound backend supports it, the returned gain is equal to the gain set
      with the system mixer.
      Returns:
      double Percentage of the max supported volume gain. Valid values are in
      [ 0.0 : 1.0 ]. In case of failure, a negative value is returned
    • setMicrophoneVolumeGain

      void setMicrophoneVolumeGain(float volume)
      Set microphone volume gain.

      If the sound backend supports it, the new gain will synchronized with the
      system mixer.
      Parameters:
      volume - Percentage of the max supported gain. Valid values are in [ 0.0 :
      1.0 ].
    • getNativeVideoWindowId

      @Nullable Object getNativeVideoWindowId()
      Get the native window handle of the video window, casted as an unsigned long.

      Returns:
      the native video window id (type may vary depending on platform).
    • setNativeVideoWindowId

      void setNativeVideoWindowId(@Nullable Object windowId)
      Set the native video window id where the video is to be displayed.

      For MacOS, Linux, Windows: if not set or 0 a window will be automatically
      created, unless the special id -1 is given.
      Parameters:
      windowId - the native video window id.
    • getOutputAudioDevice

      @Nullable AudioDevice getOutputAudioDevice()
      Gets the current output device for this call.

      Returns:
      the AudioDevice used by this call as output or null if there is
      currently no soundcard configured (depending on the state of the call)
    • setOutputAudioDevice

      void setOutputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as output for this call only.

      Parameters:
      audioDevice - The AudioDevice. null does nothing.
    • getParams

      @NonNull CallParams getParams()
      Returns local parameters associated with the call.

      This is typically the parameters passed at call initiation to Core.inviteAddressWithParams(org.linphone.core.Address, org.linphone.core.CallParams)
      or acceptWithParams(org.linphone.core.CallParams), or some default parameters if no CallParams
      was explicitely passed during call initiation.
      Returns:
      the call's local parameters.
    • setParams

      void setParams(@NonNull CallParams params)
      Set call parameters - advanced and not recommended feature - use with caution.

      Local call parameters applicable to an outgoing or incoming shall usually be
      passed to Core.inviteAddressWithParams(org.linphone.core.Address, org.linphone.core.CallParams) or acceptWithParams(org.linphone.core.CallParams).
      However, in some cases it might be desirable from a software design standpoint
      to modify local parameters outside of the application layer, typically in the
      purpose of implementing a custom logic including special headers in INVITE or
      200Ok requests, driven by a call_state_changed listener method. This function
      accepts to assign a new CallParams only in #LinphoneCallOutgoingInit
      and #LinphoneCallIncomingReceived states.
      Parameters:
      params - the CallParams object
    • getPlayVolume

      float getPlayVolume()
      Get the mesured playback volume level (received from remote) in dbm0.

      Returns:
      float Volume level in percentage.
    • getPlayer

      @NonNull Player getPlayer()
      Gets a player associated with the call to play a local file and stream it to
      the remote peer.

      Returns:
      A Player object
    • getReason

      Reason getReason()
      Returns the reason for a call termination (either error or normal termination)

      Returns:
      the Reason of the call termination.
    • getRecordVolume

      float getRecordVolume()
      Get the mesured record volume level (sent to remote) in dbm0.

      Returns:
      float Volume level in percentage.
    • getReferTo

      @Nullable String getReferTo()
      Gets the refer-to uri (if the call was transfered).

      Returns:
      The refer-to uri of the call (if it was transfered).
    • getRemoteAddress

      @NonNull Address getRemoteAddress()
      Returns the remote address associated to this call.

      Returns:
      The Address of the remote end of the call.
    • getRemoteAddressAsString

      @Deprecated @Nullable String getRemoteAddressAsString()
      Deprecated.
      06/07/2020 use getRemoteAddress() instead.
      Returns the remote address associated to this call as a string.

      The result string must be freed by user using ms_free().
      Returns:
      the remote address as a string.
    • getRemoteContact

      @Nullable String getRemoteContact()
      Returns the far end's sip contact as a string, if available.

      Returns:
      the remote contact or null.
    • getRemoteContactAddress

      @Nullable Address getRemoteContactAddress()
      Returns the far end's sip contact as an address, if available.

      Returns:
      the remote contact as a Address or null.
    • getRemoteParams

      @Nullable CallParams getRemoteParams()
      Returns call parameters proposed by remote.

      This is useful when receiving an incoming call, to know whether the remote
      party supports video, encryption or whatever.
      Returns:
      the CallParams suggested by the remote or null.
    • getRemoteUserAgent

      @Nullable String getRemoteUserAgent()
      Returns the far end's user agent description string, if available.

      Returns:
      the remote user agent or null.
    • getReplacedCall

      @Nullable Call getReplacedCall()
      Returns the call object this call is replacing, if any.

      Call replacement can occur during call transfers. By default, the core
      automatically terminates the replaced call and accept the new one. This
      function allows the application to know whether a new incoming call is a one
      that replaces another one.
      Returns:
      the Call object this call is replacing or null.
    • getRequestAddress

      @NonNull Address getRequestAddress()
      The address to which the call has been sent, taken directly from the SIP URI of
      the INVITE.

      Usually equal to the To field, except when e.g. using a fallback contact
      address. You should probably use getToAddress() instead, unless you know what
      you're doing.
      Returns:
      the Address matching the URI of the INVITE request.
    • getSpeakerMuted

      boolean getSpeakerMuted()
      Get speaker muted state.

      Returns:
      The speaker muted state.
    • setSpeakerMuted

      void setSpeakerMuted(boolean muted)
      Set speaker muted state.

      Parameters:
      muted - The speaker muted state.
    • getSpeakerVolumeGain

      float getSpeakerVolumeGain()
      Get speaker volume gain.

      If the sound backend supports it, the returned gain is equal to the gain set
      with the system mixer.
      Returns:
      Percentage of the max supported volume gain. Valid values are in [ 0.0
      : 1.0 ]. In case of failure, a negative value is returned
    • setSpeakerVolumeGain

      void setSpeakerVolumeGain(float volume)
      Set speaker volume gain.

      If the sound backend supports it, the new gain will synchronized with the
      system mixer.
      Parameters:
      volume - Percentage of the max supported gain. Valid values are in [ 0.0 :
      1.0 ].
    • getState

      Call.State getState()
      Retrieves the call's current state.

      Returns:
      the current Call.State of this call.
    • getStreamCount

      int getStreamCount()
      Returns the number of stream for the given call.

      Returns:
      the amount of streams for this call.
    • getTextStats

      @Nullable CallStats getTextStats()
      Returns a copy of the call statistics for the text stream.

      Returns:
      a CallStats object for the text stream or null if it isn't
      available.
    • getToAddress

      @NonNull Address getToAddress()
      Returns the to address with its headers associated to this call.

      Returns:
      the Address matching the TO of the call.
    • getTransferState

      Call.State getTransferState()
      Returns the current transfer state, if a transfer has been initiated from this
      call.

      see: linphone_core_transfer_call , linphone_core_transfer_call_to_another
      Returns:
      the Call.State.
    • getTransferTargetCall

      @Nullable Call getTransferTargetCall()
      When this call has received a transfer request, returns the new call that was
      automatically created as a result of the transfer.

      Returns:
      the transfer Call created.
    • getTransfererCall

      @Nullable Call getTransfererCall()
      Gets the transferer if this call was started automatically as a result of an
      incoming transfer request.

      The call in which the transfer request was received is returned in this case.
      Returns:
      The transferer Call if the specified call was started
      automatically as a result of an incoming transfer request, null otherwise.
    • getVideoSource

      @Nullable VideoSourceDescriptor getVideoSource()
      Gets the video source of a call.

      Returns:
      The VideoSourceDescriptor describing the video source that is
      set
    • setVideoSource

      void setVideoSource(@Nullable VideoSourceDescriptor descriptor)
      Sets the video source of a call.

      Parameters:
      descriptor - The VideoSourceDescriptor describing the video source
      to set
    • getVideoStats

      @Nullable CallStats getVideoStats()
      Returns a copy of the call statistics for the video stream.

      Returns:
      a CallStats object for the video stream or null if it isn't
      available.
    • accept

      int accept()
      Accept an incoming call.

      Basically the application is notified of incoming calls within the
      call_state_changed callback of the LinphoneCoreVTable structure, where it will
      receive a Call.Dir.Incoming event with the associated Call object.
      The application can later accept the call using this method.
      Returns:
      0 on success, -1 on failure
    • acceptEarlyMedia

      int acceptEarlyMedia()
      Accept an early media session for an incoming call.

      This is identical as calling acceptEarlyMediaWithParams(org.linphone.core.CallParams) with null
      parameters.
      Returns:
      0 if successful, -1 otherwise
      see: acceptEarlyMediaWithParams(org.linphone.core.CallParams)
    • acceptEarlyMediaWithParams

      int acceptEarlyMediaWithParams(@Nullable CallParams params)
      When receiving an incoming, accept to start a media session as early-media.

      This means the call is not accepted but audio & video streams can be
      established if the remote party supports early media. However, unlike after
      call acceptance, mic and camera input are not sent during early-media, though
      received audio & video are played normally. The call can then later be fully
      accepted using accept() or acceptWithParams(org.linphone.core.CallParams).
      Parameters:
      params - The call parameters to use (can be null).
      Returns:
      0 if successful, -1 otherwise
    • acceptUpdate

      int acceptUpdate(@Nullable CallParams params)
      Accept call modifications initiated by other end.

      This call may be performed in response to a #LinphoneCallUpdatedByRemote state
      notification. When such notification arrives, the application can decide to
      call deferUpdate() so that it can have the time to prompt the user.
      getRemoteParams() can be used to get information about the call
      parameters requested by the other party, such as whether a video stream is
      requested.
      When the user accepts or refuse the change, acceptUpdate(org.linphone.core.CallParams) can be done
      to answer to the other party. If params is null, then the same call parameters
      established before the update request will continue to be used (no change). If
      params is not null, then the update will be accepted according to the
      parameters passed. Typical example is when a user accepts to start video, then
      params should indicate that video stream should be used (see CallParams#enableVideo
      ).
      Parameters:
      params - A CallParams object describing the call parameters to
      accept.
      Returns:
      0 if successful, -1 otherwise (actually when this function call is
      performed outside ot #LinphoneCallUpdatedByRemote state)
    • acceptWithParams

      int acceptWithParams(@Nullable CallParams params)
      Accept an incoming call, with parameters.

      Basically the application is notified of incoming calls within the
      call_state_changed callback of the LinphoneCoreVTable structure, where it will
      receive a Call.Dir.Incoming event with the associated Call object.
      The application can later accept the call using this method.
      Parameters:
      params - The specific parameters for this call, for example whether video
      is accepted or not. Use null to use default parameters.
      Returns:
      0 on success, -1 on failure
    • askedToAutoanswer

      boolean askedToAutoanswer()
      Tell whether a call has been asked to autoanswer.

      Returns:
      A boolean value telling whether the call has been asked to autoanswer
    • cancelDtmfs

      void cancelDtmfs()
      Stop current DTMF sequence sending.

      Please note that some DTMF could be already sent, depending on when this
      function call is delayed from sendDtmfs(java.lang.String). This function will be
      automatically called if call state change to anything but
      LinphoneCallStreamsRunning.
    • confirmGoClear

      void confirmGoClear()
      Method to be called after the user confirm that he/she is notifed of the on
      going Go Clear procedure.

      warning: this operation must be imperatevely initiate by a user action on
      sending of the GoClear ACK
    • createNativeVideoWindowId

      @Nullable Object createNativeVideoWindowId()
      Create a native video window id where the video is to be displayed.

      Returns:
      the native video window id (type may vary depending on platform).
    • decline

      int decline(Reason reason)
      Decline a pending incoming call, with a reason.

      Parameters:
      reason - The reason for rejecting the call: Reason.Declined or
      Reason.Busy
      Returns:
      0 on success, -1 on failure
    • declineWithErrorInfo

      int declineWithErrorInfo(@Nullable ErrorInfo ei)
      Decline a pending incoming call, with a ErrorInfo object.

      Parameters:
      ei - ErrorInfo containing more information on the call rejection.

      Returns:
      0 on success, -1 on failure
    • deferUpdate

      int deferUpdate()
      When receiving a #LinphoneCallUpdatedByRemote state notification, prevent
      Core from performing an automatic answer.

      When receiving a #LinphoneCallUpdatedByRemote state notification (ie an
      incoming reINVITE), the default behaviour of Core is defined by the
      "defer_update_default" option of the "sip" section of the config. If this
      option is 0 (the default) then the Core automatically answers the
      reINIVTE with call parameters unchanged. However when for example when the
      remote party updated the call to propose a video stream, it can be useful to
      prompt the user before answering. This can be achieved by calling
      linphone_core_defer_call_update during the call state notification, to
      deactivate the automatic answer that would just confirm the audio but reject
      the video. Then, when the user responds to dialog prompt, it becomes possible
      to call acceptUpdate(org.linphone.core.CallParams) to answer the reINVITE, with eventually video
      enabled in the CallParams argument.
      The #LinphoneCallUpdatedByRemote notification can also arrive when receiving an
      INVITE without SDP. In such case, an unchanged offer is made in the 200Ok, and
      when the ACK containing the SDP answer is received,
      #LinphoneCallUpdatedByRemote is triggered to notify the application of possible
      changes in the media session. However in such case defering the update has no
      meaning since we just generating an offer.
      Returns:
      0 if successful, -1 if the deferUpdate() was done outside a
      valid #LinphoneCallUpdatedByRemote notification
    • getStats

      @Nullable CallStats getStats(StreamType type)
      Returns a copy of the call statistics for a particular stream type.

      Parameters:
      type - the StreamType
      Returns:
      a CallStats object for the given stream or null if stream isn't
      available.
    • getToHeader

      @Deprecated @Nullable String getToHeader(@NonNull String headerName)
      Deprecated.
      Returns the value of the header name.

      Parameters:
      headerName - the name of the header to check.
      Returns:
      the value of the header if exists.
    • hasTransferPending

      boolean hasTransferPending()
      Returns if this calls has received a transfer that has not been executed yet.

      Pending transfers are executed when this call is being paused or closed,
      locally or by remote endpoint. If the call is already paused while receiving
      the transfer request, the transfer immediately occurs.
      Returns:
      true if transfer is pending, false otherwise.
    • mediaInProgress

      boolean mediaInProgress()
      Indicates whether an operation is in progress at the media side.

      It can be a bad idea to initiate signaling operations (adding video, pausing
      the call, removing video, changing video parameters) while the media is busy in
      establishing the connection (typically ICE connectivity checks). It can result
      in failures generating loss of time in future operations in the call.
      Applications are invited to check this function after each call state change to
      decide whether certain operations are permitted or not.
      Returns:
      true if media is busy in establishing the connection, false otherwise.
    • notifyRinging

      void notifyRinging()
      Starts the process of replying 180 Ringing.

      This function is used in conjonction with Core#enableAutoSendRinging.
      If the automatic sending of the 180 Ringing is disabled, this function needs to
      be called manually before the call timeouts.
    • oglRender

      void oglRender()
      Calls generic OpenGL render for a given call.

    • pause

      int pause()
      Pauses the call.

      If a music file has been setup using Core.setPlayFile(java.lang.String), this file will
      be played to the remote user. The only way to resume a paused call is to call
      resume().
      Returns:
      0 on success, -1 on failure
      see: resume()
    • redirect

      @Deprecated int redirect(@NonNull String redirectUri)
      Deprecated.
      27/10/2020. Use redirectTo(org.linphone.core.Address) instead.
      Redirect the specified call to the given redirect URI.

      Parameters:
      redirectUri - The URI to redirect the call to
      Returns:
      0 if successful, -1 on error.
    • redirectTo

      int redirectTo(@NonNull Address redirectAddress)
      Redirect the specified call to the given redirect Address.

      Parameters:
      redirectAddress - The Address to redirect the call to
      Returns:
      0 if successful, -1 on error.
    • requestNotifyNextVideoFrameDecoded

      void requestNotifyNextVideoFrameDecoded()
      Request the callback passed to linphone_call_cbs_set_next_video_frame_decoded
      to be called the next time the video decoder properly decodes a video frame.

    • resume

      int resume()
      Resumes a call.

      The call needs to have been paused previously with pause().
      Returns:
      0 on success, -1 on failure
      see: pause()
    • sendDtmf

      int sendDtmf(char dtmf)
      Send the specified dtmf.

      The dtmf is automatically played to the user.
      Parameters:
      dtmf - The dtmf name specified as a char, such as '0', '#' etc...
      Returns:
      0 if successful, -1 on error.
    • sendDtmfs

      int sendDtmfs(@NonNull String dtmfs)
      Send a list of dtmf.

      The dtmfs are automatically sent to remote, separated by some needed
      customizable delay. Sending is canceled if the call state changes to something
      not LinphoneCallStreamsRunning.
      Parameters:
      dtmfs - A dtmf sequence such as '123#123123'
      Returns:
      -2 if there is already a DTMF sequence, -1 if call is not ready, 0
      otherwise.
    • sendInfoMessage

      int sendInfoMessage(@NonNull InfoMessage info)
      Sends an info message through an established call.

      Parameters:
      info - the InfoMessage to send
    • sendVfuRequest

      void sendVfuRequest()
      Request remote side to send us a Video Fast Update.

    • startRecording

      void startRecording()
      Starts call recording.

      Video record is only available if this function is called in state
      StreamRunning. The output file where audio is recorded must be previously
      specified with CallParams.setRecordFile(java.lang.String).
    • stopRecording

      void stopRecording()
      Stops call recording.

    • takePreviewSnapshot

      int takePreviewSnapshot(@NonNull String filePath)
      Take a photo of currently captured video and write it into a jpeg file.

      Note that the snapshot is asynchronous, an application shall not assume that
      the file is created when the function returns.
      Parameters:
      filePath - a path where to write the jpeg content.
      Returns:
      0 if successful, -1 otherwise (typically if jpeg format is not
      supported).
    • takeVideoSnapshot

      int takeVideoSnapshot(@NonNull String filePath)
      Take a photo of currently received video and write it into a jpeg file.

      Note that the snapshot is asynchronous, an application shall not assume that
      the file is created when the function returns.
      Parameters:
      filePath - a path where to write the jpeg content.
      Returns:
      0 if successful, -1 otherwise (typically if jpeg format is not
      supported).
    • terminate

      int terminate()
      Terminates a call.

      Returns:
      0 on success, -1 on failure
    • terminateWithErrorInfo

      int terminateWithErrorInfo(@Nullable ErrorInfo ei)
      Terminates a call.

      Parameters:
      ei - ErrorInfo
      Returns:
      0 on success, -1 on failure
    • transfer

      @Deprecated int transfer(@NonNull String referTo)
      Deprecated.
      27/10/2020. Use transferTo(org.linphone.core.Address) instead.
      Performs a simple call transfer to the specified destination.

      The remote endpoint is expected to issue a new call to the specified
      destination. The current call remains active and thus can be later paused or
      terminated. It is possible to follow the progress of the transfer provided that
      transferee sends notification about it. In this case, the
      transfer_state_changed callback of the LinphoneCoreVTable is invoked to notify
      of the state of the new call at the other party. The notified states are
      #LinphoneCallOutgoingInit , #LinphoneCallOutgoingProgress,
      #LinphoneCallOutgoingRinging and #LinphoneCallConnected.
      Parameters:
      referTo - The destination the call is to be refered to.
      Returns:
      0 on success, -1 on failure
    • transferTo

      int transferTo(@NonNull Address referTo)
      Performs a simple call transfer to the specified destination.

      The remote endpoint is expected to issue a new call to the specified
      destination. The current call remains active and thus can be later paused or
      terminated. It is possible to follow the progress of the transfer provided that
      transferee sends notification about it. In this case, the
      transfer_state_changed callback of the LinphoneCoreVTable is invoked to notify
      of the state of the new call at the other party. The notified states are
      #LinphoneCallOutgoingInit , #LinphoneCallOutgoingProgress,
      #LinphoneCallOutgoingRinging and #LinphoneCallConnected.
      Parameters:
      referTo - The Address the call is to be refered to.
      Returns:
      0 on success, -1 on failure
    • transferToAnother

      int transferToAnother(@NonNull Call dest)
      Transfers a call to destination of another running call.

      This is used for "attended transfer" scenarios. The transfered call is supposed
      to be in paused state, so that it is able to accept the transfer immediately.
      The destination call is a call previously established to introduce the
      transfered person. This method will send a transfer request to the transfered
      person. The phone of the transfered is then expected to automatically call to
      the destination of the transfer. The receiver of the transfer will then
      automatically close the call with us (the 'dest' call). It is possible to
      follow the progress of the transfer provided that transferee sends notification
      about it. In this case, the transfer_state_changed callback of the
      LinphoneCoreVTable is invoked to notify of the state of the new call at the
      other party. The notified states are #LinphoneCallOutgoingInit ,
      #LinphoneCallOutgoingProgress, #LinphoneCallOutgoingRinging and
      #LinphoneCallConnected.
      Parameters:
      dest - A running call whose remote person will receive the transfer
      Returns:
      0 on success, -1 on failure
    • update

      int update(@Nullable CallParams params)
      Updates a running call according to supplied call parameters or parameters
      changed in the LinphoneCore.

      It triggers a SIP reINVITE in order to perform a new offer/answer of media
      capabilities. Changing the size of the transmitted video after calling
      linphone_core_set_preferred_video_size can be used by passing null as params
      argument. In case no changes are requested through the CallParams
      argument, then this argument can be omitted and set to null. WARNING: Updating
      a call in the #LinphoneCallPaused state will still result in a paused call even
      if the media directions set in the params are sendrecv. To resume a paused
      call, you need to call resume().
      Parameters:
      params - The new call parameters to use (may be null).
      Returns:
      0 if successful, -1 otherwise.
    • zoom

      void zoom(float zoomFactor, float cx, float cy)
      Perform a zoom of the video displayed during a call.

      The zoom ensures that all the screen is fullfilled with the video.
      Parameters:
      zoomFactor - a floating point number describing the zoom factor. A value
      1.0 corresponds to no zoom applied.
      cx - a floating point number pointing the horizontal center of the zoom to
      be applied. This value should be between 0.0 and 1.0.
      cy - a floating point number pointing the vertical center of the zoom to
      be applied. This value should be between 0.0 and 1.0.
    • addListener

      void addListener(CallListener listener)
    • removeListener

      void removeListener(CallListener listener)
    • setUserData

      void setUserData(Object data)
      Sets the object to store in this object user's data
      Parameters:
      data - the object to store
    • getUserData

      Object getUserData()
      Gets the object stored in this object user's data
      Returns:
      the object store if any, null otherwise
    • getNativePointer

      long getNativePointer()
      Gets the native pointer used by this class to make native method calls.
      Returns:
      the nativer pointer, as long
    • toString

      String toString()
      Overrides:
      toString in class Object