chenqiyang
2022-09-02 6a99d9bf65aa5878cb409945ed2bdbdcb916d047
HDLLinPhoneSDK(OC)/HDLLinPhoneSDK/linphone-sdk/apple-darwin/Frameworks/linphone.framework/Headers/types.h
old mode 100644 new mode 100755
@@ -29,27 +29,50 @@
// For migration purpose.
#include "linphone/api/c-types.h"
// -----------------------------------------------------------------------------
// Account creator.
// -----------------------------------------------------------------------------
/**
 * The #LinphoneAccountCreator object used to configure an account on a server via XML-RPC.
 * @brief Represents an account configuration to be used by #LinphoneCore.
 *
 * In addition to the #LinphoneAuthInfo that stores the credentials,
 * you need to configure a #LinphoneProxyConfig as well to be able to connect to a proxy server.
 *
 * A minimal proxy config consists of an identity address (sip:username@domain.tld)
 * and the proxy server address, @see linphone_proxy_config_set_server_addr().
 *
 * If any, it will be stored inside the default configuration file, so it will survive the destruction
 * of the #LinphoneCore and be available at the next start.
 *
 * The account set with linphone_core_set_default_proxy_config() will be used as default
 * for outgoing calls & chat messages unless specified otherwise.
 * @ingroup proxies
**/
typedef struct _LinphoneProxyConfig LinphoneProxyConfig;
/**
 * @brief The object used to configure an account on a server via XML-RPC,
 * see @link https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Features/Override%20account%20creator%20request/
 * @ingroup account_creator
**/
typedef struct _LinphoneAccountCreator LinphoneAccountCreator;
/**
 * An object to define a #LinphoneAccountCreator service.
 * @brief An object to define a LinphoneAccountCreator service.
 * @ingroup account_creator
 * @donotwrap
**/
typedef struct _LinphoneAccountCreatorService LinphoneAccountCreatorService;
/**
 * An object to handle the responses callbacks for handling the #LinphoneAccountCreator operations.
 * @brief An object to handle the responses callbacks for handling the #LinphoneAccountCreator operations.
 * @ingroup account_creator
**/
typedef struct _LinphoneAccountCreatorCbs LinphoneAccountCreatorCbs;
/**
 * Enum describing Phone number checking.
 * @brief Enum describing phone number checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorPhoneNumberStatus {
@@ -61,13 +84,13 @@
} LinphoneAccountCreatorPhoneNumberStatus;
/**
 * A mask of #LinphoneAccountCreatorPhoneNumberStatus values
 * @brief A mask of #LinphoneAccountCreatorPhoneNumberStatus values.
 * @ingroup account_creator
 */
typedef unsigned int LinphoneAccountCreatorPhoneNumberStatusMask;
/**
 * Enum describing Username checking.
 * @brief Enum describing username checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorUsernameStatus {
@@ -79,7 +102,7 @@
} LinphoneAccountCreatorUsernameStatus;
/**
 * Enum describing Email checking.
 * @brief Enum describing email checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorEmailStatus {
@@ -89,7 +112,7 @@
} LinphoneAccountCreatorEmailStatus;
/**
 * Enum describing Password checking.
 * @brief Enum describing password checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorPasswordStatus {
@@ -101,16 +124,15 @@
} LinphoneAccountCreatorPasswordStatus;
/**
 * Enum describing language checking.
 * @brief Enum describing language checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorLanguageStatus {
   LinphoneAccountCreatorLanguageStatusOk /**< Language ok */
} LinphoneAccountCreatorLanguageStatus;
/**
 * Enum algorithm checking.
 * @brief Enum describing algorithm checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
 **/
