liblinphone  3.5.2
Typedefs | Enumerations | Functions
Placing and receiving calls

Typedefs

typedef enum _LinphoneCallState LinphoneCallState
 

Enumerations

enum  _LinphoneCallState {
  LinphoneCallIdle,
  LinphoneCallIncomingReceived,
  LinphoneCallOutgoingInit,
  LinphoneCallOutgoingProgress,
  LinphoneCallOutgoingRinging,
  LinphoneCallOutgoingEarlyMedia,
  LinphoneCallConnected,
  LinphoneCallStreamsRunning,
  LinphoneCallPausing,
  LinphoneCallPaused,
  LinphoneCallResuming,
  LinphoneCallRefered,
  LinphoneCallError,
  LinphoneCallEnd,
  LinphoneCallPausedByRemote,
  LinphoneCallUpdatedByRemote,
  LinphoneCallIncomingEarlyMedia,
  LinphoneCallUpdated,
  LinphoneCallReleased
}
 

Functions

LinphoneCall * linphone_call_ref (LinphoneCall *obj)
 
void linphone_call_unref (LinphoneCall *obj)
 
const LinphoneCallParams * linphone_call_get_current_params (const LinphoneCall *call)
 
const LinphoneAddresslinphone_call_get_remote_address (const LinphoneCall *call)
 
char * linphone_call_get_remote_address_as_string (const LinphoneCall *call)
 
LinphoneCallState linphone_call_get_state (const LinphoneCall *call)
 
LinphoneReason linphone_call_get_reason (const LinphoneCall *call)
 
void * linphone_call_get_user_pointer (LinphoneCall *call)
 
void linphone_call_set_user_pointer (LinphoneCall *call, void *user_pointer)
 
LinphoneCallLoglinphone_call_get_call_log (const LinphoneCall *call)
 
const char * linphone_call_get_refer_to (const LinphoneCall *call)
 
LinphoneCallDir linphone_call_get_dir (const LinphoneCall *call)
 
const char * linphone_call_get_remote_user_agent (LinphoneCall *call)
 
bool_t linphone_call_has_transfer_pending (const LinphoneCall *call)
 
int linphone_call_get_duration (const LinphoneCall *call)
 
LinphoneCall * linphone_call_get_replaced_call (LinphoneCall *call)
 
void linphone_call_enable_camera (LinphoneCall *call, bool_t enable)
 
int linphone_call_take_video_snapshot (LinphoneCall *call, const char *file)
 
bool_t linphone_call_camera_enabled (const LinphoneCall *call)
 
void linphone_call_params_enable_video (LinphoneCallParams *cp, bool_t enabled)
 
bool_t linphone_call_params_video_enabled (const LinphoneCallParams *cp)
 
void linphone_call_params_enable_early_media_sending (LinphoneCallParams *cp, bool_t enabled)
 
bool_t linphone_call_params_local_conference_mode (const LinphoneCallParams *cp)
 
void linphone_call_params_set_audio_bandwidth_limit (LinphoneCallParams *cp, int bandwidth)
 
LinphoneCall * linphone_core_invite (LinphoneCore *lc, const char *url)
 
LinphoneCall * linphone_core_invite_with_params (LinphoneCore *lc, const char *url, const LinphoneCallParams *p)
 
LinphoneCall * linphone_core_invite_address (LinphoneCore *lc, const LinphoneAddress *addr)
 
LinphoneCall * linphone_core_invite_address_with_params (LinphoneCore *lc, const LinphoneAddress *addr, const LinphoneCallParams *params)
 
int linphone_core_update_call (LinphoneCore *lc, LinphoneCall *call, const LinphoneCallParams *params)
 
int linphone_core_accept_call (LinphoneCore *lc, LinphoneCall *call)
 
int linphone_core_terminate_call (LinphoneCore *lc, LinphoneCall *the_call)
 
int linphone_core_terminate_all_calls (LinphoneCore *lc)
 
const MSList * linphone_core_get_calls (LinphoneCore *lc)
 
bool_t linphone_core_in_call (const LinphoneCore *lc)
 
LinphoneCall * linphone_core_get_current_call (const LinphoneCore *lc)
 
int linphone_core_pause_call (LinphoneCore *lc, LinphoneCall *call)
 
int linphone_core_resume_call (LinphoneCore *lc, LinphoneCall *the_call)
 
void linphone_core_set_inc_timeout (LinphoneCore *lc, int seconds)
 
int linphone_core_get_inc_timeout (LinphoneCore *lc)
 
int linphone_core_get_calls_nb (const LinphoneCore *lc)
 
bool_t linphone_core_can_we_add_call (LinphoneCore *lc)
 
bool_t linphone_core_sound_resources_locked (LinphoneCore *lc)
 

Detailed Description

