diff --git a/NEWS b/NEWS index 10cbb8c25..5b775e1bb 100644 --- a/NEWS +++ b/NEWS @@ -3,7 +3,7 @@ linphone-3.7...?? * IP dual stack: can use IPv6 and IPv4 simultaneously * fully asynchronous behavior: no more lengthly DNS or connections -llinphone-3.6.1 -- June 17, 2013 +linphone-3.6.1 -- June 17, 2013 * fix memory leak with some video cameras on windows. Requires: mediastreamer2 = 2.9.1 and ortp = 0.22.0 diff --git a/README b/README index a1fb5bd3d..c8407b11f 100644 --- a/README +++ b/README @@ -33,11 +33,11 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. Here is the command line to get these dependencies installed for Ubuntu && Debian - $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvx-dev ligl1-mesa-dev libglew-dev libv4l-dev + $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libvxl1-dev libgl1-mesa-dev libglew1.6-dev libv4l-dev + for optional library - $ sudo apt-get install libreadline-dev liggsm1-dev libtheora-dev libsoup2.4-dev libsqlit3-dev libupnp6-dev - + $ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev libsoup2.4-dev libsqlite3-dev libupnp4-dev + + Install srtp (optional) for call encryption : $ git clone git://git.linphone.org/srtp.git $ cd srtp && autoconf && ./configure && make diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 89bc20846..352ab3c58 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -368,7 +368,7 @@ static void call_accepted(SalOp *op){ #endif //BUILD_UPNP md=sal_call_get_final_media_description(op); - if (md) /*make sure re-invite will not prose video again*/ + if (md) /*make sure re-invite will not propose video again*/ call->params.has_video &= linphone_core_media_description_contains_video_stream(md); if (call->state==LinphoneCallOutgoingProgress || diff --git a/coreapi/linphone_tunnel.h b/coreapi/linphone_tunnel.h index ea2feb097..9f6302eec 100644 --- a/coreapi/linphone_tunnel.h +++ b/coreapi/linphone_tunnel.h @@ -171,6 +171,12 @@ LINPHONE_PUBLIC bool_t linphone_tunnel_enabled(LinphoneTunnel *tunnel); **/ bool_t linphone_tunnel_connected(LinphoneTunnel *tunnel); +/** + * @param tunnel object + * Returns a boolean indicating whether tunnel is connected successfully. +**/ +bool_t linphone_tunnel_connected(LinphoneTunnel *tunnel); + /** * @param tunnel object * Forces reconnection to the tunnel server. diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index b33b4ad3e..c5dc2d056 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2976,7 +2976,7 @@ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const Linpho err = linphone_core_start_update_call(lc, call); }else{ #ifdef VIDEO_ENABLED - if (call->videostream!=NULL){ + if ((call->videostream != NULL) && (call->state == LinphoneCallStreamsRunning)) { video_stream_set_sent_video_size(call->videostream,linphone_core_get_preferred_video_size(lc)); if (call->camera_active && call->videostream->cam!=lc->video_conf.device){ video_stream_change_camera(call->videostream,lc->video_conf.device); diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 116ceb865..5053961f9 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1682,7 +1682,6 @@ LINPHONE_PUBLIC void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp); LINPHONE_PUBLIC int linphone_core_get_video_dscp(const LinphoneCore *lc); - #ifdef __cplusplus } #endif diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 4e0e824a5..2a4212889 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2163,13 +2163,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVideoWindowId(JNIEnv* ,jlong lc ,jobject obj) { jobject oldWindow = (jobject) linphone_core_get_native_video_window_id((LinphoneCore*)lc); - if (oldWindow != NULL) { - env->DeleteGlobalRef(oldWindow); - } if (obj != NULL) { obj = env->NewGlobalRef(obj); } linphone_core_set_native_video_window_id((LinphoneCore*)lc,(unsigned long)obj); + if (oldWindow != NULL) { + env->DeleteGlobalRef(oldWindow); + } } extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEnv* env @@ -2177,13 +2177,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEn ,jlong lc ,jobject obj) { jobject oldWindow = (jobject) linphone_core_get_native_preview_window_id((LinphoneCore*)lc); - if (oldWindow != NULL) { - env->DeleteGlobalRef(oldWindow); - } if (obj != NULL) { obj = env->NewGlobalRef(obj); } linphone_core_set_native_preview_window_id((LinphoneCore*)lc,(unsigned long)obj); + if (oldWindow != NULL) { + env->DeleteGlobalRef(oldWindow); + } } extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDeviceRotation(JNIEnv* env diff --git a/coreapi/linphonefriend.h b/coreapi/linphonefriend.h index d102728dc..8eea8c052 100644 --- a/coreapi/linphonefriend.h +++ b/coreapi/linphonefriend.h @@ -149,6 +149,13 @@ LINPHONE_PUBLIC int linphone_friend_set_addr(LinphoneFriend *fr, const LinphoneA */ LINPHONE_PUBLIC int linphone_friend_set_name(LinphoneFriend *lf, const char *name); +/** + * set the display name for this friend + * @param lf #LinphoneFriend object + * @param name + */ +int linphone_friend_set_name(LinphoneFriend *lf, const char *name); + /** * get address of this friend * @param lf #LinphoneFriend object diff --git a/coreapi/misc.c b/coreapi/misc.c index 13ce4c6e7..24775553d 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1145,7 +1145,6 @@ int linphone_core_get_local_ip_for(int type, const char *dest, char *result){ * try to find 'the' running interface with getifaddrs*/ #ifdef HAVE_GETIFADDRS - /*we use getifaddrs for lookup of default interface */ int found_ifs; diff --git a/gen-gtkfilelist.sh b/gen-gtkfilelist.sh index 4036201ba..15a5b8812 100755 --- a/gen-gtkfilelist.sh +++ b/gen-gtkfilelist.sh @@ -7,17 +7,24 @@ echo bin find bin -name *.dll find lib/gtk-2.0 find etc -find share/locale/fr -find share/locale/de -find share/locale/sv find share/locale/cs +find share/locale/de find share/locale/es +find share/locale/fr +find share/locale/he find share/locale/hu find share/locale/it find share/locale/ja +find share/locale/nb +find share/locale/nb_NO find share/locale/nl find share/locale/pl -find share/locale/ru +find share/locale/pt find share/locale/pt_BR +find share/locale/ru +find share/locale/sr +find share/locale/sv +find share/locale/zh +find share/locale/zh_CN +find share/locale/zh_TW find share/themes - diff --git a/gtk/chat.c b/gtk/chat.c index e3c977cfd..c1bb46713 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -246,7 +246,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag gtk_text_buffer_get_iter_at_line_offset(b,&end,line,0); gtk_text_buffer_delete(b,&start,&end); gtk_text_buffer_get_iter_at_line(b,&iter,line); - + switch (state) { case LinphoneChatMessageStateInProgress: result="Sending .."; diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index f4374c539..439f9c89f 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -60,7 +60,7 @@ static int all_account_information_entered(GtkWidget *w) { if (gtk_entry_get_text_length(username) > 0 && gtk_entry_get_text_length(domain) > 0 && g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{2,}$", gtk_entry_get_text(username), 0, 0) && - g_regex_match_simple("^(sip:)?([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$", gtk_entry_get_text(domain), 0, 0)) { + g_regex_match_simple("^(sip:)?([a-zA-Z0-9]+([\\.-][a-zA-Z0-9]+)*)$", gtk_entry_get_text(domain), 0, 0)) { return 1; } return 0; @@ -422,11 +422,17 @@ static void linphone_gtk_assistant_prepare(GtkWidget *assistant, GtkWidget *page gchar *username = creator->username + 4; const gchar *needle = "@"; - username = g_strndup(username, (g_strrstr(username, needle) - username)); + const gchar *needle_ptr = g_strrstr(username, needle); + if (needle_ptr != NULL) { + username = g_strndup(username, needle_ptr - username); + } else { + username = g_strdup(username); + } gchar domain[128]; g_snprintf(domain, sizeof(domain), "\"%s\"", creator->domain + 4); LinphoneAuthInfo *info=linphone_auth_info_new(username, username, creator->password, NULL, domain); linphone_core_add_auth_info(linphone_gtk_get_core(),info); + g_free(username); if (linphone_core_add_proxy_config(linphone_gtk_get_core(),cfg)==-1) return; diff --git a/mediastreamer2 b/mediastreamer2 index 196084d7c..cab341d59 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 196084d7ce9d94a72b670592b5ba2ff455d16408 +Subproject commit cab341d59bc4d37f82ddccbfcf1ae2563f9c5028 diff --git a/oRTP b/oRTP index 020d921f8..49b16793b 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 020d921f876ed04d434425fb2176642bbe9b3004 +Subproject commit 49b16793b9ef8251a4c42434b57387c6e3c6d251