typedef enum _LinphoneAccountCreatorAlgoStatus {
@@ -119,7 +141,7 @@
} LinphoneAccountCreatorAlgoStatus;
/**
 * Enum describing Activation code checking.
 * @brief Enum describing activation code checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorActivationCodeStatus {
@@ -130,7 +152,7 @@
} LinphoneAccountCreatorActivationCodeStatus;
/**
 * Enum describing Domain checking
 * @brief Enum describing domain checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorDomainStatus {
@@ -139,7 +161,7 @@
} LinphoneAccountCreatorDomainStatus;
/**
 * Enum describing Transport checking
 * @brief Enum describing transport checking, used by the #LinphoneAccountCreator.
 * @ingroup account_creator
**/
typedef enum _LinphoneAccountCreatorTransportStatus {
@@ -148,7 +170,7 @@
} LinphoneAccountCreatorTransportStatus;
/**
 * Enum describing the status of server request.
 * @brief Enum describing the status of server request, used by the #LinphoneAccountCreator.
 * @ingroup account_creator_request
**/
typedef enum _LinphoneAccountCreatorStatus {
@@ -183,81 +205,16 @@
   LinphoneAccountCreatorStatusPhoneNumberInvalid, /**< Error cannot send SMS */
   LinphoneAccountCreatorStatusWrongActivationCode, /**< Error key doesn't match */
   LinphoneAccountCreatorStatusPhoneNumberOverused, /**< Error too many SMS sent */
   LinphoneAccountCreatorStatusAlgoNotSupported, /** < Error algo isn't MD5 or SHA-256 */
   LinphoneAccountCreatorStatusAlgoNotSupported, /**< Error algo isn't MD5 or SHA-256 */
   LinphoneAccountCreatorStatusUnexpectedError, /**< Generic error */
} LinphoneAccountCreatorStatus;
/**
 * Enum describing Ip family.
 * @ingroup initializing
**/
typedef enum _LinphoneAddressFamily {
   LinphoneAddressFamilyInet, /**< IpV4 */
   LinphoneAddressFamilyInet6, /**< IpV6 */
   LinphoneAddressFamilyUnspec, /**< Unknown */
} LinphoneAddressFamily;
// -----------------------------------------------------------------------------
// Call.
// -----------------------------------------------------------------------------
/**
 * Enum describing type of audio route.
 * @ingroup call_control
**/
typedef enum _LinphoneAudioRoute {
   LinphoneAudioRouteEarpiece,
   LinphoneAudioRouteSpeaker
} LinphoneAudioRoute;
/**
 * Object holding authentication information.
 *
 * @note The object's fields should not be accessed directly. Prefer using
 * the accessor methods.
 *
 * In most case, authentication information consists of a username and password.
 * Sometimes, a userid is required by proxy, and realm can be useful to discriminate
 * different SIP domains.
 *
 * Once created and filled, a #LinphoneAuthInfo must be added to the #LinphoneCore in
 * order to become known and used automatically when needed.
 * Use linphone_core_add_auth_info() for that purpose.
 *
 * The #LinphoneCore object can take the initiative to request authentication information
 * when needed to the application through the auth_info_requested callback of the
 * #LinphoneCoreVTable structure.
 *
 * The application can respond to this information request later using
 * linphone_core_add_auth_info(). This will unblock all pending authentication
 * transactions and retry them with authentication headers.
 *
 * @ingroup authentication
**/
typedef struct _LinphoneAuthInfo LinphoneAuthInfo;
/**
 * Enum describing the authentication methods
 * @ingroup network_parameters
**/
typedef enum _LinphoneAuthMethod {
   LinphoneAuthHttpDigest, /**< Digest authentication requested */
   LinphoneAuthTls, /**< Client certificate requested */
} LinphoneAuthMethod;
/**
 * Enum describing RTP AVPF activation modes.
 * @ingroup media_parameters
**/
typedef enum _LinphoneAVPFMode {
   LinphoneAVPFDefault = -1, /**< Use default value defined at upper level */
   LinphoneAVPFDisabled, /**< AVPF is disabled */
   LinphoneAVPFEnabled /**< AVPF is enabled */
} LinphoneAVPFMode;
/**
 * The #LinphoneContent object representing a data buffer.
 * @ingroup misc
**/
typedef struct _LinphoneBuffer LinphoneBuffer;
/**
 * Enum representing the direction of a call.
 * @brief Enum representing the direction of a call.
 * @ingroup call_logs
**/
typedef enum _LinphoneCallDir {
@@ -266,76 +223,112 @@
} LinphoneCallDir;
/**
 * Structure representing a call log.
 * @ingroup call_logs
**/
typedef struct _LinphoneCallLog LinphoneCallLog;
/**
 * The #LinphoneCallParams is an object containing various call related parameters.
 * It can be used to retrieve parameters from a currently running call or modify
 * the call's characteristics dynamically.
 * @ingroup call_control
**/
typedef struct _LinphoneCallParams LinphoneCallParams;
/**
 * The #LinphoneCallStats objects carries various statistic informations regarding quality of audio or video streams.
 * @brief This object carry various statistic informations regarding the quality of an audio or video stream for a given #LinphoneCall.
 *
 * To receive these informations periodically and as soon as they are computed, the application is invited to place a #LinphoneCoreCallStatsUpdatedCb callback in the #LinphoneCoreVTable structure
 * it passes for instanciating the #LinphoneCore object (see linphone_core_new() ).
 * To receive these informations periodically and as soon as they are computed,
 * implement the call_stats_updated() callback inside a #LinphoneCoreCbs.
 *
 * At any time, the application can access last computed statistics using linphone_call_get_audio_stats() or linphone_call_get_video_stats().
 * At any time, the application can access latest computed statistics using linphone_call_get_audio_stats() and linphone_call_get_video_stats().
 * @ingroup call_misc
**/
typedef struct _LinphoneCallStats LinphoneCallStats;
/**
 * Enum representing the status of a call
 * @brief Enum representing the status of a call.
 * @ingroup call_logs
**/
typedef enum _LinphoneCallStatus {
   LinphoneCallSuccess, /**< The call was sucessful */
   LinphoneCallAborted, /**< The call was aborted */
   LinphoneCallMissed, /**< The call was missed (unanswered) */
   LinphoneCallAborted, /**< The call was aborted (caller hanged up) */
   LinphoneCallMissed, /**< The call was missed (incoming call timed out without being answered or hanged up) */
   LinphoneCallDeclined, /**< The call was declined, either locally or by remote end */
   LinphoneCallEarlyAborted, /**<The call was aborted before being advertised to the application - for protocol reasons*/
   LinphoneCallAcceptedElsewhere, /**<The call was answered on another device*/
   LinphoneCallDeclinedElsewhere /**<The call was declined on another device*/
} LinphoneCallStatus;
/**
 * #LinphoneConference class
 * The _LinphoneConference struct does not exists, it's the Conference C++ class that is used behind
 * @ingroup call_control
 */
typedef struct _LinphoneConference LinphoneConference;
// -----------------------------------------------------------------------------
// Friends.
// -----------------------------------------------------------------------------
/**
 * Parameters for initialization of conferences
 * The _LinphoneConferenceParams struct does not exists, it's the ConferenceParams C++ class that is used behind
 * @ingroup call_control
 * @brief This object is used to store a SIP address.
 *
 * #LinphoneFriend is mainly used to implement an adressbook feature, and are used as data for the #LinphoneMagicSearch object.
 * If your proxy supports it, you can also use it to subscribe to presence information.
 *
 * The objects are stored in a #LinphoneFriendList which are in turn stored inside the #LinphoneCore.
 * They can be stored inside a database if the path to it is configured, otherwise they will be lost after the #LinphoneCore is destroyed.
 *
 * Thanks to the vCard plugin, you can also store more information like phone numbers, organization, etc...
 * @ingroup buddy_list
 */
