private_structs.h 23.21 KiB
/*
 * private_structs.h
 * Copyright (C) 2010-2018 Belledonne Communications SARL
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef _PRIVATE_STRUCTS_H_
#define _PRIVATE_STRUCTS_H_
#include <bctoolbox/map.h>
#include <libxml/xmlreader.h>
#include <libxml/xmlwriter.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include "carddav.h"
#include "sal/register-op.h"
struct _LinphoneQualityReporting{
	reporting_session_report_t * reports[3]; /**Store information on audio and video media streams (RFC 6035) */
	bool_t was_video_running; /*Keep video state since last check in order to detect its (de)activation*/
	LinphoneQualityReportingReportSendCb on_report_sent;
struct _LinphoneCallLog{
	belle_sip_object_t base;
	void *user_data;
	struct _LinphoneCore *lc;
	LinphoneCallDir dir; /**< The direction of the call*/
	LinphoneCallStatus status; /**< The status of the call*/
	LinphoneAddress *from; /**<Originator of the call as a LinphoneAddress object*/
	LinphoneAddress *to; /**<Destination of the call as a LinphoneAddress object*/
	char start_date[128]; /**<Human readable string containing the start date*/
	int duration; /**<Duration of the call starting in connected state in seconds*/
	char *refkey;
	rtp_stats_t local_stats;
	rtp_stats_t remote_stats;
	float quality;
	time_t start_date_time; /**Start date of the call in seconds as expressed in a time_t */
	time_t connected_date_time; /**Connecting date of the call in seconds as expressed in a time_t */
	char* call_id; /**unique id of a call*/
	struct _LinphoneQualityReporting reporting;
	unsigned int storage_id;
	LinphoneErrorInfo *error_info;
	bool_t video_enabled;
	bool_t was_conference; /**<That call was a call with a conference server */
BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneCallLog);
struct _CallCallbackObj
	LinphoneCallCbFunc _func;
	void * _user_data;
