Interface Core


public interface Core
Main object to instanciate and on which to keep a reference.

This object is the first object to instanciante, and will allow you to perform
all kind of tasks. To create it, use either Factory.createCore(java.lang.String, java.lang.String, java.lang.Object) or
Factory.createCoreWithConfig(org.linphone.core.Config, java.lang.Object), see Config for more information
about factory and default config. On some platforms like Android or iOS you
will need to give it the Context of your application.
Once the Core is in state GlobalState.Ready, use start()
. It will then go to state GlobalState.On and from that you can start
using it for calls and chat messages. It is recommended to add a CoreListener
listener using addListener(org.linphone.core.CoreListener) to monitor different events.
To be able to receive events from the network, you must schedule a call iterate()
often, like every 20ms. On Android & iOS linphone_core_is_auto_iterate_enabled
is enabled by default so you don't have to worry about that unless you disable
it using #enableAutoIterate or by setting in the [misc] section of your
configuration auto_iterate=0. warning: Our API isn't thread-safe but also isn't
blocking, so it is strongly recommend to always call our methods from the main
thread.
Once you don't need it anymore, call stop() and release the reference on
it so it can gracefully shutdown.
  • Method Details

    • getMediastreamerFactory

      Factory getMediastreamerFactory()
      Gets the mediastreamer's factory
    • getAccountCreatorBackend

      AccountCreator.Backend getAccountCreatorBackend()
      Gets the AccountCreator backend set for the Core.

      Returns:
      The AccountCreator#Backend
    • setAccountCreatorBackend

      void setAccountCreatorBackend(AccountCreator.Backend backend)
      Sets the AccountCreator backend on the Core.

      Parameters:
      backend - The AccountCreator#Backend
    • getAccountCreatorUrl

      @Nullable String getAccountCreatorUrl()
      Gets the AccountCreator url on the Core.

      Returns:
      url The URL to reach.
    • setAccountCreatorUrl

      void setAccountCreatorUrl(@Nullable String url)
      Sets the AccountCreator url on the Core.

      Parameters:
      url - The URL to reach
    • getAccountList

      @NonNull Account[] getAccountList()
      Returns an unmodifiable list of entered accounts.

      Returns:

    • getAdaptiveRateAlgorithm

      @NonNull String getAdaptiveRateAlgorithm()
      Returns which adaptive rate algorithm is currently configured for future calls.

      see: setAdaptiveRateAlgorithm(java.lang.String)
      Returns:
      the adaptive rate algorithm. Currently two values are supported:
      'advanced', which is the default value, or 'basic'.
    • setAdaptiveRateAlgorithm

      void setAdaptiveRateAlgorithm(@NonNull String algorithm)
      Sets adaptive rate algorithm.

      It will be used for each new calls starting from now. Calls already started
      will not be updated.
      Parameters:
      algorithm - the adaptive rate control algorithm. Currently two values are
      supported: 'advanced', which is the default value, or 'basic'.
    • isAdaptiveRateControlEnabled

      boolean isAdaptiveRateControlEnabled()
      Returns whether adaptive rate control is enabled.

      see: #enableAdaptiveRateControl
      Returns:
      true if adaptive rate control is enabled, false otherwise
    • setAdaptiveRateControlEnabled

      void setAdaptiveRateControlEnabled(boolean enabled)
      Enable adaptive rate control.

      Adaptive rate control consists in using RTCP feedback provided information to
      dynamically control the output bitrate of the audio and video encoders, so that
      we can adapt to the network conditions and available bandwidth. Control of the
      audio encoder is done in case of audio-only call, and control of the video
      encoder is done for audio & video calls. Adaptive rate control feature is
      enabled by default.
      Parameters:
      enabled - true to enable adaptive rate control, false otherwise
    • isAgcEnabled

      boolean isAgcEnabled()
      Tells whether the experimental software Automatic Gain Control is activated.

      This algorithm is very experimental, not usable in its current state.
      Returns:
      true if the AGC is enabled, false otherwise.
    • setAgcEnabled

      void setAgcEnabled(boolean val)
      Enables the experimental software Automatic Gain Control.

      This algorithm is very experimental, not usable in its current state. Automatic
      Gain Control is usally provided by sound devices, typically on iOS and Android.
      Parameters:
      val - a boolean value
    • isAlertsEnabled

      boolean isAlertsEnabled()
      Returns whether alert reporting is enabled.

      See Alert for more details.
      Returns:
      whether alert reporting is enabled.
    • setAlertsEnabled

      void setAlertsEnabled(boolean enable)
      Enables alerts.

      See Alert for more details.
      Parameters:
      enable - whether alert reporting is enabled or not.
    • isAudioAdaptiveJittcompEnabled

      boolean isAudioAdaptiveJittcompEnabled()
      Tells whether the audio adaptive jitter compensation is enabled.

      Returns:
      true if the audio adaptive jitter compensation is enabled, false
      otherwise.
    • setAudioAdaptiveJittcompEnabled

      void setAudioAdaptiveJittcompEnabled(boolean enable)
      Enables or disables the audio adaptive jitter compensation.

      It is enabled by default and should be disabled only to verify how
      communication over IP is a disaster without jitter compensation.
      Parameters:
      enable - true to enable the audio adaptive jitter compensation, false to
      disable it.
    • getAudioDevices

      @NonNull AudioDevice[] getAudioDevices()
      Returns a list of audio devices, with only the first device for each type To
      have the list of all audio devices, use getExtendedAudioDevices()

      Returns:
      A list with the first AudioDevice of each type
    • getAudioDscp

      int getAudioDscp()
      Gets the DSCP field for outgoing audio streams.

      The DSCP defines the quality of service in IP packets.
      Returns:
      The current DSCP value
    • setAudioDscp

      void setAudioDscp(int dscp)
      Sets the DSCP field for outgoing audio streams.

      The DSCP defines the quality of service in IP packets. note: It is usually
      useless or a bad idea to try to play with DSCP bits unless having full control
      on the network.
      warning: Setting the DSCP bits is more or less well supported by operating
      systems and sometimes requires to disable IPv6.
      Parameters:
      dscp - The DSCP value to set
    • getAudioJittcomp

      int getAudioJittcomp()
      Returns the nominal audio jitter buffer size in milliseconds.

      Returns:
      The nominal audio jitter buffer size in milliseconds
    • setAudioJittcomp

      void setAudioJittcomp(int milliseconds)
      Sets the nominal audio jitter buffer size in milliseconds.

      The value takes effect immediately for all running and pending calls, if any. A
      value of 0 disables the jitter buffer.
      Parameters:
      milliseconds - the audio jitter buffer size to set in milliseconds
    • getAudioMulticastAddr

      @Nullable String getAudioMulticastAddr()
      Use to get multicast address to be used for audio stream.

      Returns:
      an ipv4/6 multicast address or default value.
    • setAudioMulticastAddr

      int setAudioMulticastAddr(@Nullable String ip)
      Use to set multicast address to be used for audio stream.

      Parameters:
      ip - an ipv4/6 multicast address.
      Returns:
      0 in case of success
    • isAudioMulticastEnabled

      boolean isAudioMulticastEnabled()
      Use to get multicast state of audio stream.

      Returns:
      true if subsequent calls will propose multicast ip set by setAudioMulticastAddr(java.lang.String)
    • setAudioMulticastEnabled

      void setAudioMulticastEnabled(boolean yesno)
      Use to enable multicast rtp for audio stream.

      If enabled, outgoing calls put a multicast address from getVideoMulticastAddr()
      into audio cline. In case of outgoing call audio stream is sent to this
      multicast address. For incoming calls behavior is unchanged.
      Parameters:
      yesno - if yes, subsequent calls will propose multicast ip set by setAudioMulticastAddr(java.lang.String)
    • getAudioMulticastTtl

      int getAudioMulticastTtl()
      Use to get multicast ttl to be used for audio stream.

      Returns:
      a time to leave value
    • setAudioMulticastTtl

      int setAudioMulticastTtl(int ttl)
      Use to set multicast ttl to be used for audio stream.

      Parameters:
      ttl - value or -1 if not used. [0..255] default value is 1
      Returns:
      0 in case of success
    • getAudioPayloadTypes

      @NonNull PayloadType[] getAudioPayloadTypes()
      Returns the list of the available audio payload types.

      Returns:
      A freshly allocated list of the available payload types.
    • setAudioPayloadTypes

      void setAudioPayloadTypes(@Nullable PayloadType[] payloadTypes)
      Redefines the list of the available payload types (codecs).

      Parameters:
      payloadTypes - The new list of payload types.
    • getAudioPort

      int getAudioPort()
      Gets the UDP port used for audio streaming.

      Returns:
      The UDP port used for audio streaming
    • setAudioPort

      void setAudioPort(int port)
      Sets the UDP port used for audio streaming.

      A value of -1 will request the system to allocate the local port randomly. This
      is recommended in order to avoid firewall warnings.
      Parameters:
      port - The UDP port to use for audio streaming
    • getAudioPortsRange

      @NonNull Range getAudioPortsRange()
      Get the audio port range from which is randomly chosen the UDP port used for
      audio streaming.

      Returns:
      a Range object
    • getAuthInfoList

      @NonNull AuthInfo[] getAuthInfoList()
      Returns an unmodifiable list of currently entered AuthInfo.

      Returns:
      A list of AuthInfo.
    • isAutoDownloadIcalendarsEnabled

      boolean isAutoDownloadIcalendarsEnabled()
      Gets if the automatic download of incoming icalendars is enabled or not.

      Returns:
      true if icalendars will be automatically downloaded, false otherwise.
    • setAutoDownloadIcalendarsEnabled

      void setAutoDownloadIcalendarsEnabled(boolean autoDownloadIcalendars)
      Automatically downloads files attached to a chat message if it's content type
      matches the one we use for icalendars.

      Parameters:
      autoDownloadIcalendars - true to automatically download incoming
      icalendars, false to disable it.
    • isAutoDownloadVoiceRecordingsEnabled

      boolean isAutoDownloadVoiceRecordingsEnabled()
      Gets if the auto download for incoming voice recordings is enabled or not.

      Returns:
      true if voice recordings will be automatically downloaded, false
      otherwise.
    • setAutoDownloadVoiceRecordingsEnabled

      void setAutoDownloadVoiceRecordingsEnabled(boolean autoDownloadVoiceRecordings)
      Enables automatic download of files attached to a chat message if it's content
      type matches the one we use for voice recordings.

      Parameters:
      autoDownloadVoiceRecordings - true to automatically download incoming
      voice recordings, false to disable it.
    • getAutoIterateBackgroundSchedule

      int getAutoIterateBackgroundSchedule()
      Gets the timer used to schedule the call to core.iterate() method when in
      background (Android only).

      This is only used when #autoIterateEnabled returns true.
      Returns:
      The timing in milliseconds used to schedule the call while in
      background (default is 500ms).
    • setAutoIterateBackgroundSchedule

      void setAutoIterateBackgroundSchedule(int schedule)
      Sets the timer used to schedule the call to core.iterate() method when in
      background (Android only).

      Parameters:
      schedule - The timing in milliseconds used to schedule the call while in
      background.
    • isAutoIterateEnabled

      boolean isAutoIterateEnabled()
      Gets whether auto iterate is enabled or not (Android & iOS only).

      Returns:
      true if iterate() is scheduled automatically, false otherwise
    • setAutoIterateEnabled

      void setAutoIterateEnabled(boolean enable)
      Enable or disable the automatic schedule of iterate() method on Android
      & iOS.

      If enabled, iterate() will be called on the main thread every 20ms
      automatically. If disabled, it is the application that must do this job.
      Parameters:
      enable - true to enable auto iterate, false to disable
    • getAutoIterateForegroundSchedule

      int getAutoIterateForegroundSchedule()
      Gets the timer used to schedule the call to core.iterate() method when in
      foreground (Android only).

      This is only used when #autoIterateEnabled returns true.
      Returns:
      The timing in milliseconds used to schedule the call while in
      foreground (default is 20ms).
    • setAutoIterateForegroundSchedule

      void setAutoIterateForegroundSchedule(int schedule)
      Sets the timer used to schedule the call to core.iterate() method when in
      foreground (Android only).

      Parameters:
      schedule - The timing in milliseconds used to schedule the call while in
      foreground.
    • isAutoSendRingingEnabled

      boolean isAutoSendRingingEnabled()
      Gets if the automatic sending of 180 Ringing is enabled or not.

      Returns:
      true if the automatic sending of 180 Ringing is enabled, false
      otherwise.
    • setAutoSendRingingEnabled

      void setAutoSendRingingEnabled(boolean enable)
      Enables the automatic sending of 180 Ringing when receiving a call.

      Parameters:
      enable - true to activate the automatic 180 Ringing, false to disable it.
    • isAutomaticHttpProxyDetectionEnabled

      boolean isAutomaticHttpProxyDetectionEnabled()
      Returns whether automatic http proxy is enabled.

      Returns:
      true if automatic http proxy is enabled or false.
    • setAutomaticHttpProxyDetectionEnabled

      void setAutomaticHttpProxyDetectionEnabled(boolean enable)
      Enables or disables automatic http proxy detection.

      Parameters:
      enable - true if automatic http proxy is enabled or false.
    • getAvpfMode

      AVPFMode getAvpfMode()
      Returns AVPF enablement.

      See setAvpfMode(org.linphone.core.AVPFMode) .
      Returns:
      The current AVPFMode mode
    • setAvpfMode

      void setAvpfMode(AVPFMode mode)
      Enables RTCP feedback (also known as RTP/AVPF profile).

      Setting AVPFMode.Default is equivalent to LinphoneAVPFDisabled. This
      setting can be overriden per Account with AccountParams.setAvpfMode(org.linphone.core.AVPFMode)
      . The value set here is used for calls placed or received out of any account
      configured, or if the account is configured with LinphoneAVPFDefault.
      Parameters:
      mode - The AVPF mode to use.
    • getAvpfRrInterval

      int getAvpfRrInterval()
      Returns the avpf report interval in seconds.

      Returns:
      The current AVPF report interval in seconds
    • setAvpfRrInterval

      void setAvpfRrInterval(int interval)
      Sets the avpf report interval in seconds.

      This value can be overriden at Account level using
      linphone_account_params__set_avpf_rr_interval().
      Parameters:
      interval - The report interval in seconds
    • isBaudotEnabled

      boolean isBaudotEnabled()
      Returns enablement of text sending via Baudot tones in the audio stream.

      Returns:
      true if text sending via Baudot tones in the audio stream is enabled,
      false otherwise.
    • setBaudotEnabled

      void setBaudotEnabled(boolean enabled)
      Enable text sending via Baudot tones in the audio stream.

      It is disabled by default. Enablement requires a SDK built with full Baudot
      support: -DENABLE_BAUDOT=ON .
      Parameters:
      enabled - true if enabled, false otherwise.
    • getCallLogs

      @NonNull CallLog[] getCallLogs()
      Get the list of call logs (past calls).

      Returns:
      A list of CallLog.
    • getCallLogsDatabasePath

      @Deprecated @Nullable String getCallLogsDatabasePath()
      Deprecated.
      07/12/2021: Use only for migration purposes
      Gets the database filename where call logs will be stored.

      Returns:
      filesystem path.
    • setCallLogsDatabasePath

      @Deprecated void setCallLogsDatabasePath(@Nullable String path)
      Deprecated.
      07/12/2021: Use only for migration purposes
      Sets the database filename where call logs will be stored.

      If the file does not exist, it will be created.
      Parameters:
      path - filesystem path
    • isCallToneIndicationsEnabled

      boolean isCallToneIndicationsEnabled()
      Check whether tone indications of calls are enabled.

      Returns:
      true if call tone indications are enabled
    • setCallToneIndicationsEnabled

      void setCallToneIndicationsEnabled(boolean yesno)
      Enables or disables call tone indications.

      This value is taken into account from next time call parameters are created.
      This feature can also be enabled per-call using CallParams.
      Parameters:
      yesno - a boolean to indicate whether the feature is to be enabled.
    • isCallkitEnabled

      boolean isCallkitEnabled()
      Special function to check if the callkit is enabled, False by default.

      Returns:
      true if callkit is enabled, false otherwise.
    • setCallkitEnabled

      void setCallkitEnabled(boolean enabled)
      Special function to enable the callkit.

      Parameters:
      enabled - true to enable callkit, false to disable it.
    • getCalls

      @NonNull Call[] getCalls()
      Gets the current list of calls.

      Note that this list is read-only and might be changed by the core after a
      function call to iterate(). Similarly the Call objects inside it
      might be destroyed without prior notice. To hold references to Call
      object into your program, you must use linphone_call_ref.
      Returns:
      A list of Call
    • getCallsNb

      int getCallsNb()
      Gets the number of Call.

      Returns:
      The current number of calls
    • getCameraSensorRotation

      int getCameraSensorRotation()
      Get the camera sensor rotation.

      This is needed on some mobile platforms to get the number of degrees the camera
      sensor is rotated relative to the screen.
      Returns:
      The camera sensor rotation in degrees (0 to 360) or -1 if it could not
      be retrieved
    • getCameraWhitebalance

      int getCameraWhitebalance()
      Gets the whitebalance of the camera (currently only supported by Android).

      Returns:
      The whitebalance of the camera, default is -1 (disabled).
    • setCameraWhitebalance

      int setCameraWhitebalance(int whitebalance)
      Sets the whitebalance of the camera (currently only supported by Android).

      Parameters:
      whitebalance - The whitebalance of the camera.
    • isCapabilityNegociationEnabled

      boolean isCapabilityNegociationEnabled()
      Checks if the capability negotiation (RFC5939) is supported or not.

      Returns:
      true if capability negotiation is supported; false otherwise.
    • setCapabilityNegociationEnabled

      void setCapabilityNegociationEnabled(boolean enable)
      Defines whether capability negotiation (RFC5939) is supported.

      Parameters:
      enable - true to support RFC5939; false otherwise.
    • isCapabilityNegotiationReinviteEnabled

      boolean isCapabilityNegotiationReinviteEnabled()
      Checks if the capability negotiation (RFC5939) reINVITE is enabled or not.

      Returns:
      true if capability negotiation reINVITE is enabled; false otherwise.
    • setCapabilityNegotiationReinviteEnabled

      void setCapabilityNegotiationReinviteEnabled(boolean enable)
      Defines whether capability negotiation (RFC5939) reINVITE is enabled.

      Parameters:
      enable - true to enable capability negotiation reINVITE; false otherwise.
    • getCaptureDevice

      @Deprecated @Nullable String getCaptureDevice()
      Deprecated.
      Gets the name of the currently assigned sound device for capture.

      Returns:
      The name of the currently assigned sound device for capture.
    • setCaptureDevice

      @Deprecated int setCaptureDevice(@Nullable String devid)
      Sets the sound device used for capture.

      Parameters:
      devid - The device name as returned by linphone_core_get_sound_devices
      Returns:
      0
    • isCfgLinesMergingEnabled

      boolean isCfgLinesMergingEnabled()
      Checks if cfg lines are going to the merged if the capability negotiation
      (RFC5939) is supported or not.

      Returns:
      true if acfg and pcfg lines with consecutive indexes are going to be
      merged; false otherwise.
    • setCfgLinesMergingEnabled

      void setCfgLinesMergingEnabled(boolean merge)
      Defines whether cfg lines are going to be merged if capability negotiation
      (RFC5939) is supported.

      Parameters:
      merge - true to merge acfg and pcfg lines with consecutive indexes; false
      otherwise.
    • isChatEnabled

      boolean isChatEnabled()
      Returns whether chat is enabled.

      Returns:
      true if chat is enabled, false otherwise
    • getChatMessagesAggregationEnabled

      boolean getChatMessagesAggregationEnabled()
      End of group ldap.

      Returns whether chat messages grouping is enabled or not.
      Returns:
      true if received chat messages will be notified as a bundle, false
      otherwise.
    • setChatMessagesAggregationEnabled

      void setChatMessagesAggregationEnabled(boolean enabled)
      Sets whether chat messages grouping is enabled or not.

      This optimisation is turned on by default. It allows to receive bulks of
      incoming message faster, and notify them to the application in a row. Set [sip]
      chat_messages_aggregation in your configuration file for the timer, default is
      500ms.
      Parameters:
      enabled - true to wait for chat messages and notify them as at once, false
      to keep legacy behavior.
    • getChatRooms

      @NonNull ChatRoom[] getChatRooms()
      Returns a list of chat rooms.

      Returns:
      List of chat rooms.
    • getConferenceAvailabilityBeforeStart

      long getConferenceAvailabilityBeforeStart()
      Gets the conference availability before start.

      Returns:
      the number of seconds the conference can be joined early
      warning: This setting is only applicable to conference servers
    • setConferenceAvailabilityBeforeStart

      void setConferenceAvailabilityBeforeStart(long seconds)
      Set the conference availability before start.

      It is the number of seconds clients can join the conference before its actual
      start time.
      Parameters:
      seconds - number of seconds the conference can be joined early. A negative
      value means always
      warning: This setting is only applicable to conference servers
    • getConferenceCleanupPeriod

      long getConferenceCleanupPeriod()
      Gets the conference cleanup timer period.

      Returns:
      the period of the conference cleanup timer
    • setConferenceCleanupPeriod

      void setConferenceCleanupPeriod(long seconds)
      Set the conference cleanup timer period.

      This timer helps managing the automatic deletion of ended conferences. In fact,
      under normal circumstances a conference is deleted only if it transition from
      an active to an inactive state after its end time. Nonetheless a side effect is
      that there may be a conference that never became active or it was terminate
      before its due date and time. This timer, if setup, therefore periodically
      looks for expired conference and cleans then up
      Parameters:
      seconds - period of the timer. A 0 or negative value stops the timer
    • getConferenceExpirePeriod

      long getConferenceExpirePeriod()
      Gets the conference expire period.

      Returns:
      the number of second after which the conference cannot be joined
      warning: This setting is only applicable to conference servers
    • setConferenceExpirePeriod

      void setConferenceExpirePeriod(long seconds)
      Set the conference expire period.

      It is the number of seconds after the end time or the last participant joined -
      whichever is later - the conference cannot be joined anymore
      Parameters:
      seconds - number of seconds before the conference expires. A 0 or negative
      value means immediately after the end
      warning: This setting is only applicable to conference servers
    • isConferenceIcsInMessageBodyEnabled

      boolean isConferenceIcsInMessageBodyEnabled()
      Gets wether conference invitations will be sent in the chat message body or as
      a file attachment.

      Returns:
      true if ICS will be sent in the message body (by default), false if it
      will be sent as a file attachment.
    • setConferenceIcsInMessageBodyEnabled

      void setConferenceIcsInMessageBodyEnabled(boolean enable)
      Enable sending conference invitations in the chat message body instead of as a
      file attachment.

      Parameters:
      enable - true to send ICS as message body, false to send it as file
      transfer
    • getConferenceInformationList

      @NonNull ConferenceInfo[] getConferenceInformationList()
      Retrieve the list of conference information on DB.

      Returns:
      The list of conference infos .
    • getConferenceLocalInputVolume

      @Deprecated float getConferenceLocalInputVolume()
      Deprecated.
      23/01/2025 Use Conference.getInputVolume() instead.
      Returns the input volume of the local participant.

      Returns:
      A value inside [0.0 ; 1.0]
    • getConferenceMaxThumbnails

      int getConferenceMaxThumbnails()
      Gets the maximum number of thumbnails requested in the SDP during a conference
      call Account.getCallLogs().

      Returns:
      the maximum number of thumbnails requested in the SDP during a
      conference call
    • setConferenceMaxThumbnails

      void setConferenceMaxThumbnails(int max)
      Sets the maximum number of thumbnails requested in the SDP during a conference
      call.

      Parameters:
      max - the maximum number of thumbnails requested in the SDP during a
      conference call
    • getConferenceParticipantListType

      Conference.ParticipantListType getConferenceParticipantListType()
      Tells whether the default conference participant list is open or closed.

      Returns:
      A Conference#ParticipantListType participant list type
    • setConferenceParticipantListType

      void setConferenceParticipantListType(Conference.ParticipantListType type)
      Selects whether the default conference participant list is open or closed.

      Parameters:
      type - A Conference#ParticipantListType participant list type
    • isConferenceServerEnabled

      boolean isConferenceServerEnabled()
      Tells whether the conference server feature is enabled.

      Returns:
      A boolean value telling whether the conference server feature is
      enabled or not
    • setConferenceServerEnabled

      void setConferenceServerEnabled(boolean enable)
      Enables the conference server mode.

      This has the effect to listen of the conference factory uri to create new
      conferences when receiving INVITE messages there. Enabling this mode is
      required when using liblinphone in a conference server application, but shall
      not be be employed in any client application.
      Parameters:
      enable - A boolean value telling whether to enable or disable the
      conference server feature
    • getConfig

      @NonNull Config getConfig()
      Returns the config object used to manage the storage (config) file.

      Returns:
      a Config object.
    • getConsolidatedPresence

      ConsolidatedPresence getConsolidatedPresence()
      Gets my consolidated presence.

      Returns:
      My ConsolidatedPresence presence
    • setConsolidatedPresence

      void setConsolidatedPresence(ConsolidatedPresence presence)
      Sets my consolidated presence.

      Parameters:
      presence - ConsolidatedPresence value
    • getCurrentCall

      @Nullable Call getCurrentCall()
      Gets the current call.

      The current call is defined as follows: If multiple concurrent calls exist, it
      is the only one that currelty uses the microphone or speaker, otherwise it is
      the unique call that exists unless this call is in {@link Call#State#Paused}
      state.
      Returns:
      The current call or null if no call is running.
    • getCurrentCallRemoteAddress

      @Nullable Address getCurrentCallRemoteAddress()
      Gets the remote address of the current call.

      Returns:
      The remote address of the current call or null if there is no current
      call.
    • getCurrentPreviewVideoDefinition

      @NonNull VideoDefinition getCurrentPreviewVideoDefinition()
      Get the effective video definition provided by the camera for the captured
      video.

      When preview is disabled or not yet started this function returns a 0x0 video
      definition.
      Returns:
      The captured VideoDefinition.
      see: setPreviewVideoDefinition(org.linphone.core.VideoDefinition)
    • isDatabaseEnabled

      boolean isDatabaseEnabled()
      Returns whether the database is enabled.

      Returns:
      a boolean indicating the enablement of the database.
    • setDatabaseEnabled

      void setDatabaseEnabled(boolean value)
      Enables or disables database usage.

      This function can only be called before starting the core up
      Parameters:
      value - a boolean to indicate whether the database is to be enabled.
    • getDefaultAccount

      @Nullable Account getDefaultAccount()
      Returns the default account, that is the one used to determine the current
      identity.

      Returns:
      The default account.
    • setDefaultAccount

      void setDefaultAccount(@Nullable Account account)
      Sets the default account.

      This default account must be part of the list of already entered
      LinphoneAccount. Toggling it as default will make Core default to the
      identity associated with the account in all incoming and outgoing calls if the
      destination SIP uri does not explicitely match any other accounts.
      Parameters:
      account - The account to use as the default one.
    • getDefaultConferenceLayout

      Conference.Layout getDefaultConferenceLayout()
      Gets the default conference layout.

      Returns:
      conference layout
    • setDefaultConferenceLayout

      void setDefaultConferenceLayout(Conference.Layout value)
      Set the default conference layout.

      Parameters:
      value - layout
    • getDefaultEphemeralLifetime

      long getDefaultEphemeralLifetime()
      Gets the default lifetime of ephemeral messages in seconds.

      Returns:
      lifetime of ephemeral messages in seconds
    • setDefaultEphemeralLifetime

      void setDefaultEphemeralLifetime(long value)
      Set the default ephemeral lifetime in seconds.

      Parameters:
      value - lifetime of ephemeral messages in seconds
    • getDefaultFriendList

      @Nullable FriendList getDefaultFriendList()
      Retrieves the first list of Friend from the core.

      Returns:
      the first FriendList object or null.
    • getDefaultInputAudioDevice

      @Nullable AudioDevice getDefaultInputAudioDevice()
      Gets the default input audio device.

      Returns:
      The default input audio device
    • setDefaultInputAudioDevice

      void setDefaultInputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as default input for next calls.

      Parameters:
      audioDevice - The AudioDevice
    • getDefaultOutputAudioDevice

      @Nullable AudioDevice getDefaultOutputAudioDevice()
      Gets the default output audio device.

      Returns:
      The default output audio device
    • setDefaultOutputAudioDevice

      void setDefaultOutputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as default output for next calls.

      Parameters:
      audioDevice - The AudioDevice
    • getDefaultProxyConfig

      @Deprecated @Nullable ProxyConfig getDefaultProxyConfig()
      Deprecated.
      04/09/2024 Use getDefaultAccount()
      Returns the default proxy configuration, that is the one used to determine the
      current identity.

      Returns:
      The default proxy configuration.
    • setDefaultProxyConfig

      @Deprecated void setDefaultProxyConfig(@Nullable ProxyConfig config)
      Sets the default proxy.

      This default proxy must be part of the list of already entered
      LinphoneProxyConfig. Toggling it as default will make Core use the
      identity associated with the proxy configuration in all incoming and outgoing
      calls.
      Parameters:
      config - The proxy configuration to use as the default one.
    • getDefaultVideoDisplayFilter

      @NonNull String getDefaultVideoDisplayFilter()
      Gets the name of the default mediastreamer2 filter used for rendering video on
      the current platform.

      This is for advanced users of the library, mainly to expose mediastreamer video
      filter name and status.
      Returns:
      The default video display filter.
    • getDelayedTimeout

      @Deprecated int getDelayedTimeout()
      Deprecated.
      04/09/2024 Obscure.
      Gets the delayed timeout See setDelayedTimeout(int) for details.

      Returns:
      The current delayed timeout in seconds
    • setDelayedTimeout

      @Deprecated void setDelayedTimeout(int seconds)
      Deprecated.
      04/09/2024 Obscure.
      Set the in delayed timeout in seconds.

      After this timeout period, a delayed call (internal call initialisation or
      resolution) is resumed.
      Parameters:
      seconds - The new delayed timeout
    • getDeviceRotation

      int getDeviceRotation()
      Gets the current device orientation.

      Returns:
      The current device orientation
      see: setDeviceRotation(int)
    • setDeviceRotation

      void setDeviceRotation(int rotation)
      Tells the core the device current orientation.

      This can be used by capture filters on mobile devices to select between
      portrait/landscape mode and to produce properly oriented images. The exact
      meaning of the value in rotation if left to each device specific
      implementations. IOS supported values are 0 for UIInterfaceOrientationPortrait
      and 270 for UIInterfaceOrientationLandscapeRight.
      Parameters:
      rotation - The orientation to use
    • getDigestAuthenticationPolicy

      @NonNull DigestAuthenticationPolicy getDigestAuthenticationPolicy()
      Get the current digest authentication policy applicable for SIP and HTTP.

      Returns:
      The current digest authentication policy.
    • setDigestAuthenticationPolicy

      void setDigestAuthenticationPolicy(@NonNull DigestAuthenticationPolicy policy)
      Setup a new digest authentication policy applicable for SIP and HTTP.

      Parameters:
      policy - a DigestAuthenticationPolicy
      see: Factory.createDigestAuthenticationPolicy()
    • getDisableRecordOnMute

      boolean getDisableRecordOnMute()
      Get whether the microphone will be completely deactivated when muted.

      Please refer to setDisableRecordOnMute(boolean).
      Returns:
      True if you wish to entirely stop the audio recording when muting the
      microphone.
    • setDisableRecordOnMute

      void setDisableRecordOnMute(boolean disable)
      Calling this method with disable=true will cause the microhone to be completely
      deactivated when muted, when given possible by the implementation on the
      platform on which liblinphone is running.

      Otherwise, sound recording remains active but silence is sent instead of
      recorded audio. Playback sound will be briefly interrupted while the audio is
      reconfigured. Currently only implemented for IOS, it will also disable Apple's
      microphone recording indicator when microphone is muted.
      Parameters:
      disable - True if you wish to entirely stop the audio recording when
      muting the microphone.
    • isDnsSearchEnabled

      boolean isDnsSearchEnabled()
      Tells whether DNS search (use of local domain if the fully qualified name did
      return results) is enabled.

      Returns:
      true if DNS search is enabled, false if disabled.
    • setDnsSearchEnabled

      void setDnsSearchEnabled(boolean enable)
      Enable or disable DNS search (use of local domain if the fully qualified name
      did return results).

      Parameters:
      enable - true to enable DNS search, false to disable it.
    • setDnsServers

      void setDnsServers(@Nullable String[] servers)
      Forces liblinphone to use the supplied list of dns servers, instead of system's
      ones.

      Parameters:
      servers - A list of strings containing the IP addresses of DNS servers to
      be used. Setting to null restores default behaviour, which is to use the DNS
      server list provided by the system. The list is copied internally.
    • setDnsServersApp

      void setDnsServersApp(@Nullable String[] servers)
      Forces liblinphone to use the supplied list of dns servers, instead of system's
      ones and set dns_set_by_app at true or false according to value of servers
      list.

      see: getDnsSetByApp()
      Parameters:
      servers - A list of strings containing the IP addresses of DNS servers to
      be used. Setting to null restores default behaviour, which is to use the DNS
      server list provided by the system. The list is copied internally.
    • getDnsSetByApp

      boolean getDnsSetByApp()
      Tells if the DNS was set by an application.

      Returns:
      true if DNS was set by app, false otherwise.
    • isDnsSrvEnabled

      boolean isDnsSrvEnabled()
      Tells whether DNS SRV resolution is enabled.

      Returns:
      true if DNS SRV resolution is enabled, false if disabled.
    • setDnsSrvEnabled

      void setDnsSrvEnabled(boolean enable)
      Enable or disable DNS SRV resolution.

      Parameters:
      enable - true to enable DNS SRV resolution, false to disable it.
    • getDownloadBandwidth

      int getDownloadBandwidth()
      Retrieve the maximum available download bandwidth.

      This value was set by setDownloadBandwidth(int).
      Returns:
      the download bandiwdth in kbits/s, 0 for unknown.
    • setDownloadBandwidth

      void setDownloadBandwidth(int bandwidth)
      Sets maximum available download bandwidth This is IP bandwidth, in kbit/s.

      This information is signaled to other parties during calls (within SDP
      messages) so that the remote end can have sufficient knowledge to properly
      configure its audio & video codec output bitrate to not overflow available
      bandwidth. By default, the download and upload bandwidth are unknowns (set to
      zero), in which case adaptive algorithms are run during calls in order to
      detect available bandwidth and adapt audio and video bitrate usage. see: #enableAdaptiveRateControl
      .
      Parameters:
      bandwidth - the bandwidth in kbits/s, 0 if unknown.
    • getDownloadPtime

      int getDownloadPtime()
      Get audio packetization time linphone expects to receive from peer.

      A value of zero means that ptime is not specified.
      Returns:
      the download packetization time set
    • setDownloadPtime

      void setDownloadPtime(int ptime)
      Set audio packetization time linphone expects to receive from peer.

      A value of zero means that ptime is not specified.
      Parameters:
      ptime - the download packetization time to set
    • getEchoCancellationCalibration

      int getEchoCancellationCalibration()
      Gets the currently stored calibration delay for the software echo cancellation.

      Returns:
      the current calibration value, -1 if it failed, 0 if not done or not
      needed, a positive value if a software echo canceller is required after running
      startEchoCancellerCalibration().
    • isEchoCancellationEnabled

      boolean isEchoCancellationEnabled()
      Returns true if echo cancellation is enabled.

      Returns:
      A boolean value telling whether echo cancellation is enabled or
      disabled
    • setEchoCancellationEnabled

      void setEchoCancellationEnabled(boolean enable)
      Enables or disables echo cancellation.

      Value is saved and used for subsequent calls. This actually controls software
      echo cancellation only. When 'enable' is set to false, software echo
      cancellation is disabled, but hardware one, if available, remains activated.
      When set to true, software echo cancellation is activated in either of these
      two conditions:
    • getEchoCancellerFilterName

      @Nullable String getEchoCancellerFilterName()
      Gets the name of the mediastreamer2 filter used for echo cancelling.

      Returns:
      The name of the mediastreamer2 filter used for echo cancellation.
    • setEchoCancellerFilterName

      void setEchoCancellerFilterName(@Nullable String filtername)
      Sets the name of the mediastreamer2 filter to be used for echo cancelling.

      Parameters:
      filtername - The name of the mediastreamer2 filter to be used for echo
      cancellation.
    • isEchoLimiterEnabled

      boolean isEchoLimiterEnabled()
      Tells whether echo limiter is enabled.

      Enables or disable echo limiter. "Echo limiter" refers to an algorithm that
      creates half-duplex conversation in order to suppress echo. It is experimental
      and shall be used only in rare cases where echo cancellation cannot perform
      because of non-linear speaker/mic coupling. You shall not expected good audio
      quality with the echo limiter.
      Returns:
      true if the echo limiter is enabled, false otherwise.
    • setEchoLimiterEnabled

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

      "Echo limiter" refers to an algorithm that creates half-duplex conversation in
      order to suppress echo. It is experimental and shall be used only in rare cases
      where echo cancellation cannot perform because of non-linear speaker/mic
      coupling. You shall not expected good audio quality with the echo limiter.
      Parameters:
      enable - true to enable echo limiter, false to disable it.
    • setEktPluginLoaded

      void setEktPluginLoaded(boolean ektPluginLoaded)
      sets the state of the EKT plugin in the Linphone core instance.

      Parameters:
      ektPluginLoaded - whether the EKT plugin is loaded or not
    • isEmptyChatroomsDeletionEnabled

      boolean isEmptyChatroomsDeletionEnabled()
      Tells whether empty chat rooms are deleted or not.

      Returns:
      A boolean value telling whether the deletion of empty chatrooms is
      enabled or not (Applicable to servers only)
    • setEmptyChatroomsDeletionEnabled

      void setEmptyChatroomsDeletionEnabled(boolean enable)
      Enable the deletion of empty chatrooms (i.e.

      chatrooms with no participants)
      Parameters:
      enable - A boolean value telling whether to enable or disable the deletion
      of chat rooms with no participants in (Applicable to servers only) it
    • setEnableSipUpdate

      void setEnableSipUpdate(int value)
      Enable or disable the UPDATE method support.

      Parameters:
      value - Enable or disable it
    • setExpectedBandwidth

      @Deprecated void setExpectedBandwidth(int bandwidth)
      Deprecated.
      04/09/2024 this function does nothing.
      Do not use, this function does nothing.

      Parameters:
      bandwidth - the bandwidth in kbits/s, 0 for infinite
    • getExtendedAudioDevices

      @NonNull AudioDevice[] getExtendedAudioDevices()
      Returns the list of all audio devices.

      Returns:
      A list of all AudioDevice
    • isFecEnabled

      boolean isFecEnabled()
      Tells whether the flexible FEC feature (RFC8627) is enabled for this Core
      object.

      Returns:
      A boolean value telling whether the flexible FEC feature is enabled or
      not for this Core object
    • setFecEnabled

      void setFecEnabled(boolean enable)
      Enables the flexible FEC feature (RFC8627) for video calls to recover RTP
      packet loss.

      Parameters:
      enable - A boolean value telling whether to enable or disable the flexible
      FEC feature
    • getFileTransferServer

      @Nullable String getFileTransferServer()
      Gets the globaly set http file transfer server to be used for content type
      application/vnd.gsma.rcs-ft-http+xml.

      Url may be like: "https://file.linphone.org/upload.php".
      Returns:
      URL of the file server.
    • setFileTransferServer

      void setFileTransferServer(@Nullable String serverUrl)
      Globaly sets an http file transfer server to be used for content type
      application/vnd.gsma.rcs-ft-http+xml.

      Url may be like: "https://file.linphone.org/upload.php". This value can also be
      set for a dedicated account using
      linphone_account_params_set_file_transfer_server.
      Parameters:
      serverUrl - URL of the file server.
    • isForcedIceRelayEnabled

      boolean isForcedIceRelayEnabled()
      Indicates whether the ICE relay path is forcibly selected.

      Returns:
      a boolean value indicating whether forced relay is enabled.
      see: #enableForcedIceRelay.
    • setForcedIceRelayEnabled

      void setForcedIceRelayEnabled(boolean enable)
      Artificially cause the relay path to be selected when ICE is used.

      This is mainly a function for test, for example to validate that the relay
      service (ever TURN or media-aware SIP proxy) is working as expected. Indeed, in
      many cases a path through host or server reflexive candidate will be found by
      ICE, which makes difficult to make sure that the relay service is working as
      expected.
      Parameters:
      enable - boolean value
    • isFriendListSubscriptionEnabled

      boolean isFriendListSubscriptionEnabled()
      Returns whether or not friend lists subscription are enabled.

      Returns:
      whether or not the feature is enabled
    • setFriendListSubscriptionEnabled

      void setFriendListSubscriptionEnabled(boolean enable)
      Sets whether or not to start friend lists subscription when in foreground.

      Parameters:
      enable - whether or not to enable the feature
    • getFriendsDatabasePath

      @Deprecated @Nullable String getFriendsDatabasePath()
      Deprecated.
      27/10/2023 Friends are now stored in the main db
      Gets the database filename where friends will be stored.

      Returns:
      filesystem path.
    • setFriendsDatabasePath

      @Deprecated void setFriendsDatabasePath(@Nullable String path)
      Deprecated.
      27/10/2023 Friends are now stored in the main db
      Sets the database filename where friends will be stored.

      If the file does not exist, it will be created.
      Parameters:
      path - filesystem path.
    • getFriendsLists

      @NonNull FriendList[] getFriendsLists()
      Retrieves the list of FriendList from the core.

      Returns:
      A list of FriendList.
    • getFutureConferenceInformationList

      @NonNull ConferenceInfo[] getFutureConferenceInformationList()
      Retrieve the list of future conference information on DB.

      Returns:
      The list of future conference infos .
    • isGenericComfortNoiseEnabled

      boolean isGenericComfortNoiseEnabled()
      Returns enablement of RFC3389 generic comfort noise algorithm.

      Returns:
      true if generic comfort noise is enabled, false otherwise.
    • setGenericComfortNoiseEnabled

      void setGenericComfortNoiseEnabled(boolean enabled)
      Enable RFC3389 generic comfort noise algorithm (CN payload type).

      It is disabled by default, because this algorithm is only relevant for legacy
      codecs (PCMU, PCMA, G722). Enablement requires a SDK built with full G729
      support: -DENABLE_G729=ON -DENABLE_G729B_CNG=ON . warning: : the G729 support
      is not included in Liblinphone default licence - the purchase of a license
      extension is required.
      Parameters:
      enabled - true if enabled, false otherwise.
    • getGlobalState

      @NonNull GlobalState getGlobalState()
      Returns the global state of core.

      Returns:
      a GlobalState enum.
    • getGuessHostname

      boolean getGuessHostname()
      Returns true if hostname part of primary contact is guessed automatically.

      Returns:
      true if guess hostname enabled, false otherwise.
    • setGuessHostname

      void setGuessHostname(boolean enable)
      Tells Core to guess local hostname automatically in primary contact.

      Parameters:
      enable - whether to enable the guess hostname feature or not
    • getHttpProxyHost

      @Nullable String getHttpProxyHost()
      Gets http proxy address to be used for signaling.

      Returns:
      hostname of IP adress of the http proxy (can be null to disable).
    • setHttpProxyHost

      void setHttpProxyHost(@Nullable String host)
      Sets http proxy address to be used for signaling during next channel
      connection.

      Use setNetworkReachable(boolean) FASLE/true to force channel restart.
      Parameters:
      host - Hostname of IP adress of the http proxy (can be null to disable).
    • getHttpProxyPort

      int getHttpProxyPort()
      Gets http proxy port to be used for signaling.

      Returns:
      port of the http proxy.
    • setHttpProxyPort

      void setHttpProxyPort(int port)
      Sets http proxy port to be used for signaling.

      Parameters:
      port - of the http proxy.
    • getIdentity

      @NonNull String getIdentity()
      Gets the default identity SIP address.

      This is an helper function. If no default proxy is set, this will return the
      primary contact ( see getPrimaryContact() ). If a default proxy is set
      it returns the registered identity on the proxy.
      Returns:
      The default identity SIP address.
    • getImNotifPolicy

      @Nullable ImNotifPolicy getImNotifPolicy()
      Gets the ImNotifPolicy object controlling the instant messaging
      delivery and displayed service notifications.

      Returns:
      A ImNotifPolicy object.
    • getImdnResendPeriod

      long getImdnResendPeriod()
      Gets the IMDN resend period.

      Returns:
      the number of second to resend an failed IMDN message
    • setImdnResendPeriod

      void setImdnResendPeriod(long seconds)
      Set the IMDN resend period.

      It is the number of seconds after the first attempt to send, an IMDN message is
      sent again on startup if failed earlier on
      Parameters:
      seconds - number of seconds after the first attempt to send an IMDN, it is
      retried at startup. A negative value means all IMDNs are resent at startup.
    • getImdnToEverybodyThreshold

      int getImdnToEverybodyThreshold()
      Returns the threshold for sending IMDN to all participants to a ChatRoom
      .

      Returns:
      An integer value telling the threshold for sending IMDN to all
      participants to a ChatRoom
    • setImdnToEverybodyThreshold

      void setImdnToEverybodyThreshold(int threshold)
      Sets the threshold for sending IMDN to all participants to a ChatRoom.

      Parameters:
      threshold - the threshold for sending IMDN to all participants to a ChatRoom
    • getInCallTimeout

      int getInCallTimeout()
      Gets the maximum duration of a call.

      See setInCallTimeout(int) for details.
      Returns:
      The current in call timeout in seconds
    • setInCallTimeout

      void setInCallTimeout(int seconds)
      Sets the maximum duration of a call in seconds.

      After this timeout period, the call is automatically hangup. A value of 0
      disables this feature.
      Parameters:
      seconds - The new timeout in seconds
    • getIncTimeout

      int getIncTimeout()
      Returns the incoming call timeout See setIncTimeout(int) for details.

      Returns:
      The current incoming call timeout in seconds
    • setIncTimeout

      void setIncTimeout(int seconds)
      Sets the incoming call timeout in seconds.

      If an incoming call isn't answered for this timeout period, it is automatically
      declined.
      Parameters:
      seconds - The new timeout in seconds
    • getInputAudioDevice

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

      Returns:
      The input audio device for the current or first call, null if there is
      no call.
    • setInputAudioDevice

      void setInputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as input for all active calls.

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

      boolean isIpv6Enabled()
      Tells whether IPv6 is enabled or not.

      Returns:
      A boolean value telling whether IPv6 is enabled or not
    • setIpv6Enabled

      void setIpv6Enabled(boolean enable)
      Turns IPv6 support on or off.

      Parameters:
      enable - A boolean value telling whether to enable IPv6 support
    • isEchoCancellerCalibrationRequired

      boolean isEchoCancellerCalibrationRequired()
      Check whether the device is echo canceller calibration is required.

      Returns:
      true if it is required, false otherwise
    • isEktPluginLoaded

      boolean isEktPluginLoaded()
      Gets if the EKT plugin is currently loaded in the Linphone core instance.

      Returns:
      true if the EKT plugin is loaded
    • isInBackground

      boolean isInBackground()
      Gets whether the Core is considering itself in background or not.

      The Core foreground/background state depends on the last call made to enterBackground()
      or enterForeground().
      Returns:
      true if the Core is in background, false otherwise.
    • isInConference

      @Deprecated boolean isInConference()
      Deprecated.
      09/03/2021 Use Conference.isIn() instead.
      Indicates whether the local participant is part of a conference.

      warning: That function automatically fails in the case of conferences using a
      conferencet server (focus). If you use such a conference, you should use Conference.removeParticipant(org.linphone.core.Address)
      instead.
      Returns:
      true if the local participant is in a conference, false otherwise.
    • isIncomingInvitePending

      boolean isIncomingInvitePending()
      Tells whether there is an incoming invite pending.

      Returns:
      A boolean telling whether an incoming invite is pending or not.
    • isMediaEncryptionMandatory

      boolean isMediaEncryptionMandatory()
      Checks if the configured media encryption is mandatory or not.

      Returns:
      true if media encryption is mandatory; false otherwise.
    • isNetworkReachable

      boolean isNetworkReachable()
      return network state either as positioned by the application or by linphone
      itself.

      Returns:
      true if network is reachable, false otherwise
    • isPushNotificationAvailable

      boolean isPushNotificationAvailable()
      Gets whether push notifications are available or not (Android & iOS only).

      Returns:
      true if push notifications are available, false otherwise
    • isSenderNameHiddenInForwardMessage

      boolean isSenderNameHiddenInForwardMessage()
      Returns whether or not sender name is hidden in a forwarded message.

      Returns:
      whether or not the feature
    • isVerifyServerCertificates

      boolean isVerifyServerCertificates()
      Get whether the tls server certificate must be verified when connecting to a
      SIP/TLS server.

      Returns:
      True if the tls server certificate must be verified
    • isVerifyServerCn

      boolean isVerifyServerCn()
      Get whether the tls server certificate common name must be verified when
      connecting to a SIP/TLS server.

      Returns:
      True if the tls server certificate common name must be verified
    • isKeepAliveEnabled

      boolean isKeepAliveEnabled()
      Is signaling keep alive enabled.

      Returns:
      A boolean value telling whether signaling keep alive is enabled
    • setKeepAliveEnabled

      void setKeepAliveEnabled(boolean enable)
      Enables signaling keep alive, small udp packet sent periodically to keep udp
      NAT association.

      Parameters:
      enable - A boolean value telling whether signaling keep alive is to be
      enabled
    • getLabel

      String getLabel()
      Get the label assigned to the LinphoneCore.

      The default value is null (no label).
      Returns:
      the assigned label.
    • setLabel

      void setLabel(String label)
      Set a label - for logging/troubleshooting purpose - to the core object.

      This label is used by the logger to give context. When running an application
      with several Core objects, (such as a test), it is useful to enhance
      the log's readability'.
      Parameters:
      label - a developper-friendly label.
    • getLastOutgoingCallLog

      @Nullable CallLog getLastOutgoingCallLog()
      Gets the latest outgoing call log.

      Conference calls are not returned by this function! Requires ENABLE_DB_STORAGE
      to work.
      Returns:
      The last outgoing call log if any.
    • getLdapList

      @Deprecated @NonNull Ldap[] getLdapList()
      Deprecated.
      18/11/2024 use getRemoteContactDirectories() instead.
      Returns a list of entered LDAPs.

      Items must be freed with linphone_ldap_unref
      Returns:

    • isLimeX3DhEnabled

      boolean isLimeX3DhEnabled()
      Tells wether LIME X3DH is enabled or not.

      Returns:
      The current lime state
    • setLimeX3DhEnabled

      void setLimeX3DhEnabled(boolean enable)
      Tells to LinphoneCore to use LIME X3DH.

      Parameters:
      enable - A boolean value telling whether to enable or disable LIME X3DH
    • getLimeX3DhServerUrl

      @Deprecated @Nullable String getLimeX3DhServerUrl()
      Deprecated.
      26/08/2022 Use AccountParams.getLimeServerUrl() instead.
      Get the x3dh server url.

      Returns:
      The x3dh server url.
    • setLimeX3DhServerUrl

      @Deprecated void setLimeX3DhServerUrl(@Nullable String url)
      Deprecated.
      Set the x3dh server url.

      If empty, this function will disable LIME X3DH from core. Otherwise, or if
      different from the existing value, this will (re-)initialize the LIME X3DH
      engine.
      Parameters:
      url - The x3dh server url.
    • getLinphoneSpecsList

      @NonNull String[] getLinphoneSpecsList()
      Get the list of linphone specs string values representing what functionalities
      the linphone client supports.

      see: setLinphoneSpecsList(java.lang.String[])
      Returns:
      A list of supported specs. The list must be freed with
      bctbx_list_free() after usage.
    • setLinphoneSpecsList

      void setLinphoneSpecsList(@Nullable String[] specs)
      Sets the linphone specs list value telling what functionalities the linphone
      client supports.

      The said "specs" (specifications) are pair of keyword/version that helps
      advertising the level feature supported by liblinphone. An application usually
      does not need to set this information, that is automatically assigned at Core
      start. Setting this is mainly for internal tests of backward compatibility.
      Parameters:
      specs - The list of string specs to set.
    • getLoadedPlugins

      @NonNull String[] getLoadedPlugins()
      Return the list of loaded plugins.

      Returns:
      the list of loaded plugins
    • isLocalPermissionEnabled

      boolean isLocalPermissionEnabled()
      Special function to check if the local network permission has been granted by
      the user (useful for iOS).

      The test performed by this function may popup the local network permission
      dialog, for that reason it could be a good idea to check it twice to conclude
      that the user has deny the permission.
      Returns:
      true if local permission request is granted, false otherwise.
    • getLogCollectionUploadServerUrl

      @Nullable String getLogCollectionUploadServerUrl()
      Gets the url of the server where to upload the collected log files.

      Returns:
      The url of the server where to upload the collected log files.
    • setLogCollectionUploadServerUrl

      void setLogCollectionUploadServerUrl(@Nullable String serverUrl)
      Sets the url of the server where to upload the collected log files.

      Parameters:
      serverUrl - The url of the server where to upload the collected log files.

    • getMaxCallLogs

      int getMaxCallLogs()
      Gets the maximum number of call logs retrieved when using getCallLogs()
      or Account.getCallLogs().

      Returns:
      the maximum number of call logs that will be returned. -1 will return
      them all.
    • setMaxCallLogs

      void setMaxCallLogs(int max)
      Sets the maximum number of call logs to retrieve when using getCallLogs()
      or Account.getCallLogs().

      Parameters:
      max - the maximum number of call logs, use -1 to get them all.
    • getMaxCalls

      int getMaxCalls()
      Gets the maximum number of simultaneous calls Linphone core can manage at a
      time.

      All new call above this limit are declined with a busy answer
      Returns:
      maximum number of simultaneous calls
    • setMaxCalls

      void setMaxCalls(int max)
      Sets the maximum number of simultaneous calls Linphone core can manage at a
      time.

      All new call above this limit are declined with a busy answer
      Parameters:
      max - number of simultaneous calls
    • getMaxSizeForAutoDownloadIncomingFiles

      int getMaxSizeForAutoDownloadIncomingFiles()
      Gets the size under which incoming files in chat messages will be downloaded
      automatically.

      Returns:
      The size in bytes, -1 if autodownload feature is disabled, 0 to
      download them all no matter the size
    • setMaxSizeForAutoDownloadIncomingFiles

      void setMaxSizeForAutoDownloadIncomingFiles(int size)
      Sets the size under which incoming files in chat messages will be downloaded
      automatically.

      Parameters:
      size - The size in bytes, -1 to disable the autodownload feature, 0 to
      download them all no matter the size
    • getMediaDevice

      @Nullable String getMediaDevice()
      Gets the name of the currently assigned sound device for media.

      Returns:
      The name of the currently assigned sound device for capture.
    • setMediaDevice

      int setMediaDevice(@Nullable String devid)
      Sets the sound device used for media.

      Parameters:
      devid - The device name as returned by linphone_core_get_sound_devices
      Returns:
      0
    • getMediaEncryption

      MediaEncryption getMediaEncryption()
      Gets the media encryption type being used for RTP packets.

      Returns:
      The MediaEncryption policy being used.
    • setMediaEncryption

      int setMediaEncryption(MediaEncryption menc)
      Chooses the media encryption type to be used for RTP packets.

      Parameters:
      menc - The media encryption policy to be used.
      Returns:
      0 if successful, any other value otherwise.
    • setMediaEncryptionMandatory

      void setMediaEncryptionMandatory(boolean mandatory)
      Defines whether the configured media encryption is mandatory, if it is and the
      negotation cannot result in the desired media encryption then the call will
      fail.

      If not an INVITE will be resent with encryption disabled.
      Parameters:
      mandatory - true to set it mandatory; false otherwise.
    • setMediaNetworkReachable

      void setMediaNetworkReachable(boolean reachable)
      This method is called by the application to notify the linphone core library
      when the media (RTP) network is reachable.

      This is for advanced usage, when SIP and RTP layers are required to use
      different interfaces. Most applications just need setNetworkReachable(boolean).
      Parameters:
      reachable - true if network is reachable, false otherwise
    • getMediaResourceMode

      MediaResourceMode getMediaResourceMode()
      This function returns the media resource mode for this core.

      Returns:
      The media resource mode
    • setMediaResourceMode

      void setMediaResourceMode(MediaResourceMode mode)
      Sets the media resources mode.

      Value values are: unique and shared. When the mode is set to unique, then only
      one call in the state StreamsRunning is allowed. While accepting a call, the
      core will try to free media resource used by the current call. If it is
      unsuccessful, then the call is not accepted. If mode is set to shared, then the
      media resources of the current call (if any) are not emptied when taking a new
      call. If the user whishes to free them, he/she is responsible to call
      linphone_core_preempt_sound_resources himself/herself
      Parameters:
      mode - the chosen mode
    • isMicEnabled

      boolean isMicEnabled()
      Tells whether the microphone is enabled.

      Returns:
      true if the microphone is enabled, false if disabled.
    • setMicEnabled

      void setMicEnabled(boolean enable)
      Enables or disables the microphone.

      This effectively enable or disable microphone (mute) for currently the running
      call or conference if any, as well as it applies to future currently running
      calls or conferences.
      Parameters:
      enable - true to enable the microphone, false to disable it.
    • getMicGainDb

      float getMicGainDb()
      Get microphone gain in db.

      Returns:
      The current microphone gain
    • setMicGainDb

      void setMicGainDb(float level)
      Allow to control microphone level: gain in db.

      Parameters:
      level - The new microphone level
    • getMissedCallsCount

      int getMissedCallsCount()
      Gets the number of missed calls.

      Once checked, this counter can be reset with resetMissedCallsCount().
      Returns:
      The number of missed calls.
    • getMtu

      int getMtu()
      Returns the maximum transmission unit size in bytes.

    • setMtu

      void setMtu(int mtu)
      Sets the maximum transmission unit size in bytes.

      This information is useful for sending RTP packets. Default value is 1500.
      Parameters:
      mtu - The MTU in bytes
    • getNatAddress

      @Deprecated @Nullable String getNatAddress()
      Deprecated.
      12/10/2022 Use getNatPolicy()
      Deprecated.

      Get the public IP address of NAT being used.
      Returns:
      The public IP address of NAT being used.
    • setNatAddress

      @Deprecated void setNatAddress(@Nullable String addr)
      Deprecated.
      Deprecated.

      This function was used to force a given IP address to appear in SDP.
      Unfortunately, this cannot work as explained by
      https://www.rfc-editor.org/rfc/rfc5389#section-2 .
      Parameters:
      addr - The public IP address of NAT to use.
    • getNatPolicy

      @Nullable NatPolicy getNatPolicy()
      Get The policy that is used to pass through NATs/firewalls.

      It may be overridden by a NAT policy for a specific proxy config.
      Returns:
      NatPolicy object in use.
      see: AccountParams.getNatPolicy()
    • setNatPolicy

      void setNatPolicy(@Nullable NatPolicy policy)
      Set the policy to use to pass through NATs/firewalls.

      It may be overridden by a NAT policy for a specific proxy config.
      Parameters:
      policy - NatPolicy object
      see: AccountParams.setNatPolicy(org.linphone.core.NatPolicy)
    • getNativePreviewWindowId

      @Nullable Object getNativePreviewWindowId()
      Get the native window handle of the video preview window.

      see setNativeVideoWindowId(java.lang.Object) for details about window_id
      There is a special case for Qt : getNativePreviewWindowId() returns a
      #QQuickFramebufferObject::Renderer. Note : Qt blocks GUI thread when calling
      createRenderer(), so it is safe to call linphone functions there if needed.
      Returns:
      The native window handle of the video preview window.
    • setNativePreviewWindowId

      void setNativePreviewWindowId(@Nullable Object windowId)
      Set the native window id where the preview video (local camera) is to be
      displayed.

      This has to be used in conjunction with usePreviewWindow(boolean). see setNativeVideoWindowId(java.lang.Object)
      for general details about window_id
      On Android : #org.linphone.mediastream.video.capture.CaptureTextureView is used
      for setNativePreviewWindowId(java.lang.Object). It is inherited from #TextureView and
      takes care of rotating the captured image from the camera and scale it to keep
      it's ratio.
      Parameters:
      windowId - The native window id where the preview video is to be
      displayed.
    • isNativeRingingEnabled

      boolean isNativeRingingEnabled()
      Returns whether the native ringing is enabled or not.

      Returns:
      True if we use the native ringing, false otherwise
    • setNativeRingingEnabled

      void setNativeRingingEnabled(boolean enable)
      Sets whether to use the native ringing (Android only).

      Parameters:
      enable - True to enable native ringing, false otherwise
    • getNativeVideoWindowId

      @Nullable Object getNativeVideoWindowId()
      Get the native window handle of the video window.

      see linphone_core_set_native_video_window_id for details about window_id
      There is a special case for Qt : getNativeVideoWindowId() returns a
      #QQuickFramebufferObject::Renderer. Note : Qt blocks GUI thread when calling
      createRenderer(), so it is safe to call linphone functions there if needed.
      Returns:
      The native window handle of the video window.
    • setNativeVideoWindowId

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

      On Desktop platforms(MacOS, Linux, Windows), the display filter is "MSOGL" by
      default. That means : If window_id is not set or set to
      LINPHONE_VIDEO_DISPLAY_NONE, then the core will not create its own window,
      unless the special id LINPHONE_VIDEO_DISPLAY_AUTO is given. This is currently
      only supported for Linux X11 (Window type), Windows UWP (SwapChainPanel type)
      and Windows Win32 (HWND type).
      The C# Wrapper on Windows for UWP takes directly a #SwapChainPanel without
      Marshalling. On other platforms, window_id is a #MSOglContextInfo defined in
      msogl.h of mediastreamer2 There is a special case for Qt : The "MSQOGL" filter
      must be selected by using setVideoDisplayFilter(java.lang.String). Setting window id is
      only used to stop rendering by passing LINPHONE_VIDEO_DISPLAY_NONE. getNativeVideoWindowId()
      returns a #QQuickFramebufferObject::Renderer and createNativeVideoWindowId(java.lang.Object)
      creates one. After a creation, setNativeVideoWindowId(java.lang.Object) must be called
      with the new object.
      On mobile operating systems, LINPHONE_VIDEO_DISPLAY_AUTO is not supported and
      window_id depends of the platform : iOS : It is a UIView. Android : It is a
      TextureView.
      Parameters:
      windowId - The native window id where the remote video is to be displayed.

    • setNetworkReachable

      void setNetworkReachable(boolean reachable)
      This method is called by the application to notify the linphone core library
      when network is reachable.

      Calling this method with true trigger linphone to initiate a registration
      process for all proxies. Calling this method disables the automatic network
      detection mode. It means you must call this method after each network state
      changes.
      Parameters:
      reachable - true if network is reachable, false otherwise
    • getNortpOnholdTimeout

      int getNortpOnholdTimeout()
      Gets the value of the no-rtp timeout when the call is on hold.

      When no RTP or RTCP packets have been received for a while when the call is on
      hold Core will consider the call is broken (remote end crashed or
      disconnected from the network), and thus will terminate the call. The no-rtp
      timeout is the duration above which the call is considered broken.
      Returns:
      The value of the no-rtp timeout in seconds when the call is on hold
    • setNortpOnholdTimeout

      void setNortpOnholdTimeout(int seconds)
      Sets the no-rtp timeout value in seconds when the call is on hold.

      Parameters:
      seconds - The no-rtp timeout value to use in seconds when the call is on
      hold
      see: linphone_core_get_nortp_on_hold_timeout() for details.
    • getNortpTimeout

      int getNortpTimeout()
      Gets the value of the no-rtp timeout.

      When no RTP or RTCP packets have been received for a while Core will
      consider the call is broken (remote end crashed or disconnected from the
      network), and thus will terminate the call. The no-rtp timeout is the duration
      above which the call is considered broken.
      Returns:
      The value of the no-rtp timeout in seconds
    • setNortpTimeout

      void setNortpTimeout(int seconds)
      Sets the no-rtp timeout value in seconds.

      Parameters:
      seconds - The no-rtp timeout value to use in seconds
      see: getNortpTimeout() for details.
    • getOutputAudioDevice

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

      Returns:
      The output audio device for the current or first call, null if there is
      no call.
    • setOutputAudioDevice

      void setOutputAudioDevice(@Nullable AudioDevice audioDevice)
      Sets the given AudioDevice as output for all active calls.

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

      @Nullable String getPlayFile()
      Get the wav file that is played when putting somebody on hold, or when files
      are used instead of soundcards (see setUseFiles(boolean)).

      The file is a 16 bit linear wav file.
      Returns:
      The path to the file that is played when putting somebody on hold.
    • setPlayFile

      void setPlayFile(@Nullable String file)
      Sets a wav file to be played when putting somebody on hold, or when files are
      used instead of soundcards (see setUseFiles(boolean)).

      The file must be a 16 bit linear wav file.
      Parameters:
      file - The path to the file to be played when putting somebody on hold.
    • getPlaybackDevice

      @Deprecated @Nullable String getPlaybackDevice()
      Deprecated.
      Gets the name of the currently assigned sound device for playback.

      Returns:
      The name of the currently assigned sound device for playback.
    • setPlaybackDevice

      @Deprecated int setPlaybackDevice(@Nullable String devid)
      Sets the sound device used for playback.

      Parameters:
      devid - The device name as returned by linphone_core_get_sound_devices
      Returns:
      0
    • getPlaybackGainDb

      float getPlaybackGainDb()
      Gets playback gain in db (before entering sound card).

      Returns:
      The current playback gain
    • setPlaybackGainDb

      void setPlaybackGainDb(float level)
      Allow to control play level before entering sound card: gain in db.

      Parameters:
      level - The new play level
    • getPreferredFramerate

      float getPreferredFramerate()
      Returns the preferred video framerate, previously set by setPreferredFramerate(float)
      .

      Returns:
      frame rate in number of frames per seconds.
    • setPreferredFramerate

      void setPreferredFramerate(float fps)
      Set the preferred frame rate for video.

      Based on the available bandwidth constraints and network conditions, the video
      encoder remains free to lower the framerate. There is no warranty that the
      preferred frame rate be the actual framerate. used during a call. Default value
      is 0, which means "use encoder's default fps value".
      Parameters:
      fps - the target frame rate in number of frames per seconds.
    • getPreferredVideoDefinition

      @NonNull VideoDefinition getPreferredVideoDefinition()
      Get the preferred video definition for the stream that is captured and sent to
      the remote party.

      Returns:
      The preferred VideoDefinition
    • setPreferredVideoDefinition

      void setPreferredVideoDefinition(@NonNull VideoDefinition videoDefinition)
      Set the preferred video definition for the stream that is captured and sent to
      the remote party.

      All standard video definitions are accepted on the receive path.
      Parameters:
      videoDefinition - VideoDefinition object
    • setPreferredVideoDefinitionByName

      void setPreferredVideoDefinitionByName(@NonNull String name)
      Sets the preferred video definition by its name.

      Call Factory.getSupportedVideoDefinitions() to have a list of supported
      video definitions.
      Parameters:
      name - The name of the definition to set
    • getPresenceModel

      @Nullable PresenceModel getPresenceModel()
      Gets my presence model.

      Returns:
      A PresenceModel object, or null if no presence model has been
      set.
    • setPresenceModel

      void setPresenceModel(@Nullable PresenceModel presence)
      Sets my presence model.

      Parameters:
      presence - PresenceModel
    • getPreviewVideoDefinition

      @Nullable VideoDefinition getPreviewVideoDefinition()
      Get the definition of the captured video.

      Returns:
      The captured VideoDefinition if it was previously set by setPreviewVideoDefinition(org.linphone.core.VideoDefinition)
      , otherwise a 0x0 LinphoneVideoDefinition.
      see: setPreviewVideoDefinition(org.linphone.core.VideoDefinition)
    • setPreviewVideoDefinition

      void setPreviewVideoDefinition(@Nullable VideoDefinition videoDefinition)
      Set the video definition for the captured (preview) video.

      This method is for advanced usage where a video capture must be set
      independently of the definition of the stream actually sent through the call.
      This allows for example to have the preview window in High Definition even if
      due to bandwidth constraint the sent video definition is small. Using this
      feature increases the CPU consumption, since a rescaling will be done
      internally.
      Parameters:
      videoDefinition - VideoDefinition object
    • setPreviewVideoDefinitionByName

      void setPreviewVideoDefinitionByName(@NonNull String name)

      Parameters:
      name - The name of the definition to set
    • getPrimaryContact

      @NonNull String getPrimaryContact()
      Returns the default identity when no account is used.

      This SIP address usually contains a private ip address, and may not be routable
      globally.
      Returns:
      the primary contact identity
    • setPrimaryContact

      int setPrimaryContact(@NonNull String contact)
      Sets the local "from" SIP identity used for calls made out of any configured
      Account.

      Not using a SIP account is not recommended.
      This data is used in absence of any proxy configuration or when no account
      configuration is set. See Account
      Parameters:
      contact - the contact to set
      Returns:
      0 if successful, -1 otherwise
    • getPrimaryContactAddress

      @Nullable Address getPrimaryContactAddress()
      Same as getPrimaryContact() but the result is a Address object
      instead of a string.

      Returns:
      a Address object.
    • getPrimaryContactParsed

      @Deprecated @Nullable Address getPrimaryContactParsed()
      Deprecated.
      22/10/2018 Use createPrimaryContactParsed() instead.
      Same as getPrimaryContact() but the result is a Address object
      instead of const char *.

      Returns:
      a Address object.
    • getProvisioningUri

      @Nullable String getProvisioningUri()
      Get provisioning URI.

      Returns:
      the provisioning URI.
    • setProvisioningUri

      int setProvisioningUri(@Nullable String uri)
      Sets the URI where to download xml configuration file at startup.

      http://, https:// and file:// uris are supported. This can also be set from
      configuration file or factory config file, from [misc] section, item
      "config-uri". Calling this function does not load the configuration. It will
      write the value into configuration so that configuration from URI will take
      place during next start() invocation. The format the xml file is briefly
      documented here:
      https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Features/Remote%20Provisioning/
      Parameters:
      uri - the uri to use in order to obtain the configuration. Passing null
      will disable remote provisioning.
      Returns:
      -1 if uri could not be parsed, 0 otherwise. Note that this does not
      check validity of URI endpoint nor scheme and download may still fail.
    • getProxyConfigList

      @Deprecated @NonNull ProxyConfig[] getProxyConfigList()
      Deprecated.
      04/09/2024 Use getAccountList()
      Returns an unmodifiable list of entered proxy configurations.

      Returns:
      A list of ProxyConfig.
    • getPushIncomingCallTimeout

      int getPushIncomingCallTimeout()
      Returns the push incoming call timeout See setPushIncomingCallTimeout(int)
      for details.

      Returns:
      The current push incoming call timeout in seconds
    • setPushIncomingCallTimeout

      void setPushIncomingCallTimeout(int seconds)
      Configures the minimum interval between a push notification and the
      corresponding incoming INVITE.

      If exceeded, Linphone Call is transitioned to CallError and further incoming
      invite associated to this push is declined if any.
      Parameters:
      seconds - The new timeout in seconds
    • getPushNotificationConfig

      @Nullable PushNotificationConfig getPushNotificationConfig()
      Gets the push notification configuration object if it exists.

      Returns:
      the PushNotificationConfig if it exists, null otherwise.
    • isPushNotificationEnabled

      boolean isPushNotificationEnabled()
      Gets whether push notifications are enabled or not (Android & iOS only).

      If not, the app will have to handle all the push-related settings for each
      accounts
      Returns:
      true if push notifications are enabled, false otherwise
    • setPushNotificationEnabled

      void setPushNotificationEnabled(boolean enable)
      Enables or disables push notifications on Android & iOS.

      If enabled, it will try to get the push token add configure each account with
      push_notification_allowed set to true with push parameters. IOS: will also
      instanciate a PushRegistry, so make sure that your app does not instanciate one
      too or there will be a conflict.
      Parameters:
      enable - true to enable push notifications, false to disable
    • isQrcodeVideoPreviewEnabled

      boolean isQrcodeVideoPreviewEnabled()
      Tells whether QRCode is enabled in the preview.

      Returns:
      A boolean value telling whether QRCode is enabled in the preview.
    • setQrcodeVideoPreviewEnabled

      void setQrcodeVideoPreviewEnabled(boolean enable)
      Controls QRCode scanning enablement.

      When enabled, several QRCodes can be decoded. The recognized QR code are
      notified through the LinphoneCoreCbs interface (see
      linphone_core_cbs_set_qrcode_found)
      Parameters:
      enable - A boolean value telling whether to enable QRCode in the preview.
    • isRealtimeTextEnabled

      boolean isRealtimeTextEnabled()
      Gets if realtime text is enabled or not (RFC4103).

      Returns:
      true if realtime text is enabled, false otherwise
    • getRealtimeTextKeepaliveInterval

      int getRealtimeTextKeepaliveInterval()
      Gets keep alive interval of real time text (RFC4103).

      Returns:
      keep alive interval of real time text.
    • setRealtimeTextKeepaliveInterval

      void setRealtimeTextKeepaliveInterval(int interval)
      Set keep alive interval for real time text (RFC4103).

      Parameters:
      interval - The keep alive interval of real time text, 25000 by default.
    • isRecordAwareEnabled

      boolean isRecordAwareEnabled()
      Gets if the record aware feature is enabled or not.

      Returns:
      true if the record aware feature is enabled, false otherwise.
    • setRecordAwareEnabled

      void setRecordAwareEnabled(boolean enable)
      Enables the record-aware feature that will warn other users when doing
      recording during a call.

      See @LinphoneCallCbs for being notified when a call is being recorded.
      Parameters:
      enable - true to activate the record aware feature, false to disable it.
    • getRecordFile

      @Nullable String getRecordFile()
      Get the wav file where incoming stream is recorded, when files are used instead
      of soundcards (see setUseFiles(boolean)).

      This feature is different from call recording (CallParams.setRecordFile(java.lang.String)
      ) The file is a 16 bit linear wav file.
      Returns:
      The path to the file where incoming stream is recorded.
    • setRecordFile

      void setRecordFile(@Nullable String file)
      Sets a wav file where incoming stream is to be recorded, when files are used
      instead of soundcards (see setUseFiles(boolean)).

      This feature is different from call recording (CallParams.setRecordFile(java.lang.String)
      ) The file will be a 16 bit linear wav file.
      Parameters:
      file - The path to the file where incoming stream is to be recorded.
    • getRegisterOnlyWhenNetworkIsUp

      boolean getRegisterOnlyWhenNetworkIsUp()
      Gets if accounts will wait for network to be connected before trying to
      REGISTER or not.

      Returns:
      true if accounts will wait for internet connection before trying to
      REGISTER, false otherwise.
    • setRegisterOnlyWhenNetworkIsUp

      void setRegisterOnlyWhenNetworkIsUp(boolean registerOnlyWhenNetworkIsUp)
      Sets if accounts will wait for network to be connected before trying to
      REGISTER.

      Parameters:
      registerOnlyWhenNetworkIsUp - true to wait for an internet connection
      before trying to REGISTER, false to do it no matter the network state.
    • getRemainingDownloadFileCount

      int getRemainingDownloadFileCount()
      Returns how many attachments are yet to be downloaded.

      Returns:
      how many attachments are yet to be downloaded.
    • getRemainingUploadFileCount

      int getRemainingUploadFileCount()
      Returns how many attachments are yet to be uploaded.

      Returns:
      how many attachments are yet to be uploaded.
    • getRemoteContactDirectories

      @NonNull RemoteContactDirectory[] getRemoteContactDirectories()
      Gets the list of currently configured LDAP or CardDAV remote servers used by
      MagicSearch.

      Returns:
      the list of RemoteContactDirectory currently configured, if
      any.
    • getRemoteRingbackTone

      @Nullable String getRemoteRingbackTone()
      Get the ring back tone played to far end during incoming calls.

      Returns:
      the path to the remote ring back tone to be played.
    • setRemoteRingbackTone

      void setRemoteRingbackTone(@Nullable String ring)
      Specify a ring back tone to be played to far end during incoming calls.

      Parameters:
      ring - The path to the remote ring back tone to be played.
    • isRetransmissionOnNackEnabled

      boolean isRetransmissionOnNackEnabled()
      Gets whether the use RTCP NACK for reliability of video transmission is enabled
      or not.

      Using RTCP NACK feedback is one of the available techniques to help mitigate
      the loss of video RTP packets. It gives good results when round trip time is
      low. It is disabled by default.
      Returns:
      A boolean value telling whether NACK usage is enabled or not
    • setRetransmissionOnNackEnabled

      void setRetransmissionOnNackEnabled(boolean enable)
      Sets whether the use RTCP NACK for reliability of video transmission is enabled
      or not.

      Using RTCP NACK feedback is one of the available techniques to help mitigate
      the loss of video RTP packets. It gives good results when round trip time is
      low. It is disabled by default.
      Parameters:
      enable - A boolean value telling whether to enable NACK context
    • getRing

      @Nullable String getRing()
      Returns the path to the wav file used for ringing.

      Returns:
      The path to the wav file used for ringing.
    • setRing

      void setRing(@Nullable String path)
      Sets the path to a wav file used for ringing.

      The file must be a wav 16bit linear. If null, ringing is disable unless
      #linphone_core_get_use_native_ringing() is enabled, in which case we use the
      device ringtone.
      Parameters:
      path - The path to a wav file to be used for ringing, null to disable or
      use device ringing depending on #linphone_core_get_use_native_ringing().
    • getRingDuringIncomingEarlyMedia

      boolean getRingDuringIncomingEarlyMedia()
      Tells whether the ring play is enabled during an incoming early media call.

    • setRingDuringIncomingEarlyMedia

      void setRingDuringIncomingEarlyMedia(boolean enable)
      Enable or disable the ring play during an incoming early media call.

      Parameters:
      enable - A boolean value telling whether to enable ringing during an
      incoming early media call.
    • getRingback

      @Nullable String getRingback()
      Returns the path to the wav file used for ringing back.

      Returns:
      The path to the wav file used for ringing back.
    • setRingback

      void setRingback(@Nullable String path)
      Sets the path to a wav file used for ringing back.

      Ringback means the ring that is heard when it's ringing at the remote party.
      The file must be a wav 16bit linear.
      Parameters:
      path - The path to a wav file to be used for ringing back.
    • getRingerDevice

      @Nullable String getRingerDevice()
      Gets the name of the currently assigned sound device for ringing.

      Returns:
      The name of the currently assigned sound device for ringing.
    • setRingerDevice

      int setRingerDevice(@Nullable String devid)
      Sets the sound device used for ringing.

      Parameters:
      devid - The device name as returned by linphone_core_get_sound_devices
      Returns:
      0
    • getRootCa

      @Nullable String getRootCa()
      Gets the path to a file or folder containing the trusted root CAs (PEM format)

      Returns:
      The path to a file or folder containing the trusted root CAs.
    • setRootCa

      void setRootCa(@Nullable String path)
      Sets the path to a file or folder containing trusted root CAs (PEM format)

      Parameters:
      path - The path to a file or folder containing trusted root CAs.
    • setRootCaData

      void setRootCaData(@Nullable String data)
      Sets the trusted root CAs (PEM format)

      Parameters:
      data - The trusted root CAs as a string
    • isRtpBundleEnabled

      boolean isRtpBundleEnabled()
      Returns whether RTP bundle mode (also known as Media Multiplexing) is enabled.

      See https://datatracker.ietf.org/doc/html/rfc8843 for more information.
      Returns:
      a boolean indicating the enablement of rtp bundle mode.
    • setRtpBundleEnabled

      void setRtpBundleEnabled(boolean value)
      Enables or disables RTP bundle mode (Media Multiplexing).

      See https://datatracker.ietf.org/doc/html/rfc8843 for more information about
      the feature. When enabled, liblinphone will try to negociate the use of a
      single port for all streams when doing an outgoing call. It automatically
      enables rtcp-mux. This feature can also be enabled per-call using CallParams
      . RTP Bundle mode is required for video conferencing.
      Parameters:
      value - a boolean to indicate whether the feature is to be enabled.
    • isSdp200AckEnabled

      boolean isSdp200AckEnabled()
      Media offer control param for SIP INVITE.

      Returns:
      true if INVITE has to be sent whitout SDP.
    • setSdp200AckEnabled

      void setSdp200AckEnabled(boolean enable)
      Control when media offer is sent in SIP INVITE.

      Enabling this type of SIP call flow is not recommended. This setting is mainly
      for internal testing.
      Parameters:
      enable - true if INVITE has to be sent whitout SDP.
    • isSelfViewEnabled

      boolean isSelfViewEnabled()
      Tells whether video self view during call is enabled or not.

      Returns:
      A boolean value telling whether self view is enabled
      see: #enableSelfView for details.
    • setSelfViewEnabled

      @Deprecated void setSelfViewEnabled(boolean enable)
      Deprecated.
      04/09/2024 Prefer using setNativePreviewWindowId(java.lang.Object) to assign
      a view to render the local image.
      Enables or disable self view during calls.

      Parameters:
      enable - A boolean value telling whether to enable self view Self-view
      refers to having local webcam image inserted in corner of the video window
      during calls. This function works at any time, including during calls.
    • setSenderNameHiddenInForwardMessageEnabled

      void setSenderNameHiddenInForwardMessageEnabled(boolean enable)
      Enables whether or not to hide sender name in forwarded message.

      Parameters:
      enable - whether or not to enable the feature
    • isSessionExpiresEnabled

      boolean isSessionExpiresEnabled()
      Check if the Session Timers feature is enabled.

      Returns:
      true if session timers are enabled, false otherwise
    • setSessionExpiresEnabled

      void setSessionExpiresEnabled(boolean enabled)
      Enable the Session Timers support.

      Parameters:
      enabled - Enable or disable it
    • getSessionExpiresMinValue

      int getSessionExpiresMinValue()
      Returns the session expires min value, 90 by default.

      Returns:
      The minSE value
    • setSessionExpiresMinValue

      void setSessionExpiresMinValue(int min)
      Sets the session expires minSE value, forced to a minimum of 90 by default.

      Parameters:
      min - The minSE value
    • getSessionExpiresRefresherValue

      SessionExpiresRefresher getSessionExpiresRefresherValue()
      Returns the session expires refresher value.

      Returns:
      The SessionExpiresRefresher configuration refresher value
    • setSessionExpiresRefresherValue

      void setSessionExpiresRefresherValue(SessionExpiresRefresher refresher)
      Sets the session expires refresher value.

      Parameters:
      refresher - The SessionExpiresRefresher configuration value
    • getSessionExpiresValue

      int getSessionExpiresValue()
      Returns the session expires value.

      Returns:
      The session timer expire value
    • setSessionExpiresValue

      void setSessionExpiresValue(int expires)
      Sets the session expires value, 0 by default.

      Parameters:
      expires - The session expires value
    • getSipDscp

      int getSipDscp()
      Gets the DSCP field for SIP signaling channel.

      The DSCP defines the quality of service in IP packets.
      Returns:
      The current DSCP value
    • setSipDscp

      void setSipDscp(int dscp)
      Sets the DSCP field for SIP signaling channel.

      The DSCP defines the quality of service in IP packets. note: It is usually
      useless or a bad idea to try to play with DSCP bits unless having full control
      on the network.
      warning: Setting the DSCP bits is more or less well supported by operating
      systems and sometimes requires to disable IPv6.
      Parameters:
      dscp - The DSCP value to set
    • setSipNetworkReachable

      void setSipNetworkReachable(boolean reachable)
      This method is called by the application to notify the linphone core library
      when the SIP network is reachable.

      This is for advanced usage, when SIP and RTP layers are required to use
      different interfaces. Most applications just need setNetworkReachable(boolean).
      Parameters:
      reachable - true if network is reachable, false otherwise
    • getSipTransportTimeout

      int getSipTransportTimeout()
      Gets the SIP transport timeout, which represents the maximum time permitted to
      establish a connection to a SIP server.

      Returns:
      The SIP transport timeout in milliseconds.
    • setSipTransportTimeout

      void setSipTransportTimeout(int timeoutMs)
      Sets the SIP transport timeout, which represents the maximum time permitted to
      establish a connection to a SIP server.

      Parameters:
      timeoutMs - The SIP transport timeout in milliseconds.
    • getSoundDevicesList

      @Deprecated @NonNull String[] getSoundDevicesList()
      Deprecated.
      10/04/2021 Use getAudioDevices() instead.
      Gets the list of the available sound devices.

      Returns:
      An unmodifiable array of strings contanining the names of the available
      sound devices that is null terminated.
    • getSrtpCryptoSuites

      @NonNull String getSrtpCryptoSuites()
      Gets the crypto suites available to the core.

      Returns:
      a comma separated list of supported suites
    • setSrtpCryptoSuites

      void setSrtpCryptoSuites(@NonNull String suites)
      Sets the crypto suites available to the core.

      Parameters:
      suites - comma separated list of supported suites
    • getStaticPicture

      @Nullable String getStaticPicture()
      Get the path to the image file streamed when "Static picture" is set as the
      video device.

      Returns:
      The path to the image file streamed when "Static picture" is set as the
      video device.
    • setStaticPicture

      int setStaticPicture(@Nullable String path)
      Set the path to the image file to stream when "Static picture" is set as the
      video device.

      Parameters:
      path - The path to the image file to use.
    • getStaticPictureFps

      float getStaticPictureFps()
      Get the frame rate for static picture.

      Returns:
      The frame rate used for static picture.
    • setStaticPictureFps

      int setStaticPictureFps(float fps)
      Set the frame rate for static picture.

      Parameters:
      fps - The new frame rate to use for static picture.
    • getStunServer

      @Deprecated @Nullable String getStunServer()
      Deprecated.
      Get the STUN server address being used.

      Returns:
      The STUN server address being used.
    • setStunServer

      @Deprecated void setStunServer(@Nullable String server)
      Set the STUN server address to use when the firewall policy is set to STUN.

      Parameters:
      server - The STUN server address to use.
    • getSupportedFileFormatsList

      @NonNull String[] getSupportedFileFormatsList()
      Returns a list of strings containing the file format types supported for call
      recording.

      Returns:
      The supported formats, typically 'wav', 'mka', 'mkv', 'smff'.
    • setSupportedTag

      void setSupportedTag(@Nullable String tags)
      Set the SIP supported tags.

      Parameters:
      tags - The SIP feature tags to set
    • getTag100RelSupportLevel

      SupportLevel getTag100RelSupportLevel()
      Gets the support level of the 100rel attribute.

      Returns:
      The 100 rel support level
    • setTag100RelSupportLevel

      void setTag100RelSupportLevel(SupportLevel level)
      Defines what level of support is provided to the 100rel attribute.

      Parameters:
      level - support level of 100rel
    • setTcapLineMergingEnabled

      void setTcapLineMergingEnabled(boolean merge)
      Defines whether tcap lines are going to be merged if capability negotiation
      (RFC5939) is supported.

      Parameters:
      merge - true to merge tcap lines with consecutive indexes; false
      otherwise.
    • isTcapLinesMergingEnabled

      boolean isTcapLinesMergingEnabled()
      Checks if tcap lines are going to the merged if the capability negotiation
      (RFC5939) is supported or not.

      Returns:
      true if tcap lines with consecutive indexes are going to be merged;
      false otherwise.
    • getTextPayloadTypes

      @NonNull PayloadType[] getTextPayloadTypes()
      Returns the list of the available text payload types.

      Returns:
      A freshly allocated list of the available payload types.
    • setTextPayloadTypes

      void setTextPayloadTypes(@Nullable PayloadType[] payloadTypes)
      Redefines the list of the available payload types.

      Parameters:
      payloadTypes - The new list of payload types.
    • getTextPort

      int getTextPort()
      Gets the UDP port used for text streaming.

      Returns:
      The UDP port used for text streaming
    • setTextPort

      void setTextPort(int port)
      Sets the UDP port used for text streaming.

      A value if -1 will request the system to allocate the local port randomly. This
      is recommended in order to avoid firewall warnings.
      Parameters:
      port - The UDP port to use for text streaming
    • getTextPortsRange

      @NonNull Range getTextPortsRange()
      Get the text port range from which is randomly chosen the UDP port used for
      text streaming.

      Returns:
      a Range object
    • getTlsCert

      @Nullable String getTlsCert()
      Gets the TLS certificate.

      Returns:
      the TLS certificate or null if not set yet.
    • setTlsCert

      void setTlsCert(@Nullable String tlsCert)
      Sets a TLS certificate used for TLS authentication The certificate won't be
      stored, you have to set it after each Core startup.

      Parameters:
      tlsCert - the TLS certificate.
    • getTlsCertPath

      @Nullable String getTlsCertPath()
      Gets the path to the TLS certificate file.

      Returns:
      the TLS certificate path or null if not set yet.
    • setTlsCertPath

      void setTlsCertPath(@Nullable String tlsCertPath)
      Sets a TLS certificate path used for TLS authentication The path will be stored
      in the rc file and automatically restored on startup.

      Parameters:
      tlsCertPath - path to the TLS certificate.
    • getTlsKey

      @Nullable String getTlsKey()
      Gets the TLS key.

      Returns:
      the TLS key or null if not set yet.
    • setTlsKey

      void setTlsKey(@Nullable String tlsKey)
      Sets a TLS key used for TLS authentication The key won't be stored, you have to
      set it after each Core startup.

      Parameters:
      tlsKey - the TLS key.
    • getTlsKeyPath

      @Nullable String getTlsKeyPath()
      Gets the path to the TLS key file.

      Returns:
      the TLS key path or null if not set yet.
    • setTlsKeyPath

      void setTlsKeyPath(@Nullable String tlsKeyPath)
      Sets a TLS key path used for TLS authentication The path will be stored in the
      rc file and automatically restored on startup.

      Parameters:
      tlsKeyPath - path to the TLS key.
    • getTransports

      @NonNull Transports getTransports()
      Retrieves the port configuration used for each transport (udp, tcp, tls).

      A zero value port for a given transport means the transport is not used. A
      value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be chosen randomly
      by the system. A value of LC_SIP_TRANSPORT_DONTBIND (-2) means that the socket
      will not be bound explicitely, in other words liblinphone won't listen for
      incoming connections at all. This mode is suitable for a pure client
      application (ex: a mobile application).
      Returns:
      A Transports structure with the configured ports
    • setTransports

      int setTransports(@NonNull Transports transports)
      Sets the ports to be used for each of transport (UDP or TCP) A zero value port
      for a given transport means the transport is not used.

      A value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be choosen
      randomly by the system. A value of LC_SIP_TRANSPORT_DONTBIND (-2) means that
      the socket will not be bound explicitely, in other words liblinphone won't
      listen for incoming connections at all. This mode is suitable for a pure client
      application (ex: a mobile application).
      Parameters:
      transports - A #LinphoneSipTransports structure giving the ports to use
      Returns:
      0
    • getTransportsUsed

      @NonNull Transports getTransportsUsed()
      Retrieves the real port number assigned for each sip transport (udp, tcp, tls).

      A zero value means that the transport is not activated. If
      LC_SIP_TRANSPORT_RANDOM was passed to linphone_core_set_sip_transports, the
      random port choosed by the system is returned.
      Returns:
      A Transports structure with the ports being used
    • getTunnel

      @Nullable Tunnel getTunnel()
      Gets tunnel instance if available.

      Returns:
      Tunnel or null if not available.
    • getUnreadChatMessageCount

      int getUnreadChatMessageCount()
      Returns the global unread chat message count.

      Returns:
      The global unread chat message count.
    • getUnreadChatMessageCountFromActiveLocals

      int getUnreadChatMessageCountFromActiveLocals()
      Returns the unread chat message count for all active local address.

      (Primary contact + proxy configs.)
      Returns:
      The unread chat message count.
    • getUploadBandwidth

      int getUploadBandwidth()
      Retrieve the maximum available upload bandwidth.

      This value was set by setUploadBandwidth(int).
      Returns:
      the upload bandiwdth in kbits/s, 0 for unknown.
    • setUploadBandwidth

      void setUploadBandwidth(int bandwidth)
      Sets maximum available upload bandwidth This is IP bandwidth, in kbit/s.

      This information is used by liblinphone together with remote side available
      bandwidth signaled in SDP messages to properly configure audio & video codec's
      output bitrate. By default, the download and upload bandwidth are unknowns (set
      to zero), in which case adaptive algorithms are run during calls in order to
      detect available bandwidth and adapt audio and video bitrate usage. see: #enableAdaptiveRateControl
      .
      Parameters:
      bandwidth - the bandwidth in kbits/s, 0 for unknown.
    • getUploadPtime

      int getUploadPtime()
      Gets audio packetization time linphone will send (in absence of requirement
      from peer) A value of 0 stands for the current codec default packetization
      time.

      Returns:
      the upload packetization time set
    • setUploadPtime

      void setUploadPtime(int ptime)
      Sets audio packetization time linphone will send (in absence of requirement
      from peer) A value of 0 stands for the current codec default packetization
      time.

      Parameters:
      ptime - the upload packetization time to set
    • getUpnpExternalIpaddress

      @Nullable String getUpnpExternalIpaddress()
      Return the external ip address of router.

      In some cases the uPnP can have an external ip address but not a usable uPnP
      (state different of Ok).
      Returns:
      a null terminated string containing the external ip address. If the the
      external ip address is not available return null.
    • getUpnpState

      UpnpState getUpnpState()
      Return the internal state of uPnP.

      Returns:
      an LinphoneUpnpState.
    • getUseFiles

      boolean getUseFiles()
      Gets whether linphone is currently streaming audio from and to files, rather
      than using the soundcard.

      Returns:
      A boolean value representing whether linphone is streaming audio from
      and to files or not.
    • setUseFiles

      void setUseFiles(boolean yesno)
      Ask the core to stream audio from and to files, instead of using the soundcard.

      Parameters:
      yesno - A boolean value asking to stream audio from and to files or not.
    • getUseInfoForDtmf

      boolean getUseInfoForDtmf()
      Indicates whether SIP INFO can be used to send digits.

      Returns:
      A boolean value telling whether SIP INFO is used to send digits
    • setUseInfoForDtmf

      void setUseInfoForDtmf(boolean useInfo)
      Sets whether SIP INFO method can be used to send digits.

      This non-standard but common practice.
      Parameters:
      useInfo - A boolean value telling whether to use SIP INFO to send digits
    • getUseRfc2833ForDtmf

      boolean getUseRfc2833ForDtmf()
      Indicates whether RFC2833/RFC4633 can be used to send digits.

      Returns:
      A boolean value telling whether RFC2833 is used to send digits
    • setUseRfc2833ForDtmf

      void setUseRfc2833ForDtmf(boolean useRfc2833)
      Sets whether RFC2833 or RFC4633 can be to be used to send digits.

      This is preferred method to reliabily transmit DTMFs codes. There are two
      settings relevant to dtmf sending: setUseRfc2833ForDtmf(boolean) and setUseInfoForDtmf(boolean)
      ; Resulting in 4 cases:
      Parameters:
      useRfc2833 - A boolean value telling whether to use RFC2833 to send digits
    • getUserAgent

      @NonNull String getUserAgent()
      Gets the user-agent as a string.

      Returns:
      liblinphone's user agent as a string.
    • getUserCertificatesPath

      @Nullable String getUserCertificatesPath()
      Get the path to the directory storing the user's certificates.

      Returns:
      The path to the directory storing the user's certificates.
    • setUserCertificatesPath

      void setUserCertificatesPath(@Nullable String path)
      Set the path to the directory storing the user's x509 certificates (used by
      dtls)

      Parameters:
      path - The path to the directory to use to store the user's certificates.

    • isVibrationOnIncomingCallEnabled

      boolean isVibrationOnIncomingCallEnabled()
      Gets whether the device will vibrate while an incoming call is ringing (Android
      only).

      Returns:
      true if the device will vibrate (if possible), false otherwise
    • setVibrationOnIncomingCallEnabled

      void setVibrationOnIncomingCallEnabled(boolean enable)
      Enable vibration will incoming call is ringing (Android only).

      Parameters:
      enable - true to enable the vibration on incoming call, false otherwise
    • getVideoActivationPolicy

      @NonNull VideoActivationPolicy getVideoActivationPolicy()
      Get the default policy for video.

      See setVideoActivationPolicy(org.linphone.core.VideoActivationPolicy) for more details.
      Returns:
      The currently used video policy
    • setVideoActivationPolicy

      void setVideoActivationPolicy(@NonNull VideoActivationPolicy policy)
      Sets the default policy for video.

      This policy defines whether:
      Parameters:
      policy - The VideoActivationPolicy to use
    • isVideoAdaptiveJittcompEnabled

      boolean isVideoAdaptiveJittcompEnabled()
      Tells whether the video adaptive jitter compensation is enabled.

      Returns:
      true if the video adaptive jitter compensation is enabled, false
      otherwise.
    • setVideoAdaptiveJittcompEnabled

      void setVideoAdaptiveJittcompEnabled(boolean enable)
      Enables or disables the video adaptive jitter compensation.

      Parameters:
      enable - true to enable the video adaptive jitter compensation, false to
      disable it.
    • isVideoCaptureEnabled

      boolean isVideoCaptureEnabled()
      Tells whether video capture is enabled.

      Returns:
      true if video capture is enabled, false if disabled.
    • setVideoCaptureEnabled

      void setVideoCaptureEnabled(boolean enable)
      Enable or disable video capture.

      This function does not have any effect during calls. It just indicates the
      Core to initiate future calls with video capture or not.
      Parameters:
      enable - true to enable video capture, false to disable it.
    • getVideoCodecPriorityPolicy

      CodecPriorityPolicy getVideoCodecPriorityPolicy()
      Gets the current priority policy for video codecs (payload types).

      See CodecPriorityPolicy for more details.
      Returns:
      the current CodecPriorityPolicy
    • setVideoCodecPriorityPolicy

      void setVideoCodecPriorityPolicy(CodecPriorityPolicy policy)
      Sets the priority policy for video codecs (payload types).

      Since version 5.3, the default value is CodecPriorityPolicy.Auto unless
      the core's configuration file describes a list of video payload type to use.
      This is to preserve backward compatibility for upgrading applications. See
      CodecPriorityPolicy for more details.
      Parameters:
      policy - the CodecPriorityPolicy to apply
    • getVideoDevice

      @Nullable String getVideoDevice()
      Returns the name of the currently active video device.

      Returns:
      The name of the currently active video device.
    • setVideoDevice

      int setVideoDevice(@Nullable String id)
      Sets the active video device.

      Parameters:
      id - The name of the video device to use as returned by
      linphone_core_get_video_devices
    • getVideoDevicesList

      @NonNull String[] getVideoDevicesList()
      Gets the list of the available video capture devices.

      Returns:
      An unmodifiable array of strings contanining the names of the available
      video capture devices that is null terminated.
    • isVideoDisplayEnabled

      boolean isVideoDisplayEnabled()
      Tells whether video display is enabled.

      Returns:
      true if video display is enabled, false if disabled.
    • setVideoDisplayEnabled

      void setVideoDisplayEnabled(boolean enable)
      Enable or disable video display.

      This function does not have any effect during calls. It just indicates the
      Core to initiate future calls with video display or not.
      Parameters:
      enable - true to enable video display, false to disable it.
    • getVideoDisplayFilter

      @Nullable String getVideoDisplayFilter()
      Gets the name of the mediastreamer2 engine (filter) used for rendering video.

      Returns:
      The currently selected video display filter.
    • setVideoDisplayFilter

      void setVideoDisplayFilter(@Nullable String filterName)
      Sets the name of the mediastreamer2 engine (filter) to be used for rendering
      video.

      Parameters:
      filterName - the filter name to use or null to use default.
    • getVideoDscp

      int getVideoDscp()
      Gets the DSCP field for outgoing video streams.

      The DSCP defines the quality of service in IP packets.
      Returns:
      The current DSCP value
    • setVideoDscp

      void setVideoDscp(int dscp)
      Sets the DSCP field for outgoing video streams.

      The DSCP defines the quality of service in IP packets. When RTP bundling is
      negociated during the call (see #enableRtpBundle), the video packets
      are sent through the audio RTP/UDP connection, which leaves the video dscp
      setting wihtout effect. note: It is usually useless or a bad idea to try to
      play with DSCP bits unless having full control on the network.
      warning: Setting the DSCP bits is more or less well supported by operating
      systems and sometimes requires to disable IPv6.
      Parameters:
      dscp - The DSCP value to set
    • isVideoEnabled

      boolean isVideoEnabled()
      Returns true if either capture or display is enabled, false otherwise.

      same as ( #videoCaptureEnabled | #videoDisplayEnabled )
      Returns:
      true if either capture or display is enabled, false otherwise.
    • getVideoJittcomp

      int getVideoJittcomp()
      Returns the nominal video jitter buffer size in milliseconds.

      Returns:
      The nominal video jitter buffer size in milliseconds
    • setVideoJittcomp

      void setVideoJittcomp(int milliseconds)
      Sets the nominal video jitter buffer size in milliseconds.

      The value takes effect immediately for all running and pending calls, if any. A
      value of 0 disables the jitter buffer.
      Parameters:
      milliseconds - the jitter buffer size in milliseconds
    • getVideoMulticastAddr

      @Nullable String getVideoMulticastAddr()
      Use to get multicast address to be used for video stream.

      Returns:
      an ipv4/6 multicast address, or default value.
    • setVideoMulticastAddr

      int setVideoMulticastAddr(@Nullable String ip)
      Use to set multicast address to be used for video stream.

      Parameters:
      ip - an ipv4/6 multicast address.
      Returns:
      0 in case of success
    • isVideoMulticastEnabled

      boolean isVideoMulticastEnabled()
      Use to get multicast state of video stream.

      Returns:
      true if subsequent calls will propose multicast ip set by setVideoMulticastAddr(java.lang.String)
    • setVideoMulticastEnabled

      void setVideoMulticastEnabled(boolean yesno)
      Use to enable multicast rtp for video stream.

      If enabled, outgoing calls put a multicast address from getVideoMulticastAddr()
      into video cline. In case of outgoing call video stream is sent to this
      multicast address. For incoming calls behavior is unchanged.
      Parameters:
      yesno - if yes, subsequent outgoing calls will propose multicast ip set by
      setVideoMulticastAddr(java.lang.String)
    • getVideoMulticastTtl

      int getVideoMulticastTtl()
      Use to get multicast ttl to be used for video stream.

      Returns:
      a time to leave value
    • setVideoMulticastTtl

      int setVideoMulticastTtl(int ttl)
      Use to set multicast ttl to be used for video stream.

      Parameters:
      ttl - value or -1 if not used. [0..255] default value is 1
      Returns:
      0 in case of success
    • getVideoPayloadTypes

      @NonNull PayloadType[] getVideoPayloadTypes()
      Returns the list of the available video payload types (codecs).

      Returns:
      A freshly allocated list of the available payload types.
    • setVideoPayloadTypes

      void setVideoPayloadTypes(@Nullable PayloadType[] payloadTypes)
      Redefines the list of the available video payload types (codecs).

      Calling this function if the video codec priority policy is
      LinphoneCodecPriorityPolicyAuto turns video codec priority policy to basic
      scheme, since application is not supposed to control the order of video codecs
      when LinphoneCodecPriorityPolicyAuto is selected, by definition. see: setVideoCodecPriorityPolicy(org.linphone.core.CodecPriorityPolicy)
      Parameters:
      payloadTypes - The new list of codecs. The core does not take ownership on
      it.
    • getVideoPort

      int getVideoPort()
      Gets the UDP port used for video streaming.

      Returns:
      The UDP port used for video streaming
    • setVideoPort

      void setVideoPort(int port)
      Sets the UDP port used for video streaming.

      A value of -1 will request the system to allocate the local port randomly. This
      is recommended in order to avoid firewall warnings.
      Parameters:
      port - The UDP port to use for video streaming
    • getVideoPortsRange

      @NonNull Range getVideoPortsRange()
      Get the video port range from which is randomly chosen the UDP port used for
      video streaming.

      Returns:
      a Range object
    • getVideoPreset

      @Nullable String getVideoPreset()
      Get the video preset used for video calls.

      Returns:
      The name of the video preset used for video calls (can be null if the
      default video preset is used).
    • setVideoPreset

      void setVideoPreset(@Nullable String preset)
      Set the video preset to be used for video calls.

      Parameters:
      preset - The name of the video preset to be used (can be null to use the
      default video preset).
    • isVideoPreviewEnabled

      boolean isVideoPreviewEnabled()
      Tells whether video preview is enabled.

      Returns:
      A boolean value telling whether video preview is enabled
    • setVideoPreviewEnabled

      void setVideoPreviewEnabled(boolean enable)
      Controls video preview enablement.

      Parameters:
      enable - A boolean value telling whether the video preview is to be shown
      Video preview refers to the action of displaying the local webcam image to the
      user while not in call.
    • setVideoSourceReuseEnabled

      void setVideoSourceReuseEnabled(boolean enable)
      Enable or disable video source reuse when switching from preview to actual
      video call.

      This source reuse is useful when you always display the preview, even before
      calls are initiated. By keeping the video source for the transition to a real
      video call, you will smooth out the source close/reopen cycle.
      This function does not have any effect during calls. It just indicates the
      Core to initiate future calls with video source reuse or not. Also, at
      the end of a video call, the source will be closed whatsoever for now.
      Parameters:
      enable - true to enable video source reuse. false to disable it for
      subsequent calls.
    • isWifiOnlyEnabled

      boolean isWifiOnlyEnabled()
      Tells whether Wifi only mode is enabled or not.

      warning: Only works for Android platform.
      Returns:
      A boolean value telling whether Wifi only mode is enabled or not
    • setWifiOnlyEnabled

      void setWifiOnlyEnabled(boolean enable)
      Turns Wifi only mode on or off.

      If enabled, app won't register when active network isn't WiFi or Ethernet.
      warning: Only works for Android platform.
      Parameters:
      enable - A boolean value telling whether to enable IPv6 support
    • isZeroRtpPortForStreamInactiveEnabled

      boolean isZeroRtpPortForStreamInactiveEnabled()
      Checks if RTP port is set to 0 when a stream is inactive.

      Returns:
      true if the RTP port is set to 0 if the stream direction is inactive;
      false otherwise.
    • setZeroRtpPortForStreamInactiveEnabled

      void setZeroRtpPortForStreamInactiveEnabled(boolean enable)
      Defines whether RTP port is set to 0 when a stream is inactive.

      Parameters:
      enable - true to set the RTP port to 0 if the stream direction is
      inactive; false otherwise.
    • getZrtpAvailableKeyAgreementList

      @NonNull ZrtpKeyAgreement[] getZrtpAvailableKeyAgreementList()
      Return the list of the available ZRTP key agreement algorithns.

      Returns:
      A freshly allocated list of the available algorithms. The list must be
      destroyed with bctbx_list_free() after usage. The elements of the list haven't
      to be unref.
    • isZrtpGoClearEnabled

      boolean isZrtpGoClearEnabled()
      Checks if the ZRTP go clear is enabled or not.

      Returns:
      true if ZTRP go clear is enabled; false otherwise.
    • setZrtpGoClearEnabled

      void setZrtpGoClearEnabled(boolean enabled)
      Defines whether ZRTP go clear is enabled.

      Parameters:
      enabled - true to enable ZRTP go clear; false otherwise.
    • getZrtpKeyAgreementList

      @NonNull ZrtpKeyAgreement[] getZrtpKeyAgreementList()
      Return the ordonated list of the ZRTP key agreement algorithns currently
      configured.

      Returns:
      A freshly allocated list of the available algorithms. The list must be
      destroyed with bctbx_list_free() after usage. The elements of the list haven't
      to be unref.
    • setZrtpKeyAgreementSuites

      void setZrtpKeyAgreementSuites(@Nullable ZrtpKeyAgreement[] keyAgreements)
      Redefine the list of prefered ZRTP key agreement algorithms.

      Parameters:
      keyAgreements - The new list of key agreements algorithms, in order of
      preference. The core does not take ownership on it. The setting accepts a
      maximum of 7 algorithms, if the list is longer, only the first 7 available
      algorithms are selected
    • getZrtpSecretsFile

      @Nullable String getZrtpSecretsFile()
      Gets the path to the file storing the zrtp secrets cache.

      Returns:
      The path to the file storing the zrtp secrets cache.
    • setZrtpSecretsFile

      void setZrtpSecretsFile(@Nullable String file)
      Sets the path to the file storing the zrtp secrets cache.

      Parameters:
      file - The path to the file to use to store the zrtp secrets cache.
    • abortAuthentication

      void abortAuthentication(@Nullable AuthInfo info)
      This method is used to abort a user authentication request initiated by Core
      from the authentication_requested callback of CoreListener.

      note: this function currently does not take into account the 'info' parameter.
      All pending authentication requests are aborted.
      Parameters:
      info - the AuthInfo for which to abort authentication
    • activateAudioSession

      void activateAudioSession(boolean activated)
      Special function to indicate if the audio session is activated.

      Must be called when ProviderDelegate of the callkit notifies that the audio
      session is activated or deactivated.
      Parameters:
      activated - true to activate the audio session, false to disable it.
    • addAccount

      int addAccount(@NonNull Account account)
      Adds an account.

      This will start registration on the proxy, if registration is enabled.
      Parameters:
      account - the Account to add
      Returns:
      0 if successful, -1 otherwise
    • addAllToConference

      @Deprecated int addAllToConference()
      Adds all calls into the conference.

      If no conference is running a new internal conference context is created and
      all current calls are added to it.
      Returns:
      0 if succeeded. Negative number if failed
      warning: This function guarantees that the local endpoint is added to the
      conference.
    • addAuthInfo

      void addAuthInfo(@NonNull AuthInfo info)
      Adds authentication information to the Core.

      These nformation will be used during all SIP or HTTP transactions that require
      authentication.
      Parameters:
      info - The AuthInfo to add.
    • addContentTypeSupport

      void addContentTypeSupport(@NonNull String contentType)
      Add support for the specified content type.

      It is the application responsibility to handle it correctly afterwards.
      Parameters:
      contentType - The content type to add support for
    • addFriendList

      void addFriendList(@NonNull FriendList list)
      Add a friend list.

      Parameters:
      list - FriendList object
    • addLdap

      @Deprecated void addLdap(@NonNull Ldap ldap)
      Add or update a LDAP server and save it to the configuration.

      Parameters:
      ldap - The LDAP to add/update.
    • addLinphoneSpec

      void addLinphoneSpec(@NonNull String spec)
      Add the given linphone specs to the list of functionalities the linphone client
      supports.

      see: setLinphoneSpecsList(java.lang.String[])
      Parameters:
      spec - The spec to add
    • addProvisioningHeader

      void addProvisioningHeader(@NonNull String headerName, @NonNull String value)
      Add an extra header for retrieving the remote provisioning (check setProvisioningUri(java.lang.String)
      ).

      This can also be set from configuration file or factory config file, from[misc]
      section, item "config-uri-headers_X" where X is the index of the header
      starting by 0.
      Parameters:
      headerName - the header to use when downloading the configuration.
      value - the value to use when downloading the configuration.
    • addProxyConfig

      @Deprecated int addProxyConfig(@NonNull ProxyConfig config)
      Deprecated.
      Add a proxy configuration.

      This will start registration on the proxy, if registration is enabled.
      Parameters:
      config - the ProxyConfig to add
      Returns:
      0 if successful, -1 otherwise
    • addRemoteContactDirectory

      void addRemoteContactDirectory(@NonNull RemoteContactDirectory remoteContactDirectory)
      Adds a RemoteContactDirectory object previously created to the Core, to
      be used later by MagicSearch to query contacts using either LDAP or
      CardDAV.

      Parameters:
      remoteContactDirectory - the newly created RemoteContactDirectory
      to add.
    • addSupportedTag

      void addSupportedTag(@NonNull String tag)
      This function controls signaling features supported by the core.

      They are typically included in a SIP Supported header.
      Parameters:
      tag - The feature tag name
    • addToConference

      @Deprecated int addToConference(@NonNull Call call)
      Deprecated.
      Adds a participant to the conference.

      If no conference is going on a new internal conference context is created and
      the participant is added to it.
      Parameters:
      call - The current call with the participant to add
      Returns:
      0 if succeeded. Negative number if failed
    • audioRouteChanged

      @Deprecated void audioRouteChanged()
      Deprecated.
      07/01/2020 now handled in the linphone SDK directly
      Special function to indicate if the audio route is changed.

      Must be called in the callback of AVAudioSessionRouteChangeNotification.
    • callRingingDisabled

      boolean callRingingDisabled()
      Check whether ringing of calls is disabled.

      Returns:
      true if call ringing is disabled
    • chatRoomGetDefaultEphemeralMode

      ChatRoom.EphemeralMode chatRoomGetDefaultEphemeralMode()
      Gets the default ephemeral message mode.

      Returns:
      the default ephemeral message mode ChatRoom#EphemeralMode
    • chatRoomSetDefaultEphemeralMode

      void chatRoomSetDefaultEphemeralMode(ChatRoom.EphemeralMode mode)
      Sets the default ephemeral message mode.

      Parameters:
      mode - default ephemeral message mode ChatRoom#EphemeralMode
    • checkForUpdate

      void checkForUpdate(String currentVersion)
      Asynchronously checks if a new version of the application is available from a
      well-known http server URI given by Core 's configuration.

      The result of the check is given through the CoreListener interface,
      see linphone_core_cbs_set_version_update_check_result_received. The http URI
      has to be given in [misc] section as key 'version_check_url_root'. The
      subdirectory is appended to this root URI, per platform, and a "VERSION" file
      is fetched. For example:
    • clearAccounts

      void clearAccounts()
      Erases all accounts from config.

    • clearAllAuthInfo

      void clearAllAuthInfo()
      Clears all authentication information.

    • clearCallLogs

      void clearCallLogs()
      Erases the call log list.

    • clearLdaps

      @Deprecated void clearLdaps()
      Erases all LDAP from the configuration.

    • clearProvisioningHeaders

      void clearProvisioningHeaders()
      Clear all headers that were added with addProvisioningHeader(java.lang.String, java.lang.String).

    • clearProxyConfig

      @Deprecated void clearProxyConfig()
      Deprecated.
      04/09/2024 Use clearAccounts()
      Erase all proxies from config.

    • configSync

      int configSync()
      Forces a flush of the config to disk.

      Returns:
      0 if successful, -1 otherwise
    • configureAudioSession

      void configureAudioSession()
      Special function to configure audio session with default settings.

      Must be called in ProviderDelegate's callbacks when answer an incoming call and
      start an outgoing call.
    • createAccount

      @NonNull Account createAccount(@NonNull AccountParams params)
      Creates an account using given parameters, see createAccountParams().

      Once created, the account must be added to the Core in order to be used
      for registration, calls, messages etc. Use addAccount(org.linphone.core.Account) to add it to the
      Core.
      Parameters:
      params - AccountParams object
      Returns:
      Account with default values set
    • createAccountCreator

      @Deprecated @NonNull AccountCreator createAccountCreator(@Nullable String xmlrpcUrl)
      Deprecated.
      04/09/2024 : The AccountCreator interface is replaced by
      the AccountManagerServices interface.
      Create a AccountCreator and set Linphone Request callbacks.

      Parameters:
      xmlrpcUrl - The URL to the XML-RPC server.
      Returns:
      The new AccountCreator object.
    • createAccountManagerServices

      @NonNull AccountManagerServices createAccountManagerServices()
      Returns:
      The new AccountManagerServices object.
    • createAccountParams

      @NonNull AccountParams createAccountParams()
      Create an account params using default values from Linphone core.

      Returns:
      AccountParams with default values set
    • createAddress

      @Deprecated @Nullable Address createAddress(@Nullable String address)
      Deprecated.
      Creates a Address object by parsing the user supplied address, given as
      a string.

      Parameters:
      address - String containing the user supplied address
      Returns:
      The created Address object
    • createCallLog

      @NonNull CallLog createCallLog(@NonNull Address from, @NonNull Address to, Call.Dir dir, int duration, long startTime, long connectedTime, Call.Status status, boolean videoEnabled, float quality)
      Creates a fake CallLog.

      Parameters:
      from - Address of caller
      to - Address of callee
      dir - Call#Dir of call
      duration - call length in seconds
      startTime - timestamp of call start time
      connectedTime - timestamp of call connection
      status - Call#Status of call
      videoEnabled - whether video was enabled or not for this call
      quality - call quality
      Returns:
      a CallLog object
    • createCallParams

      @Nullable CallParams createCallParams(@Nullable Call call)
      Creates a CallParams suitable for inviteWithParams(java.lang.String, org.linphone.core.CallParams), Call.acceptWithParams(org.linphone.core.CallParams)
      , Call.acceptEarlyMediaWithParams(org.linphone.core.CallParams), Call.update(org.linphone.core.CallParams) or
      linphone_call_accept_update_with_params().

      The parameters are initialized according to the current Core
      configuration and the current state of the call if any. In order to create a
      CallParams for an already created call, the call argument must not be
      null.
      Parameters:
      call - Call for which the parameters are to be built, or null in
      the case where the parameters are to be used for a new outgoing call.
      Returns:
      A new CallParams object.
    • createCardDavParams

      @NonNull CardDavParams createCardDavParams()
      Creates a new CardDAV server params object that may be used later by MagicSearch
      to query contacts.

      Returns:
      a new CardDavParams object to configure, and then use it to
      create a RemoteContactDirectory using createCardDavRemoteContactDirectory(org.linphone.core.CardDavParams)
      .
    • createCardDavRemoteContactDirectory

      @NonNull RemoteContactDirectory createCardDavRemoteContactDirectory(@NonNull CardDavParams params)
      Creates a new CardDAV server params object that may be used later by MagicSearch
      to query contacts.

      Parameters:
      params - the CardDavParams to configure this remote contact
      directory.
      Returns:
      a new RemoteContactDirectory object to configure, and then add
      using addRemoteContactDirectory(org.linphone.core.RemoteContactDirectory).
    • createCcmpConferenceScheduler

      @NonNull ConferenceScheduler createCcmpConferenceScheduler(@Nullable Account account)
      Create a SIP conference scheduler that can be used to create client conferences
      for now or later and then send conference info as an ICS through chat.

      A CCMPConferenceScheduler creates a conference on a server by using the CCMP
      protocol
      Parameters:
      account - The Account to use in the ConferenceScheduler.
      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createChatRoom

      @Nullable ChatRoom createChatRoom(@NonNull ConferenceParams params, @NonNull Address[] participants)
      Create a chat room.

      Parameters:
      params - The chat room creation parameters ConferenceParams
      participants - The initial list of participants of the chat room.
      Returns:
      The newly created chat room (can be an existing one if backend is
      Basic) or null.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull ChatRoomParams params, @NonNull Address localAddr, @NonNull String subject, @NonNull Address[] participants)
      Create a chat room.

      Parameters:
      params - The chat room creation parameters ChatRoomParams
      localAddr - Address representing the local proxy configuration to
      use for the chat room creation
      subject - The subject of the group chat room
      participants - The initial list of participants of the chat room
      Returns:
      The newly created chat room.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull ChatRoomParams params, @NonNull String subject, @NonNull Address[] participants)
      Create a chat room.

      Parameters:
      params - The chat room creation parameters ChatRoomParams
      subject - The subject of the group chat room
      participants - The initial list of participants of the chat room.
      Returns:
      The newly created chat room.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull String subject, @NonNull Address[] participants)

      Parameters:
      subject - The subject of the group chat room
      participants - The initial list of participants of the chat room.
      Returns:
      The newly created chat room.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull ChatRoomParams params, @NonNull Address localAddr, @NonNull Address participant)

      Parameters:
      params - The chat room creation parameters ChatRoomParams
      localAddr - Address representing the local proxy configuration to
      use for the chat room creation
      participant - Address representing the initial participant to add
      to the chat room
      Returns:
      The newly created chat room.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull Address participant)

      Parameters:
      participant - Address representing the initial participant to add
      to the chat room
      Returns:
      The newly created chat room.
    • createChatRoom

      @Deprecated @Nullable ChatRoom createChatRoom(@NonNull ChatRoomParams params, @Nullable Address localAddr, @NonNull Address[] participants)
      Create a chat room.

      Parameters:
      params - The chat room creation parameters ChatRoomParams
      localAddr - Address of a local Account identity or null
      participants - The initial list of participants of the chat room.
      Returns:
      The newly created chat room (can be an existing one if backend is
      Basic) or null.
    • createClientGroupChatRoom

      @Deprecated @Nullable ChatRoom createClientGroupChatRoom(@NonNull String subject, boolean fallback)
      Create a client-side group chat room.

      When calling this function the chat room is only created at the client-side and
      is empty. You need to call ChatRoom.addParticipants(org.linphone.core.Address[]) to create at the
      server side and add participants to it. Also, the created chat room will not be
      a one-to-one chat room even if ChatRoom.addParticipants(org.linphone.core.Address[]) is called with
      only one participant.
      Parameters:
      subject - The subject of the group chat room
      fallback - Boolean value telling whether we should plan on being able to
      fallback to a basic chat room if the client-side group chat room creation fails
      Returns:
      The newly created client-side group chat room.
    • createClientGroupChatRoom

      @Deprecated @Nullable ChatRoom createClientGroupChatRoom(@NonNull String subject, boolean fallback, boolean encrypted)
      Create a client-side group chat room.

      When calling this function the chat room is only created at the client-side and
      is empty. You need to call ChatRoom.addParticipants(org.linphone.core.Address[]) to create at the
      server side and add participants to it. Also, the created chat room will not be
      a one-to-one chat room even if ChatRoom.addParticipants(org.linphone.core.Address[]) is called with
      only one participant.
      Parameters:
      subject - The subject of the group chat room
      fallback - Boolean value telling whether we should plan on being able to
      fallback to a basic chat room if the client-side group chat room creation fails
      encrypted - Boolean value telling whether we should apply encryption or
      not on chat messages sent and received on this room.
      Returns:
      The newly created client-side group chat room.
    • createConferenceParams

      @NonNull ConferenceParams createConferenceParams(@Nullable Conference conference)
      Creates some default conference parameters for instanciating a conference with
      createConferenceWithParams(org.linphone.core.ConferenceParams).

      Parameters:
      conference - Conference for which the parameters are to be build,
      or null in the case where the parameters are to be used for a new conference.
      Returns:
      a ConferenceParams object.
    • createConferenceScheduler

      @Deprecated @NonNull ConferenceScheduler createConferenceScheduler()
      Create a conference scheduler that can be used to schedule conferences on a
      client conference service and then send conference information invitation as an
      ICS object through chat.

      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createConferenceScheduler

      @NonNull ConferenceScheduler createConferenceScheduler(@Nullable Account account)
      Create a conference scheduler that can be used to create client conferences for
      now or later and then send conference info as an ICS through chat.

      A SipConferenceScheduler is created if the Account has not defined the
      URL of the CCMP server, other it will create a CCMPConferenceServer
      Parameters:
      account - The Account to use in the ConferenceScheduler.
      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createConferenceSchedulerWithType

      @NonNull ConferenceScheduler createConferenceSchedulerWithType(@Nullable Account account, ConferenceScheduler.Type schedulingType)
      Create a conference scheduler that can be used to create client conferences for
      now or later and then send conference info as an ICS through chat by specifying
      its type.

      Parameters:
      account - The Account to use in the ConferenceScheduler.
      schedulingType - The type of the ConferenceScheduler.
      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createConferenceWithParams

      @Nullable Conference createConferenceWithParams(@NonNull ConferenceParams params)
      Create a conference.

      Local or client conference is determinated from the 'conference_type' variable
      in the 'misc' section of the configuration, or by the factory address
      parameter. See ConferenceParams.setConferenceFactoryAddress(org.linphone.core.Address) for more
      details.
      Parameters:
      params - Parameters of the conference. See ConferenceParams.
      Returns:
      A pointer on the freshly created conference Conference. That
      object will be automatically freed by the core after calling terminateConference()
      .
      warning: To guarantee the backward comatibility, this method will assign the
      created conference to the conference context held by the core. Nonetheless
      starting from release 5.4, the conference context will be override at every
      conference created by calling this method
    • createConfig

      @NonNull Config createConfig(@Nullable String filename)
      Create a Config object from a user config file.

      Parameters:
      filename - The filename of the config file to read to fill the
      instantiated Config
      Returns:
      a Config object.
    • createContent

      @NonNull Content createContent()
      Creates a content with default values from Linphone core.

      Returns:
      Content object with default values set
    • createDbConferenceScheduler

      @NonNull ConferenceScheduler createDbConferenceScheduler(@Nullable Account account)
      Create a database conference scheduler that can be used to create client
      conferences for now or later and then send conference info as an ICS through
      chat.

      The DBConferenceScheduler only creates a conference info to be stored in the
      database of the linphone core
      Parameters:
      account - The Account to use in the ConferenceScheduler.
      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createDefaultChatRoomParams

      @NonNull ChatRoomParams createDefaultChatRoomParams()
      Creates and returns the default chat room parameters.

      Returns:
      A ChatRoomParams object
    • createEktInfoFromXml

      @Nullable EktInfo createEktInfoFromXml(@NonNull String xmlBody)
      Gets a EktInfo from an XML body.

      Parameters:
      xmlBody - the string containing the XML body
      Returns:
      The EktInfo
    • createFriend

      @NonNull Friend createFriend()
      Creates an empty LinphoneFriend.

      Returns:
      The created Friend object
    • createFriendFromVcard

      @Nullable Friend createFriendFromVcard(@NonNull Vcard vcard)
      Creates a Friend from ai Vcard.

      Parameters:
      vcard - a Vcard object
      Returns:
      A new Friend object which has its vCard attribute initialized
      from the given vCard, accessible using Friend.getVcard().
    • createFriendList

      @NonNull FriendList createFriendList()
      Creates a new empty FriendList object.

      Returns:
      A new FriendList object.
    • createFriendWithAddress

      @Nullable Friend createFriendWithAddress(@NonNull String address)
      Creates a Friend from the given address.

      Parameters:
      address - A string containing the address to create the Friend
      from
      Returns:
      The created Friend object.
    • createInfoMessage

      @NonNull InfoMessage createInfoMessage()
      Creates an empty info message.

      Returns:
      a new LinphoneInfoMessage.
      The info message can later be filled with information using InfoMessage.addHeader(java.lang.String, java.lang.String)
      or InfoMessage.setContent(org.linphone.core.Content), and finally sent with
      linphone_core_send_info_message().
    • createLdap

      @Deprecated @NonNull Ldap createLdap()
      Creates an empty LDAP search.

      Ldap.setParams(org.linphone.core.LdapParams) must be call to save the parameters in the configuration
      file.
      Returns:
      Ldap with default values set
    • createLdapParams

      @NonNull LdapParams createLdapParams()
      Create a LDAP params using default values from Linphone core.

      Check #linphone_ldap_params to update values. In order to add a new LDAP
      configuration to MagicSearch, these parameters must be passed to
      linphone_core_create_ldap_with_params. Or, use Ldap.setParams(org.linphone.core.LdapParams).
      Returns:
      LdapParams with default values set.
    • createLdapRemoteContactDirectory

      @NonNull RemoteContactDirectory createLdapRemoteContactDirectory(@NonNull LdapParams params)
      Creates a new CardDAV server params object that may be used later by MagicSearch
      to query contacts.

      Parameters:
      params - the LdapParams to configure this remote contact
      directory.
      Returns:
      a new RemoteContactDirectory object to configure, and then add
      using addRemoteContactDirectory(org.linphone.core.RemoteContactDirectory).
    • createLdapWithParams

      @Deprecated @NonNull Ldap createLdapWithParams(@NonNull LdapParams params)
      Creates a LDAP search using given parameters and store them in the
      configuration file.

      Parameters:
      params - LdapParams object
      Returns:
      Ldap with default values set
    • createLocalPlayer

      @Nullable Player createLocalPlayer(@Nullable String soundCardName, @Nullable String videoDisplayName, @Nullable Object windowId)
      Creates a media file player, that can be used to play audio and video to the
      user, outside of any call or conference.

      See getSupportedFileFormatsList() for supported multimedia file types.
      Parameters:
      soundCardName - Playback sound card. If null, the ringer sound card set in
      Core will be used
      videoDisplayName - Video display. If null, the video display set in Core
      will be used
      windowId - Id of the drawing window. See setNativeVideoWindowId(java.lang.Object)
      for a discussion about supported native video window types.
      Returns:
      A pointer on the new instance. null if failed.
    • createMagicSearch

      @NonNull MagicSearch createMagicSearch()
      Creates a MagicSearch object.

      Returns:
      The created MagicSearch object
    • createNatPolicy

      @NonNull NatPolicy createNatPolicy()
      Create a new NatPolicy object with every policies being disabled.

      Returns:
      A new NatPolicy object.
    • createNativePreviewWindowId

      @Nullable Object createNativePreviewWindowId(@Nullable Object context)
      Create a Window ID for the video preview window.

      Available for MSQOGL and MSOGL. see setNativeVideoWindowId(java.lang.Object) for details
      about window_id
      MSQOgl can be used for the creation. createNativePreviewWindowId(java.lang.Object)
      returns a #QQuickFramebufferObject::Renderer. This object must be returned by
      your QQuickFramebufferObject::createRenderer() overload for Qt.
      linphone_core_set_native_preview_window_id_2() must be called with this object
      after the creation. Note : Qt blocks GUI thread when calling createRenderer(),
      so it is safe to call linphone functions there if needed.
      A context can be used to prevent Linphone from allocating the container
      (#MSOglContextInfo for MSOGL). null if not used.
      Parameters:
      context - preallocated Window ID (Used only for MSOGL)
      Returns:
      The created Window ID.
    • createNativePreviewWindowId

      @Nullable Object createNativePreviewWindowId()
      Create a native window handle for the video preview window.

      see createNativePreviewWindowId(java.lang.Object) for details
      Returns:
      The native window handle of the video preview window.
    • createNativeVideoWindowId

      @Nullable Object createNativeVideoWindowId(@Nullable Object context)
      Create a Window ID from the current call.

      Available for MSQOGL and MSOGL. see setNativeVideoWindowId(java.lang.Object) for details
      about window_id
      When MSQOgl can be used for the creation: createNativeVideoWindowId(java.lang.Object)
      returns a #QQuickFramebufferObject::Renderer. This object must be returned by
      your QQuickFramebufferObject::createRenderer() overload for Qt. setNativeVideoWindowId(java.lang.Object)
      must be called with this object after the creation. Note : Qt blocks GUI thread
      when calling createRenderer(), so it is safe to call linphone functions there
      if needed.
      A context can be used to prevent Linphone from allocating the container
      (#MSOglContextInfo for MSOGL). null if not used.
      Parameters:
      context - preallocated Window ID (Used only for MSOGL)
      Returns:
      The created Window ID
    • createNativeVideoWindowId

      @Nullable Object createNativeVideoWindowId()
      Create a native window handle for the video window from the current call.

      see createNativeVideoWindowId(java.lang.Object) for details
      Returns:
      The native window handle of the video window.
    • createNotify

      @NonNull Event createNotify(@NonNull Address resource, @NonNull String event)
      Creates an out-of-dialog notification, specifying the destination resource, the
      event name.

      The notification can be send with Event.notify(org.linphone.core.Content).
      Parameters:
      resource - the destination resource
      event - the event name
      Returns:
      a Event holding the context of the notification.
    • createOneShotPublish

      @NonNull Event createOneShotPublish(@NonNull Address resource, @NonNull String event)
      Creates a publish context for a one-shot publish.

      After being created, the publish must be sent using Event.sendPublish(org.linphone.core.Content).
      The Event is automatically terminated when the publish transaction is
      finished, either with success or failure. The application must not call Event.terminate()
      for such one-shot publish.
      Parameters:
      resource - the resource uri for the event
      event - the event name
      Returns:
      the Event holding the context of the publish.
    • createPresenceActivity

      @NonNull PresenceActivity createPresenceActivity(PresenceActivity.Type acttype, @Nullable String description)
      Creates a PresenceActivity with the given type and description.

      Parameters:
      acttype - The PresenceActivity#Type to set for the activity.
      description - An additional description of the activity to set for the
      activity. Can be null if no additional description is to be added.
      Returns:
      The created PresenceActivity object.
    • createPresenceModel

      @NonNull PresenceModel createPresenceModel()
      Creates a default LinphonePresenceModel.

      Returns:
      The created PresenceModel object.
    • createPresenceModelWithActivity

      @NonNull PresenceModel createPresenceModelWithActivity(PresenceActivity.Type acttype, @Nullable String description)
      Creates a PresenceModel with the given activity type and activity
      description.

      Parameters:
      acttype - The PresenceActivity#Type to set for the activity of the
      created model.
      description - An additional description of the activity to set for the
      activity. Can be null if no additional description is to be added.
      Returns:
      The created PresenceModel object.
    • createPresenceModelWithActivityAndNote

      @NonNull PresenceModel createPresenceModelWithActivityAndNote(PresenceActivity.Type acttype, @Nullable String description, @NonNull String note, @Nullable String lang)
      Creates a PresenceModel with the given activity type, activity
      description, note content and note language.

      Parameters:
      acttype - The PresenceActivity#Type to set for the activity of the
      created model.
      description - An additional description of the activity to set for the
      activity. Can be null if no additional description is to be added.
      note - The content of the note to be added to the created model.
      lang - The language of the note to be added to the created model.
      Returns:
      The created PresenceModel object.
    • createPresenceNote

      @NonNull PresenceNote createPresenceNote(@NonNull String content, @Nullable String lang)
      Creates a PresenceNote with the given content and language.

      Parameters:
      content - The content of the note to be created.
      lang - The language of the note to be created.
      Returns:
      The created PresenceNote object.
    • createPresencePerson

      @NonNull PresencePerson createPresencePerson(@NonNull String id)
      Creates a PresencePerson with the given id.

      Parameters:
      id - The id of the person to be created.
      Returns:
      The created PresencePerson object.
    • createPresenceService

      @NonNull PresenceService createPresenceService(@NonNull String id, PresenceBasicStatus basicStatus, @NonNull String contact)
      Creates a PresenceService with the given id, basic status and contact.

      Parameters:
      id - The id of the service to be created.
      basicStatus - The basic status of the service to be created.
      contact - A string containing a contact information corresponding to the
      service to be created.
      Returns:
      The created PresenceService object.
    • createPrimaryContactParsed

      @Deprecated @Nullable Address createPrimaryContactParsed()
      Deprecated.
      Same as getPrimaryContact() but the result is a Address object
      instead of const char *.

      Returns:
      a Address object.
    • createProxyConfig

      @Deprecated @NonNull ProxyConfig createProxyConfig()
      Create a proxy config with default values from Linphone core.

      Returns:
      ProxyConfig with default values set
    • createPublish

      @NonNull Event createPublish(@NonNull Address resource, @NonNull String event, int expires)
      Creates a publish context for an event state.

      After being created, the publish must be sent using Event.sendPublish(org.linphone.core.Content).
      After expiry, the publication is refreshed unless it is terminated before.
      Parameters:
      resource - the resource uri for the event
      event - the event name
      expires - the lifetime of event being published, -1 if no associated
      duration, in which case it will not be refreshed.
      Returns:
      the Event holding the context of the publish.
    • createRecorder

      @NonNull Recorder createRecorder(@NonNull RecorderParams params)
      Creates an independant media file recorder, that can be used to record user's
      voice or video outside of any call or conference.

      See getSupportedFileFormatsList() for supported multimedia file types.
      Parameters:
      params - The RecorderParams that will contains all recorder
      parameters.
      Returns:
      A pointer on the new instance. null if failed.
    • createRecorderParams

      @NonNull RecorderParams createRecorderParams()
      Creates an object that holds recording parameters.

      see: createRecorder(org.linphone.core.RecorderParams)
      Returns:
      A pointer on the newly created instance of RecorderParams
    • createSipConferenceScheduler

      @NonNull ConferenceScheduler createSipConferenceScheduler(@Nullable Account account)
      Create a SIP conference scheduler that can be used to create client conferences
      for now or later and then send conference info as an ICS through chat.

      A SipConferenceScheduler creates a conference on a server by using a SIP dialog
      Parameters:
      account - The Account to use in the ConferenceScheduler.
      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createSubscribe

      @NonNull Event createSubscribe(@NonNull Address resource, @NonNull String event, int expires)
      Creates an outgoing subscription, specifying the destination resource, the
      event name, and an optional content body.

      If accepted, the subscription runs for a finite period, but is automatically
      renewed if not terminated before. Unlike subscribe(org.linphone.core.Address, java.lang.String, int, org.linphone.core.Content) the subscription
      isn't sent immediately. It will be send when calling Event.sendSubscribe(org.linphone.core.Content)
      .
      Parameters:
      resource - the destination resource
      event - the event name
      expires - the whished duration of the subscription
      Returns:
      a Event holding the context of the created subcription.
    • createSubscribe

      @NonNull Event createSubscribe(@NonNull Address resource, @NonNull ProxyConfig proxy, @NonNull String event, int expires)
      Creates an outgoing subscription, specifying the destination resource, the
      event name, and an optional content body.

      If accepted, the subscription runs for a finite period, but is automatically
      renewed if not terminated before. Unlike subscribe(org.linphone.core.Address, java.lang.String, int, org.linphone.core.Content) the subscription
      isn't sent immediately. It will be send when calling Event.sendSubscribe(org.linphone.core.Content)
      .
      Parameters:
      resource - the destination resource
      proxy - the proxy configuration to use
      event - the event name
      expires - the whished duration of the subscription
      Returns:
      a Event holding the context of the created subcription.
    • createXmlFromEktInfo

      @Deprecated @Nullable String createXmlFromEktInfo(@NonNull EktInfo ektInfo)
      Gets an XML body.

      Parameters:
      ektInfo - the EktInfo
      Returns:
      The XML body
    • createXmlFromEktInfo

      @Nullable String createXmlFromEktInfo(@NonNull EktInfo ektInfo, @Nullable Account account)
      Gets an XML body using a specific account.

      Parameters:
      ektInfo - the EktInfo
      account - the Account associated with the conference
      Returns:
      The XML body
    • createXmlRpcSession

      @NonNull XmlRpcSession createXmlRpcSession(@NonNull String url)
      Create a XmlRpcSession for a given url.

      Parameters:
      url - The URL to the XML-RPC server. Must be NON null.
      Returns:
      The new XmlRpcSession object.
    • deleteChatRoom

      void deleteChatRoom(@NonNull ChatRoom chatRoom)
      Removes a chatroom including all message history from the LinphoneCore.

      Parameters:
      chatRoom - A ChatRoom object
    • deleteConferenceInformation

      void deleteConferenceInformation(@NonNull ConferenceInfo conferenceInfo)
      Deletes a conference information from DB.

      Parameters:
      conferenceInfo - the ConferenceInfo to delete.
    • didRegisterForRemotePush

      void didRegisterForRemotePush(@Nullable Object deviceToken)
      Sets device_token when application
      didRegisterForRemoteNotificationsWithDeviceToken (IOS only).

      Parameters:
      deviceToken - format (NSData *).
    • didRegisterForRemotePushWithStringifiedToken

      void didRegisterForRemotePushWithStringifiedToken(@Nullable String deviceTokenStr)
      Sets device_token when application
      didRegisterForRemoteNotificationsWithDeviceToken (IOS only).

      Parameters:
      deviceTokenStr - string extracted from the Data objectf received in
      didRegisterForRemoteNotificationsWithDeviceToken ios function. Append ":remote"
      after data formating..
    • disableCallRinging

      void disableCallRinging(boolean yesno)
      Enables or disables call ringing.

      This value is taken into account from next time call parameters are created.
      This feature can also be enabled per-call using CallParams.
      Parameters:
      yesno - a boolean to indicate whether the feature is to be disabled.
    • disableChat

      void disableChat(Reason denyReason)
      Inconditionnaly disables incoming chat messages.

      Parameters:
      denyReason - the deny reason (Reason.None has no effect).
    • enableChat

      void enableChat()
      Enables reception of incoming chat messages.

      By default it is enabled but it can be disabled with disableChat(org.linphone.core.Reason).
    • ensureRegistered

      @Deprecated void ensureRegistered()
      Deprecated.
      Call this method when you receive a push notification (if you handle push
      notifications manually).

      It will ensure the proxy configs are correctly registered to the proxy server,
      so the call or the message will be correctly delivered.
    • enterBackground

      void enterBackground()
      This method is called by the application to notify the linphone core library
      when it enters background mode.

    • enterConference

      @Deprecated int enterConference()
      Deprecated.
      09/03/2021 Use Conference.enter() instead.
      Joins the local participant to the running conference.

      Returns:
      0 if succeeded. Negative number if failed
    • enterForeground

      void enterForeground()
      This method is called by the application to notify the linphone core library
      when it enters foreground mode.

    • fileFormatSupported

      boolean fileFormatSupported(@NonNull String fmt)
      Returns whether a specific file format is supported.

      see: linphone_core_get_supported_file_formats
      Parameters:
      fmt - The format extension (wav, mkv).
      Returns:
      true if the file format is supported, false otherwise
    • findAuthInfo

      @Nullable AuthInfo findAuthInfo(@Nullable String realm, @NonNull String username, @Nullable String sipDomain)
      Finds authentication info matching realm, username, domain criteria.

      First of all, (realm,username) pair are searched. If multiple results (which
      should not happen because realm are supposed to be unique), then domain is
      added to the search.
      Parameters:
      realm - the authentication 'realm' (optional)
      username - the SIP username to be authenticated (mandatory)
      sipDomain - the SIP domain name (optional)
      Returns:
      a AuthInfo if found.
    • findCallFromUri

      @Deprecated @Nullable Call findCallFromUri(@NonNull String uri)
      Deprecated.
      Search from the list of current calls if a remote address match uri.

      Parameters:
      uri - which should match call remote uri
      Returns:
      Call or null if no match is found.
    • findCallLog

      @Nullable CallLog findCallLog(@NonNull String callId, @NonNull int limit)
      Gets the call log matching the call id, or null if can't be found.

      Parameters:
      callId - Call id of the call log to find
      limit - Search limit of the most recent call logs to find
      Returns:
      A call log matching the call id if any.
    • findCallLogFromCallId

      @Nullable CallLog findCallLogFromCallId(@NonNull String callId)
      Gets the call log matching the call id, or null if can't be found.

      Parameters:
      callId - Call id of the call log to find
      Returns:
      A call log matching the call id if any.
    • findChatRoom

      @Deprecated @Nullable ChatRoom findChatRoom(@NonNull Address peerAddr, @NonNull Address localAddr)
      Find a chat room.

      No reference is transferred to the application. The Core keeps a
      reference on the chat room.
      Parameters:
      peerAddr - a linphone address.
      localAddr - a linphone address.
      Returns:
      ChatRoom where messaging can take place.
    • findConferenceInformationFromCcmpUri

      @Nullable ConferenceInfo findConferenceInformationFromCcmpUri(@NonNull String uri)
      Retrieve the conference information linked to the provided URI if any.

      Parameters:
      uri - Uri of the conference as provided by the CCMP server backend.
      Returns:
      The ConferenceInfo found if any, null otherwise.
    • findConferenceInformationFromUri

      @Nullable ConferenceInfo findConferenceInformationFromUri(@NonNull Address uri)
      Retrieve the conference information linked to the provided URI if any.

      Parameters:
      uri - Address of the uri.
      Returns:
      The ConferenceInfo found if any, null otherwise.
    • findContactsByChar

      @NonNull Address[] findContactsByChar(@NonNull String filter, boolean sipOnly)
      Retrieves a list of Address sort and filter.

      Parameters:
      filter - Chars used for the filter*
      sipOnly - Only sip address or not
      Returns:
      A list of filtered Address + the Address created with
      the filter.
    • findFriend

      @Nullable Friend findFriend(@NonNull Address address)
      Searches a Friend by its address.

      Parameters:
      address - The Address to use to search the friend.
      Returns:
      The Friend object corresponding to the given address or null if
      not found.
    • findFriendByPhoneNumber

      @Nullable Friend findFriendByPhoneNumber(@NonNull String phoneNumber)
      Searches a Friend by its phone number.

      Parameters:
      phoneNumber - The phone number to use to search the friend.
      Returns:
      The Friend object corresponding to the given phone number or
      null if not found.
    • findFriends

      @NonNull Friend[] findFriends(@NonNull Address address)
      Searches all Friend matching an address.

      Parameters:
      address - The address to use to search the friends.
      Returns:
      A list of Friend corresponding to the given address.
    • findOneToOneChatRoom

      @Deprecated @Nullable ChatRoom findOneToOneChatRoom(@NonNull Address localAddr, @NonNull Address participantAddr, boolean encrypted)
      Find a one to one chat room.

      No reference is transferred to the application. The Core keeps a
      reference on the chat room.
      Parameters:
      localAddr - a linphone address.
      participantAddr - a linphone address.
      encrypted - whether to look for an encrypted chat room or not
      Returns:
      ChatRoom where messaging can take place.
    • getAccountByIdkey

      @Nullable Account getAccountByIdkey(@Nullable String idkey)
      Search for a Account by it's idkey.

      Parameters:
      idkey - An arbitrary idkey string associated to an account.
      Returns:
      the Account object for the given idkey value, or null if none
      found
    • getCallByCallid

      @Nullable Call getCallByCallid(@NonNull String callId)
      Gets the call by its SIP callid.

      Parameters:
      callId - of call
      Returns:
      call Call, return null if there is no call find.
    • getCallByRemoteAddress

      @Deprecated @Nullable Call getCallByRemoteAddress(@NonNull String remoteAddress)
      Deprecated.
      Get the call with the remote_address specified.

      Parameters:
      remoteAddress - The remote address of the call that we want to get
      Returns:
      The call if it has been found, null otherwise.
    • getCallByRemoteAddress2

      @Nullable Call getCallByRemoteAddress2(@NonNull Address remoteAddress)
      Get the call with the specified Address.

      Parameters:
      remoteAddress - the Address for which the call remote address must
      match
      Returns:
      the Call of the call if found.
    • getCallHistory

      @NonNull CallLog[] getCallHistory(@NonNull Address peerAddress, @NonNull Address localAddress)
      Gets the list of call logs (past calls).

      At the contrary of linphone_core_get_call_logs, it is your responsibility to
      unref the logs and free this list once you are done using it. Requires
      ENABLE_DB_STORAGE to work.
      Parameters:
      peerAddress - The remote Address object.
      localAddress - The local Address object
      Returns:
      A list of CallLog.
    • getChatRoom

      @Deprecated @Nullable ChatRoom getChatRoom(@NonNull Address addr)
      Get a chat room whose peer is the supplied address.

      If it does not exist yet, it will be created as a basic chat room. No reference
      is transferred to the application. The Core keeps a reference on the
      chat room. warning: This method is prone to errors, use searchChatRoom(org.linphone.core.ChatRoomParams, org.linphone.core.Address, org.linphone.core.Address, org.linphone.core.Address[])
      instead
      Parameters:
      addr - a linphone address.
      Returns:
      ChatRoom where messaging can take place.
    • getChatRoom

      @Deprecated @Nullable ChatRoom getChatRoom(@NonNull Address peerAddr, @NonNull Address localAddr)
      Get a chat room.

      If it does not exist yet, it will be created as a basic chat room. No reference
      is transferred to the application. The Core keeps a reference on the
      chat room. warning: This method is prone to errors, use searchChatRoom(org.linphone.core.ChatRoomParams, org.linphone.core.Address, org.linphone.core.Address, org.linphone.core.Address[])
      instead
      Parameters:
      peerAddr - a linphone address.
      localAddr - a linphone address.
      Returns:
      ChatRoom where messaging can take place.
    • getChatRoomFromUri

      @Deprecated @Nullable ChatRoom getChatRoomFromUri(@NonNull String to)
      Get a chat room for messaging from a sip uri like sip:joe@sip.linphone.org.

      If it does not exist yet, it will be created as a basic chat room. No reference
      is transferred to the application. The Core keeps a reference on the
      chat room. warning: This method is prone to errors, use searchChatRoom(org.linphone.core.ChatRoomParams, org.linphone.core.Address, org.linphone.core.Address, org.linphone.core.Address[])
      instead
      Parameters:
      to - The destination address for messages.
      Returns:
      ChatRoom where messaging can take place.
    • getConferenceInformationListAfterTime

      @NonNull ConferenceInfo[] getConferenceInformationListAfterTime(long time)
      Retrieve the list of conference information on DB after a certain time.

      Parameters:
      time - Time to retrieve conference info.
      Returns:
      The list of conference infos .
    • getConferenceInformationsWithParticipant

      @NonNull ConferenceInfo[] getConferenceInformationsWithParticipant(@NonNull Address uri)
      Retrieve the list of conference information on DB where the address passed as
      argument is either the organizer or a participant.

      Parameters:
      uri - Address of the participant.
      Returns:
      The list of conference infos where the address passed as argument is
      either the organizer or a participant.
    • getFriendByRefKey

      @Nullable Friend getFriendByRefKey(@NonNull String key)
      Searches a Friend by its reference key.

      Parameters:
      key - The reference key to use to search the friend.
      Returns:
      The Friend object corresponding to the given reference key.
    • getFriendListByName

      @Nullable FriendList getFriendListByName(@NonNull String name)
      Retrieves the list of Friend from the core that has the given display
      name.

      Parameters:
      name - the name of the list
      Returns:
      the first FriendList object or null.
    • getPayloadType

      @Nullable PayloadType getPayloadType(@NonNull String type, int rate, int channels)
      Get payload type from mime type and clock rate.

      This function searches in audio and video codecs for the given payload type
      name and clockrate.
      Parameters:
      type - payload mime type (I.E "speex", "pcmu", "h264")
      rate - can be LINPHONE_FIND_PAYLOAD_IGNORE_RATE (-1)
      channels - number of channels, can be
      LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS (-1)
      Returns:
      Returns null if not found. If a PayloadType is returned, it
      must be released with linphone_payload_type_unref after using it.
    • getProxyConfigByIdkey

      @Deprecated @Nullable ProxyConfig getProxyConfigByIdkey(String idkey)
      Deprecated.
      Searches for a ProxyConfig by it's idkey.

      Parameters:
      idkey - An arbitrary idkey string associated to a proxy configuration
      Returns:
      the ProxyConfig object for the given idkey value, or null if
      none found
    • getZrtpStatus

      ZrtpPeerStatus getZrtpStatus(@NonNull String addr)
      Get the zrtp sas validation status for a peer uri.

      Once the SAS has been validated or rejected, the status will never return to
      Unknown (unless you delete your cache)
      Parameters:
      addr - the peer uri
      Returns:
      - LinphoneZrtpPeerStatusUnknown: this uri is not present in cache OR
      during calls with the active device, SAS never was validated or rejected
    • hasBuiltinEchoCanceller

      boolean hasBuiltinEchoCanceller()
      Check whether the device has a hardware echo canceller.

      Returns:
      true if it does, false otherwise
    • hasCrappyOpengl

      boolean hasCrappyOpengl()
      Check whether the device is flagged has crappy opengl.

      Returns:
      true if crappy opengl flag is set, false otherwise
    • inCall

      boolean inCall()
      Tells whether there is a call running.

      Returns:
      A boolean value telling whether a call is currently running or not
    • interpretUrl

      @Deprecated @Nullable Address interpretUrl(@NonNull String url)
      Deprecated.
      on 18/07/2022, use interpretUrl(java.lang.String) instead.
      Constructs a Address from the given string if possible.

      In case of just a username, characters will be unescaped. If a phone number is
      detected, it will be flattened. sip: or sips: prefix will be added if not
      present. Finally, @domain will be added if not present using default proxy
      config. see: ProxyConfig.normalizeSipUri(java.lang.String) for documentation.
      Parameters:
      url - the url to parse
      Returns:
      the Address matching the url or null in case of failure.
    • interpretUrl

      @Nullable Address interpretUrl(@NonNull String url, boolean applyInternationalPrefix)
      Constructs a Address from the given string if possible.

      In case of just a username, characters will be unescaped. If a phone number is
      detected, it will be flattened. sip: or sips: prefix will be added if not
      present. Finally, @domain will be added if not present using the default
      #Account. see: Account.normalizeSipUri(java.lang.String) for a similar function.
      Parameters:
      url - the url to parse
      applyInternationalPrefix - whether or not to try to format url as phone
      number using default account prefix if it set (and if url is a number).
      Returns:
      the Address matching the url or null in case of failure.
    • invite

      @Nullable Call invite(@NonNull String url)
      Initiates an outgoing call.

      The application doesn't own a reference to the returned LinphoneCall object.
      Use linphone_call_ref to safely keep the LinphoneCall pointer valid within your
      application.
      Parameters:
      url - The destination of the call (sip address, or phone number).
      Returns:
      A Call object or null in case of failure.
    • inviteAddress

      @Nullable Call inviteAddress(@NonNull Address addr)
      Initiates an outgoing call given a destination Address The Address
      can be constructed directly using Factory.createAddress(java.lang.String), or created by
      interpretUrl(java.lang.String).

      In C, the application doesn't own a reference to the returned Call
      object. Use linphone_call_ref to safely keep the Call pointer valid
      within your application.
      Parameters:
      addr - The destination of the call (sip address).
      Returns:
      A Call object or null in case of failure.
    • inviteAddressWithParams

      @Nullable Call inviteAddressWithParams(@NonNull Address addr, @NonNull CallParams params)
      Initiates an outgoing call given a destination Address The Address
      can be constructed directly using Factory.createAddress(java.lang.String), or created by
      interpretUrl(java.lang.String).

      In C, the application doesn't own a reference to the returned Call
      object. Use linphone_call_ref to safely keep the Call pointer valid
      within your application. If the Account is not specified in parameters,
      the caller's account will be automatically selected by finding what is the best
      to reach the destination of the call.
      Parameters:
      addr - The destination of the call (sip address).
      params - Call parameters
      Returns:
      A Call object or null in case of failure.
    • inviteAddressWithParams

      @Nullable Call inviteAddressWithParams(@NonNull Address addr, @NonNull CallParams params, @Nullable String subject, @Nullable Content content)
      Initiates an outgoing call given a destination Address The Address
      can be constructed directly using Factory.createAddress(java.lang.String), or created by
      interpretUrl(java.lang.String).

      In C, the application doesn't own a reference to the returned Call
      object. Use linphone_call_ref to safely keep the Call pointer valid
      within your application. If the Account is not specified in parameters,
      the caller's account will be automatically selected by finding what is the best
      to reach the destination of the call.
      Parameters:
      addr - The destination of the call (sip address).
      params - Call parameters
      subject - Subject of the call, UTF-8 encoded
      content - Body of the SIP INVITE
      Returns:
      A Call object or null in case of failure.
    • inviteWithParams

      @Nullable Call inviteWithParams(@NonNull String url, @NonNull CallParams params)
      Initiates an outgoing call according to supplied call parameters In C, the
      application doesn't own a reference to the returned Call object.

      Use linphone_call_ref to safely keep the Call pointer valid within your
      application.
      Parameters:
      url - The destination of the call (sip address, or phone number).
      params - the CallParams call parameters
      Returns:
      A Call object or null in case of failure.
    • isContentTypeSupported

      boolean isContentTypeSupported(@NonNull String contentType)
      Tells whether a content type is supported.

      Parameters:
      contentType - The content type to check
      Returns:
      A boolean value telling whether the specified content type is supported
      or not.
    • isMediaEncryptionSupported

      boolean isMediaEncryptionSupported(MediaEncryption menc)
      Checks if given media encryption is supported.

      Parameters:
      menc - The media encryption policy to be used.
      Returns:
      true if the media encryption is supported, false otherwise
    • isMediaFilterSupported

      boolean isMediaFilterSupported(@NonNull String filtername)
      Checks if the given media filter is loaded and usable.

      This is for advanced users of the library, mainly to expose mediastreamer video
      filter status.
      Parameters:
      filtername - the filter name
      Returns:
      true if the filter is loaded and usable, false otherwise
    • isPluginLoaded

      boolean isPluginLoaded(@NonNull String name)
      Tells whether a plugin is loaded or not.

      Parameters:
      name - name of the plugin
      Returns:
      A boolean value telling whether the plugin has been loaded
    • iterate

      void iterate()
      Main loop integration.

      Unless auto-iterate mode is provided ( see #enableAutoIterate ), it is
      crucial that your application calls iterate() repeatedly.
      iterate() performs various backgrounds tasks:
    • ldapAvailable

      boolean ldapAvailable()
      End of group contacts.

      Tells if LDAP is available
      Returns:
      true if LDAP is available, false otherwise
    • leaveConference

      @Deprecated int leaveConference()
      Deprecated.
      09/03/2021 Use Conference.leave() instead.
      Makes the local participant leave the running conference.

      Returns:
      0 if succeeded. Negative number if failed
    • limeX3DhAvailable

      boolean limeX3DhAvailable()
      Tells if LIME X3DH is available.

    • loadConfigFromXml

      void loadConfigFromXml(@NonNull String xmlUri)
      Update current config with the content of a xml config file.

      Parameters:
      xmlUri - the path to the xml file
    • mediaEncryptionSupported

      boolean mediaEncryptionSupported(MediaEncryption menc)
      Checks if a media encryption type is supported.

      Parameters:
      menc - MediaEncryption
      Returns:
      whether a media encryption scheme is supported by the Core
      engine
    • migrateLogsFromRcToDb

      void migrateLogsFromRcToDb()
      Migrates the call logs from the linphonerc to the database if not done yet.

    • notifyAllFriends

      void notifyAllFriends(@NonNull PresenceModel presence)
      Notifies all friends that have subscribed.

      Parameters:
      presence - PresenceModel to notify
    • notifyNotifyPresenceReceived

      void notifyNotifyPresenceReceived(@NonNull Friend linphoneFriend)
      Notifies the upper layer that a presence status has been received by calling
      the appropriate callback if one has been set.

      This method is for advanced usage, where customization of the liblinphone's
      internal behavior is required.
      Parameters:
      linphoneFriend - the Friend whose presence information has been
      received.
    • notifyNotifyPresenceReceivedForUriOrTel

      void notifyNotifyPresenceReceivedForUriOrTel(@NonNull Friend linphoneFriend, @NonNull String uriOrTel, @NonNull PresenceModel presenceModel)
      Notifies the upper layer that a presence model change has been received for the
      uri or telephone number given as a parameter, by calling the appropriate
      callback if one has been set.

      This method is for advanced usage, where customization of the liblinphone's
      internal behavior is required.
      Parameters:
      linphoneFriend - the Friend whose presence information has been
      received.
      uriOrTel - telephone number or sip uri
      presenceModel - the PresenceModel that has been modified
    • pauseAllCalls

      int pauseAllCalls()
      Pauses all currently running calls.

      Returns:
      0
    • playDtmf

      void playDtmf(char dtmf, int durationMs)
      Plays a dtmf sound to the local user.

      Parameters:
      dtmf - DTMF to play ['0'..'16'] | '#' | '#'
      durationMs - Duration in ms, -1 means play until next further call to
      stopDtmf()
    • playLocal

      int playLocal(@NonNull String audiofile)
      Plays an audio file to the local user.

      This function works at any time, during calls, or when no calls are running. It
      doesn't request the underlying audio system to support multiple playback
      streams.
      Parameters:
      audiofile - The path to an audio file in wav PCM 16 bit format
      Returns:
      0 on success, -1 on error
    • preemptSoundResources

      int preemptSoundResources()
      Empties sound resources to allow a new call to be accepted.

      This function is autyomatically called by the core if the media resource mode
      is set to unique.
      Returns:
      An integer returning the exit value. If it is 0, sound resources have
      been emptied. Otherwise, sound resources are busy and cannot be freed
      immediately.
    • previewOglRender

      void previewOglRender()
      Call generic OpenGL render for a given core.

    • processPushNotification

      void processPushNotification(@Nullable String callId)
      Call this method when you receive a push notification (if you handle push
      notifications manually).

      It will ensure the proxy configs are correctly registered to the proxy server,
      so the call or the message will be correctly delivered.
      Parameters:
      callId - the Call-ID of the MESSAGE or INVITE for which the push was
      received and to wait for.
    • publish

      @Nullable Event publish(@NonNull Address resource, @NonNull String event, int expires, @NonNull Content body)
      Publishes an event state.

      This first create a Event with createPublish(org.linphone.core.Address, java.lang.String, int) and calls Event.sendPublish(org.linphone.core.Content)
      to actually send it. After expiry, the publication is refreshed unless it is
      terminated before.
      Parameters:
      resource - the resource uri for the event
      event - the event name
      expires - the lifetime of event being published, -1 if no associated
      duration, in which case it will not be refreshed.
      body - the actual published data
      Returns:
      the Event holding the context of the publish.
    • refreshRegisters

      void refreshRegisters()
      Forces registration refresh to be initiated upon next iterate.

    • rejectSubscriber

      void rejectSubscriber(@NonNull Friend linphoneFriend)
      Parameters:
      linphoneFriend - Friend to reject
    • reloadMsPlugins

      void reloadMsPlugins(@Nullable String path)
      Reload mediastreamer2 plugins from specified directory.

      Parameters:
      path - the path from where plugins are to be loaded, pass null to use
      default (compile-time determined) plugin directory.
    • reloadSoundDevices

      void reloadSoundDevices()
      Update detection of sound devices.

      Use this function when the application is notified of USB plug events, so that
      list of available hardwares for sound playback and capture is updated.
    • reloadVideoDevices

      void reloadVideoDevices()
      Update detection of camera devices.

      Use this function when the application is notified of USB plug events, so that
      list of available hardwares for video capture is updated.
    • removeAccount

      void removeAccount(@NonNull Account account)
      Removes an account.

      Core will then automatically unregister and place the account on a
      deleted list. For that reason, a removed account does NOT need to be freed.
      Parameters:
      account - the Account to remove
    • removeAuthInfo

      void removeAuthInfo(@NonNull AuthInfo info)
      Removes an authentication information object.

      Parameters:
      info - The AuthInfo to remove.
    • removeCallLog

      void removeCallLog(@NonNull CallLog callLog)
      Removes a specific call log from call history list.

      This function destroys the call log object. It must not be accessed anymore by
      the application after calling this function.
      Parameters:
      callLog - CallLog object to remove.
    • removeContentTypeSupport

      void removeContentTypeSupport(@NonNull String contentType)
      Remove support for the specified content type.

      It is the application responsibility to handle it correctly afterwards.
      Parameters:
      contentType - The content type to remove support for
    • removeFriendList

      void removeFriendList(@NonNull FriendList list)
      Removes a friend list.

      Parameters:
      list - FriendList object
    • removeFromConference

      @Deprecated int removeFromConference(@NonNull Call call)
      Deprecated.
      Removes a call from the conference.

      Parameters:
      call - a call that has been previously merged into the conference.
      After removing the remote participant belonging to the supplied call, the call
      becomes a normal call in paused state. If one single remote participant is left
      alone together with the local user in the conference after the removal, then
      the conference is automatically transformed into a simple call in
      StreamsRunning state. The conference's resources are then automatically
      destroyed.
      In other words, unless leaveConference() is explicitly called, the last
      remote participant of a conference is automatically put in a simple call in
      running state.
      Returns:
      0 if successful, -1 otherwise.
    • removeLdap

      @Deprecated void removeLdap(@NonNull Ldap ldap)
      Remove a LDAP from the configuration.

      Parameters:
      ldap - The LDAP to remove.
    • removeLinphoneSpec

      void removeLinphoneSpec(@NonNull String spec)
      Remove the given linphone specs from the list of functionalities the linphone
      client supports.

      see: setLinphoneSpecsList(java.lang.String[])
      Parameters:
      spec - The spec to remove
    • removeProxyConfig

      @Deprecated void removeProxyConfig(@NonNull ProxyConfig config)
      Deprecated.
      Removes a proxy configuration.

      Core will then automatically unregister and place the proxy
      configuration on a deleted list. For that reason, a removed proxy does NOT need
      to be freed.
      Parameters:
      config - the ProxyConfig to remove
    • removeRemoteContactDirectory

      void removeRemoteContactDirectory(@NonNull RemoteContactDirectory remoteContactDirectory)
      Removes a RemoteContactDirectory object previously added to the Core.

      Parameters:
      remoteContactDirectory - the RemoteContactDirectory to remove.
    • removeSupportedTag

      void removeSupportedTag(@NonNull String tag)
      Remove a supported tag.

      Parameters:
      tag - The tag to remove
      see: addSupportedTag(java.lang.String)
    • resetEchoCancellationCalibration

      void resetEchoCancellationCalibration()
      Clears all state resulting from a previous echo canceller calibration
      procedure, which restores default policy and settings for echo cancellation.

      see: #enableEchoCancellation and startEchoCancellerCalibration()
    • resetMissedCallsCount

      void resetMissedCallsCount()
      Resets the counter of missed calls.

    • searchChatRoom

      @Deprecated @Nullable ChatRoom searchChatRoom(@Nullable ChatRoomParams params, @Nullable Address localAddr, @Nullable Address remoteAddr, @Nullable Address[] participants)
      Find a chat room.

      Parameters:
      params - The chat room parameters to match ChatRoomParams or null

      localAddr - Address of a local Account identity or null
      remoteAddr - Address to search for or null
      participants - The participants that must be present in the chat room to
      find.
      Returns:
      A matching chat room or null if none matches.
    • searchChatRoom

      @Nullable ChatRoom searchChatRoom(@Nullable ConferenceParams params, @Nullable Address localAddr, @Nullable Address remoteAddr, @Nullable Address[] participants)
      Find a chat room.

      Parameters:
      params - The chat room parameters to match ChatRoomParams or null

      localAddr - Address of a local Account identity or null
      remoteAddr - Address to search for or null
      participants - The participants that must be present in the chat room to
      find.
      Returns:
      A matching chat room or null if none matches.
    • searchChatRoomByIdentifier

      @Nullable ChatRoom searchChatRoomByIdentifier(@NonNull String identifier)
      Find a chat room by its identifier.

      Parameters:
      identifier - The chat room identifier
      Returns:
      A matching chat room or null if none matches.
    • searchConference

      @Nullable Conference searchConference(@Nullable ConferenceParams params, @Nullable Address localAddr, @Nullable Address remoteAddr, @Nullable Address[] participants)
      Find a conference.

      Parameters:
      params - The conference parameters to match ConferenceParams or
      null
      localAddr - Address representing the local proxy configuration or
      null
      remoteAddr - Address to search for or null
      participants - The participants that must be present in the chat room to
      find
      Returns:
      A pointer on Conference satisfying the non-null function
      arguments or null if none matches
    • searchConference

      @Nullable Conference searchConference(@NonNull Address conferenceAddr)
      Finds a conference.

      Parameters:
      conferenceAddr - Address representing the conference address
      Returns:
      A pointer on Conference whose conference address is the one
      provided as argument or null if none matches
    • searchConferenceByIdentifier

      @Nullable Conference searchConferenceByIdentifier(@NonNull String identifier)
      Find a conference by its identifier.

      Parameters:
      identifier - The conference identifier
      Returns:
      A matching conference or null if none matches.
    • setAudioPortRange

      void setAudioPortRange(int minPort, int maxPort)
      Sets the UDP port range from which to randomly select the port used for audio
      streaming.

      Parameters:
      minPort - The lower bound of the audio port range to use
      maxPort - The upper bound of the audio port range to use
    • setQrcodeDecodeRect

      void setQrcodeDecodeRect(int x, int y, int w, int h)
      Set the rectangle where the decoder will search a QRCode.

      Parameters:
      x - axis
      y - axis
      w - width
      h - height
    • setRefreshWindow

      void setRefreshWindow(int minValue, int maxValue)
      Set the refresh window.

      During this window, belle-sip schedules the refreshes of the sip messages
      Parameters:
      minValue - lower bound of the refresh window
      maxValue - upper bound of the refresh window
      warning: The refresh window must be set before starting the core
    • setTextPortRange

      void setTextPortRange(int minPort, int maxPort)
      Sets the UDP port range from which to randomly select the port used for text
      streaming.

      Parameters:
      minPort - The lower bound of the text port range to use
      maxPort - The upper bound of the text port range to use
    • setTone

      void setTone(ToneID toneId, @Nullable String audiofile)
      Assign an audio file to be played as a specific tone id.

      This function typically allows to customize telephony tones per country.
      If you want to disable a tone, set a path to a non-existent file. To disable
      all tones, use #enableCallToneIndications or set the tone_indications
      to 0 in the [misc] section of your linphonerc.
      Parameters:
      toneId - the #LinphoneToneId
      audiofile - a wav file to be played or null to use the default (generated)
      one.
    • setUserAgent

      void setUserAgent(@Nullable String name, @Nullable String version)
      Set the user agent string used in SIP messages.

      Set the user agent string used in SIP messages as "[ua_name]/[version]". No
      slash character will be printed if null is given to "version". If null is given
      to "ua_name" and "version" both, the User-agent header will be empty.
      This function should be called just after linphone_factory_create_core ideally.
      Parameters:
      name - Name of the user agent.
      version - Version of the user agent.
    • setVideoPortRange

      void setVideoPortRange(int minPort, int maxPort)
      Sets the UDP port range from which to randomly select the port used for video
      streaming.

      Parameters:
      minPort - The lower bound of the video port range to use
      maxPort - The upper bound of the video port range to use
    • soundDeviceCanCapture

      @Deprecated boolean soundDeviceCanCapture(@NonNull String device)
      Deprecated.
      08/07/2020 use AudioDevice API instead()
      Tells whether a specified sound device can capture sound.

      Parameters:
      device - the device name as returned by linphone_core_get_sound_devices
      Returns:
      A boolean value telling whether the specified sound device can capture
      sound
    • soundDeviceCanPlayback

      @Deprecated boolean soundDeviceCanPlayback(@NonNull String device)
      Deprecated.
      08/07/2020 use AudioDevice API instead()
      Tells whether a specified sound device can play sound.

      Parameters:
      device - the device name as returned by linphone_core_get_sound_devices
      Returns:
      A boolean value telling whether the specified sound device can play
      sound
    • soundResourcesLocked

      boolean soundResourcesLocked()
      Checks if a call will need the sound resources in near future (typically an
      outgoing call that is awaiting response).

      In liblinphone, it is not possible to have two independant calls using sound
      device or camera at the same time. In order to prevent this situation, an
      application can use soundResourcesLocked() to know whether it is
      possible at a given time to start a new outgoing call. When the function
      returns true, an application should not allow the user to start an outgoing
      call.
      Returns:
      A boolean value telling whether a call will need the sound resources in
      near future
    • start

      int start()
      Starts a Core object after it has been instantiated and not
      automatically started.

      Also re-initialize a Core object that has been stopped using stop()
      . Must be called only if GlobalState is either Ready of Off. State will
      changed to Startup, Configuring and then On.
      Returns:
      0: success, -1: global failure, -2: could not connect database
    • startEchoCancellerCalibration

      int startEchoCancellerCalibration()
      Starts an echo calibration of the sound devices, in order to find adequate
      settings for the echo canceler automatically.

      Returns:
      LinphoneStatus whether calibration has started or not.
    • startEchoTester

      int startEchoTester(int rate)
      Start the simulation of call to test the latency with an external device.

      Parameters:
      rate - Sound sample rate.
      Returns:
      -1 in case of failure, 1 otherwise.
    • stop

      void stop()
      Stops a Core object after it has been instantiated and started.

      If stopped, it can be started again using start(). Must be called only
      if GlobalState is either On. State will changed to Shutdown and then
      Off. This function may block to perform SIP server unregistration. Using stopAsync()
      is preferred.
    • stopAsync

      void stopAsync()
      Asynchronously stops a Core object after it has been instantiated and
      started.

      State changes to Shutdown then iterate() must be called to allow the
      Core to end asynchronous tasks (terminate call, etc.). When all tasks are
      finished, State will change to Off. Must be called only if GlobalState
      is On. When GlobalState is Off Core can be started again using
      start().
    • stopDtmf

      void stopDtmf()
      Stops playing a dtmf started by playDtmf(char, int).

    • stopEchoTester

      int stopEchoTester()
      Stop the simulation of call.

    • stopRinging

      void stopRinging()
      Whenever the liblinphone is playing a ring to advertise an incoming call or
      ringback of an outgoing call, this function stops the ringing.

      Typical use is to stop ringing when the user requests to ignore the call.
    • subscribe

      @NonNull Event subscribe(@NonNull Address resource, @NonNull String event, int expires, @Nullable Content body)
      Creates and send an outgoing subscription, specifying the destination resource,
      the event name, and an optional content body.

      If accepted, the subscription runs for a finite period, but is automatically
      renewed if not terminated before.
      Parameters:
      resource - the destination resource
      event - the event name
      expires - the whished duration of the subscription
      body - an optional body, may be null.
      Returns:
      a Event holding the context of the created subcription.
    • takePreviewSnapshot

      int takePreviewSnapshot(@NonNull String file)
      Takes a photo of currently from capture device 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:
      file - a path where to write the jpeg content.
      Returns:
      0 if successful, -1 otherwise (typically if jpeg format is not
      supported).
    • terminateAllCalls

      int terminateAllCalls()
      Terminates all the calls.

      Returns:
      0
    • terminateConference

      @Deprecated int terminateConference()
      Deprecated.
      23/01/2025 Use Conference.terminate() instead.
      Terminates the running conference.

      If it is a local conference, all calls inside it will become back separate
      calls and will be put in #LinphoneCallPaused state. If it is a conference
      involving a focus server, all calls inside the conference will be terminated.
      Returns:
      0 if succeeded. Negative number if failed
    • uploadLogCollection

      void uploadLogCollection()
      Uploads the log collection to the configured server url.

    • usePreviewWindow

      void usePreviewWindow(boolean yesno)
      Tells the core to use a separate window for local camera preview video, instead
      of inserting local view within the remote video window.

      Parameters:
      yesno - true to use a separate window, false to insert the preview in the
      remote video window.
    • verifyServerCertificates

      void verifyServerCertificates(boolean yesno)
      Specify whether the tls server certificate must be verified when connecting to
      a SIP/TLS server.

      Parameters:
      yesno - A boolean value telling whether the tls server certificate must be
      verified
    • verifyServerCn

      void verifyServerCn(boolean yesno)
      Specify whether the tls server certificate common name must be verified when
      connecting to a SIP/TLS server.

      Parameters:
      yesno - A boolean value telling whether the tls server certificate common
      name must be verified
    • videoSupported

      boolean videoSupported()
      Test if video is supported.

      Returns:
      true if the library was built with video support, false otherwise
    • compressLogCollection

      @NonNull String compressLogCollection()
      Compresses the log collection in a single file.

      Returns:
      The path of the compressed log collection file.
    • enableLogCollection

      void enableLogCollection(LogCollectionState state)
      Enables the linphone core log collection to upload logs on a server.

      Parameters:
      state - LogCollectionState value telling whether to enable log
      collection or not.
    • getLogCollectionMaxFileSize

      @NonNull int getLogCollectionMaxFileSize()
      Gets the max file size in bytes of the files used for log collection.

      Returns:
      The max file size in bytes of the files used for log collection.
    • getLogCollectionPath

      @NonNull String getLogCollectionPath()
      Gets the path where the log files will be written for log collection.

      Returns:
      The path where the log files will be written.
    • getLogCollectionPrefix

      @NonNull String getLogCollectionPrefix()
      Gets the prefix of the filenames that will be used for log collection.

      Returns:
      The prefix of the filenames used for log collection.
    • getPostQuantumAvailable

      boolean getPostQuantumAvailable()
      Are PostQuantum algoritms available.

      Returns:
      true if Post Quantum algorithms are available false otherwise
    • getVersion

      @NonNull String getVersion()
      Returns liblinphone's version as a string.

      Returns:
      the current version of the Core
    • logCollectionEnabled

      LogCollectionState logCollectionEnabled()
      Tells whether the linphone core log collection is enabled.

      Returns:
      The LogCollectionState of the Core log collection.
    • resetLogCollection

      void resetLogCollection()
      Resets the log collection by removing the log files.

    • serializeLogs

      void serializeLogs()
      Enables logs serialization (output logs from either the thread that creates the
      linphone core or the thread that calls iterate()).

      Must be called before creating the Core.
    • setLogCollectionMaxFileSize

      void setLogCollectionMaxFileSize(int size)
      Sets the max file size in bytes of the files used for log collection.

      Warning: this function should only not be used to change size dynamically but
      instead only before calling enableLogCollection(org.linphone.core.LogCollectionState). If you increase max
      size on runtime, logs chronological order COULD be broken.
      Parameters:
      size - The max file size in bytes of the files used for log collection.
    • setLogCollectionPath

      void setLogCollectionPath(@NonNull String path)
      Sets the path of a directory where the log files will be written for log
      collection.

      When log collection is enabled, the function will close the file with the
      current prefix in the old path and it will open the new file with current
      prefix in the new path. If you need to change the path and the file at the same
      time, then you should deactivate log collection with enableLogCollection(org.linphone.core.LogCollectionState)
      before doing modifications.
      Parameters:
      path - The path where the log files will be written.
    • setLogCollectionPrefix

      void setLogCollectionPrefix(@NonNull String prefix)
      Sets the prefix of the filenames that will be used for log collection.

      When log collection is enabled, the function will close the old file and it
      will open the new one in the current path. If you need to change the path and
      the file at the same time, then you should deactivate log collection with
      enableLogCollection(org.linphone.core.LogCollectionState) before doing modifications.
      Parameters:
      prefix - The prefix to use for the filenames for log collection.
    • tunnelAvailable

      boolean tunnelAvailable()
      True if tunnel extension was compiled.

      Returns:
      true if library was built with tunnel, false otherwise
    • upnpAvailable

      boolean upnpAvailable()
      Return the availability of uPnP.

      Returns:
      true if uPnP is available otherwise return false.
      warning: UPNP support has been removed, and proved to be useless.
    • vcardSupported

      boolean vcardSupported()
      Tells whether VCARD support is builtin.

      Returns:
      true if VCARD is supported, false otherwise.
    • addListener

      void addListener(CoreListener listener)
    • removeListener

      void removeListener(CoreListener 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