typedef struct _LinphoneConferenceParams LinphoneConferenceParams;
typedef struct _LinphoneFriend LinphoneFriend;
/**
 * The #LinphoneConfig object is used to manipulate a configuration file.
* @brief Enum describing the capabilities of a #LinphoneFriend, populated through presence subscribe/notify process.
* @ingroup buddy_list
**/
typedef enum _LinphoneFriendCapability {
   LinphoneFriendCapabilityNone = 0, /**< No capabilities populated */
   LinphoneFriendCapabilityGroupChat = 1 << 0, /**< This friend can be invited in a Flexisip backend #LinphoneChatRoom */
   LinphoneFriendCapabilityLimeX3dh = 1 << 1, /**< This friend can be invited in a Flexisip backend end-to-end encrypted #LinphoneChatRoom */
   LinphoneFriendCapabilityEphemeralMessages = 1 << 2 /**< This friend is able to delete ephemeral messages once they have expired */
} LinphoneFriendCapability;
/**
 * @brief This object representing a list of #LinphoneFriend.
 *
 * You can use it to store contacts locally or synchronize them through CardDAV protocol.
 * @ingroup buddy_list
**/
typedef struct _LinphoneFriendList LinphoneFriendList;
/**
 * @brief An object to handle the callbacks for #LinphoneFriend synchronization.
 * @ingroup buddy_list
**/
typedef struct _LinphoneFriendListCbs LinphoneFriendListCbs;
/**
* @brief Enum describing the status of a LinphoneFriendList operation.
* @ingroup buddy_list
**/
typedef enum _LinphoneFriendListStatus {
   LinphoneFriendListOK, /**< Operation went fine */
   LinphoneFriendListNonExistentFriend, /**< #LinphoneFriend wasn't found in the #LinphoneFriendList */
   LinphoneFriendListInvalidFriend /**< #LinphoneFriend is already present in a #LinphoneFriendList */
} LinphoneFriendListStatus;
/**
 * @brief Enum describing the status of a CardDAV synchronization.
 * @ingroup buddy_list
 */
typedef enum _LinphoneFriendListSyncStatus {
   LinphoneFriendListSyncStarted, /**< Synchronization started */
   LinphoneFriendListSyncSuccessful, /**< Synchronization finished successfuly */
   LinphoneFriendListSyncFailure /**< Synchronization failed */
} LinphoneFriendListSyncStatus;
// -----------------------------------------------------------------------------
// Core.
// -----------------------------------------------------------------------------
/**
 * @brief This object is used to manipulate a configuration file.
 *
 * The format of the configuration file is a .ini like format:
 * - sections are defined in []
 * - each section contains a sequence of key=value pairs.
 *
 * Example:
 * @code
 * [sound]
 * echocanceler=1
 * playback_dev=ALSA: Default device
 *
 * [video]
 * enabled=1
 * @endcode
 *
 * @ingroup misc
 * - each section contains a sequence of key=value pairs
 * - each line starting by a # is a comment
 *
 * Various types can be used: strings and lists of strings, integers, floats, booleans (written as 0 or 1) and range of integers.
 *
 * Usually a #LinphoneCore is initialized using two #LinphoneConfig, one default (where configuration changes through API calls will be saved)
 * and one named 'factory' which is read-only and overwrites any setting that may exists in the default one.
 *
 * It is also possible to use only one (either default or factory) or even none.
 * @ingroup initializing
**/
typedef struct _LpConfig LinphoneConfig;
@@ -345,8 +338,9 @@
#define LpConfig LinphoneConfig
/**
 * #LinphoneGlobalState describes the global state of the #LinphoneCore object.
 * It is notified via the LinphoneCoreVTable::global_state_changed
 * @brief Describes the state of the remote configuring process of the #LinphoneCore object, 'Skipped' when the feature is disabled.
 *
 * It is notified via the configuring_status() callback in #LinphoneCoreCbs.
 * @ingroup initializing
**/
typedef enum _LinphoneConfiguringState {
@@ -354,6 +348,159 @@
   LinphoneConfiguringFailed,
   LinphoneConfiguringSkipped
} LinphoneConfiguringState;
/**
 * @brief Describes the global state of the #LinphoneCore object.
 *
 * It is notified via the global_state_changed() callback in #LinphoneCoreCbs.
 * @ingroup initializing
**/
typedef enum _LinphoneGlobalState {
   /** State in which we're in after linphone_core_stop(). Do not call any method while in this state except for linphone_core_start() */
   LinphoneGlobalOff,
   /** Transient state for when we call linphone_core_start() */
   LinphoneGlobalStartup,
   /** Indicates #LinphoneCore has been started and is up and running */
   LinphoneGlobalOn,
   /** Transient state for when we call linphone_core_stop() */
   LinphoneGlobalShutdown,
   /** Transient state between Startup and On if there is a remote provisionning URI configured */
   LinphoneGlobalConfiguring,
   /** #LinphoneCore state after being created by linphone_factory_create_core(), generally followed by a call to linphone_core_start() */
   LinphoneGlobalReady
} LinphoneGlobalState;
/**
 * @brief Describes proxy registration states.
 *
 * It is notified via the registration_state_changed() callback in #LinphoneCoreCbs.
 * @ingroup proxies
**/
typedef enum _LinphoneRegistrationState {
   LinphoneRegistrationNone, /**< Initial state for registrations */
   LinphoneRegistrationProgress, /**< Registration is in progress */
   LinphoneRegistrationOk,   /**< Registration is successful */
   LinphoneRegistrationCleared, /**< Unregistration succeeded */
   LinphoneRegistrationFailed   /**< Registration failed */
} LinphoneRegistrationState;
/**
 * @brief 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 linphone_factory_create_core_3() or linphone_factory_create_core_with_config_3(),
 * see #LinphoneConfig 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 #LinphoneCore is in state #LinphoneGlobalReady, use linphone_core_start().
 * It will then go to state #LinphoneGlobalOn and from that you can start using it for calls and chat messages.
 * It is recommended to add a #LinphoneCoreCbs listener using linphone_core_add_listener() to it to monitor different events.
 *
 * To be able to receive events from the network, you must schedule a call linphone_core_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 linphone_core_set_auto_iterate_enabled() 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 linphone_core_stop() and release the reference on it so it can gracefully shutdown.
 * @ingroup initializing
 */
