Source: linphonecore.js

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