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()
      Get the AccountCreator backend set for the Core.

      Returns:
      The AccountCreator#Backend
    • setAccountCreatorBackend

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

      Parameters:
      backend - The AccountCreator#Backend
    • getAccountCreatorUrl

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

      Returns:
      url The URL to reach.
    • setAccountCreatorUrl

      void setAccountCreatorUrl(@Nullable String url)
      Set 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)
      Enable 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)
      Enable 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)
      Enable or disable the audio adaptive 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()
      Get 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)
      Set the DSCP field for outgoing audio streams.

      The DSCP defines the quality of service in IP packets.
      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()
      Return the list of the available audio payload types.

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

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

      Parameters:
      payloadTypes - The new list of payload types. The core does not take
      ownership on it.
    • 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 auto download for incoming icalendars is enabled or not.

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

      void setAutoDownloadIcalendarsEnabled(boolean autoDownloadIcalendars)
      Auto download files attach 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)
      Auto download files attach 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()
      Return AVPF enablement.

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

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

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

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

      Returns:
      The current AVPF report interval in seconds
    • setAvpfRrInterval

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

      This value can be overriden by the proxy config using ProxyConfig.setAvpfRrInterval(int)
      .
      Parameters:
      interval - The report interval in seconds
    • 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 tine call parameters are created.
      This feature can also be enabled per-call using CallParams.
    • 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()
      Get 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
    • isCapabilityNegociationEnabled

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

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

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

    • isCapabilityNegotiationReinviteEnabled

      boolean isCapabilityNegotiationReinviteEnabled()
      Check 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)
      Define whether capability negotiation (RFC5939) reINVITE is enabled.

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

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

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

      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()
      Check 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)
      Define 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()
      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.

      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.
    • getConference

      @Deprecated @Nullable Conference getConference()
      Get a pointer on the internal conference object.

      Returns:
      A pointer on Conference or null if no conference are going on.

    • 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

      float getConferenceLocalInputVolume()
      Get the set input volume of the local participant.

      Returns:
      A value inside [0.0 ; 1.0]
    • 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)
      Select 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)
      Enable the conference server feature.

      This has the effect to listen of the conference factory uri to create new
      conferences when receiving INVITE messages there.
      Parameters:
      enable - A boolean value telling whether to enable or disable the
      conference server feature
    • getConferenceSize

      @Deprecated int getConferenceSize()
      Deprecated.
      16/04/2021 Use Conference.getParticipantCount() instead.
      Get the number of participants including me, if it in, in the running
      conference.

      The local participant is included in the count only if it is in the conference.
      Returns:
      The number of participants including me, if it in.
    • getConfig

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

      Returns:
      a Config object.
    • getConsolidatedPresence

      ConsolidatedPresence getConsolidatedPresence()
      Get my consolidated presence.

      Returns:
      My ConsolidatedPresence presence
    • setConsolidatedPresence

      void setConsolidatedPresence(ConsolidatedPresence presence)
      Set my consolidated presence.

      Parameters:
      presence - ConsolidatedPresence value
    • getCurrentCall

      @Nullable Call getCurrentCall()
      Gets the current call.

      Returns:
      The current call or null if no call is running.
    • getCurrentCallRemoteAddress

      @Nullable Address getCurrentCallRemoteAddress()
      Get 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)
    • 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 use the identity
      associated with the account in all incoming and outgoing calls.
      Parameters:
      account - The account to use as the default one.
    • getDefaultConferenceLayout

      Conference.Layout getDefaultConferenceLayout()
      Gets the default conference layout @core core the linphone core.

      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 @core core the
      linphone core.

      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

      @Nullable ProxyConfig getDefaultProxyConfig()
      Returns the default proxy configuration, that is the one used to determine the
      current identity.

      Returns:
      The default proxy configuration.
    • setDefaultProxyConfig

      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()
      Get 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

      int getDelayedTimeout()
      Gets the delayed timeout See setDelayedTimeout(int) for details.

      Returns:
      The current delayed timeout in seconds
    • setDelayedTimeout

      void setDelayedTimeout(int seconds)
      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.

      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.

      Setup a new digest authentication policy applicable for SIP and HTTP.
      Parameters:
      policy - a DigestAuthenticationPolicy
    • 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.

      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 infinite
    • setDownloadBandwidth

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

      This information is used 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.
      Parameters:
      bandwidth - the bandwidth in kbits/s, 0 for infinite
    • 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 disable 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()
      Get the name of the mediastreamer2 filter used for echo cancelling.

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

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

      This is for advanced users of the library.
      Parameters:
      filtername - The name of the mediastreamer2 filter to be used for echo
      cancelling.
    • 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.
    • setEnableSipUpdate

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

      Parameters:
      value - Enable or disable it
    • setExpectedBandwidth

      void setExpectedBandwidth(int bandwidth)
      Sets expected 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.
      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
    • getFileTransferServer

      @Nullable String getFileTransferServer()
      Get 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 set 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_proxy_config_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

      @Nullable String getFriendsDatabasePath()
      Gets the database filename where friends will be stored.

      Returns:
      filesystem path.
    • setFriendsDatabasePath

      void setFriendsDatabasePath(@Nullable String path)
      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()
      Get 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)
      Set 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()
      Get http proxy port to be used for signaling.

      Returns:
      port of the http proxy.
    • setHttpProxyPort

      void setHttpProxyPort(int port)
      Set 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()
      Get the ImNotifPolicy object controlling the instant messaging
      notifications.

      Returns:
      A ImNotifPolicy object.
    • getInCallTimeout

      int getInCallTimeout()
      Gets the in call timeout See setInCallTimeout(int) for details.

      Returns:
      The current in call timeout in seconds
    • setInCallTimeout

      void setInCallTimeout(int seconds)
      Set the in call timeout 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)
      Set 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
      see: #enableIpv6 for more details on how IPv6 is supported in
      liblinphone.
    • 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
    • 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(). @return 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()
      Check 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 forward 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 LinphoneCore objects, (such as a test), it is useful to enhance
      the log's readability'.
      Parameters:
      label - a developper-friendly label.
    • getLastOutgoingCallLog

      @Nullable CallLog getLastOutgoingCallLog()
      Get 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

      @NonNull Ldap[] getLdapList()
      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.

      Returns:
      A list of supported specs. The list must be freed with
      bctbx_list_free() after usage.
    • setLinphoneSpecsList

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

      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)
      Set 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.

    • getMaxCalls

      int getMaxCalls()
      Get 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:
      max number of simultaneous calls
    • setMaxCalls

      void setMaxCalls(int max)
      Set 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()
      Get the media encryption policy being used for RTP packets.

      Returns:
      The MediaEncryption policy being used.
    • setMediaEncryption

      int setMediaEncryption(MediaEncryption menc)
      Choose the media encryption policy 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)
      Define 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 acepting 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)
      Enable or disable 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()
      Get 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
      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.
      12/10/2022
      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 conjonction 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 (#HWND type).
      The CSharp 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 linphone_core_set_video_display_filter. Setting
      window id is only used to stop rendering by passing
      LINPHONE_VIDEO_DISPLAY_NONE. getNativeVideoWindowId() returns a
      #QQuickFramebufferObject::Renderer and createNativeVideoWindowId()
      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
    • 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

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

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

      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()
      Get 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()
      Get my presence model.

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

      void setPresenceModel(@Nullable PresenceModel presence)
      Set 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 proxy configuration is used.

      Returns:
      the primary contact identity
    • setPrimaryContact

      int setPrimaryContact(@NonNull String contact)
      Sets the local "from" identity.

      This data is used in absence of any proxy configuration or when no default
      proxy configuration is set. See ProxyConfig
      Parameters:
      contact - the contact to set
      Returns:
      0 if successful, -1 otherwise
    • 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)
      Set URI where to download xml configuration file at startup.

      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 remote URI will take place at next Core start.
      Parameters:
      uri - the http or https uri to use in order to download 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

      @NonNull ProxyConfig[] getProxyConfigList()
      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)
      Configure 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)
      Enable or disable 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 enablement.

      Parameters:
      enable - A boolean value telling whether the QRCode is enabled in the
      preview.
    • isRealtimeTextEnabled

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

      Returns:
      true if realtime text is enabled, false otherwise
    • 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 recording.

      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.
    • 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()
      Tells whether NACK context is enabled or not.

      Returns:
      A boolean value telling whether NACK context is enabled or not
    • setRetransmissionOnNackEnabled

      void setRetransmissionOnNackEnabled(boolean enable)
      Turns NACK context on or off.

      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
      .
      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.

      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

      void setSelfViewEnabled(boolean enable)
      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)
      Enable whether or not to hide sender name in forward message.

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

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

    • 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.

    • setSessionExpiresMinValue

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

    • getSessionExpiresRefresherValue

      SessionExpiresRefresher getSessionExpiresRefresherValue()
      Returns the session expires 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.

    • setSessionExpiresValue

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

    • getSipDscp

      int getSipDscp()
      Get 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)
      Set the DSCP field for SIP signaling channel.

      The DSCP defines the quality of service in IP packets.
      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()
      Get 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)
      Set 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()
      Get the crypto suites available to the core.

      Returns:
      a comma separated list of supported suites
    • setSrtpCryptoSuites

      void setSrtpCryptoSuites(@NonNull String suites)
      Set 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

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

      Returns:
      The STUN server address being used.
    • setStunServer

      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 null terminated table of strings containing the file format extension
      supported for call recording.

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

      void setSupportedTag(String tags)
      Set the supported tags.

    • getTag100RelSupportLevel

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

      Returns:
      The 100 rel support level
    • setTag100RelSupportLevel

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

      Parameters:
      level - support level of 100rel
    • setTcapLineMergingEnabled

      void setTcapLineMergingEnabled(boolean merge)
      Define 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()
      Check 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()
      Return the list of the available text payload types.

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

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

      Parameters:
      payloadTypes - The new list of payload types. The core does not take
      ownership on it.
    • 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()
      get tunnel instance if available

      Returns:
      Tunnel or null if not available.
    • getUnreadChatMessageCount

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

      Returns:
      The global unread chat message count.
    • getUnreadChatMessageCountFromActiveLocals

      int getUnreadChatMessageCountFromActiveLocals()
      Return 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 infinite
    • 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.
      Parameters:
      bandwidth - the bandwidth in kbits/s, 0 for infinite
    • getUploadPtime

      int getUploadPtime()
      Set 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)
      Set 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 is 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 is to be used to send digits.

      Parameters:
      useInfo - A boolean value telling whether to use SIP INFO to send digits
    • getUseRfc2833ForDtmf

      boolean getUseRfc2833ForDtmf()
      Indicates whether RFC2833 is used to send digits.

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

      void setUseRfc2833ForDtmf(boolean useRfc2833)
      Sets whether RFC2833 is to be used to send digits.

      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).

    • getVideoActivationPolicy

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

      See setVideoActivationPolicy(org.linphone.core.VideoActivationPolicy) for more details.
      Returns:
      The video policy being used
    • 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)
      Enable or disable 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()
      Get the current priority policy for video codecs (payload types).

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

      void setVideoCodecPriorityPolicy(CodecPriorityPolicy policy)
      Set 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()
      Get the name of the mediastreamer2 filter used for rendering video.

      Returns:
      The currently selected video display filter.
    • setVideoDisplayFilter

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

      This is for advanced users of the library, mainly to workaround hardware/driver
      bugs.
      Parameters:
      filterName - the filter name to use or null to use default.
    • getVideoDscp

      int getVideoDscp()
      Get 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)
      Set the DSCP field for outgoing video streams.

      The DSCP defines the quality of service in IP packets.
      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()
      Return the list of the available video payload types.

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

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

      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 durfing 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()
      Check 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)
      Define 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()
      Check if the ZRTP go clear is enabled or not.

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

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

    • 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()
      Get 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)
      Set 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.
    • activateAudioSession

      void activateAudioSession(boolean actived)
      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.
    • addAccount

      int addAccount(@NonNull Account account)
      Add 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

      int addAllToConference()
      Add all current 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.

      That piece of information will be used during all SIP 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

      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.

      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

      int addProxyConfig(@NonNull ProxyConfig config)
      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
    • 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

      int addToConference(@NonNull Call call)
      Add 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.
    • chatRoomGetDefaultEphemeralMode

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

      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(@NonNull String currentVersion)
      Checks if a new version of the application is available.

      Parameters:
      currentVersion - The current version of the application
    • clearAccounts

      void clearAccounts()
      Erase all account from config.

    • clearAllAuthInfo

      void clearAllAuthInfo()
      Clear all authentication information.

    • clearCallLogs

      void clearCallLogs()
      Erase the call log.

    • clearLdaps

      void clearLdaps()
      Erase all LDAP from the configuration.

    • clearProvisioningHeaders

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

    • clearProxyConfig

      void clearProxyConfig()
      Erase all proxies from config.

    • configSync

      int configSync()
      Writes the config file 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)
      Create an account using given parameters, see createAccountParams().

      Parameters:
      params - AccountParams object
      Returns:
      Account with default values set
    • createAccountCreator

      @NonNull AccountCreator createAccountCreator(@Nullable String xmlrpcUrl)
      Create a AccountCreator and set Linphone Request callbacks.

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

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

      Returns:
      AccountParams with default values set
    • createAddress

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

      Parameters:
      address - String containing the user supplied address
      Returns:
      The create 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)
      Create a CallParams suitable for inviteWithParams(java.lang.String, org.linphone.core.CallParams),
      linphone_core_accept_call_with_params,
      linphone_core_accept_early_media_with_params or
      linphone_core_accept_call_update.

      The parameters are initialized according to the current Core
      configuration and the last used local CallParams, the ones passed
      through Call.update(org.linphone.core.CallParams), Call.acceptWithParams(org.linphone.core.CallParams) or
      linphone_call_accept_update_with_params().
      Parameters:
      call - Call for which the parameters are to be build, or null in
      the case where the parameters are to be used for a new outgoing call.
      Returns:
      A new CallParams object.
    • createChatRoom

      @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 representing the local proxy configuration to
      use for the chat room creation 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.
    • 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, String subject, @NonNull Address[] participants)
      Create a chat room.

      Parameters:
      params - The chat room creation parameters ChatRoomParams
      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.
    • 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)
      Create 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

      @NonNull ConferenceScheduler createConferenceScheduler()
      Create a conference scheduler that can be used to create remote conferences for
      now or later and then send conference info as an ICS through chat.

      Returns:
      A pointer on the freshly created ConferenceScheduler.
    • createConferenceWithParams

      @Nullable Conference createConferenceWithParams(@NonNull ConferenceParams params)
      Create a conference.

      Local or remote 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()
      .
    • 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()
      Create a content with default values from Linphone core.

      Returns:
      Content object with default values set
    • createDefaultChatRoomParams

      @NonNull ChatRoomParams createDefaultChatRoomParams()
      Creates and returns the default chat room parameters.

      Returns:
      A ChatRoomParams object
    • createFriend

      @NonNull Friend createFriend()
      Create a default LinphoneFriend.

      Returns:
      The created Friend object
    • createFriendList

      @NonNull FriendList createFriendList()
      Create a new empty FriendList object.

      Returns:
      A new FriendList object.
    • createFriendWithAddress

      @Nullable Friend createFriendWithAddress(@NonNull String address)
      Create 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

      @NonNull Ldap createLdap()
      Create 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 Magic search, these parameters must be passed to
      linphone_core_create_ldap_with_params. Or, use Ldap.setParams(org.linphone.core.LdapParams).
      The newly created LDAP from createLdap().
      Returns:
      LdapParams with default values set.
    • createLdapWithParams

      @NonNull Ldap createLdapWithParams(@NonNull LdapParams params)
      Create 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)
      Create an independent media file player.

      This player support WAVE and MATROSKA formats.
      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. Depend of video out
      Returns:
      A pointer on the new instance. null if failed.
    • createMagicSearch

      @NonNull MagicSearch createMagicSearch()
      Create 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()
      Create a native window handle for the video preview window.

      see setNativeVideoWindowId(java.lang.Object) for details about window_id
      MSQOgl can be used for the creation. createNativePreviewWindowId()
      returns a #QQuickFramebufferObject::Renderer. This object must be returned by
      your QQuickFramebufferObject::createRenderer() overload for Qt. setNativePreviewWindowId(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.
      Returns:
      The native window handle of the video preview window.
    • createNativeVideoWindowId

      @Nullable Object createNativeVideoWindowId()
      Create a native window handle for the video window.

      see setNativeVideoWindowId(java.lang.Object) for details about window_id
      MSQOgl can be used for the creation. createNativeVideoWindowId() 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.
      Returns:
      The native window handle of the video window.
    • createNotify

      @NonNull Event createNotify(@NonNull Address resource, @NonNull String event)
      Create 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)
      Create 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)
      Create 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()
      Create a default LinphonePresenceModel.

      Returns:
      The created PresenceModel object.
    • createPresenceModelWithActivity

      @NonNull PresenceModel createPresenceModelWithActivity(PresenceActivity.Type acttype, @Nullable String description)
      Create 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)
      Create 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)
      Create 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)
      Create 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)
      Create 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

      @Nullable Address createPrimaryContactParsed()
      Same as getPrimaryContact() but the result is a Address object
      instead of const char *.

      Returns:
      a Address object.
    • createProxyConfig

      @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)
      Create 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)
      Create a media file recorder.

      This recorder support WAVE and MATROSKA formats.
      Parameters:
      params - The RecorderParams that will contains all recorder
      parameters.
      Returns:
      A pointer on the new instance. null if failed.
    • createRecorderParams

      @NonNull RecorderParams createRecorderParams()
      Create a recorder params that will hold parameters.

      This recorder support WAVE and MATROSKA formats.
      Returns:
      A pointer on the newly created instance.
    • createSubscribe

      @NonNull Event createSubscribe(@NonNull Address resource, @NonNull String event, int expires)
      Create 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)
      Create 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.
    • 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 - (NSData *).
    • didRegisterForRemotePushWithStringifiedToken

      void didRegisterForRemotePushWithStringifiedToken(@Nullable String deviceTokenStr)
      Sets device_token when application
      didRegisterForRemoteNotificationsWithDeviceToken (IOS only).

      Parameters:
      deviceTokenStr - extracted from the Data objectf received in
      didRegisterForRemoteNotificationsWithDeviceToken ios function. Append ":remote"
      after data formating..
    • disableChat

      void disableChat(Reason denyReason)
      Inconditionnaly disable incoming chat messages.

      Parameters:
      denyReason - the deny reason (Reason.None has no effect).
    • enableChat

      void enableChat()
      Enable 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.
      Join 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)
      Find 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)
      Get 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)
      Get 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 transfered 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.
    • 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)
      Search 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)
      Search 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)
      Search 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 transfered 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(String callId)
      Get the call by callid.

      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)
      Get 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 transfered 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 transfered 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 transfered 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 .
    • getFriendByRefKey

      @Nullable Friend getFriendByRefKey(@NonNull String key)
      Search 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, VP8)
      rate - can be LINPHONE_FIND_PAYLOAD_IGNORE_RATE
      channels - number of channels, can be
      LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS
      Returns:
      Returns null if not found. If a PayloadType is returned, it
      must be released with linphone_payload_type_unref after using it.
    • getProxyConfigByIdkey

      @Nullable ProxyConfig getProxyConfigByIdkey(String idkey)
      Search 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
    • getUnreadChatMessageCountFromLocal

      int getUnreadChatMessageCountFromLocal(@NonNull Address address)
      Return the unread chat message count for a given local address.

      Parameters:
      address - Address object.
      Returns:
      The unread chat message count.
    • 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 default proxy
      config. see: ProxyConfig.normalizeSipUri(java.lang.String) for documentation.
      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).

      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).

      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 proxy is not specified in parameters, the caller proxy 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).

      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 proxy is not specified in parameters, the caller proxy 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
      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 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)
      Check if 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 function.

      It is crucial that your application call it periodically.
      iterate() performs various backgrounds tasks:
    • ldapAvailable

      boolean ldapAvailable()
      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.
      Make 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)
      Check 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.

    • migrateToMultiTransport

      int migrateToMultiTransport()
      Migrate configuration so that all SIP transports are enabled.

      Versions of linphone < 3.7 did not support using multiple SIP transport
      simultaneously. This function helps application to migrate the configuration so
      that all transports are enabled. Existing proxy configuration are added a
      transport parameter so that they continue using the unique transport that was
      set previously. This function must be used just after creating the core, before
      any call to iterate()
      Returns:
      1 if migration was done, 0 if not done because unnecessary or already
      done, -1 in case of error.
    • notifyAllFriends

      void notifyAllFriends(@NonNull PresenceModel presence)
      Notify 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()
      Pause 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)
      Publish 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.
    • realtimeTextGetKeepaliveInterval

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

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

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

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

      void refreshRegisters()
      force 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)
      Remove 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

      int removeFromConference(@NonNull Call call)
      Remove 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

      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.

      Parameters:
      spec - The spec to remove
    • removeProxyConfig

      void removeProxyConfig(@NonNull ProxyConfig config)
      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
    • 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()
      Reset the counter of missed calls.

    • searchChatRoom

      @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 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 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)
      Find 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
    • 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
    • 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.
      Parameters:
      toneId - the #LinphoneToneId
      audiofile - a wav file to be played or null to disable it.
    • 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()
      Check 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()
      Start 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
    • startConferenceRecording

      @Deprecated int startConferenceRecording(@NonNull String path)
      Deprecated.
      Start recording the running conference.

      Parameters:
      path - Path to the file where the recording will be written
      Returns:
      0 if succeeded. Negative number if failed
    • 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()
      Stop 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.
    • stopAsync

      void stopAsync()
      Stop asynchronously 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().
    • stopConferenceRecording

      @Deprecated int stopConferenceRecording()
      Deprecated.
      14/09/2021 Use Conference.stopRecording() instead.
      Stop recording the running conference.

      Returns:
      0 if succeeded. Negative number if failed
    • 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)
      Create 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)
      Take 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

      int terminateConference()
      Terminate 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()
      Upload 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()
      Compress the log collection in a single file.

      Returns:
      The path of the compressed log collection file (to be freed calling
      ms_free()).
    • enableLogCollection

      void enableLogCollection(LogCollectionState state)
      Enable 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()
      Get 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()
      Get 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()
      Get 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()
      Reset the log collection by removing the log files.

    • serializeLogs

      void serializeLogs()
      Enable 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 linphone core.
    • setLogCollectionMaxFileSize

      void setLogCollectionMaxFileSize(int size)
      Set 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)
      Set 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)
      Set 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 support 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.
    • 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