typedef struct _LinphoneCore LinphoneCore;
/**
 * @brief The factory is a singleton object devoted to the creation of all the objects
 * of Liblinphone that cannot be created by #LinphoneCore itself.
 *
 * It is also used to configure a few behaviors before creating the #LinphoneCore, like the logs verbosity or collection.
 * @ingroup initializing
 */
typedef struct _LinphoneFactory LinphoneFactory;
/**
 * @brief That class holds all the callbacks which are called by #LinphoneCore.
 *
 * Once created, add your #LinphoneCoreCbs using linphone_core_add_listener().
 * Keep a reference on it as long as you need it.
 * You can use linphone_core_remove_listener() to remove it but that isn't mandatory.
 *
 * The same applies to all listeners in our API.
 * @ingroup initializing
 */
typedef struct _LinphoneCoreCbs LinphoneCoreCbs;
// -----------------------------------------------------------------------------
// Misc.
// -----------------------------------------------------------------------------
/**
 * @brief SIP transports & ports configuration object.
 *
 * Indicates which transport among UDP, TCP, TLS and DTLS should be enabled and if so on which port to listen.
 * You can use special values like #LC_SIP_TRANSPORT_DISABLED (0), #LC_SIP_TRANSPORT_RANDOM (-1) and #LC_SIP_TRANSPORT_DONTBIND (-2).
 *
 * Once configuration is complete, use linphone_core_set_transports() to apply it.
 * This will be saved in configuration file so you don't have to do it each time the #LinphoneCore starts.
 * @ingroup initializing
 */
typedef struct _LinphoneTransports LinphoneTransports;
/**
 * @brief Object describing policy regarding video streams establishments.
 *
 * Use linphone_video_activation_policy_set_automatically_accept() and linphone_video_activation_policy_set_automatically_initiate()
 * to tell the Core to automatically accept or initiate video during calls.
 *
 * Even if disabled, you'll still be able to add it later while the call is running.
 * @ingroup media_parameters
**/
typedef struct _LinphoneVideoActivationPolicy LinphoneVideoActivationPolicy;
/**
 * @brief This object represents a video definition, eg. it's width, it's height and possibly it's name.
 *
 * It is mostly used to configure the default video size sent by your camera during a video call with
 * linphone_core_set_preferred_video_definition() method.
 * @ingroup media_parameters
 */
typedef struct _LinphoneVideoDefinition LinphoneVideoDefinition;
// -----------------------------------------------------------------------------
// Other.
// -----------------------------------------------------------------------------
/**
 * @brief Enum describing Ip family.
 * @ingroup initializing
**/
typedef enum _LinphoneAddressFamily {
   LinphoneAddressFamilyInet, /**< IpV4 */
   LinphoneAddressFamilyInet6, /**< IpV6 */
   LinphoneAddressFamilyUnspec, /**< Unknown */
} LinphoneAddressFamily;
/**
 * @brief Enum describing the authentication methods.
 * @ingroup network_parameters
**/
typedef enum _LinphoneAuthMethod {
   LinphoneAuthHttpDigest, /**< Digest authentication requested */
   LinphoneAuthTls, /**< Client certificate requested */
} LinphoneAuthMethod;
/**
 * @brief Enum describing RTP AVPF activation modes.
 * @ingroup media_parameters
**/
typedef enum _LinphoneAVPFMode {
   LinphoneAVPFDefault = -1, /**< Use default value defined at upper level */
   LinphoneAVPFDisabled, /**< AVPF is disabled */
   LinphoneAVPFEnabled /**< AVPF is enabled */
} LinphoneAVPFMode;
/**
 * @brief The object representing a data buffer.
 * @ingroup misc
**/
typedef struct _LinphoneBuffer LinphoneBuffer;
/**
 * Consolidated presence information: 'online' means the user is open for communication,
@@ -377,33 +524,15 @@
/**
 * Old name of #LinphoneContactSearchID
 * @deprecated
 * @deprecated 03/02/2017
 * @donotwrap
 */
LINPHONE_DEPRECATED typedef LinphoneContactSearchID ContactSearchID;
/**
 * Linphone core main object created by function linphone_core_new() .
 * @ingroup initializing
 */
typedef struct _LinphoneCore LinphoneCore;
/**
 * That class holds all the callbacks which are called by #LinphoneCore.
 *
 * Use linphone_factory_create_core_cbs() to create an instance. Then, call the
 * callback setters on the events you need to monitor and pass the object to
 * a #LinphoneCore instance through linphone_core_add_callbacks().
 *
 * That class is inherited from belle_sip_object_t.
 * @ingroup initializing
 */
