liblinphone  3.6.1
Data Structures | Typedefs | Enumerations | Functions
Initializing liblinphone

Data Structures

struct  _LCSipTransports
 
struct  _LinphoneVTable
 

Typedefs

typedef struct _LinphoneCore LinphoneCore
 
typedef struct _LCSipTransports LCSipTransports
 
typedef enum _LinphoneReason LinphoneReason
 
typedef enum _LinphoneIceState LinphoneIceState
 
typedef enum _LinphoneUpnpState LinphoneUpnpState
 
typedef enum _LinphoneGlobalState LinphoneGlobalState
 
typedef void(* LinphoneGlobalStateCb )(struct _LinphoneCore *lc, LinphoneGlobalState gstate, const char *message)
 
typedef void(* LinphoneCallStateCb )(struct _LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate, const char *message)
 
typedef void(* CallEncryptionChangedCb )(struct _LinphoneCore *lc, LinphoneCall *call, bool_t on, const char *authentication_token)
 
typedef void(* LinphoneRegistrationStateCb )(struct _LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState cstate, const char *message)
 
typedef void(* ShowInterfaceCb )(struct _LinphoneCore *lc)
 
typedef void(* DisplayStatusCb )(struct _LinphoneCore *lc, const char *message)
 
typedef void(* DisplayMessageCb )(struct _LinphoneCore *lc, const char *message)
 
typedef void(* DisplayUrlCb )(struct _LinphoneCore *lc, const char *message, const char *url)
 
typedef void(* LinphoneCoreCbFunc )(struct _LinphoneCore *lc, void *user_data)
 
typedef void(* NotifyReceivedCb )(struct _LinphoneCore *lc, LinphoneCall *call, const char *from, const char *event)
 
typedef void(* NotifyPresenceReceivedCb )(struct _LinphoneCore *lc, LinphoneFriend *lf)
 
typedef void(* NewSubscribtionRequestCb )(struct _LinphoneCore *lc, LinphoneFriend *lf, const char *url)
 
typedef void(* AuthInfoRequested )(struct _LinphoneCore *lc, const char *realm, const char *username)
 
typedef void(* CallLogUpdated )(struct _LinphoneCore *lc, struct _LinphoneCallLog *newcl)
 
typedef void(* TextMessageReceived )(LinphoneCore *lc, LinphoneChatRoom *room, const LinphoneAddress *from, const char *message)
 
typedef void(* MessageReceived )(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *message)
 
typedef void(* DtmfReceived )(struct _LinphoneCore *lc, LinphoneCall *call, int dtmf)
 
typedef void(* ReferReceived )(struct _LinphoneCore *lc, const char *refer_to)
 
typedef void(* BuddyInfoUpdated )(struct _LinphoneCore *lc, LinphoneFriend *lf)
 
typedef void(* LinphoneTransferStateChanged )(struct _LinphoneCore *lc, LinphoneCall *transfered, LinphoneCallState new_call_state)
 
typedef void(* CallStatsUpdated )(struct _LinphoneCore *lc, LinphoneCall *call, const LinphoneCallStats *stats)
 
typedef struct _LinphoneVTable LinphoneCoreVTable
 

Enumerations

enum  _LinphoneReason { ,
  LinphoneReasonNoResponse,
  LinphoneReasonBadCredentials,
  LinphoneReasonDeclined,
  LinphoneReasonNotFound,
  LinphoneReasonNotAnswered,
  LinphoneReasonBusy
}
 
enum  _LinphoneIceState {
  LinphoneIceStateNotActivated,
  LinphoneIceStateFailed,
  LinphoneIceStateInProgress,
  LinphoneIceStateHostConnection,
  LinphoneIceStateReflexiveConnection,
  LinphoneIceStateRelayConnection
}
 
enum  _LinphoneUpnpState {
  LinphoneUpnpStateIdle,
  LinphoneUpnpStatePending,
  LinphoneUpnpStateAdding,
  LinphoneUpnpStateRemoving,
  LinphoneUpnpStateNotAvailable,
  LinphoneUpnpStateOk,
  LinphoneUpnpStateKo
}
 
enum  _LinphoneGlobalState
 

Functions

LinphoneCorelinphone_core_new (const LinphoneCoreVTable *vtable, const char *config_path, const char *factory_config_path, void *userdata)
 
void linphone_core_iterate (LinphoneCore *lc)
 
void linphone_core_set_root_ca (LinphoneCore *lc, const char *path)
 
const char * linphone_core_get_root_ca (LinphoneCore *lc)
 
void linphone_core_verify_server_certificates (LinphoneCore *lc, bool_t yesno)
 
void linphone_core_verify_server_cn (LinphoneCore *lc, bool_t yesno)
 
void * linphone_core_get_user_data (LinphoneCore *lc)
 
void linphone_core_set_user_data (LinphoneCore *lc, void *userdata)
 