The #LinphoneCall object represents an incoming or outgoing call managed by the LinphoneCore. Outgoing calls can be created using linphone_core_invite() or linphone_core_invite_address(), while incoming calls are notified to the application through the LinphoneCoreVTable::call_state_changed callback.

See the basic call tutorial.

Typedef Documentation

LinphoneCallState enum represents the different state a call can reach into. The application is notified of state changes through the LinphoneCoreVTable::call_state_changed callback.

Enumeration Type Documentation

LinphoneCallState enum represents the different state a call can reach into. The application is notified of state changes through the LinphoneCoreVTable::call_state_changed callback.

Enumerator
LinphoneCallIdle 

Initial call state

LinphoneCallIncomingReceived 

This is a new incoming call

LinphoneCallOutgoingInit 

An outgoing call is started

LinphoneCallOutgoingProgress 

An outgoing call is in progress

LinphoneCallOutgoingRinging 

An outgoing call is ringing at remote end

LinphoneCallOutgoingEarlyMedia 

An outgoing call is proposed early media

LinphoneCallConnected 

Connected, the call is answered

LinphoneCallStreamsRunning 

The media streams are established and running

LinphoneCallPausing 

The call is pausing at the initiative of local end

LinphoneCallPaused 

The call is paused, remote end has accepted the pause

LinphoneCallResuming 

The call is being resumed by local end

LinphoneCallRefered 

The call is being transfered to another party, resulting in a new outgoing call to follow immediately

LinphoneCallError 

The call encountered an error

LinphoneCallEnd 

The call ended normally

LinphoneCallPausedByRemote 

The call is paused by remote end

LinphoneCallUpdatedByRemote 

The call's parameters are updated, used for example when video is asked by remote

LinphoneCallIncomingEarlyMedia 

We are proposing early media to an incoming call

LinphoneCallUpdated 

The remote accepted the call update initiated by us

LinphoneCallReleased 

The call object is no more retained by the core

Function Documentation

LinphoneCall* linphone_call_ref ( LinphoneCall *  obj)

Increments the call 's reference count. An application that wishes to retain a pointer to call object must use this function to unsure the pointer remains valid. Once the application no more needs this pointer, it must call linphone_call_unref().

void linphone_call_unref ( LinphoneCall *  obj)

Decrements the call object reference count. See linphone_call_ref().

const LinphoneCallParams* linphone_call_get_current_params ( const LinphoneCall *  call)

Returns current parameters associated to the call.

const LinphoneAddress* linphone_call_get_remote_address ( const LinphoneCall *  call)

Returns the remote address associated to this call

char* linphone_call_get_remote_address_as_string ( const LinphoneCall *  call)

Returns the remote address associated to this call as a string.

The result string must be freed by user using ms_free().

LinphoneCallState linphone_call_get_state ( const LinphoneCall *  call)

Retrieves the call's current state.

LinphoneReason linphone_call_get_reason ( const LinphoneCall *  call)

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

void* linphone_call_get_user_pointer ( LinphoneCall *  call)

Get the user_pointer in the LinphoneCall

return user_pointer an opaque user pointer that can be retrieved at any time

void linphone_call_set_user_pointer ( LinphoneCall *  call,
void *  user_pointer 
)

Set the user_pointer in the LinphoneCall

the user_pointer is an opaque user pointer that can be retrieved at any time in the LinphoneCall

LinphoneCallLog* linphone_call_get_call_log ( const LinphoneCall *  call)

Returns the call log associated to this call.

const char* linphone_call_get_refer_to ( const LinphoneCall *  call)

Returns the refer-to uri (if the call was transfered).

LinphoneCallDir linphone_call_get_dir ( const LinphoneCall *  call)

Returns direction of the call (incoming or outgoing).

const char* linphone_call_get_remote_user_agent ( LinphoneCall *  call)

Returns the far end's user agent description string, if available.

bool_t linphone_call_has_transfer_pending ( const LinphoneCall *  call)

Returns true if this calls has received a transfer that has not been executed yet. Pending transfers are executed when this call is being paused or closed, locally or by remote endpoint. If the call is already paused while receiving the transfer request, the transfer immediately occurs.

int linphone_call_get_duration ( const LinphoneCall *  call)

Returns call's duration in seconds.

LinphoneCall* linphone_call_get_replaced_call ( LinphoneCall *  call)

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

void linphone_call_enable_camera ( LinphoneCall *  call,
bool_t  enable 
)

Indicate whether camera input should be sent to remote end.

int linphone_call_take_video_snapshot ( LinphoneCall *  call,
const char *  file 
)

Take a photo of currently received video and write it into a jpeg file.

bool_t linphone_call_camera_enabled ( const LinphoneCall *  call)

Returns TRUE if camera pictures are sent to the remote party.

void linphone_call_params_enable_video ( LinphoneCallParams *  cp,
bool_t  enabled 
)

Enable video stream.