typedef struct _LinphoneCoreCbs LinphoneCoreCbs;
typedef struct belle_sip_dict LinphoneDictionary;
/**
 * Enum describing the result of the echo canceller calibration process.
 * @brief Enum describing the result of the echo canceller calibration process.
 * @ingroup media_parameters
**/
typedef enum _LinphoneEcCalibratorStatus {
@@ -414,7 +543,8 @@
} LinphoneEcCalibratorStatus;
/**
 * Object representing full details about a signaling error or status.
 * @brief Object representing full details about a signaling error or status.
 *
 * All #LinphoneErrorInfo object returned by the liblinphone API are readonly and transcients. For safety they must be used immediately
 * after obtaining them. Any other function call to the liblinphone may change their content or invalidate the pointer.
 * @ingroup misc
@@ -422,7 +552,8 @@
typedef struct _LinphoneErrorInfo LinphoneErrorInfo;
/**
 * Object representing an event state, which is subcribed or published.
 * @brief Object representing an event state, which is subcribed or published.
 *
 * @see linphone_core_publish()
 * @see linphone_core_subscribe()
 * @ingroup event_api
@@ -430,22 +561,15 @@
typedef struct _LinphoneEvent LinphoneEvent;
/**
 * An object to handle the callbacks for handling the LinphoneEvent operations.
 * @brief An object to handle the callbacks for handling the LinphoneEvent operations.
 * @ingroup event_api
**/
typedef struct _LinphoneEventCbs LinphoneEventCbs;
/**
 * #LinphoneFactory is a singleton object devoted to the creation of all the object
 * of Liblinphone that cannot be created by #LinphoneCore itself.
 * @ingroup initializing
 */
typedef struct _LinphoneFactory LinphoneFactory;
/**
 * Policy to use to pass through firewalls.
 * @brief Policy to use to pass through firewalls.
 * @ingroup network_parameters
 * @deprecated Use #LinphoneNatPolicy instead.
 * @deprecated 03/02/2017 Use #LinphoneNatPolicy instead.
 * @donotwrap
**/
typedef enum _LinphoneFirewallPolicy {
@@ -457,75 +581,7 @@
} LinphoneFirewallPolicy;
/**
 * Represents a buddy, all presence actions like subscription and status change notification are performed on this object
 * @ingroup buddy_list
 */
typedef struct _LinphoneFriend LinphoneFriend;
/**
* Enum describing the status of a LinphoneFriendList operation.
* @ingroup buddy_list
**/
typedef enum _LinphoneFriendCapability {
   LinphoneFriendCapabilityNone = 0,
   LinphoneFriendCapabilityGroupChat = 1 << 0,
   LinphoneFriendCapabilityLimeX3dh = 1 << 1
} LinphoneFriendCapability;
/**
 * The #LinphoneFriendList object representing a list of friends.
 * @ingroup buddy_list
**/
typedef struct _LinphoneFriendList LinphoneFriendList;
/**
 * An object to handle the callbacks for #LinphoneFriend synchronization.
 * @ingroup buddy_list
**/
typedef struct _LinphoneFriendListCbs LinphoneFriendListCbs;
/**
* Enum describing the status of a LinphoneFriendList operation.
* @ingroup buddy_list
**/
typedef enum _LinphoneFriendListStatus {
   LinphoneFriendListOK,
   LinphoneFriendListNonExistentFriend,
   LinphoneFriendListInvalidFriend
} LinphoneFriendListStatus;
/**
 * Enum describing the status of a CardDAV synchronization
 * @ingroup buddy_list
 */
typedef enum _LinphoneFriendListSyncStatus {
   LinphoneFriendListSyncStarted,
   LinphoneFriendListSyncSuccessful,
   LinphoneFriendListSyncFailure
} LinphoneFriendListSyncStatus;
/**
 * #LinphoneGlobalState describes the global state of the #LinphoneCore object.
 * It is notified via the LinphoneCoreVTable::global_state_changed
 * @ingroup initializing
**/
typedef enum _LinphoneGlobalState {
   /** State in which we're in after linphone_core_stop(). Do not call any method while in this state except for linphone_core_start() */
   LinphoneGlobalOff,
   /** Transient state for when we call linphone_core_start() */
   LinphoneGlobalStartup,
   /** Indicates #LinphoneCore has been started and is up and running */
   LinphoneGlobalOn,
   /** Transient state for when we call linphone_core_stop() */
   LinphoneGlobalShutdown,
   /** Transient state between Startup and On if there is a remote provisionning URI configured */
   LinphoneGlobalConfiguring,
   /** #LinphoneCore state after being created by linphone_factory_create_core(), generally followed by a call to linphone_core_start() */
   LinphoneGlobalReady
} LinphoneGlobalState;
/**
 * Enum describing ICE states.
 * @brief Enum describing ICE states.
 * @ingroup initializing
**/
typedef enum _LinphoneIceState {
@@ -538,28 +594,31 @@
} LinphoneIceState;
/**
 * IM encryption engine.
 * @brief IM encryption engine.
 *
 * @see https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Features/Instant%20Messaging%20Encryption%20Engine/
 * @ingroup misc
 * @donotwrap
 */
typedef struct _LinphoneImEncryptionEngine LinphoneImEncryptionEngine;
/**
 * An object to handle the callbacks for the handling a #LinphoneImEncryptionEngine object.
 * @brief An object to handle the callbacks for the handling a #LinphoneImEncryptionEngine object.
 * @ingroup misc
 * @donotwrap
 */
typedef struct _LinphoneImEncryptionEngineCbs LinphoneImEncryptionEngineCbs;
/**
 * Policy to use to send/receive instant messaging composing/delivery/display notifications.
 * @brief Policy to use to send/receive instant messaging composing/delivery/display notifications.
 *
 * The sending of this information is done as in the RFCs 3994 (is_composing) and 5438 (imdn delivered/displayed).
 * @ingroup chatroom
 */
