From 6d8d877119b0c357e0e453943a43e03720bdc6aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Mon, 13 Feb 2017 15:16:31 +0100 Subject: [PATCH 01/16] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 366cf7f68..ea6aee574 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 366cf7f6834f907feffa2440f4c93e6f3b5c81be +Subproject commit ea6aee57439a5dd2f28a6163bedeb96b6ab85f95 From 8d7d1692a3d6830e1f0077d0decbf27f29372fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Wed, 15 Feb 2017 15:18:01 +0100 Subject: [PATCH 02/16] Check validity of the username when setting Linphone with an already existing account --- gtk/setupwizard.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index d8873c0eb..1a002f797 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -192,8 +192,12 @@ void linphone_gtk_external_account_configuration_changed(GtkEntry *entry) { gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, external_account_configuration_complete(page) > 0); } +static bool_t check_username_validity(const char *username) { + return username && g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{3,}$", username, 0, 0); +} + void linphone_gtk_account_configuration_changed(GtkEntry *entry, GtkAssistant *assistant) { - gboolean complete = (gtk_entry_get_text_length(entry) > 0); + gboolean complete = check_username_validity(gtk_entry_get_text(entry)); GtkWidget *page = gtk_assistant_get_nth_page(assistant, gtk_assistant_get_current_page(assistant)); gtk_assistant_set_page_complete(assistant, page, complete); } @@ -256,7 +260,7 @@ void linphone_gtk_account_creation_username_changed(GtkEntry *entry) { linphone_account_creator_set_domain(creator, "sip.linphone.org"); linphone_account_creator_set_route(creator, "sip.linphone.org"); - if (g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{3,}$", gtk_entry_get_text(username), 0, 0)) { + if (check_username_validity(gtk_entry_get_text(username))) { guint timerID = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(page), "usernameAvailabilityTimerID")); if (timerID > 0) { g_source_remove(timerID); @@ -266,7 +270,7 @@ void linphone_gtk_account_creation_username_changed(GtkEntry *entry) { } else { if (gtk_entry_get_text_length(username) < LOGIN_MIN_SIZE) { gtk_label_set_text(usernameError, "Username is too short"); - } else if (!g_regex_match_simple("^[a-zA-Z]+[a-zA-Z0-9.\\-_]{3,}$", gtk_entry_get_text(username), 0, 0)) { + } else if (!check_username_validity(gtk_entry_get_text(username))) { gtk_label_set_text(usernameError, "Unauthorized username"); } g_object_set_data(G_OBJECT(page), "is_username_available", GINT_TO_POINTER(0)); From 605fd462c954ccb308868aecaffdeaa1dbd919ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Wed, 15 Feb 2017 15:57:23 +0100 Subject: [PATCH 03/16] Fix regression: system environment was no more used to generate the primary contact URI on first Linphone's start --- coreapi/linphonecore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 69249d7b7..18b93f047 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1131,11 +1131,11 @@ static void sip_config_read(LinphoneCore *lc) { if (tmpstr==NULL || linphone_core_set_primary_contact(lc,tmpstr)==-1) { const char *hostname=NULL; const char *username=NULL; -#ifdef HAVE_GETENV +#if !defined(LINPHONE_WINDOWS_UNIVERSAL) && !defined(LINPHONE_WINDOWS_PHONE) // Using getenv is forbidden on Windows 10 and Windows Phone hostname=getenv("HOST"); username=getenv("USER"); if (hostname==NULL) hostname=getenv("HOSTNAME"); -#endif /*HAVE_GETENV*/ +#endif if (hostname==NULL) hostname="unknown-host"; if (username==NULL){ From fd9fbedb406180246efb53c1188ef996ab93acf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Wed, 15 Feb 2017 17:09:08 +0100 Subject: [PATCH 04/16] Fix regression about P2P presence Denying a friend to subscribe presence was no more possible once we accepted. --- coreapi/friend.c | 12 ++++++++++-- coreapi/presence.c | 15 ++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/coreapi/friend.c b/coreapi/friend.c index c24902f2d..41e756a64 100644 --- a/coreapi/friend.c +++ b/coreapi/friend.c @@ -464,12 +464,16 @@ void linphone_friend_invalidate_subscription(LinphoneFriend *lf){ lf->initial_subscribes_sent=FALSE; } -void linphone_friend_close_subscriptions(LinphoneFriend *lf){ - linphone_friend_unsubscribe(lf); +static void linphone_friend_close_incoming_subscriptions(LinphoneFriend *lf) { bctbx_list_for_each(lf->insubs, (MSIterateFunc) sal_notify_presence_close); lf->insubs = bctbx_list_free_with_data(lf->insubs, (MSIterateFunc)sal_op_release); } +void linphone_friend_close_subscriptions(LinphoneFriend *lf){ + linphone_friend_unsubscribe(lf); + linphone_friend_close_incoming_subscriptions(lf); +} + static void _linphone_friend_release_ops(LinphoneFriend *lf){ lf->insubs = bctbx_list_free_with_data(lf->insubs, (MSIterateFunc) sal_op_release); if (lf->outsub){ @@ -744,6 +748,10 @@ void linphone_friend_apply(LinphoneFriend *fr, LinphoneCore *lc) { } fr->inc_subscribe_pending = FALSE; } + + if (fr->pol == LinphoneSPDeny && fr->insubs) { + linphone_friend_close_incoming_subscriptions(fr); + } linphone_friend_update_subscribes(fr, linphone_core_should_subscribe_friends_only_when_registered(lc)); diff --git a/coreapi/presence.c b/coreapi/presence.c index d24459cc9..66395d885 100644 --- a/coreapi/presence.c +++ b/coreapi/presence.c @@ -1551,12 +1551,17 @@ void linphone_subscription_new(LinphoneCore *lc, SalOp *op, const char *from){ /* check if we answer to this subscription */ lf = linphone_core_find_friend(lc, uri); if (lf!=NULL){ - linphone_friend_add_incoming_subscription(lf, op); - lf->inc_subscribe_pending=TRUE; - if (lp_config_get_int(lc->config,"sip","notify_pending_state",0)) { - sal_notify_pending_state(op); + if (lf->pol != LinphoneSPDeny) { + linphone_friend_add_incoming_subscription(lf, op); + lf->inc_subscribe_pending=TRUE; + if (lp_config_get_int(lc->config,"sip","notify_pending_state",0)) { + sal_notify_pending_state(op); + } + sal_subscribe_accept(op); + } else { + ms_message("%s is not authorized to subscribe", from); + sal_subscribe_decline(op, SalReasonDeclined); } - sal_subscribe_accept(op); linphone_friend_done(lf); /*this will do all necessary actions */ }else{ /* check if this subscriber is in our black list */ From 52b2cf48999184a855ae6f55faca0735dff59179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Thu, 16 Feb 2017 12:20:04 +0100 Subject: [PATCH 05/16] Switch default video definition to "VGA" --- coreapi/linphonecore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 18b93f047..209bd1c9f 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1544,7 +1544,7 @@ static void video_config_read(LinphoneCore *lc){ linphone_core_set_video_device(lc,str); linphone_core_set_preferred_video_size_by_name(lc, - lp_config_get_string(lc->config,"video","size","cif")); + lp_config_get_string(lc->config,"video","size","vga")); linphone_core_set_preview_video_size_by_name(lc, lp_config_get_string(lc->config,"video","preview_size",NULL)); From 5eb9bc379b2839ecfab33536d4994ce080a2a13f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Thu, 16 Feb 2017 13:40:02 +0100 Subject: [PATCH 06/16] Hide the 'use NAT address' firewall policy --- gtk/parameters.ui | 8 ++++---- gtk/propertybox.c | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gtk/parameters.ui b/gtk/parameters.ui index bb90ccefe..1a11b24d0 100644 --- a/gtk/parameters.ui +++ b/gtk/parameters.ui @@ -186,13 +186,13 @@ - default + default - high-fps + high-fps - custom + custom @@ -2086,7 +2086,7 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True - + True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK diff --git a/gtk/propertybox.c b/gtk/propertybox.c index a8c14b978..44b4de4f6 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -1666,6 +1666,9 @@ void linphone_gtk_show_parameters(void){ if(!linphone_core_upnp_available()) { gtk_widget_hide(linphone_gtk_get_widget(pb,"use_upnp")); } + gtk_widget_hide(linphone_gtk_get_widget(pb, "use_nat_address")); + gtk_widget_hide(linphone_gtk_get_widget(pb, "nat_address")); + gtk_widget_hide(linphone_gtk_get_widget(pb, "nat_address_label")); mtu=linphone_core_get_mtu(lc); if (mtu<=0){ From cb40549c79ea4f232aa0093acef019f36e64b0a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Thu, 16 Feb 2017 17:25:59 +0100 Subject: [PATCH 07/16] Display the download URI when a file transfer chat message is received --- gtk/chat.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 17c15d364..9a15c8236 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -160,6 +160,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, const GRegex *uri_regex = get_uri_regex(); GMatchInfo *match_info = NULL; const char *message = linphone_chat_message_get_text(msg); + const char *external_body_url = linphone_chat_message_get_external_body_url(msg); time_t t; char buf[80]; time_t tnow; @@ -180,10 +181,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, } ms_free(from_str); - if (!message) { - const char *external_body_url = linphone_chat_message_get_external_body_url(msg); - if (external_body_url) message = external_body_url; - } + if (external_body_url) message = external_body_url; // Inserts message body and tags URIs as hypertext links if(message) { From 5c46c2f566ad87298493287fe2fc5d97d0e7d39e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 17 Feb 2017 11:30:02 +0100 Subject: [PATCH 08/16] Prevent the generic OpenGL displaying filter from being proposed in Linphone's settings --- gtk/main.c | 7 +++++++ gtk/propertybox.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gtk/main.c b/gtk/main.c index d987d60d0..f8d9f553d 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -258,6 +258,8 @@ static void linphone_gtk_init_liblinphone(const char *config_file, LinphoneCoreVTable vtable={0}; gchar *secrets_file=linphone_gtk_get_config_file(SECRETS_FILE); gchar *user_certificates_dir=linphone_gtk_get_config_file(CERTIFICATES_PATH); + MSFactory *msfactory = NULL; + MSFilterDesc *ogl_filter_desc; vtable.global_state_changed=linphone_gtk_global_state_changed; vtable.call_state_changed=linphone_gtk_call_state_changed; @@ -302,6 +304,11 @@ static void linphone_gtk_init_liblinphone(const char *config_file, if (chat_messages_db_file) linphone_core_set_chat_database_path(the_core,chat_messages_db_file); if (call_logs_db_file) linphone_core_set_call_logs_database_path(the_core, call_logs_db_file); if (friends_db_file) linphone_core_set_friends_database_path(the_core, friends_db_file); + + // Disable the generic OpenGL displaying filter + msfactory = linphone_core_get_ms_factory(the_core); + ogl_filter_desc = ms_factory_lookup_filter_by_id(msfactory, MS_OGL_ID); + if (ogl_filter_desc != NULL) ogl_filter_desc->flags &= ~MS_FILTER_IS_ENABLED; } LinphoneCore *linphone_gtk_get_core(void){ diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 44b4de4f6..71a5cc4bc 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -1457,7 +1457,7 @@ void linphone_gtk_fill_video_renderers(GtkWidget *pb){ GtkTreeIter iter; /* do not offer the user to select combo 'decoding/rendering' filter */ - if (desc->enc_fmt != NULL) + if (desc->enc_fmt != NULL || (desc->flags & MS_FILTER_IS_ENABLED) == 0) continue; gtk_list_store_append(store,&iter); From d7bda643c1da8b52a62854f05250942d41edc597 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Sat, 18 Feb 2017 16:54:41 +0100 Subject: [PATCH 09/16] fix problem with video device being set many times for nothing in the property box, which creates graph stop/start when in a video call --- gtk/propertybox.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 71a5cc4bc..86dcf0937 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -467,9 +467,13 @@ void linphone_gtk_cam_changed(GtkWidget *w){ LinphoneCall *call; LinphoneCore *lc = linphone_gtk_get_core(); gchar *sel=gtk_combo_box_get_active_text(GTK_COMBO_BOX(w)); - linphone_core_set_video_device(linphone_gtk_get_core(),sel); - if ((call = linphone_core_get_current_call(lc)) != NULL) { - linphone_core_update_call(lc, call, NULL); + if (sel){ + if (strcmp(sel, linphone_core_get_video_device(lc)) != 0){ + linphone_core_set_video_device(lc,sel); + if ((call = linphone_core_get_current_call(lc)) != NULL) { + linphone_core_update_call(lc, call, NULL); + } + } } g_free(sel); } From 30382865a2f022d6d49d995419683aea574c0f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Mon, 20 Feb 2017 10:26:04 +0100 Subject: [PATCH 10/16] Fix snapshoting, call recording and contact export on Windows Some utf8 strings were not translated into the locale charset before being passed to Liblinphone. --- gtk/main.c | 22 +++++++++++++++++----- mediastreamer2 | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/gtk/main.c b/gtk/main.c index f8d9f553d..e791143bb 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -844,6 +844,7 @@ gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_ const char **fmts=linphone_core_get_supported_file_formats(linphone_gtk_get_core()); int i; const char *ext="wav"; + char *record_path_utf8, *record_path; #ifdef _WIN32 loctime=*localtime(&curtime); @@ -876,7 +877,10 @@ gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_ if (!dir) { ms_message ("No directory for music, using [%s] instead",dir=getenv("HOME")); } - return g_build_filename(dir,filename,NULL); + record_path_utf8 = g_build_filename(dir,filename,NULL); + record_path = g_locale_from_utf8(record_path_utf8, -1, NULL, NULL, NULL); + g_free(record_path_utf8); + return record_path; } gchar *linphone_gtk_get_snapshot_path(void) { @@ -886,6 +890,7 @@ gchar *linphone_gtk_get_snapshot_path(void) { time_t curtime=time(NULL); struct tm loctime; const char *ext="jpg"; + char *snapshot_path_utf8, *snapshot_path; #ifdef _WIN32 loctime=*localtime(&curtime); @@ -899,7 +904,10 @@ gchar *linphone_gtk_get_snapshot_path(void) { if (!dir) { ms_message ("No directory for pictures, using [%s] instead",dir=getenv("HOME")); } - return g_build_filename(dir,filename,NULL); + snapshot_path_utf8 = g_build_filename(dir,filename,NULL); + snapshot_path = g_locale_from_utf8(snapshot_path_utf8, -1, NULL, NULL, NULL); + g_free(snapshot_path_utf8); + return snapshot_path; } static gboolean linphone_gtk_start_call_do(GtkWidget *uri_bar){ @@ -1882,11 +1890,13 @@ void linphone_gtk_import_contacts(void) { if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { LinphoneCore *lc = linphone_gtk_get_core(); - char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + char *filename_utf8 = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + char *filename = g_locale_from_utf8(filename_utf8, -1, NULL, NULL, NULL); LinphoneFriendList *list = linphone_core_get_default_friend_list(lc); linphone_friend_list_import_friends_from_vcard4_file(list, filename); - g_free(filename); linphone_gtk_show_friends(); + g_free(filename_utf8); + g_free(filename); } gtk_widget_destroy(dialog); } @@ -1898,9 +1908,11 @@ void linphone_gtk_export_contacts(void) { if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { LinphoneCore *lc = linphone_gtk_get_core(); - char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + char *filename_utf8 = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); + char *filename = g_locale_from_utf8(filename_utf8, -1, NULL, NULL, NULL); LinphoneFriendList *list = linphone_core_get_default_friend_list(lc); linphone_friend_list_export_friends_as_vcard4_file(list, filename); + g_free(filename_utf8); g_free(filename); } gtk_widget_destroy(dialog); diff --git a/mediastreamer2 b/mediastreamer2 index ea6aee574..ea7724911 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ea6aee57439a5dd2f28a6163bedeb96b6ab85f95 +Subproject commit ea7724911982e7d0ad511ecb8059757edc5ab37a From bb4fa4adfbecdd0773e8922a8af4472ce0989c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Mon, 20 Feb 2017 11:14:03 +0100 Subject: [PATCH 11/16] Fix no record path displayed while recording a call --- gtk/incall_view.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 4008578bd..2febb8c4e 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -1014,7 +1014,7 @@ void linphone_gtk_record_call_toggled(GtkWidget *button){ linphone_core_stop_conference_recording(lc); } - gtk_label_set_markup(GTK_LABEL(label),message); + gtk_label_set_markup(GTK_LABEL(label),g_locale_to_utf8(message, -1, NULL, NULL, NULL)); g_free(message); } From f381143eacac38a3903f9f6335e86095937aa132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 14:29:38 +0100 Subject: [PATCH 12/16] Updating submodules on Mediastreamer 2.15.0 and oRTP 1.0.1 --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index ea7724911..73fcad7ca 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ea7724911982e7d0ad511ecb8059757edc5ab37a +Subproject commit 73fcad7ca4e5b5fd16a836bde98571889ae58d60 diff --git a/oRTP b/oRTP index 945ceb0b3..b722bcf8a 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 945ceb0b3ac0b6c87da8679ee6dbc2bedafdfabe +Subproject commit b722bcf8a3e6a821dda124b255a0d86303f73225 From a16224d452d571dbc9e310a2c7aa7eeb8d0ab0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 14:43:52 +0100 Subject: [PATCH 13/16] Remove ENABLE_UPNP build option That option had no more effect --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97c041a92..3681668f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,6 @@ option(ENABLE_TOOLS "Turn on or off compilation of tools." YES) option(ENABLE_TUNNEL "Turn on compilation of tunnel support." NO) option(ENABLE_TUTORIALS "Enable compilation of tutorials." YES) option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES) -option(ENABLE_UPNP "Build with uPnP support." YES) option(ENABLE_VIDEO "Build with video support." YES) cmake_dependent_option(ENABLE_ASSISTANT "Turn on assistant compiling." YES "ENABLE_GTK_UI" NO) option(ENABLE_DEBUG_LOGS "Turn on or off debug level logs." NO) From 5fc24f411d34e7eabe528f834943b0f8a340d9f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 14:48:52 +0100 Subject: [PATCH 14/16] Rename README into README.md --- Makefile.am | 71 +++++++++++++++++++++++---------------------- README => README.md | 0 configure.ac | 2 +- 3 files changed, 37 insertions(+), 36 deletions(-) rename README => README.md (100%) diff --git a/Makefile.am b/Makefile.am index 7960711f0..de03da8eb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,41 +49,42 @@ ISCC=ISCC.exe PACKAGE_WIN32_FILELIST=$(PACKAGE)-win32.filelist PACKAGE_BUNDLE_FILE=$(top_srcdir)/build/macos/$(PACKAGE).bundle -EXTRA_DIST = BUGS \ - README.arm \ - README.mingw \ - README.macos.md \ - autogen.sh \ - linphone.spec \ - linphone.spec.in \ - $(GTK_FILELIST) \ - gen-gtkfilelist.sh \ - $(LINPHONEDEPS_FILELIST) \ - $(ISS_SCRIPT).in - -EXTRA_DIST += CMakeLists.txt \ -cmake/FindGtkMacIntegration.cmake \ -cmake/FindIconv.cmake \ -cmake/FindIntl.cmake \ -cmake/FindNotify.cmake \ -cmake/FindSqlite3.cmake \ -cmake/FindXML2.cmake \ -cmake/FindZlib.cmake \ -cmake/LinphoneConfig.cmake.in \ -config.h.cmake \ -console/CMakeLists.txt \ -coreapi/CMakeLists.txt \ -coreapi/gitversion.cmake \ -coreapi/help/CMakeLists.txt \ -gtk/CMakeLists.txt \ -java/CMakeLists.txt \ -pixmaps/CMakeLists.txt \ -po/CMakeLists.txt \ -share/CMakeLists.txt \ -share/rings/CMakeLists.txt \ -share/rootca.cmake \ -tester/CMakeLists.txt \ -tools/CMakeLists.txt +EXTRA_DIST = \ + BUGS \ + README.arm \ + README.mingw \ + README.macos.md \ + README.md \ + autogen.sh \ + linphone.spec \ + linphone.spec.in \ + $(GTK_FILELIST) \ + gen-gtkfilelist.sh \ + $(LINPHONEDEPS_FILELIST) \ + $(ISS_SCRIPT).in \ + CMakeLists.txt \ + cmake/FindGtkMacIntegration.cmake \ + cmake/FindIconv.cmake \ + cmake/FindIntl.cmake \ + cmake/FindNotify.cmake \ + cmake/FindSqlite3.cmake \ + cmake/FindXML2.cmake \ + cmake/FindZlib.cmake \ + cmake/LinphoneConfig.cmake.in \ + config.h.cmake \ + console/CMakeLists.txt \ + coreapi/CMakeLists.txt \ + coreapi/gitversion.cmake \ + coreapi/help/CMakeLists.txt \ + gtk/CMakeLists.txt \ + java/CMakeLists.txt \ + pixmaps/CMakeLists.txt \ + po/CMakeLists.txt \ + share/CMakeLists.txt \ + share/rings/CMakeLists.txt \ + share/rootca.cmake \ + tester/CMakeLists.txt \ + tools/CMakeLists.txt DISTCLEANFILES= $(ISS_SCRIPT) $(PACKAGE_WIN32_FILELIST) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md diff --git a/configure.ac b/configure.ac index fc8ef4ecb..989e8d585 100644 --- a/configure.ac +++ b/configure.ac @@ -30,7 +30,7 @@ AC_SUBST(LINPHONE_VERSION) AC_MSG_NOTICE([$PACKAGE_NAME-$PACKAGE_VERSION A full featured audio/video sip phone.]) AC_MSG_NOTICE([licensed under the terms of the General Public License (GPL)]) -AM_INIT_AUTOMAKE([1.9 tar-pax subdir-objects]) +AM_INIT_AUTOMAKE([1.9 tar-pax subdir-objects foreign]) AC_SUBST([LIBTOOL_DEPS]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],) AC_SUBST([docdir], [${datadir}/doc]) From a2ff0d323993d7b8f9a908b23b541c8a31ac78a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 15:17:01 +0100 Subject: [PATCH 15/16] Update README.md --- README.md | 130 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index cde6c760e..7f37fde9b 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,97 @@ +Linphone +======== + This is Linphone, a free (GPL) video softphone based on the SIP protocol. -# Warning +**WARNING:** Unless you exactly know what you are doing, you should take at look at *linphone-desktop[1]*. -Unless you exactly know what you are doing, you should take at look at [linphone-desktop](https://github.com/BelledonneCommunications/linphone-desktop). -# Otherwise… +Building Linphone +----------------- -## Building Linphone +### Required dependencies -- Install build time dependencies - - libtool - - intltool +* *BcToolbox[2]*: portability layer +* *BelleSIP[3]*: SIP stack +* *Mediastreamer2[4]*: multimedia engine +* libxml2 +* zlib +* libsqlite3: user data storage (disablable) +* libnotify: system notification (GNU/Linux only;disablable) +* libgtk2: graphical interface (disablable) +* gettext and libintl: internationalization support (disablable) -- you need at least: - - belle-sip>=1.3.0 - - speex>=1.2.0 (including libspeexdsp part) - - libxml2 - - bctoolbox - + if you want the gtk/glade interface: - - libgtk >=2.16.0 - + if you want video support: - - libvpx (VP8 codec) - - libavcodec (ffmpeg) - - libswscale (part of ffmpeg too) for better scaling performance - - libxv (x11 video extension) - - libgl1-mesa (OpenGL API -- GLX development files) - - libglew (OpenGL Extension Wrangler library) - - libv4l (Video for linux) - - libx11 (x11) - - theora (optional) - + gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional) - + libreadline (optional: for convenient command line in linphonec) - + libsqlite3 (optional : for a local history of chat messages) - + if you want uPnP support (optional): - - libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch)) +### Opitonal dependencies - Here is the command line to get these dependencies installed for Ubuntu && Debian +* *Belcard[5]*: VCard support +* gtkmacintegration: integration with MacOSX menu - $ sudo apt-get install libtool intltool libgtk2.0-dev libspeexdsp-dev \ -libavcodec-dev libswscale-dev libx11-dev libxv-dev libgl1-mesa-dev \ -libglew1.6-dev libv4l-dev libxml2-dev - + for optional library - $ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \ -libsqlite3-dev libupnp4-dev libsrtp-dev +### Build instructions - + Install zrtp (optional), for unbreakable call encryption - $ git clone git://git.linphone.org/bzrtp.git - $ cd bzrtp && ./autogen.sh && ./configure && make - $ sudo make install + cmake . -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= + + make + make install -- Compile linphone - $ ./autogen.sh - $ ./configure - $ make && sudo make install - $ sudo ldconfig +### Supported build opitons + +* `CMAKE_INSTALL_PREFIX=` : install prefix +* `CMAKE_PREFIX_PATH=` : column-separated list of prefixes where to search for dependencies +* `ENABLE_SHARED=NO` : do not build the shared library +* `ENABLE_STATIC=NO` : do not build the static library +* `ENABLE_STRICT=NO` : build without strict compilation flags (-Wall -Werror) +* `ENABLE_DOC=NO` : do not generate the reference documentation of liblinphone +* `ENABLE_GTK_UI=NO` : do not build the GTK user interface +* `ENABLE_UNIT_TESTS=NO` : do not build testing binaries +* `ENABLE_VCARD=NO` : disable VCard support +* `ENABLE_SQLITE_STORAGE=NO` : disable SQlite user data storage (message, history, contacts list) +* `ENABLE_TOOLS=NO` : do not build tool binaries +* `ENABLE_NLS=NO` : disable internationalization +* `ENABLE_ASSISTANT=NO` : disable account creation wizard + +### Note for packagers + +Our CMake scripts may automatically add some paths into research paths of generated binaries. +To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON` +while you invoke cmake. -For windows compilation see README.mingw. -For macOS X, see README.macos - - -## Notes for developers +Notes for developers +-------------------- Here is a short description of the content of the source tree. -- oRTP/ is a poweful implementation of the RTP protocol. See the oRTP/README for more details. - It is used by mediastreamer2 to send and receive streams to the network. +- **oRTP/** is a poweful implementation of the RTP protocol. See the oRTP/README for more details. + It is used by mediastreamer2 to send and receive streams to the network. -- mediastreamer2/ is one of the important part of linphone. It is a framework for audio - and video processing. It contains several objects for grabing audio and video and outputing - it (through rtp, to file). - It contains also codec objects to compress audio and video streams. - The mediastream.h files contain routines to easyly setup audio streams. +- **mediastreamer2/** is one of the important part of linphone. It is a framework for audio + and video processing. It contains several objects for grabing audio and video and outputing + it (through rtp, to file). + It contains also codec objects to compress audio and video streams. + The mediastream.h files contain routines to easyly setup audio streams. -- coreapi/ is the central point of linphone, which handles relationship between sip signalisation and media - streaming. It contains an easy to use api to create a sip phone. +- **coreapi/** is the central point of linphone, which handles relationship between sip signalisation and media + streaming. It contains an easy to use api to create a sip phone. -- gtk/ is the directory that contains the gui frontend of linphone. It uses all libraries descibed above. +- **gtk/** is the directory that contains the gui frontend of linphone. It uses all libraries descibed above. -- console/ +- **console/** * linphonec.c is the main file for the console version of linphone. * sipomatic.c / sipomatic.h contains the code for sipomatic, the test program that auto-answer to linphone calls. * shell.c (program name: linphonecsh) is a small utilities to send interactive commands to a running linphonec daemon. -- share/ contains translation, documentation, rings and hello sound files. +- **share/** contains translation, documentation, rings and hello sound files. + +------------------------------ + + +- [1] linphone-desktop: git://git.linphone.org/linphone-desktop.git +- [2] bctoolbox: git://git.linphone.org/bctoolbox.git *or* +- [3] belle-sip: git://git.linphone.org/belle-sip.git *or* +- [4] mediastreamer2: git://git.linphone.org/mediastreamer2.git *or* +- [5] belcard: git://git.linphone.org/belcard.git *or* From 3fe28f5274f28ab98d977b54c4685e6aa67bad65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 15:38:39 +0100 Subject: [PATCH 16/16] Increase version number to 3.11.0 --- CMakeLists.txt | 2 +- NEWS | 12 +++++++++++- configure.ac | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3681668f5..bd701b78c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ ############################################################################ cmake_minimum_required(VERSION 3.0) -project(linphone VERSION 3.10.2 LANGUAGES C CXX) +project(linphone VERSION 3.11.0 LANGUAGES C CXX) set(LINPHONE_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) diff --git a/NEWS b/NEWS index 0d5eb29eb..6d66c3692 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,17 @@ +linphone-3.11.0 -- February 24th, 2017 + * Security vulnerability fix concering TLS. The common name of certificats + delivered by SIP proxies were not compared with their hostname. + * Improvement of H.264 hardware encoder/decoder on MacOSX. + * Fix a bug in P2P presence system. Unchecking `Allow this contact to see my presence` checkbox + in contact editing view had no any effect. Then it was not possible to hide presence informations to + a contact once it had been allowed to see it. + * Performance improvments of the presence list feature. + * IM Encription Engine: abstraction for messaging encription protocols. + linphone-3.10.2 -- August 30th, 2016 * Fixing linphone python version compilation - fixing vcards -inphone-3.10.0 -- August 8th, 2016 +linphone-3.10.0 -- August 8th, 2016 * Adding lime_experimental_feature : set to 1 in .linphonerc [GtkUi] to show the Lime menu in the graphical user interface. Caution : Experimental. * Video conference support through a conference server (SDK only) diff --git a/configure.ac b/configure.ac index 989e8d585..d7740b1d8 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.10.2],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.11.0],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([coreapi/linphonecore.c])