/* Wrapper generated by lp-gen-wrappers, do not edit*/
/**
* Linphone core main object created by function
* @external LinphoneCore
**/
/**
* Sets adaptive rate algorithm. It will be used for each new calls starting from now. Calls already started
* will not be updated.
* @member {string} external:LinphoneCore#adaptiveRateAlgorithm
**/
/**
* Enable adaptive rate control.
* @member {boolean} external:LinphoneCore#adaptiveRateControlEnabled
**/
/**
* Enable or disable the audio adaptive jitter compensation.
* @member {boolean} external:LinphoneCore#audioAdaptiveJittcompEnabled
**/
/**
* Sets the list of audio codecs.
* @member {Array.<Object>} external:LinphoneCore#audioCodecs
**/
/**
* Set the DSCP field for outgoing audio streams.
* @member {number} external:LinphoneCore#audioDscp
**/
/**
* 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.
* @member {number} external:LinphoneCore#audioJittcomp
**/
/**
* Sets the UDP port used for audio streaming. A value if -1 will request the system to allocate the local
* port randomly. This is recommended in order to avoid firewall warnings.
* @member {number} external:LinphoneCore#audioPort
**/
/**
* Returns an unmodifiable list of currently entered LinphoneAuthInfo.
* @member {Array.<Object>} external:LinphoneCore#authInfoList
* @readonly
**/
/**
* Enable RTCP feedback (also known as RTP/AVPF profile). Setting LinphoneAVPFDefault is equivalent to LinphoneAVPFDisabled.
* This setting can be overriden per LinphoneProxyConfig with
* @member {linphone.AVPFMode} external:LinphoneCore#avpfMode
**/
/**
* Set the avpf report interval in seconds. This value can be overriden by the proxy config using
* @member {number} external:LinphoneCore#avpfRrInterval
**/
/**
* Get the list of call logs (past calls).
* @member {Array.<Object>} external:LinphoneCore#callLogs
* @readonly
**/
/**
* Returns the current list of calls.
* @member {Array.<Object>} external:LinphoneCore#calls
* @readonly
**/
/**
* Get the number of Call
* @member {number} external:LinphoneCore#callsNb
* @readonly
**/
/**
* Sets the sound device used for capture.
* @member {string} external:LinphoneCore#captureDevice
**/
/**
* Sets the database filename where chat messages will be stored. If the file does not exist, it will be
* created.
* @member {string} external:LinphoneCore#chatDatabasePath
**/
/**
* Returns whether chat is enabled.
* @member {boolean} external:LinphoneCore#chatEnabled
* @readonly
**/
/**
* Returns an list of chat rooms
* @member {Array.<Object>} external:LinphoneCore#chatRooms
* @readonly
**/
/**
* Returns the sound volume (mic input) of the local participant of the conference.
* @member {number} external:LinphoneCore#conferenceLocalInputVolume
* @readonly
**/
/**
* Returns the number of participants to the conference, including the local participant.
* @member {number} external:LinphoneCore#conferenceSize
* @readonly
**/
/**
* Returns the LpConfig object used to manage the storage (config) file.
* @member {external:LpConfig} external:LinphoneCore#config
* @readonly
**/
/**
* Returns The _LinphoneCall struct of the current call if one is in call
* @member {external:LinphoneCall} external:LinphoneCore#currentCall
* @readonly
**/
/**
* Get the remote address of the current call.
* @member {external:LinphoneAddress} external:LinphoneCore#currentCallRemoteAddress
* @readonly
**/
/**
* Sets the default proxy.
* @member {external:LinphoneProxyConfig} external:LinphoneCore#defaultProxyConfig
**/
/**
* Set the in delayed timeout in seconds.
* @member {number} external:LinphoneCore#delayedTimeout
**/
/**
* 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.
* @member {number} external:LinphoneCore#deviceRotation
**/
/**
* Enable or disable DNS SRV resolution.
* @member {boolean} external:LinphoneCore#dnsSrvEnabled
**/
/**
* 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.
* @member {number} external:LinphoneCore#downloadBandwidth
**/
/**
* Set audio packetization time linphone expects to receive from peer. A value of zero means that ptime is
* not specified.
* @member {number} external:LinphoneCore#downloadPtime
**/
/**
* Enables or disable echo cancellation. Value is saved and used for subsequent calls. This actually controls
* software echo cancellation. If hardware echo cancellation is available, it will be always used and activated
* for calls, regardless of the value passed to this function. When hardware echo cancellation is available,
* the software one is of course not activated.
* @member {boolean} external:LinphoneCore#echoCancellationEnabled
**/
/**
* Enables or disable echo limiter.
* @member {boolean} external:LinphoneCore#echoLimiterEnabled
**/
/**
* Set the policy to use to pass through firewalls.
* @member {linphone.FirewallPolicy} external:LinphoneCore#firewallPolicy
**/
/**
* Get Buddy list of LinphoneFriend
* @member {Array.<Object>} external:LinphoneCore#friendList
* @readonly
**/
/**
* Tells LinphoneCore to guess local hostname automatically in primary contact.
* @member {boolean} external:LinphoneCore#guessHostname
**/
/**
* Returns the default identity SIP address.
* @member {string} external:LinphoneCore#identity
* @readonly
**/
/**
* Set the in call timeout in seconds.
* @member {number} external:LinphoneCore#inCallTimeout
**/
/**
* Indicates whether the local participant is part of the conference.
* @member {boolean} external:LinphoneCore#inConference
* @readonly
**/
/**
* Set the incoming call timeout in seconds.
* @member {number} external:LinphoneCore#incTimeout
**/
/**
* Tells whether there is an incoming invite pending.
* @member {boolean} external:LinphoneCore#incomingInvitePending
* @readonly
**/
/**
* Turns IPv6 support on or off.
* @member {boolean} external:LinphoneCore#ipv6Enabled
**/
/**
* enable signaling keep alive. small udp packet sent periodically to keep udp NAT association
* @member {boolean} external:LinphoneCore#keepAliveEnabled
**/
/**
* Set the url of the server where to upload the collected log files.
* @member {string} external:LinphoneCore#logCollectionUploadServerUrl
**/
/**
* 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
* @member {number} external:LinphoneCore#maxCalls
**/
/**
* Choose the media encryption policy to be used for RTP packets.
* @member {linphone.MediaEncryption} external:LinphoneCore#mediaEncryption
**/
/**
* Define behaviour when encryption parameters negociation fails on outgoing call.
* @member {boolean} external:LinphoneCore#mediaEncryptionMandatory
**/
/**
* Enable or disable the microphone.
* @member {boolean} external:LinphoneCore#micEnabled
**/
/**
* Allow to control microphone level: gain in db
* @member {number} external:LinphoneCore#micGainDb
**/
/**
* Get the number of missed calls. Once checked, this counter can be reset with
* @member {number} external:LinphoneCore#missedCallsCount
* @readonly
**/
/**
* Sets the maximum transmission unit size in bytes. This information is useful for sending RTP packets.
* Default value is 1500.
* @member {number} external:LinphoneCore#mtu
**/
/**
* Set the public IP address of NAT when using the firewall policy is set to use NAT.
* @member {string} external:LinphoneCore#natAddress
**/
/**
* Set the native window id where the preview video (local camera) is to be displayed. This has to be used
* in conjonction with
* @member {external:unsignedlong} external:LinphoneCore#nativePreviewWindowId
**/
/**
* Set the native video window id where the video is to be displayed. For MacOS, Linux, Windows: if not set
* or zero the core will create its own window, unless the special id -1 is given.
* @member {external:unsignedlong} external:LinphoneCore#nativeVideoWindowId
**/
/**
* 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.
* @member {boolean} external:LinphoneCore#networkReachable
**/
/**
* Sets the no-rtp timeout value in seconds.
* @member {number} external:LinphoneCore#nortpTimeout
**/
/**
* Sets a wav file to be played when putting somebody on hold, or when files are used instead of soundcards
* (see
* @member {string} external:LinphoneCore#playFile
**/
/**
* Set sound playback level in 0-100 scale
* @member {number} external:LinphoneCore#playLevel
**/
/**
* Sets the sound device used for playback.
* @member {string} external:LinphoneCore#playbackDevice
**/
/**
* Allow to control play level before entering sound card: gain in db
* @member {number} external:LinphoneCore#playbackGainDb
**/
/**
* 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".
* @member {number} external:LinphoneCore#preferredFramerate
**/
/**
* Sets the preferred video size.
* @member {external:MSVideoSize} external:LinphoneCore#preferredVideoSize
**/
/**
* Sets the preferred video size by its name.
* @member {string} external:LinphoneCore#preferredVideoSizeByName
**/
/**
* Set my presence model
* @member {external:LinphonePresenceModel} external:LinphoneCore#presenceModel
**/
/**
* Sets the video size for the captured (preview) video. This method is for advanced usage where a video
* capture must be set independently of the size of the stream actually sent through the call. This allows
* for example to have the preview window with HD resolution even if due to bandwidth constraint the sent
* video size is small. Using this feature increases the CPU consumption, since a rescaling will be done
* internally.
* @member {external:MSVideoSize} external:LinphoneCore#previewVideoSize
**/
/**
* Sets the preview video size by its name. See
* @member {string} external:LinphoneCore#previewVideoSizeByName
**/
/**
* Sets the local "from" identity.
* @member {string} external:LinphoneCore#primaryContact
**/
/**
* Same as
* @member {external:LinphoneAddress} external:LinphoneCore#primaryContactParsed
* @readonly
**/
/**
* 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 LinphoneCore start.
* @member {string} external:LinphoneCore#provisioningUri
**/
/**
* Returns an unmodifiable list of entered proxy configurations.
* @member {Array.<Object>} external:LinphoneCore#proxyConfigList
* @readonly
**/
/**
* Set sound capture level in 0-100 scale
* @member {number} external:LinphoneCore#recLevel
**/
/**
* Sets a wav file where incoming stream is to be recorded, when files are used instead of soundcards (see
*
* @member {string} external:LinphoneCore#recordFile
**/
/**
* Sets the path to a wav file used for ringing.
* @member {string} external:LinphoneCore#ring
**/
/**
* Set sound ring level in 0-100 scale
* @member {number} external:LinphoneCore#ringLevel
**/
/**
* Sets the path to a wav file used for ringing back.
* @member {string} external:LinphoneCore#ringback
**/
/**
* Sets the sound device used for ringing.
* @member {string} external:LinphoneCore#ringerDevice
**/
/**
* Sets the path to a file or folder containing trusted root CAs (PEM format)
* @member {string} external:LinphoneCore#rootCa
**/
/**
* Control when media offer is sent in SIP INVITE.
* @member {boolean} external:LinphoneCore#sdp200AckEnabled
**/
/**
* Enables or disable self view during calls.
* @member {boolean} external:LinphoneCore#selfViewEnabled
**/
/**
* Set the DSCP field for SIP signaling channel.
* @member {number} external:LinphoneCore#sipDscp
**/
/**
* Sets the UDP port to be used by SIP.
* @member {number} external:LinphoneCore#sipPort
**/
/**
* Set the SIP transport timeout.
* @member {number} external:LinphoneCore#sipTransportTimeout
**/
/**
* Sets the ports to be used for each of transport (UDP or TCP)
* @member {external:LCSipTransports} external:LinphoneCore#sipTransports
**/
/**
* Returns an unmodifiable array of available sound devices.
* @member {string} external:LinphoneCore#soundDevices
* @readonly
**/
/**
* Set the path to the image file to stream when "Static picture" is set as the video device.
* @member {string} external:LinphoneCore#staticPicture
**/
/**
* Set the frame rate for static picture.
* @member {number} external:LinphoneCore#staticPictureFps
**/
/**
* Set the STUN server address to use when the firewall policy is set to STUN.
* @member {string} external:LinphoneCore#stunServer
**/
/**
* Returns a null terminated table of strings containing the file format extension supported for call recording.
*
* @member {string} external:LinphoneCore#supportedFileFormats
* @readonly
**/
/**
* Returns the zero terminated table of supported video resolutions.
* @member {external:MSVideoSizeDef} external:LinphoneCore#supportedVideoSizes
* @readonly
**/
/**
* 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.
* @member {number} external:LinphoneCore#uploadBandwidth
**/
/**
* 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.
* @member {number} external:LinphoneCore#uploadPtime
**/
/**
* 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).
* @member {string} external:LinphoneCore#upnpExternalIpaddress
* @readonly
**/
/**
* Return the internal state of uPnP.
* @member {linphone.UpnpState} external:LinphoneCore#upnpState
* @readonly
**/
/**
* Ask the core to stream audio from and to files, instead of using the soundcard.
* @member {boolean} external:LinphoneCore#useFiles
**/
/**
* Sets whether SIP INFO is to be used for sending digits.
* @member {boolean} external:LinphoneCore#useInfoForDtmf
**/
/**
* Sets whether RFC2833 is to be used for sending digits.
* @member {boolean} external:LinphoneCore#useRfc2833ForDtmf
**/
/**
* Enable or disable the video adaptive jitter compensation.
* @member {boolean} external:LinphoneCore#videoAdaptiveJittcompEnabled
**/
/**
* Enable or disable video capture.
* @member {boolean} external:LinphoneCore#videoCaptureEnabled
**/
/**
* Sets the list of video codecs.
* @member {Array.<Object>} external:LinphoneCore#videoCodecs
**/
/**
* Sets the active video device.
* @member {string} external:LinphoneCore#videoDevice
**/
/**
* Returns an unmodifiable array of available video capture devices.
* @member {string} external:LinphoneCore#videoDevices
* @readonly
**/
/**
* Enable or disable video display.
* @member {boolean} external:LinphoneCore#videoDisplayEnabled
**/
/**
* 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.
* @member {string} external:LinphoneCore#videoDisplayFilter
**/
/**
* Set the DSCP field for outgoing video streams.
* @member {number} external:LinphoneCore#videoDscp
**/
/**
* 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.
* @member {number} external:LinphoneCore#videoJittcomp
**/
/**
* Sets the default policy for video. This policy defines whether:
* @member {external:LinphoneVideoPolicy} external:LinphoneCore#videoPolicy
**/
/**
* Sets the UDP port used for video streaming. A value if -1 will request the system to allocate the local
* port randomly. This is recommended in order to avoid firewall warnings.
* @member {number} external:LinphoneCore#videoPort
**/
/**
* Controls video preview enablement.
* @member {boolean} external:LinphoneCore#videoPreviewEnabled
**/
/**
* Enable or disable video source reuse when switching from preview to actual video call.
* @member {boolean} external:LinphoneCore#videoSourceReuseEnabled
**/
/**
* Set the path to the file storing the zrtp secrets cache.
* @member {string} external:LinphoneCore#zrtpSecretsFile
**/
/**
* This method is used to abort a user authentication request initiated by LinphoneCore from the auth_info_requested
* callback of LinphoneCoreVTable.
* @function external:LinphoneCore#abortAuthentication
* @param {external:LinphoneAuthInfo} info -
* @returns {void}
**/
/**
* Accept an incoming call.
* @function external:LinphoneCore#acceptCall
* @param {external:LinphoneCall} call - the LinphoneCall object representing the call to be answered.
* @returns {number}
**/
/**
* Accept call modifications initiated by other end.
* @function external:LinphoneCore#acceptCallUpdate
* @param {external:LinphoneCall} call - the LinphoneCall object
* @param {external:LinphoneCallParams} params - a LinphoneCallParams object describing the call parameters to accept.
* @returns {number}
**/
/**
* Accept an incoming call, with parameters.
* @function external:LinphoneCore#acceptCallWithParams
* @param {external:LinphoneCall} call - the LinphoneCall object representing the call to be answered.
* @param {external:LinphoneCallParams} params - the specific parameters for this call, for example whether video is accepted or not. Use NULL to use default parameters.
* @returns {number}
**/
/**
* Accept an early media session for an incoming call. This is identical as calling
* @function external:LinphoneCore#acceptEarlyMedia
* @param {external:LinphoneCall} call - the incoming call
* @returns {number}
**/
/**
* When receiving an incoming, accept to start a media session as early-media. This means the call is not
* accepted but audio & video streams can be established if the remote party supports early media. However,
* unlike after call acceptance, mic and camera input are not sent during early-media, though received audio
* & video are played normally. The call can then later be fully accepted using
* @function external:LinphoneCore#acceptEarlyMediaWithParams
* @param {external:LinphoneCall} call - the call
* @param {external:LinphoneCallParams} params - the call params, can be NULL.
* @returns {number}
**/
/**
* Add all calls into a conference.
* @function external:LinphoneCore#addAllToConference
* @returns {number}
**/
/**
* Adds authentication information to the LinphoneCore.
* @function external:LinphoneCore#addAuthInfo
* @param {external:LinphoneAuthInfo} info -
* @returns {void}
**/
/**
* Add a friend to the current buddy list, if
* @function external:LinphoneCore#addFriend
* @param {external:LinphoneFriend} fr - to add
* @returns {void}
**/
/**
* add a listener to be notified of linphone core events. Once events are received, registered vtable are
* invoked in order.
* @function external:LinphoneCore#addListener
* @param {external:LinphoneCoreVTable} vtable - object
* @returns {void}
**/
/**
* Add a proxy configuration. This will start registration on the proxy, if registration is enabled.
* @function external:LinphoneCore#addProxyConfig
* @param {external:LinphoneProxyConfig} config -
* @returns {number}
**/
/**
* This function controls signaling features supported by the core. They are typically included in a SIP
* Supported header.
* @function external:LinphoneCore#addSupportedTag
* @param {string} tag - the feature tag name
* @returns {void}
**/
/**
* Merge a call into a conference.
* @function external:LinphoneCore#addToConference
* @param {external:LinphoneCall} call - an established call, either in LinphoneCallStreamsRunning or LinphoneCallPaused state.
* @returns {number}
**/
/**
* Check if we do not have exceed the number of simultaneous call
* @function external:LinphoneCore#canWeAddCall
* @returns {boolean}
**/
/**
* Clear all authentication information.
* @function external:LinphoneCore#clearAllAuthInfo
* @returns {void}
**/
/**
* Erase the call log.
* @function external:LinphoneCore#clearCallLogs
* @returns {void}
**/
/**
* Erase all proxies from config.
* @function external:LinphoneCore#clearProxyConfig
* @returns {void}
**/
/**
* Decline a pending incoming call, with a reason.
* @function external:LinphoneCore#declineCall
* @param {external:LinphoneCall} call - the LinphoneCall, must be in the IncomingReceived state.
* @param {linphone.Reason} reason - the reason for rejecting the call: LinphoneReasonDeclined or LinphoneReasonBusy
* @returns {number}
**/
/**
* When receiving a
* @function external:LinphoneCore#deferCallUpdate
* @param {external:LinphoneCall} call -
* @returns {number}
**/
/**
* Inconditionnaly disable incoming chat messages.
* @function external:LinphoneCore#disableChat
* @param {linphone.Reason} deny_reason - the deny reason (LinphoneReasonNone has no effect).
* @returns {void}
**/
/**
* Enable reception of incoming chat messages. By default it is enabled but it can be disabled with
* @function external:LinphoneCore#enableChat
* @returns {void}
**/
/**
* Enable or disable the use of the specified payload type.
* @function external:LinphoneCore#enablePayloadType
* @param {external:LinphonePayloadType} pt - The
* @param {boolean} enable - TRUE to enable the payload type, FALSE to disable it.
* @returns {number}
**/
/**
* Moves the local participant inside the conference.
* @function external:LinphoneCore#enterConference
* @returns {number}
**/
/**
* 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.
* @function external:LinphoneCore#findAuthInfo
* @param {string} realm - the authentication 'realm' (optional)
* @param {string} username - the SIP username to be authenticated (mandatory)
* @param {string} sip_domain - the SIP domain name (optional)
* @returns {external:LinphoneAuthInfo}
**/
/**
* Search from the list of current calls if a remote address match uri
* @function external:LinphoneCore#findCallFromUri
* @param {string} uri - which should match call remote uri
* @returns {external:LinphoneCall}
**/
/**
* Search a LinphoneFriend by its address.
* @function external:LinphoneCore#findFriend
* @param {external:LinphoneAddress} addr - The address to use to search the friend.
* @returns {external:LinphoneFriend}
**/
/**
* Get payload type from mime type and clock rate
* @function external:LinphoneCore#findPayloadType
* @param {string} type - payload mime type (I.E SPEEX, PCMU, VP8)
* @param {number} rate - can be
* @param {number} channels - number of channels, can be
* @returns {external:LinphonePayloadType}
**/
/**
* Get the audio port range from which is randomly chosen the UDP port used for audio streaming.
* @function external:LinphoneCore#getAudioPortRange
* @param {number} min_port -
* @param {number} max_port -
* @returns {void}
**/
/**
* Get the call with the remote_address specified
* @function external:LinphoneCore#getCallByRemoteAddress
* @param {string} remote_address -
* @returns {external:LinphoneCall}
**/
/**
* Get a chat room whose peer is the supplied address. If it does not exist yet, it will be created.
* @function external:LinphoneCore#getChatRoom
* @param {external:LinphoneAddress} addr - a linphone address.
* @returns {external:LinphoneChatRoom}
**/
/**
* Get a chat room for messaging from a sip uri like sip:
* @function external:LinphoneCore#getChatRoomFromUri
* @param {string} to - The destination address for messages.
* @returns {external:LinphoneChatRoom}
**/
/**
* Search a LinphoneFriend by its reference key.
* @function external:LinphoneCore#getFriendByRefKey
* @param {string} key - The reference key to use to search the friend.
* @returns {external:LinphoneFriend}
**/
/**
* Get the bitrate explicitely set with
* @function external:LinphoneCore#getPayloadTypeBitrate
* @param {external:LinphonePayloadType} pt - the
* @returns {number}
**/
/**
* 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 choosen randomly by the system.
* @function external:LinphoneCore#getSipTransports
* @param {external:LCSipTransports} transports -
* @returns {number}
**/
/**
* 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
* @function external:LinphoneCore#getSipTransportsUsed
* @param {external:LCSipTransports} tr - a LCSipTransports structure.
* @returns {void}
**/
/**
* Get the video port range from which is randomly chosen the UDP port used for video streaming.
* @function external:LinphoneCore#getVideoPortRange
* @param {number} min_port -
* @param {number} max_port -
* @returns {void}
**/
/**
* Returns TRUE if there is a call running.
* @function external:LinphoneCore#inCall
* @returns {boolean}
**/
/**
* Interpret a call destination as supplied by the user, and returns a fully qualified LinphoneAddress.
* @function external:LinphoneCore#interpretUrl
* @param {string} url -
* @returns {external:LinphoneAddress}
**/
/**
* Initiates an outgoing call
* @function external:LinphoneCore#invite
* @param {string} url - the destination of the call (sip address, or phone number).
* @returns {external:LinphoneCall}
**/
/**
* Initiates an outgoing call given a destination LinphoneAddress
* @function external:LinphoneCore#inviteAddress
* @param {external:LinphoneAddress} addr - the destination of the call (sip address).
* @returns {external:LinphoneCall}
**/
/**
* Initiates an outgoing call given a destination LinphoneAddress
* @function external:LinphoneCore#inviteAddressWithParams
* @param {external:LinphoneAddress} addr - the destination of the call (sip address).
* @param {external:LinphoneCallParams} params - call parameters
* @returns {external:LinphoneCall}
**/
/**
* Initiates an outgoing call according to supplied call parameters
* @function external:LinphoneCore#inviteWithParams
* @param {string} url - the destination of the call (sip address, or phone number).
* @param {external:LinphoneCallParams} params - call parameters
* @returns {external:LinphoneCall}
**/
/**
* Main loop function. It is crucial that your application call it periodically.
* @function external:LinphoneCore#iterate
* @returns {void}
**/
/**
* Moves the local participant out of the conference.
* @function external:LinphoneCore#leaveConference
* @returns {number}
**/
/**
* 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
* @function external:LinphoneCore#migrateToMultiTransport
* @returns {number}
**/
/**
* Create a
* @function external:LinphoneCore#newAddress
* @param {string} address - String containing the user supplied address
* @returns {external:LinphoneAddress}
**/
/**
* Create an authentication information with default values from Linphone core.
* @function external:LinphoneCore#newAuthInfo
* @param {string} username - String containing the username part of the authentication credentials
* @param {string} userid - String containing the username to use to calculate the authentication digest (optional)
* @param {string} passwd - String containing the password of the authentication credentials (optional, either passwd or ha1 must be set)
* @param {string} ha1 - String containing a ha1 hash of the password (optional, either passwd or ha1 must be set)
* @param {string} realm - String used to discriminate different SIP authentication domains (optional)
* @param {string} domain - String containing the SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain.
* @returns {external:LinphoneAuthInfo}
**/
/**
* Create a LinphoneCallParams suitable for
* @function external:LinphoneCore#newCallParams
* @param {external:LinphoneCall} call - the 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 {external:LinphoneCallParams}
**/
/**
* Create a default LinphoneFriend.
* @function external:LinphoneCore#newFriend
* @returns {external:LinphoneFriend}
**/
/**
* Create a LinphoneFriend from the given address.
* @function external:LinphoneCore#newFriendWithAddress
* @param {string} address - A string containing the address to create the LinphoneFriend from
* @returns {external:LinphoneFriend}
**/
/**
* Create a LpConfig object from a user config file.
* @function external:LinphoneCore#newLpConfig
* @param {string} filename - The filename of the config file to read to fill the instantiated LpConfig
* @returns {external:LpConfig}
**/
/**
* Create a LinphonePresenceActivity with the given type and description.
* @function external:LinphoneCore#newPresenceActivity
* @param {linphone.PresenceActivityType} acttype - The
* @param {string} description - An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
* @returns {external:LinphonePresenceActivity}
**/
/**
* Create a default LinphonePresenceModel.
* @function external:LinphoneCore#newPresenceModel
* @returns {external:LinphonePresenceModel}
**/
/**
* Create a LinphonePresenceModel with the given activity type and activity description.
* @function external:LinphoneCore#newPresenceModelWithActivity
* @param {linphone.PresenceActivityType} acttype - The
* @param {string} description - An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
* @returns {external:LinphonePresenceModel}
**/
/**
* Create a LinphonePresenceModel with the given activity type, activity description, note content and note
* language.
* @function external:LinphoneCore#newPresenceModelWithActivityAndNote
* @param {linphone.PresenceActivityType} acttype - The
* @param {string} description - An additional description of the activity to set for the activity. Can be NULL if no additional description is to be added.
* @param {string} note - The content of the note to be added to the created model.
* @param {string} lang - The language of the note to be added to the created model.
* @returns {external:LinphonePresenceModel}
**/
/**
* Create a LinphonePresenceNote with the given content and language.
* @function external:LinphoneCore#newPresenceNote
* @param {string} content - The content of the note to be created.
* @param {string} lang - The language of the note to be created.
* @returns {external:LinphonePresenceNote}
**/
/**
* Create a LinphonePresencePerson with the given id.
* @function external:LinphoneCore#newPresencePerson
* @param {string} id - The id of the person to be created.
* @returns {external:LinphonePresencePerson}
**/
/**
* Create a LinphonePresenceService with the given id, basic status and contact.
* @function external:LinphoneCore#newPresenceService
* @param {string} id - The id of the service to be created.
* @param {linphone.PresenceBasicStatus} basic_status - The basic status of the service to be created.
* @param {string} contact - A string containing a contact information corresponding to the service to be created.
* @returns {external:LinphonePresenceService}
**/
/**
* Create a proxy config with default values from Linphone core.
* @function external:LinphoneCore#newProxyConfig
* @returns {external:LinphoneProxyConfig}
**/
/**
* Create a publish context for an event state. After being created, the publish must be sent using
* @function external:LinphoneCore#newPublish
* @param {external:LinphoneAddress} resource - the resource uri for the event
* @param {string} event - the event name
* @param {number} expires - the lifetime of event being published, -1 if no associated duration, in which case it will not be refreshed.
* @returns {external:LinphoneEvent}
**/
/**
* 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
* @function external:LinphoneCore#newSubscribe
* @param {external:LinphoneAddress} resource - the destination resource
* @param {string} event - the event name
* @param {number} expires - the whished duration of the subscription
* @returns {external:LinphoneEvent}
**/
/**
* Notify all friends that have subscribed
* @function external:LinphoneCore#notifyAllFriends
* @param {external:LinphonePresenceModel} presence - to notify
* @returns {void}
**/
/**
* Pause all currently running calls.
* @function external:LinphoneCore#pauseAllCalls
* @returns {number}
**/
/**
* Pauses the call. If a music file has been setup using
* @function external:LinphoneCore#pauseCall
* @param {external:LinphoneCall} call -
* @returns {number}
**/
/**
* Tells whether the specified payload type is enabled.
* @function external:LinphoneCore#payloadTypeEnabled
* @param {external:LinphonePayloadType} pt - The
* @returns {boolean}
**/
/**
* Tells whether the specified payload type represents a variable bitrate codec.
* @function external:LinphoneCore#payloadTypeIsVbr
* @param {external:LinphonePayloadType} pt - The
* @returns {boolean}
**/
/**
* Plays a dtmf sound to the local user.
* @function external:LinphoneCore#playDtmf
* @param {external:char} dtmf - DTMF to play ['0'..'16'] | '#' | '#'
* @param {number} duration_ms - duration in ms, -1 means play until next further call to
* @returns {void}
**/
/**
* 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.
* @function external:LinphoneCore#playLocal
* @param {string} audiofile - path to audio file in wav PCM 16 bit format.
* @returns {number}
**/
/**
* Publish an event state. This first create a LinphoneEvent with
* @function external:LinphoneCore#publish
* @param {external:LinphoneAddress} resource - the resource uri for the event
* @param {string} event - the event name
* @param {number} expires - the lifetime of event being published, -1 if no associated duration, in which case it will not be refreshed.
* @param {external:LinphoneContent} body - the actual published data
* @returns {external:LinphoneEvent}
**/
/**
* Redirect the specified call to the given redirect URI.
* @function external:LinphoneCore#redirectCall
* @param {external:LinphoneCall} call - The
* @param {string} redirect_uri - The URI to redirect the call to.
* @returns {number}
**/
/**
* force registration refresh to be initiated upon next iterate
* @function external:LinphoneCore#refreshRegisters
* @returns {void}
**/
/**
* Black list a friend. same as
* @function external:LinphoneCore#rejectSubscriber
* @param {external:LinphoneFriend} lf - to add
* @returns {void}
**/
/**
* Update detection of sound devices.
* @function external:LinphoneCore#reloadSoundDevices
* @returns {void}
**/
/**
* Update detection of camera devices.
* @function external:LinphoneCore#reloadVideoDevices
* @returns {void}
**/
/**
* Removes an authentication information object.
* @function external:LinphoneCore#removeAuthInfo
* @param {external:LinphoneAuthInfo} info -
* @returns {void}
**/
/**
* 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.
* @function external:LinphoneCore#removeCallLog
* @param {external:LinphoneCallLog} call_log - object to remove.
* @returns {void}
**/
/**
* remove a friend from the buddy list
* @function external:LinphoneCore#removeFriend
* @param {external:LinphoneFriend} fr - to add
* @returns {void}
**/
/**
* Remove a call from the conference.
* @function external:LinphoneCore#removeFromConference
* @param {external:LinphoneCall} call - a call that has been previously merged into the conference.
* @returns {number}
**/
/**
* remove a listener registred by linphone_core_add_listener.
* @function external:LinphoneCore#removeListener
* @param {external:LinphoneCoreVTable} vtable - object
* @returns {void}
**/
/**
* Removes a proxy configuration.
* @function external:LinphoneCore#removeProxyConfig
* @param {external:LinphoneProxyConfig} config -
* @returns {void}
**/
/**
* Remove a supported tag.
* @function external:LinphoneCore#removeSupportedTag
* @param {string} tag - the tag to remove
* @returns {void}
**/
/**
* Reset the counter of missed calls.
* @function external:LinphoneCore#resetMissedCallsCount
* @returns {void}
**/
/**
* Resumes the call.
* @function external:LinphoneCore#resumeCall
* @param {external:LinphoneCall} call -
* @returns {number}
**/
/**
* Send the specified dtmf.
* @function external:LinphoneCore#sendDtmf
* @param {external:char} dtmf - The dtmf name specified as a char, such as '0', '#' etc...
* @returns {void}
**/
/**
* Sets the UDP port range from which to randomly select the port used for audio streaming.
* @function external:LinphoneCore#setAudioPortRange
* @param {number} min_port -
* @param {number} max_port -
* @returns {void}
**/
/**
* Assign an audio file to be played locally upon call failure, for a given reason.
* @function external:LinphoneCore#setCallErrorTone
* @param {linphone.Reason} reason - the
* @param {string} audiofile - a wav file to be played when such call failure happens.
* @returns {void}
**/
/**
* Set an explicit bitrate (IP bitrate, not codec bitrate) for a given codec, in kbit/s.
* @function external:LinphoneCore#setPayloadTypeBitrate
* @param {external:LinphonePayloadType} pt - the
* @param {number} bitrate - the IP bitrate in kbit/s.
* @returns {void}
**/
/**
* Sets the user agent string used in SIP messages.
* @function external:LinphoneCore#setUserAgent
* @param {string} ua_name -
* @param {string} version -
* @returns {void}
**/
/**
* Sets the UDP port range from which to randomly select the port used for video streaming.
* @function external:LinphoneCore#setVideoPortRange
* @param {number} min_port -
* @param {number} max_port -
* @returns {void}
**/
/**
* Returns true if the specified sound device can capture sound.
* @function external:LinphoneCore#soundDeviceCanCapture
* @param {string} device - the device name as returned by
* @returns {boolean}
**/
/**
* Returns true if the specified sound device can play sound.
* @function external:LinphoneCore#soundDeviceCanPlayback
* @param {string} device - the device name as returned by
* @returns {boolean}
**/
/**
* Check if a call will need the sound resources.
* @function external:LinphoneCore#soundResourcesLocked
* @returns {boolean}
**/
/**
* Special function to warm up dtmf feeback stream.
* @function external:LinphoneCore#startDtmfStream
* @returns {void}
**/
/**
* Stops playing a dtmf started by
* @function external:LinphoneCore#stopDtmf
* @returns {void}
**/
/**
* Special function to stop dtmf feed back function. Must be called before entering BG mode
* @function external:LinphoneCore#stopDtmfStream
* @returns {void}
**/
/**
* 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.
* @function external:LinphoneCore#stopRinging
* @returns {void}
**/
/**
* 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.
* @function external:LinphoneCore#subscribe
* @param {external:LinphoneAddress} resource - the destination resource
* @param {string} event - the event name
* @param {number} expires - the whished duration of the subscription
* @param {external:LinphoneContent} body - an optional body, may be NULL.
* @returns {external:LinphoneEvent}
**/
/**
* Terminates all the calls.
* @function external:LinphoneCore#terminateAllCalls
* @returns {number}
**/
/**
* Terminates a call.
* @function external:LinphoneCore#terminateCall
* @param {external:LinphoneCall} call - the LinphoneCall object representing the call to be terminated.
* @returns {number}
**/
/**
* Terminates the conference and the calls associated with it.
* @function external:LinphoneCore#terminateConference
* @returns {number}
**/
/**
* Performs a simple call transfer to the specified destination.
* @function external:LinphoneCore#transferCall
* @param {external:LinphoneCall} call -
* @param {string} refer_to -
* @returns {number}
**/
/**
* Transfer a call to destination of another running call. This is used for "attended transfer" scenarios.
*
* @function external:LinphoneCore#transferCallToAnother
* @param {external:LinphoneCall} call - a running call you want to transfer
* @param {external:LinphoneCall} dest - a running call whose remote person will receive the transfer
* @returns {number}
**/
/**
* Updates a running call according to supplied call parameters or parameters changed in the LinphoneCore.
* @function external:LinphoneCore#updateCall
* @param {external:LinphoneCall} call - the call to be updated
* @param {external:LinphoneCallParams} params - the new call parameters to use. (may be NULL)
* @returns {number}
**/
/**
* Upload the log collection to the configured server url.
* @function external:LinphoneCore#uploadLogCollection
* @returns {void}
**/
/**
* Tells the core to use a separate window for local camera preview video, instead of inserting local view
* within the remote video window.
* @function external:LinphoneCore#usePreviewWindow
* @param {boolean} yesno - TRUE to use a separate window, FALSE to insert the preview in the remote video window.
* @returns {void}
**/
/**
* Specify whether the tls server certificate must be verified when connecting to a SIP/TLS server.
* @function external:LinphoneCore#verifyServerCertificates
* @param {boolean} yesno -
* @returns {void}
**/
/**
* Specify whether the tls server certificate common name must be verified when connecting to a SIP/TLS server.
*
* @function external:LinphoneCore#verifyServerCn
* @param {boolean} yesno -
* @returns {void}
**/
/**
* event for requesting authentication information to application or user.
* @event external:LinphoneCore#authInfoRequested
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {string} realm - the realm (domain) on which authentication is required.
* @property {string} username - the username that needs to be authenticated. Application shall reply to this callback using
* @property {string} domain -
**/
/**
* event prototype
* @event external:LinphoneCore#buddyInfoUpdated
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {external:LinphoneFriend} lf -
**/
/**
* Call encryption changed event.
* @event external:LinphoneCore#callEncryptionChanged
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCall} call - the call on which encryption is changed.
* @property {boolean} on - whether encryption is activated.
* @property {string} authenticationToken - an authentication_token, currently set for ZRTP kind of encryption only.
**/
/**
* event to notify a new call-log entry has been added. This is done typically when a call terminates.
* @event external:LinphoneCore#callLogUpdated
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCallLog} newcl - the new call log entry added.
**/
/**
* Call state notification event.
* @event external:LinphoneCore#callStateChanged
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCall} call - the call object whose state is changed.
* @property {linphone.CallState} cstate - the new state of the call
* @property {string} message - an informational message about the state.
**/
/**
* event for receiving quality statistics for calls.
* @event external:LinphoneCore#callStatsUpdated
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCall} call - the call
* @property {external:LinphoneCallStats} stats - the call statistics.
**/
/**
* event prototype
* @event external:LinphoneCore#cbFunc
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {void} userData -
**/
/**
* event prototype for configuring status changes notification
* @event external:LinphoneCore#configuringStatus
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {linphone.ConfiguringState} status - informational message.
* @property {string} message -
**/
/**
* event for being notified of DTMFs received.
* @event external:LinphoneCore#dtmfReceived
* @type {object}
* @property {external:LinphoneCore} lc - the linphone core
* @property {external:LinphoneCall} call - the call that received the dtmf
* @property {number} dtmf - the ascii code of the dtmf
**/
/**
* File transfer progress indication event prototype.
* @event external:LinphoneCore#fileTransferProgressIndication
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneChatMessage} message - message from which the body is received.
* @property {external:LinphoneContent} content - incoming content information
* @property {number} offset - The number of bytes sent/received since the beginning of the transfer.
* @property {number} total - The total number of bytes to be sent/received.
**/
/**
* File transfer receive event prototype. This function is called by the core upon an incoming File transfer
* is started. This function may be call several time for the same file in case of large file.
* @event external:LinphoneCore#fileTransferRecv
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneChatMessage} message - message from which the body is received.
* @property {external:LinphoneContent} content - incoming content information
* @property {string} buff - pointer to the received data
* @property {number} size - number of bytes to be read from buff. 0 means end of file.
**/
/**
* File transfer send event prototype. This function is called by the core upon an outgoing File transfer
* is started. This function is called until size is set to 0.
* @event external:LinphoneCore#fileTransferSend
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneChatMessage} message - message from which the body is received.
* @property {external:LinphoneContent} content - outgoing content
* @property {string} buff - pointer to the buffer where data chunk shall be written by the app
* @property {number} size - as input value, it represents the number of bytes expected by the framework. As output value, it means the number of bytes wrote by the application in the buffer. 0 means end of file.
**/
/**
* Global state notification event.
* @event external:LinphoneCore#globalStateChanged
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {linphone.GlobalState} gstate - the global state
* @property {string} message - informational message.
**/
/**
* event prototype for receiving info messages.
* @event external:LinphoneCore#infoReceived
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCall} call - the call whose info message belongs to.
* @property {external:LinphoneInfoMessage} msg - the info message.
**/
/**
* Is composing notification event prototype.
* @event external:LinphoneCore#isComposingReceived
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneChatRoom} room - involved in the conversation.
**/
/**
* event prototype for reporting log collection upload progress indication.
* @event external:LinphoneCore#logCollectionUploadProgressIndication
* @type {object}
* @property {external:LinphoneCore} lc - LinphoneCore object
* @property {number} offset - Percentage of the file size of the log collection already uploaded.
* @property {number} total -
**/
/**
* event prototype for reporting log collection upload state change.
* @event external:LinphoneCore#logCollectionUploadStateChanged
* @type {object}
* @property {external:LinphoneCore} lc - LinphoneCore object
* @property {linphone.CoreLogCollectionUploadState} state - The state of the log collection upload
* @property {string} info - Additional information: error message in case of error state, URL of uploaded file in case of success.
**/
/**
* Chat message event prototype
* @event external:LinphoneCore#messageReceived
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneChatRoom} room - involved in this conversation. Can be be created by the framework in case
* @property {external:LinphoneChatMessage} message - incoming message
**/
/**
* event prototype for reporting network change either automatically detected or notified by
* @event external:LinphoneCore#networkReachable
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {boolean} reachable - true if network is reachable.
**/
/**
* Reports that a new subscription request has been received and wait for a decision. Status on this subscription
* request is notified by
* @event external:LinphoneCore#newSubscriptionRequested
* @type {object}
* @property {external:LinphoneCore} lc - object
* @property {external:LinphoneFriend} lf - corresponding to the subscriber
* @property {string} url - of the subscriber Callback prototype
**/
/**
* Report status change for a friend previously
* @event external:LinphoneCore#notifyPresenceReceived
* @type {object}
* @property {external:LinphoneCore} lc - object .
* @property {external:LinphoneFriend} lf - Updated
**/
/**
* event prototype for notifying the application about notification received from the network.
* @event external:LinphoneCore#notifyReceived
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {external:LinphoneEvent} lev -
* @property {string} notifiedEvent -
* @property {external:LinphoneContent} body -
**/
/**
* event prototype for notifying the application about changes of publish states.
* @event external:LinphoneCore#publishStateChanged
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {external:LinphoneEvent} lev -
* @property {linphone.PublishState} state -
**/
/**
* event prototype
* @event external:LinphoneCore#referReceived
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {string} referTo -
**/
/**
* Registration state notification event prototype
* @event external:LinphoneCore#registrationStateChanged
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {external:LinphoneProxyConfig} cfg -
* @property {linphone.RegistrationState} cstate -
* @property {string} message -
**/
/**
* event prototype for notifying the application about changes of subscription states, including arrival
* of new subscriptions.
* @event external:LinphoneCore#subscriptionStateChanged
* @type {object}
* @property {external:LinphoneCore} lc -
* @property {external:LinphoneEvent} lev -
* @property {linphone.SubscriptionState} state -
**/
/**
* event for notifying progresses of transfers.
* @event external:LinphoneCore#transferStateChanged
* @type {object}
* @property {external:LinphoneCore} lc - the LinphoneCore
* @property {external:LinphoneCall} transfered - the call that was transfered
* @property {linphone.CallState} newCallState - the state of the call to transfer target at the far end.
**/