typedef struct _LinphoneImNotifPolicy LinphoneImNotifPolicy;
/**
 * The #LinphoneInfoMessage is an object representing an informational message sent or received by the core.
 * @brief Object representing an informational message sent or received by the core.
 * @ingroup misc
**/
typedef struct _LinphoneInfoMessage LinphoneInfoMessage;
@@ -578,6 +637,17 @@
} LinphoneLimeState;
/**
 * @brief Session Timers refresher
 * @ingroup initializing
 */
typedef enum _LinphoneSessionExpiresRefresher {
  LinphoneSessionExpiresRefresherUnspecified,
  LinphoneSessionExpiresRefresherUAS,
  LinphoneSessionExpiresRefresherUAC
} LinphoneSessionExpiresRefresher;
/**
 * @brief Whether or not to keep a file with the logs.
 * @ingroup initializing
 */
typedef enum _LinphoneLogCollectionState {
@@ -587,7 +657,7 @@
} LinphoneLogCollectionState;
/**
 * #LinphoneCoreLogCollectionUploadState is used to notify if log collection upload have been succesfully delivered or not.
 * @brief Used to notify if log collection upload have been succesfully delivered or not.
 * @ingroup initializing
 */
typedef enum _LinphoneCoreLogCollectionUploadState {
@@ -597,7 +667,7 @@
} LinphoneCoreLogCollectionUploadState;
/**
 * Indicates for a given media the stream direction
 * @brief Indicates for a given media the stream direction.
 * @ingroup call_control
 */
typedef enum _LinphoneMediaDirection {
@@ -609,7 +679,16 @@
} LinphoneMediaDirection;
/**
 * Enum describing type of media encryption types.
 * @brief Media resource usage.
 * @ingroup media_parameters
**/
typedef enum _LinphoneMediaResourceMode {
   LinphoneExclusiveMediaResources, /**< Media resources are not shared */
   LinphoneSharedMediaResources, /**< Media resources are shared */
} LinphoneMediaResourceMode;
/**
 * @brief Enum describing type of media encryption types.
 * @ingroup media_parameters
**/
typedef enum _LinphoneMediaEncryption {
@@ -620,7 +699,7 @@
} LinphoneMediaEncryption;
/**
 * Enum describing the ZRTP SAS validation status of a peer URI
 * @brief Enum describing the ZRTP SAS validation status of a peer URI.
 * @ingroup media_parameters
**/
typedef enum _LinphoneZrtpPeerStatus {
@@ -630,14 +709,14 @@
} LinphoneZrtpPeerStatus;
/**
 * Policy to use to pass through NATs/firewalls.
 * @brief Policy to use to pass through NATs/firewalls.
 * @ingroup network_parameters
 */
typedef struct _LinphoneNatPolicy LinphoneNatPolicy;
/**
 * Enum describing remote friend status
 * @deprecated Use #LinphonePresenceModel and #LinphonePresenceActivity instead
 * @brief Enum describing remote friend status.
 * @deprecated 03/02/2017 Use #LinphonePresenceModel and #LinphonePresenceActivity instead
 * @donotwrap
 */
typedef enum _LinphoneOnlineStatus{
@@ -658,19 +737,19 @@
} LinphoneOnlineStatus;
/**
 * Player interface.
 * @brief Player interface.
 * @ingroup call_control
**/
typedef struct _LinphonePlayer LinphonePlayer;
/**
 * An object to handle the callbacks for the handling a #LinphonePlayer objects.
 * @brief An object to handle the callbacks for the handling a #LinphonePlayer objects.
 * @ingroup call_control
 */
typedef struct _LinphonePlayerCbs LinphonePlayerCbs;
/**
 * The state of a LinphonePlayer.
 * @brief The state of a #LinphonePlayer.
 * @ingroup call_control
 */
typedef enum LinphonePlayerState {
@@ -680,13 +759,13 @@
} LinphonePlayerState;
/**
 * Presence activity type holding information about a presence activity.
 * @brief Presence activity type holding information about a presence activity.
 * @ingroup buddy_list
 */
typedef struct _LinphonePresenceActivity LinphonePresenceActivity;
/**
 * Activities as defined in section 3.2 of RFC 4480
 * @brief Activities as defined in section 3.2 of RFC 4480
 * @ingroup buddy_list
 */
typedef enum LinphonePresenceActivityType {
@@ -782,7 +861,7 @@
} LinphonePresenceActivityType;
/**
 * Basic status as defined in section 4.1.4 of RFC 3863
 * @brief Basic status as defined in section 4.1.4 of RFC 3863
 * @ingroup buddy_list
 */
typedef enum LinphonePresenceBasicStatus {
@@ -794,25 +873,25 @@
} LinphonePresenceBasicStatus;
/**
 * Presence model type holding information about the presence of a person.
 * @brief Presence model type holding information about the presence of a person.
 * @ingroup buddy_list
 */
typedef struct _LinphonePresenceModel LinphonePresenceModel;
/**
 * Presence note type holding information about a presence note.
 * @brief Presence note type holding information about a presence note.
 * @ingroup buddy_list
 */
typedef struct _LinphonePresenceNote LinphonePresenceNote;
/**
 * Presence person holding information about a presence person.
 * @brief Presence person holding information about a presence person.
 * @ingroup buddy_list
 */
typedef struct _LinphonePresencePerson LinphonePresencePerson;
/**
 * Presence service type holding information about a presence service.
 * @brief Presence service type holding information about a presence service.
 * @ingroup buddy_list
 */
typedef struct _LinphonePresenceService LinphonePresenceService;
@@ -868,32 +947,13 @@
/* WARNING This enum MUST be kept in sync with the SalPrivacy enum from sal.h */
/**
 * A mask of #LinphonePrivacy values
 * @brief A mask of #LinphonePrivacy values
 * @ingroup call_control
 */