void linphone_core_destroy (LinphoneCore *lc)
 
void linphone_core_set_chat_database_path (LinphoneCore *lc, const char *path)
 
LinphoneCorelinphone_core_new_with_config (const LinphoneCoreVTable *vtable, struct _LpConfig *config, void *userdata)
 
int linphone_core_get_max_calls (LinphoneCore *lc)
 
void linphone_core_set_max_calls (LinphoneCore *lc, int max)
 

Detailed Description

Typedef Documentation

typedef struct _LinphoneCore LinphoneCore

Linphone core main object created by function linphone_core_new() .

Linphone core SIP transport ports. Use with linphone_core_set_sip_transports

Enum describing failure reasons.

Enum describing Ice states.

Enum describing uPnP states.

LinphoneGlobalState describes the global state of the LinphoneCore object. It is notified via the LinphoneCoreVTable::global_state_changed

typedef void(* LinphoneGlobalStateCb)(struct _LinphoneCore *lc, LinphoneGlobalState gstate, const char *message)

Call state notification callback prototype

typedef void(* LinphoneCallStateCb)(struct _LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate, const char *message)

Call state notification callback prototype

typedef void(* CallEncryptionChangedCb)(struct _LinphoneCore *lc, LinphoneCall *call, bool_t on, const char *authentication_token)

Call encryption changed callback prototype

typedef void(* LinphoneRegistrationStateCb)(struct _LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState cstate, const char *message)

Registration state notification callback prototype

typedef void(* ShowInterfaceCb)(struct _LinphoneCore *lc)

Callback prototype

typedef void(* DisplayStatusCb)(struct _LinphoneCore *lc, const char *message)

Callback prototype

typedef void(* DisplayMessageCb)(struct _LinphoneCore *lc, const char *message)

Callback prototype

typedef void(* DisplayUrlCb)(struct _LinphoneCore *lc, const char *message, const char *url)

Callback prototype

typedef void(* LinphoneCoreCbFunc)(struct _LinphoneCore *lc, void *user_data)

Callback prototype

typedef void(* NotifyReceivedCb)(struct _LinphoneCore *lc, LinphoneCall *call, const char *from, const char *event)

Callback prototype

typedef void(* NotifyPresenceReceivedCb)(struct _LinphoneCore *lc, LinphoneFriend *lf)

Report status change for a friend previously added to LinphoneCore.

Parameters
lcLinphoneCore object .
lfUpdated LinphoneFriend .
typedef void(* NewSubscribtionRequestCb)(struct _LinphoneCore *lc, LinphoneFriend *lf, const char *url)

Reports that a new subscription request has been received and wait for a decision.
Status on this subscription request is notified by changing policy for this friend

Parameters
lcLinphoneCore object
lfLinphoneFriend corresponding to the subscriber
urlof the subscriber Callback prototype
typedef void(* AuthInfoRequested)(struct _LinphoneCore *lc, const char *realm, const char *username)

Callback prototype

typedef void(* CallLogUpdated)(struct _LinphoneCore *lc, struct _LinphoneCallLog *newcl)

Callback prototype

typedef void(* TextMessageReceived)(LinphoneCore *lc, LinphoneChatRoom *room, const LinphoneAddress *from, const char *message)

Callback prototype

Deprecated:
use MessageReceived instead.
Parameters
lcLinphoneCore object
roomLinphoneChatRoom involved in this conversation. Can be be created by the framework in case the from is not present in any chat room.
fromLinphoneAddress from
messageincoming message
typedef void(* MessageReceived)(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *message)

Chat message callback prototype

Parameters
lcLinphoneCore object
roomLinphoneChatRoom involved in this conversation. Can be be created by the framework in case the from is not present in any chat room.
LinphoneChatMessageincoming message
typedef void(* DtmfReceived)(struct _LinphoneCore *lc, LinphoneCall *call, int dtmf)

Callback prototype

typedef void(* ReferReceived)(struct _LinphoneCore *lc, const char *refer_to)

Callback prototype

typedef void(* BuddyInfoUpdated)(struct _LinphoneCore *lc, LinphoneFriend *lf)

Callback prototype

typedef void(* LinphoneTransferStateChanged)(struct _LinphoneCore *lc, LinphoneCall *transfered, LinphoneCallState new_call_state)

Callback prototype for in progress transfers. The new_call_state is the state of the call resulting of the transfer, at the other party.

typedef void(* CallStatsUpdated)(struct _LinphoneCore *lc, LinphoneCall *call, const LinphoneCallStats *stats)

Callback prototype for receiving quality statistics for calls

This structure holds all callbacks that the application should implement. None is mandatory.

Enumeration Type Documentation

Enum describing failure reasons.

Enumerator
LinphoneReasonNoResponse 

No response received from remote

LinphoneReasonBadCredentials 

Authentication failed due to bad or missing credentials

LinphoneReasonDeclined 

