diff --git a/README.macos b/README.macos index 76fa6ef83..db01b4869 100644 --- a/README.macos +++ b/README.macos @@ -62,10 +62,16 @@ The next pieces need to be compiled manually. To ensure compatibility with multi $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make $ sudo make install + +- Install gsm codec (optional) + $ git clone git://git.linphone.org/gsm.git + $ cd gsm + $ make CCFLAGS="$CFLAGS -c -O2 -DNeedFunctionPrototypes=1" + $ sudo make install INSTALL_ROOT=/opt/local GSM_INSTALL_INC=/opt/local/include + - Compile and install the tunnel library (optional, proprietary extension only) - If you got the source code from git, run ./autogen.sh first - + If you got the source code from git, run ./autogen.sh first. Then or otherwise, do: $ ./configure --prefix=/opt/local && make && sudo make install @@ -110,7 +116,7 @@ For a better appearance, you can install the gtk-quartz-engine (a gtk theme) tha $ git clone https://github.com/jralls/gtk-quartz-engine.git $ cd gtk-quartz-engine $ autoreconf -i - $ ./configure --prefix=/opt/local CFLAGS="-Wno-error" && make + $ ./configure --prefix=/opt/local CFLAGS="$CFLAGS -Wno-error" && make $ sudo make install Generate a new bundle to have it included. diff --git a/build/vsx/LibLinphone/LibLinphone.vcxproj b/build/vsx/LibLinphone/LibLinphone.vcxproj index 25e1543e4..c2d421126 100644 --- a/build/vsx/LibLinphone/LibLinphone.vcxproj +++ b/build/vsx/LibLinphone/LibLinphone.vcxproj @@ -234,6 +234,9 @@ {072fad20-7007-4da2-b2e7-16ce2b219f67} + + {b16b81a9-bef2-44c9-b603-1065183ae844} + {36b528f9-fb79-4078-a16b-0a7442581bb7} diff --git a/configure.ac b/configure.ac index a35089e36..d44cda018 100644 --- a/configure.ac +++ b/configure.ac @@ -710,7 +710,7 @@ AC_ARG_ENABLE(msg-storage, AM_CONDITIONAL(BUILD_MSG_STORAGE, test x$enable_msg_storage = xtrue) if test x$enable_msg_storage != xfalse; then - PKG_CHECK_MODULES(SQLITE3,[ sqlite3 >= 3.7.0],[ + PKG_CHECK_MODULES(SQLITE3,[ sqlite3 >= 3.6.0],[ SQLITE3_CFLAGS+="-DMSG_STORAGE_ENABLED" AC_SUBST(SQLITE3_CFLAGS) AC_SUBST(SQLITE3_LIBS) diff --git a/coreapi/bellesip_sal/sal_address_impl.c b/coreapi/bellesip_sal/sal_address_impl.c index 01a5b6229..f73a06240 100644 --- a/coreapi/bellesip_sal/sal_address_impl.c +++ b/coreapi/bellesip_sal/sal_address_impl.c @@ -123,7 +123,10 @@ void sal_address_set_port(SalAddress *addr, int port){ void sal_address_clean(SalAddress *addr){ belle_sip_header_address_t* header_addr = BELLE_SIP_HEADER_ADDRESS(addr); belle_sip_uri_t* uri=belle_sip_header_address_get_uri(header_addr); - if (uri) belle_sip_parameters_clean(BELLE_SIP_PARAMETERS(uri)); + if (uri) { + belle_sip_parameters_clean(BELLE_SIP_PARAMETERS(uri)); + belle_sip_uri_headers_clean(uri); + } belle_sip_parameters_clean(BELLE_SIP_PARAMETERS(header_addr)); return ; } diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index fe0df1221..4510ef12f 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -1092,16 +1092,16 @@ void linphone_call_enable_camera (LinphoneCall *call, bool_t enable){ #endif } -#ifdef VIDEO_ENABLED /** * Request remote side to send us a Video Fast Update. **/ void linphone_call_send_vfu_request(LinphoneCall *call) { +#ifdef VIDEO_ENABLED if (LinphoneCallStreamsRunning == linphone_call_get_state(call)) sal_call_send_vfu_request(call->op); -} #endif +} /** diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 104925d51..f4773e111 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -710,7 +710,7 @@ static void sip_config_read(LinphoneCore *lc) lp_config_get_int(lc->config,"sip","register_only_when_network_is_up",1); lc->sip_conf.register_only_when_upnp_is_ok= lp_config_get_int(lc->config,"sip","register_only_when_upnp_is_ok",1); - lc->sip_conf.ping_with_options=lp_config_get_int(lc->config,"sip","ping_with_options",1); + lc->sip_conf.ping_with_options=lp_config_get_int(lc->config,"sip","ping_with_options",0); lc->sip_conf.auto_net_state_mon=lp_config_get_int(lc->config,"sip","auto_net_state_mon",1); lc->sip_conf.keepalive_period=lp_config_get_int(lc->config,"sip","keepalive_period",10000); lc->sip_conf.tcp_tls_keepalive=lp_config_get_int(lc->config,"sip","tcp_tls_keepalive",0); diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index ab1af9c2a..c6a3332df 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -226,10 +226,10 @@ void lp_config_load_dict_to_section( LpConfig* lpconfig, const char* section, co #endif LINPHONE_PUBLIC LinphoneAddress * linphone_address_new(const char *addr); -LinphoneAddress * linphone_address_clone(const LinphoneAddress *addr); -LinphoneAddress * linphone_address_ref(LinphoneAddress *addr); -void linphone_address_unref(LinphoneAddress *addr); -const char *linphone_address_get_scheme(const LinphoneAddress *u); +LINPHONE_PUBLIC LinphoneAddress * linphone_address_clone(const LinphoneAddress *addr); +LINPHONE_PUBLIC LinphoneAddress * linphone_address_ref(LinphoneAddress *addr); +LINPHONE_PUBLIC void linphone_address_unref(LinphoneAddress *addr); +LINPHONE_PUBLIC const char *linphone_address_get_scheme(const LinphoneAddress *u); LINPHONE_PUBLIC const char *linphone_address_get_display_name(const LinphoneAddress* u); LINPHONE_PUBLIC const char *linphone_address_get_username(const LinphoneAddress *u); LINPHONE_PUBLIC const char *linphone_address_get_domain(const LinphoneAddress *u); @@ -615,7 +615,7 @@ LINPHONE_PUBLIC const char *linphone_call_state_to_string(LinphoneCallState cs); LINPHONE_PUBLIC LinphoneCore *linphone_call_get_core(const LinphoneCall *call); LINPHONE_PUBLIC LinphoneCallState linphone_call_get_state(const LinphoneCall *call); -bool_t linphone_call_asked_to_autoanswer(LinphoneCall *call); +LINPHONE_PUBLIC bool_t linphone_call_asked_to_autoanswer(LinphoneCall *call); LINPHONE_PUBLIC const LinphoneAddress * linphone_core_get_current_call_remote_address(LinphoneCore *lc); LINPHONE_PUBLIC const LinphoneAddress * linphone_call_get_remote_address(const LinphoneCall *call); LINPHONE_PUBLIC char *linphone_call_get_remote_address_as_string(const LinphoneCall *call); @@ -796,7 +796,7 @@ LINPHONE_PUBLIC const char* linphone_proxy_config_get_contact_uri_parameters(con * @param[in] obj #LinphoneProxyConfig object. * @returns The #LinphoneCore object to which is associated the #LinphoneProxyConfig. **/ -LinphoneCore * linphone_proxy_config_get_core(const LinphoneProxyConfig *obj); +LINPHONE_PUBLIC LinphoneCore * linphone_proxy_config_get_core(const LinphoneProxyConfig *obj); LINPHONE_PUBLIC bool_t linphone_proxy_config_get_dial_escape_plus(const LinphoneProxyConfig *cfg); LINPHONE_PUBLIC const char * linphone_proxy_config_get_dial_prefix(const LinphoneProxyConfig *cfg); @@ -806,7 +806,7 @@ LINPHONE_PUBLIC const char * linphone_proxy_config_get_dial_prefix(const Linphon * @param[in] cfg #LinphoneProxyConfig object. * @returns The reason why registration failed for this proxy config. **/ -LinphoneReason linphone_proxy_config_get_error(const LinphoneProxyConfig *cfg); +LINPHONE_PUBLIC LinphoneReason linphone_proxy_config_get_error(const LinphoneProxyConfig *cfg); /* * return the transport from either : service route, route, or addr @@ -817,10 +817,10 @@ LINPHONE_PUBLIC const char* linphone_proxy_config_get_transport(const LinphonePr /* destruction is called automatically when removing the proxy config */ -void linphone_proxy_config_destroy(LinphoneProxyConfig *cfg); -void linphone_proxy_config_set_sip_setup(LinphoneProxyConfig *cfg, const char *type); +LINPHONE_PUBLIC void linphone_proxy_config_destroy(LinphoneProxyConfig *cfg); +LINPHONE_PUBLIC void linphone_proxy_config_set_sip_setup(LinphoneProxyConfig *cfg, const char *type); SipSetupContext *linphone_proxy_config_get_sip_setup_context(LinphoneProxyConfig *cfg); -SipSetup *linphone_proxy_config_get_sip_setup(LinphoneProxyConfig *cfg); +LINPHONE_PUBLIC SipSetup *linphone_proxy_config_get_sip_setup(LinphoneProxyConfig *cfg); /** * normalize a human readable phone number into a basic string. 888-444-222 becomes 888444222 */ @@ -922,8 +922,8 @@ LINPHONE_PUBLIC const char *linphone_auth_info_get_domain(const LinphoneAuthInfo LINPHONE_PUBLIC const char *linphone_auth_info_get_ha1(const LinphoneAuthInfo *i); /* you don't need those function*/ -void linphone_auth_info_destroy(LinphoneAuthInfo *info); -LinphoneAuthInfo * linphone_auth_info_new_from_config_file(LpConfig *config, int pos); +LINPHONE_PUBLIC void linphone_auth_info_destroy(LinphoneAuthInfo *info); +LINPHONE_PUBLIC LinphoneAuthInfo * linphone_auth_info_new_from_config_file(LpConfig *config, int pos); struct _LinphoneChatRoom; @@ -1379,8 +1379,8 @@ LINPHONE_PUBLIC const char *linphone_core_get_primary_contact(LinphoneCore *lc); LINPHONE_PUBLIC const char * linphone_core_get_identity(LinphoneCore *lc); -void linphone_core_set_guess_hostname(LinphoneCore *lc, bool_t val); -bool_t linphone_core_get_guess_hostname(LinphoneCore *lc); +LINPHONE_PUBLIC void linphone_core_set_guess_hostname(LinphoneCore *lc, bool_t val); +LINPHONE_PUBLIC bool_t linphone_core_get_guess_hostname(LinphoneCore *lc); LINPHONE_PUBLIC bool_t linphone_core_ipv6_enabled(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_enable_ipv6(LinphoneCore *lc, bool_t val); @@ -1394,8 +1394,8 @@ LINPHONE_PUBLIC void linphone_core_set_upload_bandwidth(LinphoneCore *lc, int bw LINPHONE_PUBLIC int linphone_core_get_download_bandwidth(const LinphoneCore *lc); LINPHONE_PUBLIC int linphone_core_get_upload_bandwidth(const LinphoneCore *lc); -void linphone_core_enable_adaptive_rate_control(LinphoneCore *lc, bool_t enabled); -bool_t linphone_core_adaptive_rate_control_enabled(const LinphoneCore *lc); +LINPHONE_PUBLIC void linphone_core_enable_adaptive_rate_control(LinphoneCore *lc, bool_t enabled); +LINPHONE_PUBLIC bool_t linphone_core_adaptive_rate_control_enabled(const LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_download_ptime(LinphoneCore *lc, int ptime); LINPHONE_PUBLIC int linphone_core_get_download_ptime(LinphoneCore *lc); @@ -1423,11 +1423,11 @@ LINPHONE_PUBLIC bool_t linphone_core_dns_srv_enabled(const LinphoneCore *lc); /* returns a MSList of PayloadType */ LINPHONE_PUBLIC const MSList *linphone_core_get_audio_codecs(const LinphoneCore *lc); -int linphone_core_set_audio_codecs(LinphoneCore *lc, MSList *codecs); +LINPHONE_PUBLIC int linphone_core_set_audio_codecs(LinphoneCore *lc, MSList *codecs); /* returns a MSList of PayloadType */ LINPHONE_PUBLIC const MSList *linphone_core_get_video_codecs(const LinphoneCore *lc); -int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs); +LINPHONE_PUBLIC int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs); /** * Tells whether the specified payload type is enabled. @@ -1529,7 +1529,7 @@ LINPHONE_PUBLIC void linphone_core_clear_all_auth_info(LinphoneCore *lc); * @param[in] enable TRUE to enable the audio adaptive jitter compensation, FALSE to disable it. * @ingroup media_parameters */ -void linphone_core_enable_audio_adaptive_jittcomp(LinphoneCore *lc, bool_t enable); +LINPHONE_PUBLIC void linphone_core_enable_audio_adaptive_jittcomp(LinphoneCore *lc, bool_t enable); /** * Tells whether the audio adaptive jitter compensation is enabled. @@ -1537,11 +1537,11 @@ void linphone_core_enable_audio_adaptive_jittcomp(LinphoneCore *lc, bool_t enabl * @returns TRUE if the audio adaptive jitter compensation is enabled, FALSE otherwise. * @ingroup media_parameters */ -bool_t linphone_core_audio_adaptive_jittcomp_enabled(LinphoneCore *lc); +LINPHONE_PUBLIC bool_t linphone_core_audio_adaptive_jittcomp_enabled(LinphoneCore *lc); -int linphone_core_get_audio_jittcomp(LinphoneCore *lc); +LINPHONE_PUBLIC int linphone_core_get_audio_jittcomp(LinphoneCore *lc); -void linphone_core_set_audio_jittcomp(LinphoneCore *lc, int value); +LINPHONE_PUBLIC void linphone_core_set_audio_jittcomp(LinphoneCore *lc, int value); /** * Enable or disable the video adaptive jitter compensation. @@ -1549,7 +1549,7 @@ void linphone_core_set_audio_jittcomp(LinphoneCore *lc, int value); * @param[in] enable TRUE to enable the video adaptive jitter compensation, FALSE to disable it. * @ingroup media_parameters */ -void linphone_core_enable_video_adaptive_jittcomp(LinphoneCore *lc, bool_t enable); +LINPHONE_PUBLIC void linphone_core_enable_video_adaptive_jittcomp(LinphoneCore *lc, bool_t enable); /** * Tells whether the video adaptive jitter compensation is enabled. @@ -1557,11 +1557,11 @@ void linphone_core_enable_video_adaptive_jittcomp(LinphoneCore *lc, bool_t enabl * @returns TRUE if the video adaptive jitter compensation is enabled, FALSE otherwise. * @ingroup media_parameters */ -bool_t linphone_core_video_adaptive_jittcomp_enabled(LinphoneCore *lc); +LINPHONE_PUBLIC bool_t linphone_core_video_adaptive_jittcomp_enabled(LinphoneCore *lc); -int linphone_core_get_video_jittcomp(LinphoneCore *lc); +LINPHONE_PUBLIC int linphone_core_get_video_jittcomp(LinphoneCore *lc); -void linphone_core_set_video_jittcomp(LinphoneCore *lc, int value); +LINPHONE_PUBLIC void linphone_core_set_video_jittcomp(LinphoneCore *lc, int value); LINPHONE_PUBLIC int linphone_core_get_audio_port(const LinphoneCore *lc); @@ -1642,7 +1642,7 @@ LINPHONE_PUBLIC const char * linphone_core_get_stun_server(const LinphoneCore *l * * @return true if uPnP is available otherwise return false. */ -bool_t linphone_core_upnp_available(); +LINPHONE_PUBLIC bool_t linphone_core_upnp_available(); /** * @ingroup network_parameters @@ -1651,7 +1651,7 @@ bool_t linphone_core_upnp_available(); * @param lc #LinphoneCore * @return an LinphoneUpnpState. */ -LinphoneUpnpState linphone_core_get_upnp_state(const LinphoneCore *lc); +LINPHONE_PUBLIC LinphoneUpnpState linphone_core_get_upnp_state(const LinphoneCore *lc); /** * @ingroup network_parameters @@ -1663,7 +1663,7 @@ LinphoneUpnpState linphone_core_get_upnp_state(const LinphoneCore *lc); * @return a null terminated string containing the external ip address. If the * the external ip address is not available return null. */ -const char * linphone_core_get_upnp_external_ipaddress(const LinphoneCore *lc); +LINPHONE_PUBLIC const char * linphone_core_get_upnp_external_ipaddress(const LinphoneCore *lc); /** * Set the public IP address of NAT when using the firewall policy is set to use NAT. @@ -1671,7 +1671,7 @@ const char * linphone_core_get_upnp_external_ipaddress(const LinphoneCore *lc); * @param[in] addr The public IP address of NAT to use. * @ingroup network_parameters */ -void linphone_core_set_nat_address(LinphoneCore *lc, const char *addr); +LINPHONE_PUBLIC void linphone_core_set_nat_address(LinphoneCore *lc, const char *addr); /** * Get the public IP address of NAT being used. @@ -1679,7 +1679,7 @@ void linphone_core_set_nat_address(LinphoneCore *lc, const char *addr); * @returns The public IP address of NAT being used. * @ingroup network_parameters */ -const char *linphone_core_get_nat_address(const LinphoneCore *lc); +LINPHONE_PUBLIC const char *linphone_core_get_nat_address(const LinphoneCore *lc); /** * Set the policy to use to pass through firewalls. @@ -1699,7 +1699,7 @@ LINPHONE_PUBLIC LinphoneFirewallPolicy linphone_core_get_firewall_policy(const L /* sound functions */ /* returns a null terminated static array of string describing the sound devices */ -const char** linphone_core_get_sound_devices(LinphoneCore *lc); +LINPHONE_PUBLIC const char** linphone_core_get_sound_devices(LinphoneCore *lc); /** * Update detection of sound devices. @@ -1709,13 +1709,13 @@ const char** linphone_core_get_sound_devices(LinphoneCore *lc); * @param[in] lc #LinphoneCore object. * @ingroup media_parameters **/ -void linphone_core_reload_sound_devices(LinphoneCore *lc); +LINPHONE_PUBLIC void linphone_core_reload_sound_devices(LinphoneCore *lc); -bool_t linphone_core_sound_device_can_capture(LinphoneCore *lc, const char *device); -bool_t linphone_core_sound_device_can_playback(LinphoneCore *lc, const char *device); +LINPHONE_PUBLIC bool_t linphone_core_sound_device_can_capture(LinphoneCore *lc, const char *device); +LINPHONE_PUBLIC bool_t linphone_core_sound_device_can_playback(LinphoneCore *lc, const char *device); LINPHONE_PUBLIC int linphone_core_get_ring_level(LinphoneCore *lc); LINPHONE_PUBLIC int linphone_core_get_play_level(LinphoneCore *lc); -int linphone_core_get_rec_level(LinphoneCore *lc); +LINPHONE_PUBLIC int linphone_core_get_rec_level(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_ring_level(LinphoneCore *lc, int level); LINPHONE_PUBLIC void linphone_core_set_play_level(LinphoneCore *lc, int level); @@ -1724,13 +1724,13 @@ LINPHONE_PUBLIC float linphone_core_get_mic_gain_db(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_playback_gain_db(LinphoneCore *lc, float level); LINPHONE_PUBLIC float linphone_core_get_playback_gain_db(LinphoneCore *lc); -void linphone_core_set_rec_level(LinphoneCore *lc, int level); -const char * linphone_core_get_ringer_device(LinphoneCore *lc); -const char * linphone_core_get_playback_device(LinphoneCore *lc); -const char * linphone_core_get_capture_device(LinphoneCore *lc); -int linphone_core_set_ringer_device(LinphoneCore *lc, const char * devid); -int linphone_core_set_playback_device(LinphoneCore *lc, const char * devid); -int linphone_core_set_capture_device(LinphoneCore *lc, const char * devid); +LINPHONE_PUBLIC void linphone_core_set_rec_level(LinphoneCore *lc, int level); +LINPHONE_PUBLIC const char * linphone_core_get_ringer_device(LinphoneCore *lc); +LINPHONE_PUBLIC const char * linphone_core_get_playback_device(LinphoneCore *lc); +LINPHONE_PUBLIC const char * linphone_core_get_capture_device(LinphoneCore *lc); +LINPHONE_PUBLIC int linphone_core_set_ringer_device(LinphoneCore *lc, const char * devid); +LINPHONE_PUBLIC int linphone_core_set_playback_device(LinphoneCore *lc, const char * devid); +LINPHONE_PUBLIC int linphone_core_set_capture_device(LinphoneCore *lc, const char * devid); char linphone_core_get_sound_source(LinphoneCore *lc); void linphone_core_set_sound_source(LinphoneCore *lc, char source); LINPHONE_PUBLIC void linphone_core_stop_ringing(LinphoneCore *lc); @@ -1907,8 +1907,8 @@ LINPHONE_PUBLIC void linphone_core_set_preferred_video_size(LinphoneCore *lc, MS LINPHONE_PUBLIC MSVideoSize linphone_core_get_preferred_video_size(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_preferred_video_size_by_name(LinphoneCore *lc, const char *name); -void linphone_core_enable_video_preview(LinphoneCore *lc, bool_t val); -bool_t linphone_core_video_preview_enabled(const LinphoneCore *lc); +LINPHONE_PUBLIC void linphone_core_enable_video_preview(LinphoneCore *lc, bool_t val); +LINPHONE_PUBLIC bool_t linphone_core_video_preview_enabled(const LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_enable_self_view(LinphoneCore *lc, bool_t val); LINPHONE_PUBLIC bool_t linphone_core_self_view_enabled(const LinphoneCore *lc); @@ -1922,7 +1922,7 @@ LINPHONE_PUBLIC bool_t linphone_core_self_view_enabled(const LinphoneCore *lc); * @param[in] lc #LinphoneCore object. * @ingroup media_parameters **/ -void linphone_core_reload_video_devices(LinphoneCore *lc); +LINPHONE_PUBLIC void linphone_core_reload_video_devices(LinphoneCore *lc); /* returns a null terminated static array of string describing the webcams */ LINPHONE_PUBLIC const char** linphone_core_get_video_devices(const LinphoneCore *lc); @@ -1936,7 +1936,7 @@ LINPHONE_PUBLIC const char *linphone_core_get_video_device(const LinphoneCore *l * @param[in] path The path to the image file to use. * @ingroup media_parameters */ -int linphone_core_set_static_picture(LinphoneCore *lc, const char *path); +LINPHONE_PUBLIC int linphone_core_set_static_picture(LinphoneCore *lc, const char *path); /** * Get the path to the image file streamed when "Static picture" is set as the video device. @@ -1944,7 +1944,7 @@ int linphone_core_set_static_picture(LinphoneCore *lc, const char *path); * @returns The path to the image file streamed when "Static picture" is set as the video device. * @ingroup media_parameters */ -const char *linphone_core_get_static_picture(LinphoneCore *lc); +LINPHONE_PUBLIC const char *linphone_core_get_static_picture(LinphoneCore *lc); /** * Set the frame rate for static picture. @@ -1952,7 +1952,7 @@ const char *linphone_core_get_static_picture(LinphoneCore *lc); * @param[in] fps The new frame rate to use for static picture. * @ingroup media_parameters */ -int linphone_core_set_static_picture_fps(LinphoneCore *lc, float fps); +LINPHONE_PUBLIC int linphone_core_set_static_picture_fps(LinphoneCore *lc, float fps); /** * Get the frame rate for static picture @@ -1960,7 +1960,7 @@ int linphone_core_set_static_picture_fps(LinphoneCore *lc, float fps); * @return The frame rate used for static picture. * @ingroup media_parameters */ -float linphone_core_get_static_picture_fps(LinphoneCore *lc); +LINPHONE_PUBLIC float linphone_core_get_static_picture_fps(LinphoneCore *lc); /*function to be used for eventually setting window decorations (icons, title...)*/ LINPHONE_PUBLIC unsigned long linphone_core_get_native_video_window_id(const LinphoneCore *lc); @@ -1998,7 +1998,7 @@ void linphone_core_show_video(LinphoneCore *lc, bool_t show); /*play/record support: use files instead of soundcard*/ void linphone_core_use_files(LinphoneCore *lc, bool_t yesno); LINPHONE_PUBLIC void linphone_core_set_play_file(LinphoneCore *lc, const char *file); -void linphone_core_set_record_file(LinphoneCore *lc, const char *file); +LINPHONE_PUBLIC void linphone_core_set_record_file(LinphoneCore *lc, const char *file); LINPHONE_PUBLIC void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms); LINPHONE_PUBLIC void linphone_core_stop_dtmf(LinphoneCore *lc); @@ -2006,7 +2006,7 @@ LINPHONE_PUBLIC void linphone_core_stop_dtmf(LinphoneCore *lc); LINPHONE_PUBLIC int linphone_core_get_current_call_duration(const LinphoneCore *lc); -int linphone_core_get_mtu(const LinphoneCore *lc); +LINPHONE_PUBLIC int linphone_core_get_mtu(const LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_mtu(LinphoneCore *lc, int mtu); /** @@ -2091,7 +2091,7 @@ LINPHONE_PUBLIC void linphone_core_refresh_registers(LinphoneCore* lc); * @param[in] file The path to the file to use to store the zrtp secrets cache. * @ingroup initializing */ -void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file); +LINPHONE_PUBLIC void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file); /** * Get the path to the file storing the zrtp secrets cache. @@ -2099,7 +2099,7 @@ void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file); * @returns The path to the file storing the zrtp secrets cache. * @ingroup initializing */ -const char *linphone_core_get_zrtp_secrets_file(LinphoneCore *lc); +LINPHONE_PUBLIC const char *linphone_core_get_zrtp_secrets_file(LinphoneCore *lc); /** * Search from the list of current calls if a remote address match uri diff --git a/coreapi/linphonepresence.h b/coreapi/linphonepresence.h index dd2045262..851ccf63e 100644 --- a/coreapi/linphonepresence.h +++ b/coreapi/linphonepresence.h @@ -731,140 +731,140 @@ LINPHONE_PUBLIC int linphone_presence_note_set_lang(LinphonePresenceNote *note, * @param[in] model The #LinphonePresenceModel object for which the reference count is to be increased. * @return The #LinphonePresenceModel object with the increased reference count. */ -LinphonePresenceModel * linphone_presence_model_ref(LinphonePresenceModel *model); +LINPHONE_PUBLIC LinphonePresenceModel * linphone_presence_model_ref(LinphonePresenceModel *model); /** * Decrease the reference count of the #LinphonePresenceModel object and destroy it if it reaches 0. * @param[in] model The #LinphonePresenceModel object for which the reference count is to be decreased. * @return The #LinphonePresenceModel object if the reference count is still positive, NULL if the object has been destroyed. */ -LinphonePresenceModel * linphone_presence_model_unref(LinphonePresenceModel *model); +LINPHONE_PUBLIC LinphonePresenceModel * linphone_presence_model_unref(LinphonePresenceModel *model); /** * Sets the user data of a #LinphonePresenceModel object. * @param[in] model The #LinphonePresenceModel object for which to set the user data. * @param[in] user_data A pointer to the user data to set. */ -void linphone_presence_model_set_user_data(LinphonePresenceModel *model, void *user_data); +LINPHONE_PUBLIC void linphone_presence_model_set_user_data(LinphonePresenceModel *model, void *user_data); /** * Gets the user data of a #LinphonePresenceModel object. * @param[in] model The #LinphonePresenceModel object for which to get the user data. * @return A pointer to the user data. */ -void * linphone_presence_model_get_user_data(LinphonePresenceModel *model); +LINPHONE_PUBLIC void * linphone_presence_model_get_user_data(LinphonePresenceModel *model); /** * Increase the reference count of the #LinphonePresenceService object. * @param[in] service The #LinphonePresenceService object for which the reference count is to be increased. * @return The #LinphonePresenceService object with the increased reference count. */ -LinphonePresenceService * linphone_presence_service_ref(LinphonePresenceService *service); +LINPHONE_PUBLIC LinphonePresenceService * linphone_presence_service_ref(LinphonePresenceService *service); /** * Decrease the reference count of the #LinphonePresenceService object and destroy it if it reaches 0. * @param[in] service The #LinphonePresenceService object for which the reference count is to be decreased. * @return The #LinphonePresenceService object if the reference count is still positive, NULL if the object has been destroyed. */ -LinphonePresenceService * linphone_presence_service_unref(LinphonePresenceService *service); +LINPHONE_PUBLIC LinphonePresenceService * linphone_presence_service_unref(LinphonePresenceService *service); /** * Sets the user data of a #LinphonePresenceService object. * @param[in] service The #LinphonePresenceService object for which to set the user data. * @param[in] user_data A pointer to the user data to set. */ -void linphone_presence_service_set_user_data(LinphonePresenceService *service, void *user_data); +LINPHONE_PUBLIC void linphone_presence_service_set_user_data(LinphonePresenceService *service, void *user_data); /** * Gets the user data of a #LinphonePresenceService object. * @param[in] service The #LinphonePresenceService object for which to get the user data. * @return A pointer to the user data. */ -void * linphone_presence_service_get_user_data(LinphonePresenceService *service); +LINPHONE_PUBLIC void * linphone_presence_service_get_user_data(LinphonePresenceService *service); /** * Increase the reference count of the #LinphonePresencePerson object. * @param[in] person The #LinphonePresencePerson object for which the reference count is to be increased. * @return The #LinphonePresencePerson object with the increased reference count. */ -LinphonePresencePerson * linphone_presence_person_ref(LinphonePresencePerson *person); +LINPHONE_PUBLIC LinphonePresencePerson * linphone_presence_person_ref(LinphonePresencePerson *person); /** * Decrease the reference count of the #LinphonePresencePerson object and destroy it if it reaches 0. * @param[in] person The #LinphonePresencePerson object for which the reference count is to be decreased. * @return The #LinphonePresencePerson object if the reference count is still positive, NULL if the object has been destroyed. */ -LinphonePresencePerson * linphone_presence_person_unref(LinphonePresencePerson *person); +LINPHONE_PUBLIC LinphonePresencePerson * linphone_presence_person_unref(LinphonePresencePerson *person); /** * Sets the user data of a #LinphonePresencePerson object. * @param[in] person The #LinphonePresencePerson object for which to set the user data. * @param[in] user_data A pointer to the user data to set. */ -void linphone_presence_person_set_user_data(LinphonePresencePerson *person, void *user_data); +LINPHONE_PUBLIC void linphone_presence_person_set_user_data(LinphonePresencePerson *person, void *user_data); /** * Gets the user data of a #LinphonePresencePerson object. * @param[in] person The #LinphonePresencePerson object for which to get the user data. * @return A pointer to the user data. */ -void * linphone_presence_person_get_user_data(LinphonePresencePerson *person); +LINPHONE_PUBLIC void * linphone_presence_person_get_user_data(LinphonePresencePerson *person); /** * Increase the reference count of the #LinphonePresenceActivity object. * @param[in] activity The #LinphonePresenceActivity object for which the reference count is to be increased. * @return The #LinphonePresenceActivity object with the increased reference count. */ -LinphonePresenceActivity * linphone_presence_activity_ref(LinphonePresenceActivity *activity); +LINPHONE_PUBLIC LinphonePresenceActivity * linphone_presence_activity_ref(LinphonePresenceActivity *activity); /** * Decrease the reference count of the #LinphonePresenceActivity object and destroy it if it reaches 0. * @param[in] activity The #LinphonePresenceActivity object for which the reference count is to be decreased. * @return The #LinphonePresenceActivity object if the reference count is still positive, NULL if the object has been destroyed. */ -LinphonePresenceActivity * linphone_presence_activity_unref(LinphonePresenceActivity *activity); +LINPHONE_PUBLIC LinphonePresenceActivity * linphone_presence_activity_unref(LinphonePresenceActivity *activity); /** * Sets the user data of a #LinphonePresenceActivity object. * @param[in] activity The #LinphonePresenceActivity object for which to set the user data. * @param[in] user_data A pointer to the user data to set. */ -void linphone_presence_activity_set_user_data(LinphonePresenceActivity *activity, void *user_data); +LINPHONE_PUBLIC void linphone_presence_activity_set_user_data(LinphonePresenceActivity *activity, void *user_data); /** * Gets the user data of a #LinphonePresenceActivity object. * @param[in] activity The #LinphonePresenceActivity object for which to get the user data. * @return A pointer to the user data. */ -void * linphone_presence_activity_get_user_data(LinphonePresenceActivity *activity); +LINPHONE_PUBLIC void * linphone_presence_activity_get_user_data(LinphonePresenceActivity *activity); /** * Increase the reference count of the #LinphonePresenceNote object. * @param[in] note The #LinphonePresenceNote object for which the reference count is to be increased. * @return The #LinphonePresenceNote object with the increased reference count. */ -LinphonePresenceNote * linphone_presence_note_ref(LinphonePresenceNote *note); +LINPHONE_PUBLIC LinphonePresenceNote * linphone_presence_note_ref(LinphonePresenceNote *note); /** * Decrease the reference count of the #LinphonePresenceNote object and destroy it if it reaches 0. * @param[in] note The #LinphonePresenceNote object for which the reference count is to be decreased. * @return The #LinphonePresenceNote object if the reference count is still positive, NULL if the object has been destroyed. */ -LinphonePresenceNote * linphone_presence_note_unref(LinphonePresenceNote *note); +LINPHONE_PUBLIC LinphonePresenceNote * linphone_presence_note_unref(LinphonePresenceNote *note); /** * Sets the user data of a #LinphonePresenceNote object. * @param[in] note The #LinphonePresenceNote object for which to set the user data. * @param[in] user_data A pointer to the user data to set. */ -void linphone_presence_note_set_user_data(LinphonePresenceNote *note, void *user_data); +LINPHONE_PUBLIC void linphone_presence_note_set_user_data(LinphonePresenceNote *note, void *user_data); /** * Gets the user data of a #LinphonePresenceNote object. * @param[in] note The #LinphonePresenceNote object for which to get the user data. * @return A pointer to the user data. */ -void * linphone_presence_note_get_user_data(LinphonePresenceNote *note); +LINPHONE_PUBLIC void * linphone_presence_note_get_user_data(LinphonePresenceNote *note); /***************************************************************************** diff --git a/coreapi/lpconfig.h b/coreapi/lpconfig.h index f413bf7a6..3af570e79 100644 --- a/coreapi/lpconfig.h +++ b/coreapi/lpconfig.h @@ -167,7 +167,7 @@ LINPHONE_PUBLIC void lp_config_set_int(LpConfig *lpconfig,const char *section, c * * @ingroup misc **/ -void lp_config_set_int_hex(LpConfig *lpconfig,const char *section, const char *key, int value); +LINPHONE_PUBLIC void lp_config_set_int_hex(LpConfig *lpconfig,const char *section, const char *key, int value); /** * Sets a 64 bits integer config item @@ -220,7 +220,7 @@ void lp_config_for_each_entry(const LpConfig *lpconfig, const char *section, voi /*tells whether uncommited (with lp_config_sync()) modifications exist*/ int lp_config_needs_commit(const LpConfig *lpconfig); -void lp_config_destroy(LpConfig *cfg); +LINPHONE_PUBLIC void lp_config_destroy(LpConfig *cfg); #ifdef __cplusplus } diff --git a/coreapi/proxy.c b/coreapi/proxy.c index d5bbe3e47..214aabea8 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -289,6 +289,8 @@ LinphoneAddress *guess_contact_for_register(LinphoneProxyConfig *obj){ int localport = -1; const char *localip = NULL; LinphoneAddress *contact=linphone_address_new(obj->reg_identity); + + linphone_address_clean(contact); if (obj->contact_params) { // We want to add a list of contacts params to the linphone address @@ -300,7 +302,6 @@ LinphoneAddress *guess_contact_for_register(LinphoneProxyConfig *obj){ #ifdef BUILD_UPNP if (obj->lc->upnp != NULL && linphone_core_get_firewall_policy(obj->lc)==LinphonePolicyUseUpnp && linphone_upnp_context_get_state(obj->lc->upnp) == LinphoneUpnpStateOk) { - LCSipTransports tr; localip = linphone_upnp_context_get_external_ipaddress(obj->lc->upnp); localport = linphone_upnp_context_get_external_port(obj->lc->upnp); } diff --git a/gtk/call_statistics.ui b/gtk/call_statistics.ui index c6f71deb6..a647a8dca 100644 --- a/gtk/call_statistics.ui +++ b/gtk/call_statistics.ui @@ -1,6 +1,6 @@ - + False diff --git a/gtk/chat.c b/gtk/chat.c index bfb6529e8..b44605ae3 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -357,7 +357,7 @@ void linphone_gtk_chat_add_contact(const LinphoneAddress *addr){ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with){ GtkWidget *chat_view=linphone_gtk_create_widget("main","chatroom_frame"); - GtkWidget *main_window=linphone_gtk_get_main_window (); + GtkWidget *main_window=linphone_gtk_get_main_window(); GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch"); GtkWidget *text=linphone_gtk_get_widget(chat_view,"textview"); GdkColor color; @@ -375,7 +375,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.red = 56832; colorb.green = 60928; colorb.blue = 61952; - + with_str=linphone_address_as_string_uri_only(with); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); @@ -468,9 +468,10 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, gboolean send=TRUE; /*GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" );*/ const LinphoneAddress *from= linphone_chat_message_get_from ( msg ); - + w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" ); if ( w!=NULL ) { + /* Chat window opened */ const LinphoneAddress *from_chatview=linphone_gtk_friend_list_get_active_address(); if (linphone_address_weak_equal(from,from_chatview)) { send=TRUE; @@ -480,8 +481,13 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, } send=FALSE; } - } else { + } else { + /* Chat window closed */ +#ifdef MSG_STORAGE_ENABLED send=FALSE; +#else + send=TRUE; +#endif if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) { linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) ); } diff --git a/gtk/keypad.ui b/gtk/keypad.ui index 5dfcfc487..2dd62a0f0 100644 --- a/gtk/keypad.ui +++ b/gtk/keypad.ui @@ -1,6 +1,6 @@ - + False diff --git a/gtk/main.c b/gtk/main.c index a25b42523..135dfe5f4 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1591,7 +1591,7 @@ static void linphone_gtk_init_status_icon(){ const char *title; title=linphone_gtk_get_ui_config("title",_("Linphone - a video internet phone")); icon=gtk_status_icon_new_from_pixbuf(pbuf); -#if GTK_CHECK_VERSION(2,20,0) +#if GTK_CHECK_VERSION(2,20,2) gtk_status_icon_set_name(icon,title); #endif g_signal_connect_swapped(G_OBJECT(icon),"activate",(GCallback)handle_icon_click,NULL); diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 932f99aef..4590e106c 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -1403,6 +1403,9 @@ void linphone_gtk_show_parameters(void){ if (linphone_address_get_username(contact)) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"username")),linphone_address_get_username(contact)); } +#ifdef BUILD_WIZARD + gtk_widget_show(linphone_gtk_get_widget(pb,"wizard")); +#endif linphone_address_destroy(contact); linphone_gtk_show_sip_accounts(pb); /* CODECS CONFIG */ diff --git a/mediastreamer2 b/mediastreamer2 index 6920f363d..4103f0b1d 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 6920f363d8f6db7c98f6dc471a045f43e4f26200 +Subproject commit 4103f0b1d7757558d06e6e32b657308bb2556c9b