typedef unsigned int LinphonePrivacyMask;
/**
 * The #LinphoneProxyConfig object represents a proxy configuration to be used
 * by the #LinphoneCore object.
 * Its fields must not be used directly in favour of the accessors methods.
 * Once created and filled properly the #LinphoneProxyConfig can be given to
 * #LinphoneCore with linphone_core_add_proxy_config().
 * This will automatically triggers the registration, if enabled.
 *
 * The proxy configuration are persistent to restarts because they are saved
 * in the configuration file. As a consequence, after linphone_core_new() there
 * might already be a list of configured proxy that can be examined with
 * linphone_core_get_proxy_config_list().
 *
 * The default proxy (see linphone_core_set_default_proxy() ) is the one of the list
 * that is used by default for calls.
 * @ingroup proxies
**/
typedef struct _LinphoneProxyConfig LinphoneProxyConfig;
/**
 * Enum for publish states.
 * @brief Enum for publish states.
 * @ingroup event_api
**/
typedef enum _LinphonePublishState{
@@ -906,7 +966,7 @@
} LinphonePublishState;
/**
 * Enum describing various failure reasons or contextual information for some events.
 * @brief Enum describing various failure reasons or contextual information for some events.
 * @see linphone_call_get_reason()
 * @see linphone_proxy_config_get_error()
 * @see linphone_error_info_get_reason()
@@ -921,6 +981,7 @@
   LinphoneReasonNotAnswered, /**< The call was not answered in time (request timeout) */
   LinphoneReasonBusy, /**< Phone line was busy */
   LinphoneReasonUnsupportedContent, /**< Unsupported content */
   LinphoneReasonBadEvent, /**< Bad event */
   LinphoneReasonIOError, /**< Transport error: connection failures, disconnections etc... */
   LinphoneReasonDoNotDisturb, /**< Do not disturb reason */
   LinphoneReasonUnauthorized, /**< Operation is unauthorized because missing credential */
@@ -932,6 +993,7 @@
   LinphoneReasonAddressIncomplete, /**< Address incomplete */
   LinphoneReasonNotImplemented, /**< Not implemented */
   LinphoneReasonBadGateway, /**< Bad gateway */
   LinphoneReasonSessionIntervalTooSmall, /**< The received request contains a Session-Expires header field with a duration below the minimum timer */
   LinphoneReasonServerTimeout, /**< Server timeout */
   LinphoneReasonUnknown /**< Unknown reason */
} LinphoneReason;
@@ -941,25 +1003,13 @@
/*for compatibility*/
#define LinphoneReasonMedia LinphoneReasonUnsupportedContent
/**
 * #LinphoneRegistrationState describes proxy registration states.
 * @ingroup proxies
**/
typedef enum _LinphoneRegistrationState {
   LinphoneRegistrationNone, /**< Initial state for registrations */
   LinphoneRegistrationProgress, /**< Registration is in progress */
   LinphoneRegistrationOk,   /**< Registration is successful */
   LinphoneRegistrationCleared, /**< Unregistration succeeded */
   LinphoneRegistrationFailed   /**< Registration failed */
} LinphoneRegistrationState;
typedef struct _LinphoneRingtonePlayer LinphoneRingtonePlayer;
/**
 * Linphone core SIP transport ports.
 * Special values #LC_SIP_TRANSPORT_RANDOM, #LC_SIP_TRANSPORT_RANDOM, #LC_SIP_TRANSPORT_DONTBIND can be used.
 * Use with #linphone_core_set_sip_transports
 * @deprecated
 * Use with #linphone_core_set_sip_transports()
 * @deprecated 18/04/2017
 * @donotwrap
 */
typedef struct _LinphoneSipTransports {
@@ -970,16 +1020,8 @@
} LinphoneSipTransports;
/**
 * Linphone core SIP transport ports.
 * Special values #LC_SIP_TRANSPORT_RANDOM, #LC_SIP_TRANSPORT_RANDOM, #LC_SIP_TRANSPORT_DONTBIND can be used.
 * Use with #linphone_core_set_sip_transports
 * @ingroup initializing
 */
typedef struct _LinphoneTransports LinphoneTransports;
/**
 * Old name of #LinphoneSipTransports
 * @deprecated
 * @deprecated 03/02/2017
 * @donotwrap
 */
LINPHONE_DEPRECATED typedef struct _LinphoneSipTransports LCSipTransports;
@@ -987,7 +1029,7 @@
typedef struct _LinphoneSoundDaemon LinphoneSoundDaemon;
/**
 * Enum describing the stream types.
 * @brief Enum describing the stream types.
 * @ingroup initializing
**/
typedef enum _LinphoneStreamType {
@@ -998,7 +1040,7 @@
} LinphoneStreamType;
/**
 * Enum controlling behavior for incoming subscription request.
 * @brief Enum controlling behavior for incoming subscription request.
 * Use by linphone_friend_set_inc_subscribe_policy()
 * @ingroup buddy_list
 */