The call has been declined

LinphoneReasonNotFound 

Destination of the calls was not found.

LinphoneReasonNotAnswered 

The call was not answered in time

LinphoneReasonBusy 

Phone line was busy

Enum describing ICE states.

Enumerator
LinphoneIceStateNotActivated 

ICE has not been activated for this call

LinphoneIceStateFailed 

ICE processing has failed

LinphoneIceStateInProgress 

ICE process is in progress

LinphoneIceStateHostConnection 

ICE has established a direct connection to the remote host

LinphoneIceStateReflexiveConnection 

ICE has established a connection to the remote host through one or several NATs

LinphoneIceStateRelayConnection 

ICE has established a connection through a relay

Enum describing uPnP states.

Enumerator
LinphoneUpnpStateIdle 

uPnP is not activate

LinphoneUpnpStatePending 

uPnP process is in progress

LinphoneUpnpStateAdding 

Internal use: Only used by port binding

LinphoneUpnpStateRemoving 

Internal use: Only used by port binding

LinphoneUpnpStateNotAvailable 

uPnP is not available

LinphoneUpnpStateOk 

uPnP is enabled

LinphoneUpnpStateKo 

uPnP processing has failed

LinphoneGlobalState describes the global state of the LinphoneCore object. It is notified via the LinphoneCoreVTable::global_state_changed

Function Documentation

LinphoneCore* linphone_core_new ( const LinphoneCoreVTable vtable,
const char *  config_path,
const char *  factory_config_path,
void *  userdata 
)

Instanciates a LinphoneCore object.

The LinphoneCore object is the primary handle for doing all phone actions. It should be unique within your application.

Parameters
vtablea LinphoneCoreVTable structure holding your application callbacks
config_patha path to a config file. If it does not exists it will be created. The config file is used to store all settings, call logs, friends, proxies... so that all these settings become persistent over the life of the LinphoneCore object. It is allowed to set a NULL config file. In that case LinphoneCore will not store any settings.
factory_config_patha path to a read-only config file that can be used to to store hard-coded preference such as proxy settings or internal preferences. The settings in this factory file always override the one in the normal config file. It is OPTIONAL, use NULL if unneeded.
userdataan opaque user pointer that can be retrieved at any time (for example in callbacks) using linphone_core_get_user_data().
See Also
linphone_core_new_with_config
void linphone_core_iterate ( LinphoneCore lc)

Main loop function. It is crucial that your application call it periodically.

linphone_core_iterate() performs various backgrounds tasks:

  • receiving of SIP messages
  • handles timers and timeout
  • performs registration to proxies
  • authentication retries The application MUST call this function periodically, in its main loop. Be careful that this function must be called from the same thread as other liblinphone methods. If it is not the case make sure all liblinphone calls are serialized with a mutex.
void linphone_core_set_root_ca ( LinphoneCore lc,
const char *  path 
)

Sets the path to a file or folder containing trusted root CAs (PEM format)

Parameters
path
lcThe LinphoneCore object
const char* linphone_core_get_root_ca ( LinphoneCore lc)

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

Parameters
lcThe LinphoneCore object
void linphone_core_verify_server_certificates ( LinphoneCore lc,
bool_t  yesno 
)

Specify whether the tls server certificate must be verified when connecting to a SIP/TLS server.

void linphone_core_verify_server_cn ( LinphoneCore lc,
bool_t  yesno 
)

Specify whether the tls server certificate common name must be verified when connecting to a SIP/TLS server.

void* linphone_core_get_user_data ( LinphoneCore lc)

Retrieves the user pointer that was given to linphone_core_new()

void linphone_core_set_user_data ( LinphoneCore lc,
void *  userdata 
)

Associate a user pointer to the linphone core.

void linphone_core_destroy ( LinphoneCore lc)

Destroys a LinphoneCore

void linphone_core_set_chat_database_path ( LinphoneCore lc,
const char *  path 
)

Sets the database filename where chat messages will be stored. If the file does not exist, it will be created.

Parameters
lcthe linphone core
pathfilesystem path
LinphoneCore* linphone_core_new_with_config ( const LinphoneCoreVTable vtable,
struct _LpConfig *  config,
void *  userdata 
)

Instantiates a LinphoneCore object with a given LpConfig.

The LinphoneCore object is the primary handle for doing all phone actions. It should be unique within your application.

Parameters
vtablea LinphoneCoreVTable structure holding your application callbacks
configa pointer to an LpConfig object holding the configuration of the LinphoneCore to be instantiated.
userdataan opaque user pointer that can be retrieved at any time (for example in callbacks) using linphone_core_get_user_data().
See Also
linphone_core_new
int linphone_core_get_max_calls ( LinphoneCore lc)

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

Parameters
lccore
Returns
max number of simultaneous calls
void linphone_core_set_max_calls ( LinphoneCore lc,
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
lccore
maxnumber of simultaneous calls