bool_t linphone_call_params_video_enabled ( const LinphoneCallParams *  cp)

Returns whether video is enabled.

void linphone_call_params_enable_early_media_sending ( LinphoneCallParams *  cp,
bool_t  enabled 
)

Enable sending of real early media (during outgoing calls).

bool_t linphone_call_params_local_conference_mode ( const LinphoneCallParams *  cp)

Returns true if the call is part of the locally managed conference.

void linphone_call_params_set_audio_bandwidth_limit ( LinphoneCallParams *  cp,
int  bandwidth 
)

Refine bandwidth settings for this call by setting a bandwidth limit for audio streams. As a consequence, codecs whose bitrates are not compatible with this limit won't be used.

LinphoneCall* linphone_core_invite ( LinphoneCore lc,
const char *  url 
)

Initiates an outgoing call

Parameters
lcthe LinphoneCore object
urlthe destination of the call (sip address, or phone number).

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.

Returns
a LinphoneCall object or NULL in case of failure
LinphoneCall* linphone_core_invite_with_params ( LinphoneCore lc,
const char *  url,
const LinphoneCallParams *  p 
)

Initiates an outgoing call according to supplied call parameters

Parameters
lcthe LinphoneCore object
urlthe destination of the call (sip address, or phone number).
pcall parameters

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.

Returns
a LinphoneCall object or NULL in case of failure
LinphoneCall* linphone_core_invite_address ( LinphoneCore lc,
const LinphoneAddress addr 
)

Initiates an outgoing call given a destination LinphoneAddress

Parameters
lcthe LinphoneCore object
addrthe destination of the call (sip address).

The LinphoneAddress can be constructed directly using linphone_address_new(), or created by linphone_core_interpret_url(). 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.

Returns
a LinphoneCall object or NULL in case of failure
LinphoneCall* linphone_core_invite_address_with_params ( LinphoneCore lc,
const LinphoneAddress addr,
const LinphoneCallParams *  params 
)

Initiates an outgoing call given a destination LinphoneAddress

Parameters
lcthe LinphoneCore object
addrthe destination of the call (sip address).
paramscall parameters

The LinphoneAddress can be constructed directly using linphone_address_new(), or created by linphone_core_interpret_url(). 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.

Returns
a LinphoneCall object or NULL in case of failure
int linphone_core_update_call ( LinphoneCore lc,
LinphoneCall *  call,
const LinphoneCallParams *  params 
)

Updates a running call according to supplied call parameters or parameters changed in the LinphoneCore.

In this version this is limited to the following use cases:

In case no changes are requested through the LinphoneCallParams argument, then this argument can be omitted and set to NULL.

Returns
0 if successful, -1 otherwise.
int linphone_core_accept_call ( LinphoneCore lc,
LinphoneCall *  call 
)

Accept an incoming call.

Basically the application is notified of incoming calls within the call_state_changed callback of the LinphoneCoreVTable structure, where it will receive a LinphoneCallIncoming event with the associated LinphoneCall object. The application can later accept the call using this method.

Parameters
lcthe LinphoneCore object
callthe LinphoneCall object representing the call to be answered.
int linphone_core_terminate_call ( LinphoneCore lc,
LinphoneCall *  the_call 
)

Terminates a call.

Parameters
lcthe LinphoneCore
the_callthe LinphoneCall object representing the call to be terminated.
int linphone_core_terminate_all_calls ( LinphoneCore lc)

Terminates all the calls.

Parameters
lcThe LinphoneCore
const MSList* linphone_core_get_calls ( LinphoneCore lc)

Returns the current list of calls.

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

bool_t linphone_core_in_call ( const LinphoneCore lc)

Returns TRUE if there is a call running.

LinphoneCall* linphone_core_get_current_call ( const LinphoneCore lc)

Returns The _LinphoneCall struct of the current call if one is in call

int linphone_core_pause_call ( LinphoneCore lc,
LinphoneCall *  call 
)

Pauses the call. If a music file has been setup using linphone_core_set_play_file(), this file will be played to the remote user.

int linphone_core_resume_call ( LinphoneCore lc,
LinphoneCall *  the_call 
)

Resumes the call.

void linphone_core_set_inc_timeout ( LinphoneCore lc,
int  seconds 
)

Set the incoming call timeout in seconds.

If an incoming call isn't answered for this timeout period, it is automatically declined.

int linphone_core_get_inc_timeout ( LinphoneCore lc)

Returns the incoming call timeout

See linphone_core_set_inc_timeout() for details.

int linphone_core_get_calls_nb ( const LinphoneCore lc)

Get the number of Call

bool_t linphone_core_can_we_add_call ( LinphoneCore lc)

Check if we do not have exceed the number of simultaneous call

bool_t linphone_core_sound_resources_locked ( LinphoneCore lc)

Check if a call will need the sound resources.

Parameters
lcThe LinphoneCore