@@ -1013,7 +1055,7 @@
} LinphoneSubscribePolicy;
/**
 * Enum for subscription direction (incoming or outgoing).
 * @brief Enum for subscription direction (incoming or outgoing).
 * @ingroup event_api
**/
typedef enum _LinphoneSubscriptionDir{
@@ -1023,7 +1065,7 @@
} LinphoneSubscriptionDir;
/**
 * Enum for subscription states.
 * @brief Enum for subscription states.
 * #LinphoneSubscriptionTerminated and #LinphoneSubscriptionError are final states.
 * @ingroup event_api
**/
@@ -1039,7 +1081,7 @@
} LinphoneSubscriptionState;
/**
 * Enum listing frequent telephony tones.
 * @brief Enum listing frequent telephony tones.
 * @ingroup misc
**/
typedef enum _LinphoneToneID {
@@ -1051,7 +1093,7 @@
} LinphoneToneID;
/**
 * Enum describing transport type for LinphoneAddress.
 * @brief Enum describing transport type for LinphoneAddress.
 * @ingroup linphone_address
**/
typedef enum _LinphoneTransportType {
@@ -1063,7 +1105,7 @@
/* WARNING This enum MUST be kept in sync with the SalTransport enum from sal.h */
/**
 * Linphone tunnel object.
 * @brief Linphone tunnel object.
 * @ingroup tunnel
 */
typedef struct _LinphoneTunnel LinphoneTunnel;
@@ -1075,7 +1117,7 @@
typedef struct _LinphoneTunnelConfig LinphoneTunnelConfig;
/**
 * Enum describing the tunnel modes.
 * @brief Enum describing the tunnel modes.
 * @ingroup tunnel
**/
typedef enum _LinphoneTunnelMode {
@@ -1085,7 +1127,7 @@
} LinphoneTunnelMode;
/**
 * Enum describing uPnP states.
 * @brief Enum describing uPnP states.
 * @ingroup initializing
**/
typedef enum _LinphoneUpnpState {
@@ -1100,13 +1142,13 @@
} LinphoneUpnpState;
/**
 * The #LinphoneVcard object.
 * @brief Object storing contact information using vCard 4.0 format.
 * @ingroup carddav_vcard
 */
typedef struct _LinphoneVcard LinphoneVcard;
/**
 * Enum describing the result of a version update check.
 * @brief Enum describing the result of a version update check.
 * @ingroup misc
 */
typedef enum _LinphoneVersionUpdateCheckResult {
@@ -1116,15 +1158,9 @@
} LinphoneVersionUpdateCheckResult;
/**
 * The #LinphoneVideoDefinition object represents a video definition, eg. its width and its height.
 * @brief Structure describing policy regarding video streams establishments.
 * @ingroup media_parameters
 */
typedef struct _LinphoneVideoDefinition LinphoneVideoDefinition;
/**
 * Structure describing policy regarding video streams establishments.
 * @ingroup media_parameters
 * @deprecated
 * @deprecated 18/04/17
 * @donotwrap
**/
typedef struct _LinphoneVideoPolicy {
@@ -1133,12 +1169,6 @@
   bool_t unused[2];
} LinphoneVideoPolicy;
/**
 * Structure describing policy regarding video streams establishments.
 * @ingroup media_parameters
**/
typedef struct _LinphoneVideoActivationPolicy LinphoneVideoActivationPolicy;
typedef struct LinphoneVideoSizeDef {
   MSVideoSize vsize;
   const char *name;
@@ -1146,7 +1176,7 @@
/**
 * Old name of #LinphoneVideoSizeDef
 * @deprecated
 * @deprecated 03/02/2017
 */
typedef LinphoneVideoSizeDef MSVideoSizeDef;
@@ -1157,35 +1187,36 @@
} LinphoneWaitingState;
/**
* Enum describing the types of argument for LinphoneXmlRpcRequest.
* @brief Enum describing the types of argument for LinphoneXmlRpcRequest.
* @ingroup misc
**/
typedef enum _LinphoneXmlRpcArgType {
   LinphoneXmlRpcArgNone,
   LinphoneXmlRpcArgInt,
   LinphoneXmlRpcArgString
   LinphoneXmlRpcArgString,
   LinphoneXmlRpcArgStringStruct
} LinphoneXmlRpcArgType;
/**
 * The #LinphoneXmlRpcRequest object representing a XML-RPC request to be sent.
 * @brief The #LinphoneXmlRpcRequest object representing a XML-RPC request to be sent.
 * @ingroup misc
**/
typedef struct _LinphoneXmlRpcRequest LinphoneXmlRpcRequest;
/**
 * An object to handle the callbacks for handling the #LinphoneXmlRpcRequest operations.
 * @brief An object to handle the callbacks for handling the #LinphoneXmlRpcRequest operations.
 * @ingroup misc
**/
typedef struct _LinphoneXmlRpcRequestCbs LinphoneXmlRpcRequestCbs;
/**
 * The #LinphoneXmlRpcSession object used to send XML-RPC requests and handle their responses.
 * @brief The #LinphoneXmlRpcSession object used to send XML-RPC requests and handle their responses.
 * @ingroup misc
**/
typedef struct _LinphoneXmlRpcSession LinphoneXmlRpcSession;
/**
* Enum describing the status of a LinphoneXmlRpcRequest.
* @brief Enum describing the status of a LinphoneXmlRpcRequest.
* @ingroup misc
**/
typedef enum _LinphoneXmlRpcStatus {
@@ -1197,19 +1228,19 @@
typedef struct _LsdPlayer LsdPlayer;
/**
 * Object representing an RTP payload type.
 * @brief Object representing an RTP payload type.
 * @ingroup media_parameters
 */
typedef struct _LinphonePayloadType LinphonePayloadType;
/**
 * Structure describing a range of integers
 * @brief Structure describing a range of integers
 * @ingroup misc
 */
typedef struct _LinphoneRange LinphoneRange;
/**
 * Status code returned by some functions to
 * @brief Status code returned by some functions to
 * notify whether the execution has been succesfully
 * done or not.
 * @ingroup misc
@@ -1217,7 +1248,7 @@
typedef int LinphoneStatus;
/**
 * Object representing a chain of protocol headers.
 * @brief Object representing a chain of protocol headers.
 * It provides read/write access to the headers of the underlying protocol.
 * @ingroup misc
**/