diff --git a/NEWS b/NEWS index a684b44af..687b27f98 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +linphone-3.4.2 -- March 3rd, 2011 + * fix problems with webcams on windows + Requires mediastreamer-2.7.2 + linphone-3.4.1 -- February 17th, 2011 * bugfixes * gtk executable is renamed "linphone" (was linphone-3 before) diff --git a/README.mingw b/README.mingw index 557a8e642..5fa56c844 100644 --- a/README.mingw +++ b/README.mingw @@ -49,6 +49,8 @@ rm /lib/libgcc.a /lib/libmingw32.a /lib/libmingwex.a #Remove libintl from gtk, we don't need it and it conflicts with the one supplied by mingw. rm /lib/libintl.dll.a +rm /lib/libintl.la +rm /lib/libintl.a rm /include/intl.h * Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable. @@ -56,7 +58,8 @@ rm /include/intl.h Get Linphone source code ************************ -Install msys-git from (http://code.google.com/p/msysgit/) +Install msys-git from (http://code.google.com/p/msysgit/). During installation you are asked to make a choice about how line endings are treated by git. +Choose "Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY IMPORTANT. OTHERS BREAK AUTOMAKE. It is recommended that you create a directory somewhere with a path without any spaces or ~ characters, for example c:\sources\ diff --git a/configure.ac b/configure.ac index 3053a71dd..c4198463d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.4.1],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.4.2],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([coreapi/linphonecore.c]) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index d3935700d..899cb66cb 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -623,7 +623,7 @@ static void video_stream_event_cb(void *user_pointer, const MSFilter *f, const u ms_warning("In linphonecall.c: video_stream_event_cb"); switch (event_id) { case MS_VIDEO_DECODER_DECODING_ERRORS: - ms_warning("CAse is MS_VIDEO_DECODER_DECODING_ERRORS"); + ms_warning("Case is MS_VIDEO_DECODER_DECODING_ERRORS"); linphone_call_send_vfu_request((LinphoneCall*) user_pointer); break; default: diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 7b6a01640..062e345b0 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -496,10 +496,6 @@ static void sip_config_read(LinphoneCore *lc) ipv6=lp_config_get_int(lc->config,"sip","use_ipv6",-1); if (ipv6==-1){ ipv6=0; - if (host_has_ipv6_network()){ - if (lc->vtable.display_message) - lc->vtable.display_message(lc,_("Your machine appears to be connected to an IPv6 network. By default linphone always uses IPv4. Please update your configuration if you want to use IPv6")); - } } linphone_core_enable_ipv6(lc,ipv6); memset(&tr,0,sizeof(tr)); @@ -3590,6 +3586,12 @@ void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms){ ms_error("No dtmf generator at this time !"); return; } + + // Play DTMF only when in call + if (!linphone_core_in_call(lc)) { + return; + } + if (duration_ms>0) ms_filter_call_method(f, MS_DTMF_GEN_PLAY, &dtmf); else ms_filter_call_method(f, MS_DTMF_GEN_START, &dtmf); diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 1284f81b2..df1583c7b 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1173,3 +1173,6 @@ extern "C" void Java_org_linphone_core_LinphoneProxyConfigImpl_setExpires(JNIEnv linphone_proxy_config_expires((LinphoneProxyConfig *) ptr, (int) delay); } +extern "C" jint Java_org_linphone_core_LinphoneCallImpl_getDuration(JNIEnv* env,jobject thiz,jlong ptr) { + linphone_call_get_duration((LinphoneCall *) ptr); +} \ No newline at end of file diff --git a/coreapi/misc.c b/coreapi/misc.c index 059c6228c..799de3aee 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -345,52 +345,6 @@ bool_t lp_spawn_command_line_sync(const char *command, char **result,int *comman return FALSE; } -#if defined(HAVE_GETIFADDRS) && defined(INET6) -#include -#include -#include -bool_t host_has_ipv6_network() -{ - struct ifaddrs *ifp; - struct ifaddrs *ifpstart; - bool_t ipv6_present=FALSE; - - if (getifaddrs (&ifpstart) < 0) - { - return FALSE; - } - - for (ifp=ifpstart; ifp != NULL; ifp = ifp->ifa_next) - { - if (!ifp->ifa_addr) - continue; - - switch (ifp->ifa_addr->sa_family) { - case AF_INET: - - break; - case AF_INET6: - ipv6_present=TRUE; - break; - default: - continue; - } - } - - freeifaddrs (ifpstart); - - return ipv6_present; -} -#else - -bool_t host_has_ipv6_network() -{ - return FALSE; -} - - -#endif - static ortp_socket_t create_socket(int local_port){ struct sockaddr_in laddr; ortp_socket_t sock; diff --git a/java/common/org/linphone/core/LinphoneCall.java b/java/common/org/linphone/core/LinphoneCall.java index 171e2e6b4..b8e03ac1d 100644 --- a/java/common/org/linphone/core/LinphoneCall.java +++ b/java/common/org/linphone/core/LinphoneCall.java @@ -137,50 +137,55 @@ public interface LinphoneCall { /** * Retrieves the call's current state. **/ - public State getState(); + State getState(); /** * Returns the remote address associated to this call * **/ - public LinphoneAddress getRemoteAddress(); + LinphoneAddress getRemoteAddress(); /** * get direction of the call (incoming or outgoing). * @return CallDirection */ - public CallDirection getDirection(); + CallDirection getDirection(); /** * get the call log associated to this call. * @Return LinphoneCallLog **/ - public LinphoneCallLog getCallLog(); + LinphoneCallLog getCallLog(); - public LinphoneCallParams getCurrentParamsCopy(); + LinphoneCallParams getCurrentParamsCopy(); - public void enableCamera(boolean enabled); + void enableCamera(boolean enabled); /** * Enables or disable echo cancellation. * @param enable */ - public void enableEchoCancellation(boolean enable); + void enableEchoCancellation(boolean enable); /** * get EC status * @return true if echo cancellation is enabled. */ - public boolean isEchoCancellationEnabled(); + boolean isEchoCancellationEnabled(); /** * Enables or disable echo limiter cancellation. * @param enable */ - public void enableEchoLimiter(boolean enable); + void enableEchoLimiter(boolean enable); /** * get EL status * @return true if echo limiter is enabled. */ - public boolean isEchoLimiterEnabled(); + boolean isEchoLimiterEnabled(); /** * Returns the object associated to a call this one is replacing. * Call replacement can occur during transfer scenarios. */ - public LinphoneCall getReplacedCall(); + LinphoneCall getReplacedCall(); + + /** + * @return call duration computed from media start + */ + int getDuration(); } diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 84a38ca7d..db378d1ce 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -391,7 +391,8 @@ public interface LinphoneCore { */ public void sendDtmf(char number); /** - * Initiate a dtmf signal to the speqker if not in call + * Initiate a dtmf signal to the speaker if not in call. + * Sending of the DTMF is done in another function. * @param number * @param duration in ms , -1 for unlimited */ diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index 6629c3dc3..836f86caa 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -36,14 +36,14 @@ abstract public class LinphoneCoreFactory { factoryName = className; } - public static LinphoneCoreFactory instance() { + public static final synchronized LinphoneCoreFactory instance() { try { if (theLinphoneCoreFactory == null) { Class lFactoryClass = Class.forName(factoryName); theLinphoneCoreFactory = (LinphoneCoreFactory) lFactoryClass.newInstance(); } } catch (Exception e) { - System.err.println("cannot instanciate factory ["+factoryName+"]"); + System.err.println("Cannot instanciate factory ["+factoryName+"]"); } return theLinphoneCoreFactory; } diff --git a/linphone-deps.filelist b/linphone-deps.filelist index 19ea6ecde..22e069ed8 100755 --- a/linphone-deps.filelist +++ b/linphone-deps.filelist @@ -1,8 +1,8 @@ ./bin/avcodec-52.dll ./bin/avutil-50.dll ./bin/libeXosip2-6.dll -./bin/libogg.dll -./bin/libtheora.dll +./bin/libogg-0.dll +./bin/libtheora-0.dll ./bin/libxml2-2.dll ./bin/libosip2-6.dll ./bin/libosipparser2-6.dll diff --git a/mediastreamer2 b/mediastreamer2 index 874577ad3..fee15bc17 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 874577ad3a835255fc719da26f5dbdadf301aa01 +Subproject commit fee15bc174996771973a27bf974d740e7f657bf6