struct StunCandidate{
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
char addr[64]; int port; }; struct _PortConfig{ char multicast_ip[LINPHONE_IPADDR_SIZE]; char multicast_bind_ip[LINPHONE_IPADDR_SIZE]; int rtp_port; int rtcp_port; }; struct _LinphoneProxyConfig { belle_sip_object_t base; void *user_data; struct _LinphoneCore *lc; LinphoneErrorInfo *ei; char *reg_proxy; char *reg_identity; LinphoneAddress* identity_address; LinphoneAddress *contact_address; LinphoneAddress *service_route; LinphoneAddress *contact_address_without_params; bctbx_list_t *reg_routes; char *quality_reporting_collector; char *realm; char *contact_params; char *contact_uri_params; int expires; int publish_expires; LinphonePrivate::SalRegisterOp *op; SalCustomHeader *sent_headers; char *type; struct _SipSetupContext *ssctx; int auth_failures; char *dial_prefix; LinphoneRegistrationState state; LinphoneAVPFMode avpf_mode; LinphoneNatPolicy *nat_policy; int quality_reporting_interval; bool_t commit; bool_t reg_sendregister; bool_t publish; bool_t dial_escape_plus; bool_t send_publish; bool_t quality_reporting_enabled; uint8_t avpf_rr_interval; bool_t register_changed; time_t deletion_date; LinphonePrivacyMask privacy; /*use to check if server config has changed between edit() and done()*/ LinphoneAddress *saved_proxy; LinphoneAddress *saved_identity; /*---*/ LinphoneAddress *pending_contact; /*use to store previous contact in case of network failure*/ LinphoneEvent *presence_publish_event; unsigned long long previous_publish_config_hash[2]; char *refkey; char *sip_etag; /*publish context*/ char *conference_factory_uri; bool_t push_notification_allowed; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneProxyConfig);
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
struct _LinphoneAuthInfo { belle_sip_object_t base; char *username; char *realm; char *userid; char *passwd; char *ha1; char *domain; char *tls_cert; char *tls_key; char *tls_cert_path; char *tls_key_path; char *algorithm; }; struct _LinphoneFriendPresence { char *uri_or_tel; LinphonePresenceModel *presence; }; struct _LinphoneFriendPhoneNumberSipUri { char *number; char *uri; }; struct _LinphoneFriend{ belle_sip_object_t base; void *user_data; LinphoneAddress *uri; MSList *insubs; /*list of SalOp. There can be multiple instances of a same Friend that subscribe to our presence*/ LinphonePrivate::SalPresenceOp *outsub; LinphoneSubscribePolicy pol; MSList *presence_models; /* list of LinphoneFriendPresence. It associates SIP URIs and phone numbers with their respective presence models. */ MSList *phone_number_sip_uri_map; /* list of LinphoneFriendPhoneNumberSipUri. It associates phone numbers with their corresponding SIP URIs. */ struct _LinphoneCore *lc; BuddyInfo *info; char *refkey; bool_t subscribe; bool_t subscribe_active; bool_t inc_subscribe_pending; bool_t commit; bool_t initial_subscribes_sent; /*used to know if initial subscribe message was sent or not*/ bool_t presence_received; LinphoneVcard *vcard; unsigned int storage_id; LinphoneFriendList *friend_list; LinphoneSubscriptionState out_sub_state; int capabilities; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneFriend); struct _LinphoneFriendListCbs { belle_sip_object_t base; void *user_data; LinphoneFriendListCbsContactCreatedCb contact_created_cb; LinphoneFriendListCbsContactDeletedCb contact_deleted_cb; LinphoneFriendListCbsContactUpdatedCb contact_updated_cb; LinphoneFriendListCbsSyncStateChangedCb sync_state_changed_cb; LinphoneFriendListCbsPresenceReceivedCb presence_received_cb; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneFriendListCbs); struct _LinphoneFriendList { belle_sip_object_t base; void *user_data; LinphoneCore *lc;
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
LinphoneEvent *event; char *display_name; char *rls_uri; /*this field is take in sync with rls_addr*/ LinphoneAddress *rls_addr; MSList *friends; bctbx_map_t *friends_map; bctbx_map_t *friends_map_uri; unsigned char *content_digest; int expected_notification_version; unsigned int storage_id; char *uri; MSList *dirty_friends_to_update; int revision; LinphoneFriendListCbs *cbs; bool_t enable_subscriptions; bool_t bodyless_subscription; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneFriendList); struct sip_config { char *contact; char *guessed_contact; MSList *proxies; MSList *deleted_proxies; int inc_timeout; /*timeout after an un-answered incoming call is rejected*/ int in_call_timeout; /*timeout after a call is hangup */ int delayed_timeout; /*timeout after a delayed call is resumed */ unsigned int keepalive_period; /* interval in ms between keep alive messages sent to the proxy server*/ LinphoneSipTransports transports; bool_t guess_hostname; bool_t loopback_only; bool_t ipv6_enabled; bool_t sdp_200_ack; bool_t register_only_when_network_is_up; bool_t register_only_when_upnp_is_ok; bool_t ping_with_options; bool_t auto_net_state_mon; bool_t tcp_tls_keepalive; bool_t vfu_with_info; /*use to enable vfu request using sip info*/ bool_t save_auth_info; // if true, auth infos will be write in the config file when they are added to the list }; struct rtp_config { int audio_rtp_min_port; int audio_rtp_max_port; int video_rtp_min_port; int video_rtp_max_port; int audio_jitt_comp; /*jitter compensation*/ int video_jitt_comp; /*jitter compensation*/ int nortp_timeout; int disable_upnp; MSCryptoSuite *srtp_suites; LinphoneAVPFMode avpf_mode; bool_t rtp_no_xmit_on_audio_mute; /* stop rtp xmit when audio muted */ bool_t audio_adaptive_jitt_comp_enabled; bool_t video_adaptive_jitt_comp_enabled; bool_t pad; char* audio_multicast_addr; bool_t audio_multicast_enabled; int audio_multicast_ttl; char* video_multicast_addr; int video_multicast_ttl; bool_t video_multicast_enabled; int text_rtp_min_port; int text_rtp_max_port; };
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
struct net_config { char *nat_address; /* may be IP or host name */ char *nat_address_ip; /* ip translated from nat_address */ struct addrinfo *stun_addrinfo; int download_bw; int upload_bw; int mtu; OrtpNetworkSimulatorParams netsim_params; bool_t nat_sdp_only; }; struct net_state { bool_t global_state; bool_t user_state; }; struct sound_config { struct _MSSndCard * ring_sndcard; /* the playback sndcard currently used */ struct _MSSndCard * play_sndcard; /* the playback sndcard currently used */ struct _MSSndCard * capt_sndcard; /* the capture sndcard currently used */ struct _MSSndCard * lsd_card; /* dummy playback card for Linphone Sound Daemon extension */ const char **cards; int latency; /* latency in samples of the current used sound device */ float soft_play_lev; /*playback gain in db.*/ float soft_mic_lev; /*mic gain in db.*/ char rec_lev; char play_lev; char ring_lev; char source; char *local_ring; char *remote_ring; char *ringback_tone; bool_t ec; bool_t ea; bool_t agc; }; struct codecs_config { MSList *audio_codecs; /* list of audio codecs in order of preference*/ MSList *video_codecs; MSList *text_codecs; int dyn_pt; int telephone_event_pt; }; struct video_config{ struct _MSWebCam *device; const char **cams; MSVideoSize vsize; MSVideoSize preview_vsize; /*is 0,0 if no forced preview size is set, in which case vsize field above is used.*/ LinphoneVideoDefinition *vdef; LinphoneVideoDefinition *preview_vdef; float fps; bool_t capture; bool_t show_local; bool_t qrcode_decoder; bool_t display; bool_t selfview; /*during calls*/ bool_t reuse_preview_source; }; struct text_config{ bool_t enabled; };
351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
struct ui_config { int is_daemon; int is_applet; unsigned int timer_id; /* the timer id for registration */ }; struct autoreplier_config { int enabled; int after_seconds; /* accept the call after x seconds*/ int max_users; /* maximum number of user that can call simultaneously */ int max_rec_time; /* the max time of incoming voice recorded */ int max_rec_msg; /* maximum number of recorded messages */ const char *message; /* the path of the file to be played */ }; struct _LinphoneToneDescription{ LinphoneReason reason; /*the call error code*/ LinphoneToneID toneid; /*A tone type to play when this error arrives. This is played using tone generator*/ char *audiofile; /*An override audio file to play instead, when this error arrives*/ /*Note that some tones are not affected to any error, in which case it is affected LinphoneReasonNone*/ }; struct _LinphoneTaskList{ MSList *hooks; }; struct _LinphoneCoreCbs { belle_sip_object_t base; LinphoneCoreVTable *vtable; bool_t autorelease; }; struct _LCCallbackObj { LinphoneCoreCbFunc _func; void *_user_data; }; struct _LinphoneEventCbs { belle_sip_object_t base; void *user_data; LinphoneEventCbsNotifyResponseCb notify_response_cb; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneEventCbs); struct _LinphoneEvent{ belle_sip_object_t base; LinphoneErrorInfo *ei; LinphoneSubscriptionDir dir; LinphoneCore *lc; LinphonePrivate::SalEventOp *op; SalCustomHeader *send_custom_headers; LinphoneSubscriptionState subscription_state; LinphonePublishState publish_state; void *userdata; char *name; LinphoneEventCbs *callbacks; int expires; bool_t terminating; bool_t is_out_of_dialog_op; /*used for out of dialog notify*/ bool_t internal; bool_t oneshot; // For migration purpose. (Do not use directly!) // Cache. LinphoneAddress *to_address; LinphoneAddress *from_address; LinphoneAddress *remote_contact_address;
421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
}; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneEvent); struct _EcCalibrator{ MSFactory *factory; ms_thread_t thread; MSSndCard *play_card,*capt_card; MSFilter *sndread,*det,*rec; MSFilter *play, *gen, *sndwrite; MSFilter *read_resampler,*write_resampler; MSTicker *ticker; #if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4) #pragma GCC diagnostic push #endif #ifdef _MSC_VER #pragma warning(disable : 4996) #else #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif LinphoneEcCalibrationCallback cb; void *cb_data; LinphoneEcCalibrationAudioInit audio_init_cb; LinphoneEcCalibrationAudioUninit audio_uninit_cb; #if __clang__ || ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4) #pragma GCC diagnostic pop #endif int64_t acc; int delay; unsigned int rate; LinphoneEcCalibratorStatus status; bool_t freq1,freq2,freq3; bool_t play_cool_tones; }; struct _EchoTester { MSFactory *factory; MSFilter *in,*out; MSSndCard *capture_card; MSSndCard *playback_card; MSTicker *ticker; unsigned int rate; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneContent); struct _LinphoneBuffer { belle_sip_object_t base; void *user_data; uint8_t *content; /**< A pointer to the buffer content */ size_t size; /**< The size of the buffer content */ }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneBuffer); struct _LinphoneNatPolicy { belle_sip_object_t base; void *user_data; LinphoneCore *lc; belle_sip_resolver_context_t *stun_resolver_context; belle_sip_resolver_results_t *resolver_results; char *stun_server; char *stun_server_username; char *ref; bool_t stun_enabled; bool_t turn_enabled; bool_t ice_enabled; bool_t upnp_enabled; };
491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneNatPolicy); struct _LinphoneImNotifPolicy { belle_sip_object_t base; void *user_data; LinphoneCore *lc; bool_t send_is_composing; bool_t recv_is_composing; bool_t send_imdn_delivered; bool_t recv_imdn_delivered; bool_t send_imdn_displayed; bool_t recv_imdn_displayed; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneImNotifPolicy); /***************************************************************************** * XML-RPC interface * ****************************************************************************/ struct _LinphoneXmlRpcArg { LinphoneXmlRpcArgType type; union { int i; char *s; } data; }; struct _LinphoneXmlRpcRequestCbs { belle_sip_object_t base; void *user_data; LinphoneXmlRpcRequestCbsResponseCb response; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneXmlRpcRequestCbs); struct _LinphoneXmlRpcRequest { belle_sip_object_t base; void *user_data; LinphoneXmlRpcRequestCbs *callbacks; belle_sip_list_t *arg_list; char *content; /**< The string representation of the XML-RPC request */ char *method; LinphoneXmlRpcStatus status; struct _LinphoneXmlRpcArg response; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneXmlRpcRequest); struct _LinphoneXmlRpcSession { belle_sip_object_t base; void *user_data; LinphoneCore *core; char *url; bool_t released; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneXmlRpcSession); /***************************************************************************** * CardDAV interface * ****************************************************************************/ struct _LinphoneCardDavContext { LinphoneFriendList *friend_list; int ctag; void *user_data; LinphoneCardDavContactCreatedCb contact_created_cb;
561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
LinphoneCardDavContactUpdatedCb contact_updated_cb; LinphoneCardDavContactRemovedCb contact_removed_cb; LinphoneCardDavSynchronizationDoneCb sync_done_cb; LinphoneAuthInfo *auth_info; }; struct _LinphoneCardDavQuery { LinphoneCardDavContext *context; char *url; const char *method; char *body; const char *depth; const char *ifmatch; belle_http_request_listener_t *http_request_listener; void *user_data; LinphoneCardDavQueryType type; }; struct _LinphoneCardDavResponse { char *etag; char *url; char *vcard; }; /***************************************************************************** * Player interface * ****************************************************************************/ struct _LinphonePlayerCbs { belle_sip_object_t base; void *user_data; LinphonePlayerCbsEofReachedCb eof; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphonePlayerCbs); struct _LinphonePlayer{ belle_sip_object_t base; void *user_data; int (*open)(LinphonePlayer* player, const char *filename); int (*start)(LinphonePlayer* player); int (*pause)(LinphonePlayer* player); int (*seek)(LinphonePlayer* player, int time_ms); MSPlayerState (*get_state)(LinphonePlayer* player); int (*get_duration)(LinphonePlayer *player); int (*get_position)(LinphonePlayer *player); void (*close)(LinphonePlayer* player); void (*destroy)(LinphonePlayer *player); void *impl; LinphonePlayerCbs *callbacks; LinphoneCore *core; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphonePlayer); /***************************************************************************** * XML UTILITY FUNCTIONS * ****************************************************************************/ #define XMLPARSING_BUFFER_LEN 2048 #define MAX_XPATH_LENGTH 256 struct _xmlparsing_context { xmlDoc *doc; xmlXPathContextPtr xpath_ctx; char errorBuffer[XMLPARSING_BUFFER_LEN]; char warningBuffer[XMLPARSING_BUFFER_LEN]; };
631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700
/***************************************************************************** * OTHER UTILITY FUNCTIONS * ****************************************************************************/ struct _LinphoneImEncryptionEngineCbs { belle_sip_object_t base; void *user_data; LinphoneImEncryptionEngineCbsIncomingMessageCb process_incoming_message; LinphoneImEncryptionEngineCbsOutgoingMessageCb process_outgoing_message; LinphoneImEncryptionEngineCbsIsEncryptionEnabledForFileTransferCb is_encryption_enabled_for_file_transfer; LinphoneImEncryptionEngineCbsGenerateFileTransferKeyCb generate_file_transfer_key; LinphoneImEncryptionEngineCbsDownloadingFileCb process_downlading_file; LinphoneImEncryptionEngineCbsUploadingFileCb process_uploading_file; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneImEncryptionEngineCbs); struct _LinphoneImEncryptionEngine { belle_sip_object_t base; void *user_data; LinphoneCore *lc; LinphoneImEncryptionEngineCbs *callbacks; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneImEncryptionEngine); struct _LinphoneRange { belle_sip_object_t base; void *user_data; int min; int max; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneRange); struct _LinphoneTransports { belle_sip_object_t base; void *user_data; int udp_port; /**< SIP/UDP port */ int tcp_port; /**< SIP/TCP port */ int dtls_port; /**< SIP/DTLS port */ int tls_port; /**< SIP/TLS port */ }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneTransports); struct _LinphoneVideoActivationPolicy { belle_sip_object_t base; void *user_data; bool_t automatically_initiate; /**<Whether video shall be automatically proposed for outgoing calls.*/ bool_t automatically_accept; /**<Whether video shall be automatically accepted for incoming calls*/ }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneVideoActivationPolicy); struct _VTableReference{ LinphoneCoreCbs *cbs; bool_t valid; bool_t autorelease; bool_t internal; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneTunnelConfig); struct _LinphoneErrorInfo{ belle_sip_object_t base; LinphoneReason reason;
701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
char *protocol; /* */ int protocol_code; /*from SIP response*/ char *phrase; /*from SIP response*/ char *warnings; /*from SIP response*/ char *full_string; /*concatenation of status_string + warnings*/ struct _LinphoneErrorInfo *sub_ei; }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneErrorInfo); struct _LinphoneVideoDefinition { belle_sip_object_t base; void *user_data; unsigned int width; /**< The width of the video */ unsigned int height; /**< The height of the video */ char *name; /** The name of the video definition */ }; BELLE_SIP_DECLARE_VPTR_NO_EXPORT(LinphoneVideoDefinition); namespace LinphonePrivate { class Core; }; #define LINPHONE_CORE_STRUCT_BASE_FIELDS \ MSFactory* factory; \ MSList* vtable_refs; \ int vtable_notify_recursion; \ LinphonePrivate::Sal *sal; \ void *platform_helper; \ LinphoneGlobalState state; \ struct _LpConfig *config; \ MSList *default_audio_codecs; \ MSList *default_video_codecs; \ MSList *default_text_codecs; \ net_config_t net_conf; \ sip_config_t sip_conf; \ rtp_config_t rtp_conf; \ sound_config_t sound_conf; \ video_config_t video_conf; \ text_config_t text_conf; \ codecs_config_t codecs_conf; \ ui_config_t ui_conf; \ autoreplier_config_t autoreplier_conf; \ LinphoneProxyConfig *default_proxy; \ MSList *friends_lists; \ MSList *auth_info; \ struct _RingStream *ringstream; \ time_t dmfs_playing_start_time; \ LCCallbackObj preview_finished_cb; \ MSList *queued_calls; \ MSList *call_logs; \ int max_call_logs; \ int missed_calls; \ VideoPreview *previewstream; \ struct _MSEventQueue *msevq; \ LinphoneRtpTransportFactories *rtptf; \ MSList *bl_reqs; \ MSList *subscribers; \ int minutes_away; \ LinphonePresenceModel *presence_model; \ void *data; \ char *play_file; \ char *rec_file; \ uint64_t prevtime_ms; \ int audio_bw; \ LinphoneCoreWaitingCallback wait_cb; \ void *wait_ctx; \ void *video_window_id; \
771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
void *preview_window_id; \ time_t netup_time; \ struct _EcCalibrator *ecc; \ struct _EchoTester *ect; \ LinphoneTaskList hooks; \ LinphoneConference *conf_ctx; \ char* zrtp_secrets_cache; \ char* user_certificates_path; \ LinphoneVideoPolicy video_policy; \ LinphoneNatPolicy *nat_policy; \ LinphoneImNotifPolicy *im_notif_policy; \ bool_t use_files; \ bool_t apply_nat_settings; \ bool_t initial_subscribes_sent; \ bool_t bl_refresh; \ bool_t preview_finished; \ bool_t auto_net_state_mon; \ net_state_t sip_network_state; \ net_state_t media_network_state; \ bool_t network_reachable_to_be_notified; \ bool_t use_preview_window; \ bool_t network_last_status; \ bool_t ringstream_autorelease; \ bool_t vtables_running; \ bool_t send_call_stats_periodical_updates; \ bool_t forced_ice_relay; \ bool_t short_turn_refresh; \ MSRect qrcode_rect; \ char localip[LINPHONE_IPADDR_SIZE]; \ int device_rotation; \ int max_calls; \ LinphoneTunnel *tunnel; \ char* device_id; \ char *logs_db_file; \ char *friends_db_file; \ belle_http_provider_t *http_provider; \ belle_tls_crypto_config_t *http_crypto_config; \ belle_http_request_listener_t *provisioning_http_listener; \ MSList *tones; \ LinphoneReason chat_deny_code; \ char *file_transfer_server; \ const char **supported_formats; \ LinphoneContent *log_collection_upload_information; \ LinphoneCoreCbs *current_cbs; \ LinphoneRingtonePlayer *ringtoneplayer; \ LinphoneVcardContext *vcard_context; \ bool_t zrtp_not_available_simulation; \ char *tls_cert; \ char *tls_key; \ LinphoneAddress *default_rls_addr; \ LinphoneImEncryptionEngine *im_encryption_engine; \ struct _LinphoneAccountCreatorService *default_ac_service; \ MSBandwidthController *bw_controller; \ belle_http_request_listener_t *update_check_http_listener; \ char *update_check_current_version; \ bctbx_list_t *chat_rooms; \ bctbx_list_t *callsCache; \ bool_t dns_set_by_app; \ #define LINPHONE_CORE_STRUCT_FIELDS \ LINPHONE_CORE_STRUCT_BASE_FIELDS \ sqlite3 *zrtp_cache_db; \ bctbx_mutex_t zrtp_cache_db_mutex; \ sqlite3 *logs_db; \ sqlite3 *friends_db; \ bool_t debug_storage; #endif /* _PRIVATE_STRUCTS_H_ */