diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19932aa56..b6144be09 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -118,7 +118,7 @@ if(ENABLE_TUNNEL)
set(ENABLE_TUNNEL OFF CACHE BOOL "Enable tunnel support." FORCE)
endif()
endif()
-if(SQLITE_STORAGE_ENABLED)
+if(ENABLE_SQLITE_STORAGE)
find_package(Sqlite3 REQUIRED)
endif()
if(ENABLE_NOTIFY)
@@ -204,7 +204,7 @@ if(ZLIB_FOUND)
endif()
if(SQLITE3_FOUND)
include_directories(${SQLITE3_INCLUDE_DIRS})
- if(SQLITE_STORAGE_ENABLED)
+ if(ENABLE_SQLITE_STORAGE)
add_definitions("-DSQLITE_STORAGE_ENABLED")
endif()
endif()
diff --git a/NEWS b/NEWS
index 4bc7aace8..67738b71e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+linphone-3.10.0 -- May xxth, 2016
+ * Video conference support through a conference server (SDK only)
+ * Disable dummy STUN packets sending when ICE is activated.
+ * Signal AVPF support as AVP : Enable rtcp feedback on RTP/AVP by default
+ * Adding linphone daemon
+ * gtk - Show links to files received in chat by file transfer
+ * gtk - Debug window now stores “scroll to end” preference
+ * gtk - Added button to take screenshot of video call
+ * Fix - gtk : Fixed issue busy presence not displayed in red
+ * Fix 0002832: Date/time of calls not shown in call history on Windows.
+ * Fix 0002690: Bad SDP when no audio codec has been enabled
+ * Fix 0000750: DTMF RFC2833 event always goes up in the same LinphoneCoreListener
+
linphone-3.9.1 -- November 16th, 2015
* Fix crash when recording video calls with the VP8 codec
* Fix H.264 codec support in Mac OS X package
diff --git a/build/windows10/liblinphone-tester/App.xaml b/build/windows10/liblinphone-tester/App.xaml
deleted file mode 100644
index 8ed2e3f95..000000000
--- a/build/windows10/liblinphone-tester/App.xaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/build/windows10/liblinphone-tester/App.xaml.cs b/build/windows10/liblinphone-tester/App.xaml.cs
deleted file mode 100644
index f3c4d0801..000000000
--- a/build/windows10/liblinphone-tester/App.xaml.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-
-// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
-
-namespace liblinphone_tester
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- sealed partial class App : Application
- {
- ///
- /// Allows tracking page views, exceptions and other telemetry through the Microsoft Application Insights service.
- ///
- public static Microsoft.ApplicationInsights.TelemetryClient TelemetryClient;
-
- ///
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
- ///
- public App()
- {
- TelemetryClient = new Microsoft.ApplicationInsights.TelemetryClient();
-
- this.InitializeComponent();
- this.Suspending += OnSuspending;
- }
-
- ///
- /// Invoked when the application is launched normally by the end user. Other entry points
- /// will be used such as when the application is launched to open a specific file.
- ///
- /// Details about the launch request and process.
- protected override void OnLaunched(LaunchActivatedEventArgs e)
- {
-
-#if DEBUG
- if (System.Diagnostics.Debugger.IsAttached)
- {
- this.DebugSettings.EnableFrameRateCounter = true;
- }
-#endif
-
- Frame rootFrame = Window.Current.Content as Frame;
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (rootFrame == null)
- {
- // Create a Frame to act as the navigation context and navigate to the first page
- rootFrame = new Frame();
-
- rootFrame.NavigationFailed += OnNavigationFailed;
-
- if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
- {
- //TODO: Load state from previously suspended application
- }
-
- // Place the frame in the current Window
- Window.Current.Content = rootFrame;
- }
-
- if (rootFrame.Content == null)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame.Navigate(typeof(MainPage), e.Arguments);
- }
- // Ensure the current window is active
- Window.Current.Activate();
- }
-
- ///
- /// Invoked when Navigation to a certain page fails
- ///
- /// The Frame which failed navigation
- /// Details about the navigation failure
- void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
- {
- throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
- }
-
- ///
- /// Invoked when application execution is being suspended. Application state is saved
- /// without knowing whether the application will be terminated or resumed with the contents
- /// of memory still intact.
- ///
- /// The source of the suspend request.
- /// Details about the suspend request.
- private void OnSuspending(object sender, SuspendingEventArgs e)
- {
- var deferral = e.SuspendingOperation.GetDeferral();
- //TODO: Save application state and stop any background activity
- deferral.Complete();
- }
-
- protected override void OnActivated(IActivatedEventArgs args)
- {
- if (args.Kind == ActivationKind.Protocol)
- {
- var protocolArgs = (ProtocolActivatedEventArgs)args;
- var uri = protocolArgs.Uri;
- Frame rootFrame = Window.Current.Content as Frame;
- if (rootFrame == null)
- rootFrame = new Frame();
-
- rootFrame.NavigationFailed += OnNavigationFailed;
- rootFrame.Navigate(typeof(MainPage), uri);
- Window.Current.Content = rootFrame;
- Window.Current.Activate();
- }
- base.OnActivated(args);
- }
- }
-}
diff --git a/build/windows10/liblinphone-tester/ApplicationInsights.config b/build/windows10/liblinphone-tester/ApplicationInsights.config
deleted file mode 100644
index 8a6452a34..000000000
--- a/build/windows10/liblinphone-tester/ApplicationInsights.config
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/Assets/Logo.png b/build/windows10/liblinphone-tester/Assets/Logo.png
deleted file mode 100644
index ecfbad551..000000000
Binary files a/build/windows10/liblinphone-tester/Assets/Logo.png and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/Assets/SmallLogo.png b/build/windows10/liblinphone-tester/Assets/SmallLogo.png
deleted file mode 100644
index 18c25f038..000000000
Binary files a/build/windows10/liblinphone-tester/Assets/SmallLogo.png and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/Assets/SplashScreen.png b/build/windows10/liblinphone-tester/Assets/SplashScreen.png
deleted file mode 100644
index 0d83a7980..000000000
Binary files a/build/windows10/liblinphone-tester/Assets/SplashScreen.png and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/Assets/StoreLogo.png b/build/windows10/liblinphone-tester/Assets/StoreLogo.png
deleted file mode 100644
index bdbfc51e2..000000000
Binary files a/build/windows10/liblinphone-tester/Assets/StoreLogo.png and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/Assets/WideLogo.png b/build/windows10/liblinphone-tester/Assets/WideLogo.png
deleted file mode 100644
index 85fd4db8f..000000000
Binary files a/build/windows10/liblinphone-tester/Assets/WideLogo.png and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs b/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs
deleted file mode 100644
index a5bc5bdc3..000000000
--- a/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using liblinphone_tester_runtime_component;
-using System.Collections.ObjectModel;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Media;
-using System.ComponentModel;
-using Windows.UI;
-using Windows.UI.Xaml.Documents;
-using Windows.UI.Core;
-
-namespace liblinphone_tester.DataModel
-{
- public class OutputTrace
- {
- public OutputTrace(String lev, String msg)
- {
- Level = lev;
- Msg = msg;
- }
-
- public String Level { get; private set; }
- public String Msg { get; private set; }
- }
-
- public class UnitTestSuite
- {
- public UnitTestSuite(string name)
- {
- Name = name;
- Cases = new ObservableCollection();
- Selected = false;
- }
-
- public string Name { get; private set; }
- public bool Selected
- {
- get { return Cases.All(x => x.Selected); }
- set
- {
- foreach (UnitTestCase c in Cases)
- {
- c.Selected = value;
- }
- }
- }
- public ObservableCollection Cases { get; private set; }
- }
-
- public enum UnitTestCaseState
- {
- NotRun,
- Success,
- Failure
- }
-
- public class UnitTestCase : INotifyPropertyChanged
- {
- public UnitTestCase(UnitTestSuite suite, string name)
- {
- _suite = new WeakReference(suite);
- Name = name;
- Selected = false;
- State = UnitTestCaseState.NotRun;
- Traces = new ObservableCollection();
- }
-
- public UnitTestSuite Suite
- {
- get { return _suite.Target as UnitTestSuite; }
- }
- public string Name { get; private set; }
- public bool Selected
- {
- get { return _selected; }
- set
- {
- _selected = value;
- RaisePropertyChanged("Selected");
- }
- }
- public UnitTestCaseState State
- {
- get { return _state; }
- set
- {
- _state = value;
- RaisePropertyChanged("State");
- }
- }
- public ObservableCollection Traces
- {
- get { return _traces; }
- set
- {
- _traces = value;
- RaisePropertyChanged("Traces");
- }
- }
- public CoreDispatcher Dispatcher { get; set; }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- protected void RaisePropertyChanged(string name)
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs(name));
- }
- }
-
- private WeakReference _suite;
- private bool _selected;
- private UnitTestCaseState _state;
- private ObservableCollection _traces;
- }
-
- public sealed class UnitTestDataSource
- {
- private static UnitTestDataSource _unitTestDataSource = new UnitTestDataSource();
- private ObservableCollection _suites = new ObservableCollection();
-
- public ObservableCollection Suites
- {
- get { return this._suites; }
- }
-
- public static IEnumerable GetSuites(LibLinphoneTester tester)
- {
- return _unitTestDataSource.FillSuites(tester);
- }
-
- private IEnumerable FillSuites(LibLinphoneTester tester)
- {
- if (this.Suites.Count != 0) return this.Suites;
- for (int i = 0; i < tester.nbTestSuites(); i++)
- {
- UnitTestSuite suite = new UnitTestSuite(tester.testSuiteName(i));
- for (int j = 0; j < tester.nbTests(suite.Name); j++)
- {
- suite.Cases.Add(new UnitTestCase(suite, tester.testName(suite.Name, j)));
- }
- this.Suites.Add(suite);
- }
- return this.Suites;
- }
- }
-
- public sealed class UnitTestCaseStateToSymbolConverter : IValueConverter
- {
- object IValueConverter.Convert(object value, Type targetType, object parametr, string language)
- {
- if (!value.GetType().Equals(typeof(UnitTestCaseState)))
- {
- throw new ArgumentException("Only UnitTestCaseState is supported");
- }
- if (targetType.Equals(typeof(Symbol)))
- {
- switch ((UnitTestCaseState)value)
- {
- case UnitTestCaseState.Success:
- return Symbol.Like;
- case UnitTestCaseState.Failure:
- return Symbol.Dislike;
- case UnitTestCaseState.NotRun:
- default:
- return Symbol.Help;
- }
- }
- else
- {
- throw new ArgumentException(string.Format("Unsupported type {0}", targetType.FullName));
- }
- }
-
- object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
- {
- throw new NotImplementedException();
- }
- }
-
- public sealed class UnitTestCaseStateToSymbolColorConverter : IValueConverter
- {
- object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
- {
- if (!value.GetType().Equals(typeof(UnitTestCaseState)))
- {
- throw new ArgumentException("Only UnitTestCaseState is supported");
- }
- if (targetType.Equals(typeof(Brush)))
- {
- switch ((UnitTestCaseState)value)
- {
- case UnitTestCaseState.Success:
- return new SolidColorBrush(Colors.ForestGreen);
- case UnitTestCaseState.Failure:
- return new SolidColorBrush(Colors.IndianRed);
- case UnitTestCaseState.NotRun:
- default:
- return new SolidColorBrush(Colors.LightGray);
- }
- }
- else
- {
- throw new ArgumentException(string.Format("Unsupported format {0}", targetType.FullName));
- }
- }
-
- object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
- {
- throw new NotImplementedException();
- }
- }
-
- public sealed class OutputTraceLevelToColorConverter : IValueConverter
- {
- object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
- {
- if (!value.GetType().Equals(typeof(String)))
- {
- throw new ArgumentException("Only String is supported");
- }
- if (targetType.Equals(typeof(Brush)))
- {
- if ((String)value == "Error")
- {
- return new SolidColorBrush(Colors.IndianRed);
- }
- else if ((String)value == "Warning")
- {
- return new SolidColorBrush(Colors.Orange);
- }
- return new SolidColorBrush(Colors.Black);
- }
- else
- {
- throw new ArgumentException(string.Format("Unsupported format {0}", targetType.FullName));
- }
- }
-
- object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
- {
- throw new NotImplementedException();
- }
- }
-}
diff --git a/build/windows10/liblinphone-tester/MainPage.xaml b/build/windows10/liblinphone-tester/MainPage.xaml
deleted file mode 100644
index 2cdea219c..000000000
--- a/build/windows10/liblinphone-tester/MainPage.xaml
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/windows10/liblinphone-tester/MainPage.xaml.cs b/build/windows10/liblinphone-tester/MainPage.xaml.cs
deleted file mode 100644
index 930e6d5eb..000000000
--- a/build/windows10/liblinphone-tester/MainPage.xaml.cs
+++ /dev/null
@@ -1,200 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-using liblinphone_tester.DataModel;
-using liblinphone_tester_runtime_component;
-using System.Threading.Tasks;
-using Windows.UI.Core;
-using Windows.UI.Xaml.Documents;
-using Windows.Storage;
-
-// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
-
-namespace liblinphone_tester
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class MainPage : Page, OutputTraceListener
- {
- public MainPage()
- {
- this.InitializeComponent();
- }
-
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- base.OnNavigatedTo(e);
- if ((e.Parameter is Uri) && (e.Parameter.ToString().Equals("liblinphone-tester:autolaunch")))
- {
- AutoLaunch();
- }
- else
- {
- LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, true);
- _suites = UnitTestDataSource.GetSuites(LibLinphoneTester.Instance);
- }
- }
-
- public IEnumerable Suites
- {
- get { return _suites; }
- }
-
- private IEnumerable _suites;
-
- private void SelectAll_Click(object sender, RoutedEventArgs e)
- {
- bool allSelected = Suites.All(x => x.Selected);
- foreach (UnitTestSuite suite in Suites)
- {
- suite.Selected = !allSelected;
- }
- }
-
- private void RunSelected_Click(object sender, RoutedEventArgs e)
- {
- int nbCases = 0;
- foreach (UnitTestSuite suite in Suites)
- {
- foreach (UnitTestCase c in suite.Cases)
- {
- if (c.Selected) nbCases++;
- }
- }
- if (nbCases == 0) return;
-
- PrepareRun(nbCases);
-
- var tup = new Tuple, bool?>(Suites, Verbose.IsChecked);
- var t = Task.Factory.StartNew(async (object parameters) =>
- {
- var p = parameters as Tuple, bool?>;
- IEnumerable suites = p.Item1;
- bool verbose = p.Item2 != null ? (bool)p.Item2 : false;
- foreach (UnitTestSuite suite in suites)
- {
- foreach (UnitTestCase c in suite.Cases)
- {
- if (c.Selected)
- {
- await RunUnitTestCase(c, verbose);
- }
- }
- }
- }, tup);
- }
-
- private void RunSingle_Click(object sender, RoutedEventArgs e)
- {
- PrepareRun(1);
-
- var tup = new Tuple(DisplayedTestCase, Verbose.IsChecked);
- var t = Task.Factory.StartNew(async (object parameters) =>
- {
- var p = parameters as Tuple;
- UnitTestCase c = p.Item1;
- bool verbose = p.Item2 != null ? (bool)p.Item2 : false;
- await RunUnitTestCase(c, verbose);
- }, tup);
- }
-
- private void PrepareRun(int nbCases)
- {
- CommandBar.IsEnabled = false;
- ProgressIndicator.IsEnabled = true;
- ProgressIndicator.Minimum = 0;
- ProgressIndicator.Maximum = nbCases;
- ProgressIndicator.Value = 0;
- LibLinphoneTester.Instance.setOutputTraceListener(this);
- }
-
- private async Task RunUnitTestCase(UnitTestCase c, bool verbose)
- {
- UnitTestCaseState newState = UnitTestCaseState.NotRun;
- await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
- {
- RunningTestCase = c;
- });
- await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
- {
- c.Traces.Clear();
- });
- c.Dispatcher = Dispatcher;
- if (LibLinphoneTester.Instance.run(c.Suite.Name, c.Name, verbose))
- {
- newState = UnitTestCaseState.Failure;
- }
- else
- {
- newState = UnitTestCaseState.Success;
- }
- await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
- {
- c.State = newState;
- ProgressIndicator.Value += 1;
- if (ProgressIndicator.Value == ProgressIndicator.Maximum)
- {
- UnprepareRun();
- }
- });
- }
-
- private void UnprepareRun()
- {
- LibLinphoneTester.Instance.setOutputTraceListener(null);
- RunningTestCase = null;
- ProgressIndicator.IsEnabled = false;
- CommandBar.IsEnabled = true;
- }
-
- private void UnitTestCase_Click(object sender, ItemClickEventArgs e)
- {
- DisplayedTestCase = (e.ClickedItem as UnitTestCase);
- TestResultPage.DataContext = DisplayedTestCase;
- TestResultState.Visibility = Visibility.Visible;
- TestResultRun.Visibility = Visibility.Visible;
- }
-
- public async void outputTrace(String lev, String msg)
- {
- await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
- {
- if (RunningTestCase != null)
- {
- RunningTestCase.Traces.Add(new OutputTrace(lev, msg));
- }
- });
- }
-
- private void AutoLaunch()
- {
- CommandBar.IsEnabled = false;
- ProgressIndicator.IsIndeterminate = true;
- ProgressIndicator.IsEnabled = true;
- LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, false);
- LibLinphoneTester.Instance.runAllToXml();
- if (LibLinphoneTester.Instance.AsyncAction != null)
- {
- LibLinphoneTester.Instance.AsyncAction.Completed += (asyncInfo, asyncStatus) => {
- App.Current.Exit();
- };
- }
- }
-
- private UnitTestCase RunningTestCase;
- private UnitTestCase DisplayedTestCase;
- }
-}
diff --git a/build/windows10/liblinphone-tester/Package.appxmanifest b/build/windows10/liblinphone-tester/Package.appxmanifest
deleted file mode 100644
index b8acf8233..000000000
--- a/build/windows10/liblinphone-tester/Package.appxmanifest
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
- liblinphone-tester
- Belledonne Communications
- Assets\StoreLogo.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs b/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs
deleted file mode 100644
index d4b2a0c81..000000000
--- a/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("liblinphone-tester")]
-[assembly: AssemblyDescription("LibLinphone tester for Windows 10")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Belledonne Communications")]
-[assembly: AssemblyProduct("liblinphone-tester-windows10")]
-[assembly: AssemblyCopyright("Copyright © 2015 Belledonne Communications")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: ComVisible(false)]
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/Properties/Default.rd.xml b/build/windows10/liblinphone-tester/Properties/Default.rd.xml
deleted file mode 100644
index 80a960ce3..000000000
--- a/build/windows10/liblinphone-tester/Properties/Default.rd.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj b/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj
deleted file mode 100644
index c1c1fa623..000000000
--- a/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- ARM
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
-
-
-
-
-
-
-
- {acf5ea95-d647-4d0c-8f97-2cd9aae8a2e0}
-
-
- {74cad9d0-d8ae-4896-b71b-b2d9b48f30aa}
-
-
- {8c1bc968-c5c8-4d4b-9ef3-d6a065fc7c97}
-
-
- {6a18bbb9-08d1-41a8-be57-17fc992cc36f}
-
-
- {bb8ebb21-f22c-4a68-99cb-67fa36c495e3}
-
-
- {b84d5c3b-6de5-49c8-b3dd-5eb67b01a527}
-
-
- {266b769a-c04e-424c-9033-7209f0425bc0}
-
-
- {878cf9d3-9761-479e-a715-a1de9f99cb78}
-
-
- {2d0e44c4-e51d-4911-b876-345d1e5e5209}
-
-
- {a34f450d-392d-4660-9618-810bd695b3b0}
-
-
- {545f846d-7f19-4d6d-a50b-172a7c9b61e7}
-
-
- {9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7}
-
-
-
- {1ce10f06-8fad-437f-b3d7-3b7a8909a190}
- WindowsRuntimeComponent
- liblinphone-tester-runtime-component
- liblinphone_tester_runtime_component
- en-US
- 14.0
- true
- Windows Store
- 10
- 10.0.10240.0
- 10.0.10069.0
-
-
-
- DynamicLibrary
- true
- v140
-
-
- DynamicLibrary
- false
- true
- v140
-
-
-
-
-
-
-
-
-
-
-
- false
- $(SolutionDir)$(Platform)\$(Configuration)\
-
-
-
- NotUsing
- IN_LINPHONE;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
- /bigobj %(AdditionalOptions)
- 28204
- $(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
-
-
-
-
- NotUsing
- IN_LINPHONE;_WINRT_DLL;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
- /bigobj %(AdditionalOptions)
- 28204
- $(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories)
-
-
- Console
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj b/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj
deleted file mode 100644
index b5cb1b46c..000000000
--- a/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- ARM
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {b6cdf482-7da3-43d4-9b12-70150106c191}
-
-
- {025e28a8-9dfb-4015-ad56-19896aa6cc9b}
-
-
- {88e3c241-eb6f-4c84-80dc-89b8961daf80}
-
-
- {2e56b851-9d8d-40e5-84bb-e4ee63b71d25}
-
-
- {c7139899-d8bc-48a3-a437-6844a8baabef}
-
-
-
- {9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7}
- StaticLibrary
- liblinphone-tester-static
- liblinphone_tester_static
- en-US
- 14.0
- true
- Windows Store
- 10
- 10.0.10240.0
- 10.0.10069.0
-
-
-
- StaticLibrary
- true
- v140
-
-
- StaticLibrary
- false
- true
- v140
-
-
-
-
-
-
-
-
-
-
-
- false
- $(SolutionDir)$(Platform)\$(Configuration)\
-
-
-
- NotUsing
- false
- true
- $(SolutionDir)$(Platform)\$(Configuration)\include;$(ProjectDir)..\..\..\..\tester;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\liblinphone;$(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\include;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\..\belle-sip\include;$(ProjectDir)..\..\..\..\..\sqlite;$(ProjectDir)..\..\..\..\..\zlib;$(ProjectDir)..\..\..\..\..\cunit\build\windows10\cunit\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)
- BC_CONFIG_FILE="config.h";IN_LINPHONE;MSG_STORAGE_ENABLED;VIDEO_ENABLED;HAVE_CU_GET_SUITE;HAVE_ZLIB;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)
-
-
- Console
- false
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone-tester/liblinphone-tester.csproj b/build/windows10/liblinphone-tester/liblinphone-tester.csproj
deleted file mode 100644
index 7cf0be904..000000000
--- a/build/windows10/liblinphone-tester/liblinphone-tester.csproj
+++ /dev/null
@@ -1,328 +0,0 @@
-
-
-
-
- Debug
- x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}
- AppContainerExe
- Properties
- liblinphone_tester
- liblinphone-tester
- en-US
- UAP
- 10.0.10240.0
- 10.0.10069.0
- 14
- true
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- liblinphone-tester_TemporaryKey.pfx
-
-
- true
- bin\ARM\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- ARM
- false
- prompt
- true
-
-
- bin\ARM\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- ARM
- false
- prompt
- true
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x64
- false
- prompt
- true
-
-
- bin\x64\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x64
- false
- prompt
- true
- true
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x86
- false
- prompt
- true
-
-
- bin\x86\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x86
- false
- prompt
- true
- true
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
-
- App.xaml
-
-
-
- MainPage.xaml
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
-
-
- {1ce10f06-8fad-437f-b3d7-3b7a8909a190}
- liblinphone-tester-runtime-component
-
-
-
-
- 14.0
-
-
-
- XCopy /I /Y $(ProjectDir)..\..\..\tester\messages.db $(ProjectDir)Assets\
-XCopy /I /Y $(ProjectDir)..\..\..\tester\tester_hosts $(ProjectDir)Assets\
-XCopy /I /Y $(ProjectDir)..\..\..\tester\certificates\altname $(ProjectDir)Assets\certificates\altname
-XCopy /I /Y $(ProjectDir)..\..\..\tester\certificates\cn $(ProjectDir)Assets\certificates\cn
-XCopy /I /Y $(ProjectDir)..\..\..\tester\images $(ProjectDir)Assets\images
-XCopy /I /Y $(ProjectDir)..\..\..\tester\rcfiles $(ProjectDir)Assets\rcfiles
-XCopy /I /Y $(ProjectDir)..\..\..\tester\sounds $(ProjectDir)Assets\sounds
-XCopy /I /Y $(ProjectDir)..\..\..\tester\common $(ProjectDir)Assets\common
-
-
-
diff --git a/build/windows10/liblinphone-tester/liblinphone-tester.sln b/build/windows10/liblinphone-tester/liblinphone-tester.sln
deleted file mode 100644
index 376919bff..000000000
--- a/build/windows10/liblinphone-tester/liblinphone-tester.sln
+++ /dev/null
@@ -1,488 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "liblinphone-tester", "liblinphone-tester.csproj", "{EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone-tester-static", "liblinphone-tester-static\liblinphone-tester-static.vcxproj", "{9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone", "..\liblinphone\liblinphone.vcxproj", "{C7139899-D8BC-48A3-A437-6844A8BAABEF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj", "{88E3C241-EB6F-4C84-80DC-89B8961DAF80}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ortp", "..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj", "{2E56B851-9D8D-40E5-84BB-E4EE63B71D25}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srtp", "..\..\..\..\srtp\build\windows10\srtp\srtp.vcxproj", "{59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml2", "..\..\..\..\build\xml2\xml2.vcxproj", "{2B04DE79-4D33-4405-AC01-C89E0593A71D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polarssl", "..\..\..\..\polarssl\build\windows10\polarssl\polarssl.vcxproj", "{88768DD9-5110-4AC8-8B0E-41CD7713E1A2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "..\..\..\..\speex\build\windows10\speex\speex.vcxproj", "{971DD379-1C2D-44D2-9285-FDA556C48176}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speexdsp", "..\..\..\..\speex\build\windows10\speexdsp\speexdsp.vcxproj", "{104BF91B-8314-4328-A996-90B8DF6052AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "..\..\..\..\opus\build\windows10\opus\opus.vcxproj", "{81AF1025-E0EE-4AD6-988D-2EF162778693}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzrtp", "..\..\..\..\bzrtp\build\windows10\bzrtp\bzrtp.vcxproj", "{45C7723D-3107-4906-9633-F43ABE8A7147}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsm", "..\..\..\..\gsm\build\windows10\gsm\gsm.vcxproj", "{EF1103C7-8AAC-464B-BA31-86B87246FA72}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "belle-sip", "..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj", "{B6CDF482-7DA3-43D4-9B12-70150106C191}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "antlr3c", "..\..\..\..\antlr3\runtime\C\build\windows10\antlr3c\antlr3c.vcxproj", "{01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj", "{A34F450D-392D-4660-9618-810BD695B3B0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "..\..\..\..\build\sqlite\sqlite.vcxproj", "{74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone-tester-runtime-component", "liblinphone-tester-runtime-component\liblinphone-tester-runtime-component.vcxproj", "{1CE10F06-8FAD-437F-B3D7-3B7A8909A190}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cunit", "..\..\..\..\cunit\build\windows10\cunit\cunit.vcxproj", "{025E28A8-9DFB-4015-AD56-19896AA6CC9B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsamr", "..\..\..\..\msamr\build\windows10\libmsamr\libmsamr.vcxproj", "{8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsilbc", "..\..\..\..\msilbc\build\windows10\libmsilbc\libmsilbc.vcxproj", "{6A18BBB9-08D1-41A8-BE57-17FC992CC36F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmssilk", "..\..\..\..\mssilk\build\windows10\libmssilk\libmssilk.vcxproj", "{B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswasapi", "..\..\..\..\mswasapi\windows10\libmswasapi\libmswasapi.vcxproj", "{266B769A-C04E-424C-9033-7209F0425BC0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswebrtc", "..\..\..\..\mswebrtc\build\windows10\libmswebrtc\libmswebrtc.vcxproj", "{878CF9D3-9761-479E-A715-A1DE9F99CB78}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ilbc", "..\..\..\..\libilbc-rfc3951\build\windows10\ilbc\ilbc.vcxproj", "{995B01AF-C568-453E-9E5F-8AE81FB79B4B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore_amrnb", "..\..\..\..\msamr\build\windows10\opencore_amrnb\opencore_amrnb.vcxproj", "{71A5F1C8-F76D-4297-95AA-75E1C967DC79}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore_amrwb", "..\..\..\..\msamr\build\windows10\opencore_amrwb\opencore_amrwb.vcxproj", "{3CC91899-3E98-49FD-BED5-FA290A9A5C8E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vo-amrwbenc", "..\..\..\..\msamr\build\windows10\vo-amrwbenc\vo-amrwbenc.vcxproj", "{D829672F-3775-4718-A991-1ABC42CBA67C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webrtc", "..\..\..\..\mswebrtc\webrtc\build\windows10\webrtc\webrtc.vcxproj", "{C5895B75-BDCF-406C-B803-9CB954E90F0C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsbcg729", "..\..\..\..\bcg729\build\windows10\libmsbcg729\libmsbcg729.vcxproj", "{ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsopenh264", "..\..\..\..\msopenh264\build\windows10\libmsopenh264\libmsopenh264.vcxproj", "{BB8EBB21-F22C-4A68-99CB-67FA36C495E3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswinrtvid", "..\..\..\..\mswinrtvid\windows10\libmswinrtvid\libmswinrtvid.vcxproj", "{2D0E44C4-E51D-4911-B876-345D1E5E5209}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mswinrtjpeg2yuv", "..\..\..\mediastreamer2\build\windows10\mswinrtjpeg2yuv\mswinrtjpeg2yuv.vcxproj", "{545F846D-7F19-4D6D-A50B-172A7C9B61E7}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|ARM = Debug|ARM
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|ARM = Release|ARM
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.ActiveCfg = Debug|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.Build.0 = Debug|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.Deploy.0 = Debug|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.ActiveCfg = Debug|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.Build.0 = Debug|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.Deploy.0 = Debug|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.ActiveCfg = Debug|x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.Build.0 = Debug|x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.Deploy.0 = Debug|x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.ActiveCfg = Release|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.Build.0 = Release|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.Deploy.0 = Release|ARM
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.ActiveCfg = Release|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.Build.0 = Release|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.Deploy.0 = Release|x64
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.ActiveCfg = Release|x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.Build.0 = Release|x86
- {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.Deploy.0 = Release|x86
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|ARM.ActiveCfg = Debug|ARM
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|ARM.Build.0 = Debug|ARM
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x64.ActiveCfg = Debug|x64
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x64.Build.0 = Debug|x64
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x86.ActiveCfg = Debug|Win32
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x86.Build.0 = Debug|Win32
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|ARM.ActiveCfg = Release|ARM
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|ARM.Build.0 = Release|ARM
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x64.ActiveCfg = Release|x64
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x64.Build.0 = Release|x64
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x86.ActiveCfg = Release|Win32
- {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x86.Build.0 = Release|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.ActiveCfg = Debug|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.Build.0 = Debug|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.ActiveCfg = Debug|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.Build.0 = Debug|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.ActiveCfg = Debug|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.Build.0 = Debug|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.ActiveCfg = Release|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.Build.0 = Release|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.ActiveCfg = Release|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.Build.0 = Release|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.ActiveCfg = Release|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.Build.0 = Release|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.ActiveCfg = Debug|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.Build.0 = Debug|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.ActiveCfg = Debug|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.Build.0 = Debug|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.ActiveCfg = Debug|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.Build.0 = Debug|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.ActiveCfg = Release|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.Build.0 = Release|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.ActiveCfg = Release|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.Build.0 = Release|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.ActiveCfg = Release|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.Build.0 = Release|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.ActiveCfg = Debug|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.Build.0 = Debug|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.ActiveCfg = Debug|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.Build.0 = Debug|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.ActiveCfg = Debug|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.Build.0 = Debug|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.ActiveCfg = Release|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.Build.0 = Release|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.ActiveCfg = Release|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.Build.0 = Release|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.ActiveCfg = Release|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.Build.0 = Release|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.ActiveCfg = Debug|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.Build.0 = Debug|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.ActiveCfg = Debug|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.Build.0 = Debug|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.ActiveCfg = Debug|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.Build.0 = Debug|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.ActiveCfg = Release|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.Build.0 = Release|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.ActiveCfg = Release|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.Build.0 = Release|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.ActiveCfg = Release|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.Build.0 = Release|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.ActiveCfg = Debug|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.Build.0 = Debug|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.ActiveCfg = Debug|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.Build.0 = Debug|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.ActiveCfg = Debug|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.Build.0 = Debug|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.ActiveCfg = Release|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.Build.0 = Release|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.ActiveCfg = Release|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.Build.0 = Release|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.ActiveCfg = Release|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.Build.0 = Release|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.ActiveCfg = Debug|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.Build.0 = Debug|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.ActiveCfg = Debug|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.Build.0 = Debug|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.ActiveCfg = Debug|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.Build.0 = Debug|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.ActiveCfg = Release|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.Build.0 = Release|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.ActiveCfg = Release|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.Build.0 = Release|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.ActiveCfg = Release|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.Build.0 = Release|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.ActiveCfg = Debug|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.Build.0 = Debug|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.ActiveCfg = Debug|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.Build.0 = Debug|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.ActiveCfg = Debug|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.Build.0 = Debug|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.ActiveCfg = Release|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.Build.0 = Release|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.ActiveCfg = Release|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.Build.0 = Release|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.ActiveCfg = Release|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.Build.0 = Release|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.ActiveCfg = Debug|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.Build.0 = Debug|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.ActiveCfg = Debug|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.Build.0 = Debug|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.ActiveCfg = Debug|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.Build.0 = Debug|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.ActiveCfg = Release|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.Build.0 = Release|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.ActiveCfg = Release|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.Build.0 = Release|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.ActiveCfg = Release|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.Build.0 = Release|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.ActiveCfg = Debug|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.Build.0 = Debug|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.ActiveCfg = Debug|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.Build.0 = Debug|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.ActiveCfg = Debug|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.Build.0 = Debug|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.ActiveCfg = Release|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.Build.0 = Release|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.ActiveCfg = Release|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.Build.0 = Release|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.ActiveCfg = Release|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.Build.0 = Release|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.ActiveCfg = Debug|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.Build.0 = Debug|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.ActiveCfg = Debug|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.Build.0 = Debug|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.ActiveCfg = Debug|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.Build.0 = Debug|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.ActiveCfg = Release|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.Build.0 = Release|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.ActiveCfg = Release|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.Build.0 = Release|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.ActiveCfg = Release|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.Build.0 = Release|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.ActiveCfg = Debug|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.Build.0 = Debug|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.ActiveCfg = Debug|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.Build.0 = Debug|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.ActiveCfg = Debug|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.Build.0 = Debug|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.ActiveCfg = Release|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.Build.0 = Release|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.ActiveCfg = Release|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.Build.0 = Release|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.ActiveCfg = Release|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.Build.0 = Release|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.ActiveCfg = Debug|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.Build.0 = Debug|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.ActiveCfg = Debug|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.Build.0 = Debug|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.ActiveCfg = Debug|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.Build.0 = Debug|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.ActiveCfg = Release|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.Build.0 = Release|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.ActiveCfg = Release|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.Build.0 = Release|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.ActiveCfg = Release|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.Build.0 = Release|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.ActiveCfg = Debug|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.Build.0 = Debug|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.ActiveCfg = Debug|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.Build.0 = Debug|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.ActiveCfg = Debug|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.Build.0 = Debug|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.ActiveCfg = Release|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.Build.0 = Release|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.ActiveCfg = Release|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.Build.0 = Release|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.ActiveCfg = Release|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.Build.0 = Release|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.ActiveCfg = Debug|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.Build.0 = Debug|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.ActiveCfg = Debug|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.Build.0 = Debug|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.ActiveCfg = Debug|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.Build.0 = Debug|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.ActiveCfg = Release|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.Build.0 = Release|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.ActiveCfg = Release|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.Build.0 = Release|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.ActiveCfg = Release|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.Build.0 = Release|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.ActiveCfg = Debug|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.Build.0 = Debug|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.ActiveCfg = Debug|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.Build.0 = Debug|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.ActiveCfg = Debug|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.Build.0 = Debug|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.ActiveCfg = Release|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.Build.0 = Release|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.ActiveCfg = Release|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.Build.0 = Release|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.ActiveCfg = Release|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.Build.0 = Release|Win32
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|ARM.ActiveCfg = Debug|ARM
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|ARM.Build.0 = Debug|ARM
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x64.ActiveCfg = Debug|x64
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x64.Build.0 = Debug|x64
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x86.ActiveCfg = Debug|Win32
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x86.Build.0 = Debug|Win32
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|ARM.ActiveCfg = Release|ARM
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|ARM.Build.0 = Release|ARM
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x64.ActiveCfg = Release|x64
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x64.Build.0 = Release|x64
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x86.ActiveCfg = Release|Win32
- {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x86.Build.0 = Release|Win32
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|ARM.ActiveCfg = Debug|ARM
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|ARM.Build.0 = Debug|ARM
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x64.ActiveCfg = Debug|x64
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x64.Build.0 = Debug|x64
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x86.ActiveCfg = Debug|Win32
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x86.Build.0 = Debug|Win32
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|ARM.ActiveCfg = Release|ARM
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|ARM.Build.0 = Release|ARM
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x64.ActiveCfg = Release|x64
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x64.Build.0 = Release|x64
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x86.ActiveCfg = Release|Win32
- {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x86.Build.0 = Release|Win32
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|ARM.ActiveCfg = Debug|ARM
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|ARM.Build.0 = Debug|ARM
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x64.ActiveCfg = Debug|x64
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x64.Build.0 = Debug|x64
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x86.ActiveCfg = Debug|Win32
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x86.Build.0 = Debug|Win32
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|ARM.ActiveCfg = Release|ARM
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|ARM.Build.0 = Release|ARM
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x64.ActiveCfg = Release|x64
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x64.Build.0 = Release|x64
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x86.ActiveCfg = Release|Win32
- {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x86.Build.0 = Release|Win32
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|ARM.ActiveCfg = Debug|ARM
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|ARM.Build.0 = Debug|ARM
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x64.ActiveCfg = Debug|x64
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x64.Build.0 = Debug|x64
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x86.ActiveCfg = Debug|Win32
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x86.Build.0 = Debug|Win32
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|ARM.ActiveCfg = Release|ARM
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|ARM.Build.0 = Release|ARM
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x64.ActiveCfg = Release|x64
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x64.Build.0 = Release|x64
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x86.ActiveCfg = Release|Win32
- {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x86.Build.0 = Release|Win32
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|ARM.ActiveCfg = Debug|ARM
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|ARM.Build.0 = Debug|ARM
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x64.ActiveCfg = Debug|x64
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x64.Build.0 = Debug|x64
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x86.ActiveCfg = Debug|Win32
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x86.Build.0 = Debug|Win32
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|ARM.ActiveCfg = Release|ARM
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|ARM.Build.0 = Release|ARM
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x64.ActiveCfg = Release|x64
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x64.Build.0 = Release|x64
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x86.ActiveCfg = Release|Win32
- {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x86.Build.0 = Release|Win32
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|ARM.ActiveCfg = Debug|ARM
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|ARM.Build.0 = Debug|ARM
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x64.ActiveCfg = Debug|x64
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x64.Build.0 = Debug|x64
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x86.ActiveCfg = Debug|Win32
- {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x86.Build.0 = Debug|Win32
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|ARM.ActiveCfg = Release|ARM
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|ARM.Build.0 = Release|ARM
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x64.ActiveCfg = Release|x64
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x64.Build.0 = Release|x64
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x86.ActiveCfg = Release|Win32
- {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x86.Build.0 = Release|Win32
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|ARM.ActiveCfg = Debug|ARM
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|ARM.Build.0 = Debug|ARM
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x64.ActiveCfg = Debug|x64
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x64.Build.0 = Debug|x64
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x86.ActiveCfg = Debug|Win32
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x86.Build.0 = Debug|Win32
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|ARM.ActiveCfg = Release|ARM
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|ARM.Build.0 = Release|ARM
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x64.ActiveCfg = Release|x64
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x64.Build.0 = Release|x64
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x86.ActiveCfg = Release|Win32
- {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x86.Build.0 = Release|Win32
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|ARM.ActiveCfg = Debug|ARM
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|ARM.Build.0 = Debug|ARM
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x64.ActiveCfg = Debug|x64
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x64.Build.0 = Debug|x64
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x86.ActiveCfg = Debug|Win32
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x86.Build.0 = Debug|Win32
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|ARM.ActiveCfg = Release|ARM
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|ARM.Build.0 = Release|ARM
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x64.ActiveCfg = Release|x64
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x64.Build.0 = Release|x64
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x86.ActiveCfg = Release|Win32
- {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x86.Build.0 = Release|Win32
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|ARM.ActiveCfg = Debug|ARM
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|ARM.Build.0 = Debug|ARM
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x64.ActiveCfg = Debug|x64
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x64.Build.0 = Debug|x64
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x86.ActiveCfg = Debug|Win32
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x86.Build.0 = Debug|Win32
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|ARM.ActiveCfg = Release|ARM
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|ARM.Build.0 = Release|ARM
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x64.ActiveCfg = Release|x64
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x64.Build.0 = Release|x64
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x86.ActiveCfg = Release|Win32
- {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x86.Build.0 = Release|Win32
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|ARM.ActiveCfg = Debug|ARM
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|ARM.Build.0 = Debug|ARM
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x64.ActiveCfg = Debug|x64
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x64.Build.0 = Debug|x64
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x86.ActiveCfg = Debug|Win32
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x86.Build.0 = Debug|Win32
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|ARM.ActiveCfg = Release|ARM
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|ARM.Build.0 = Release|ARM
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x64.ActiveCfg = Release|x64
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x64.Build.0 = Release|x64
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x86.ActiveCfg = Release|Win32
- {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x86.Build.0 = Release|Win32
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|ARM.ActiveCfg = Debug|ARM
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|ARM.Build.0 = Debug|ARM
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x64.ActiveCfg = Debug|x64
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x64.Build.0 = Debug|x64
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x86.ActiveCfg = Debug|Win32
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x86.Build.0 = Debug|Win32
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|ARM.ActiveCfg = Release|ARM
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|ARM.Build.0 = Release|ARM
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x64.ActiveCfg = Release|x64
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x64.Build.0 = Release|x64
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x86.ActiveCfg = Release|Win32
- {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x86.Build.0 = Release|Win32
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|ARM.ActiveCfg = Debug|ARM
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|ARM.Build.0 = Debug|ARM
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x64.ActiveCfg = Debug|x64
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x64.Build.0 = Debug|x64
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x86.ActiveCfg = Debug|Win32
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x86.Build.0 = Debug|Win32
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|ARM.ActiveCfg = Release|ARM
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|ARM.Build.0 = Release|ARM
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x64.ActiveCfg = Release|x64
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x64.Build.0 = Release|x64
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x86.ActiveCfg = Release|Win32
- {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x86.Build.0 = Release|Win32
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|ARM.ActiveCfg = Debug|ARM
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|ARM.Build.0 = Debug|ARM
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x64.ActiveCfg = Debug|x64
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x64.Build.0 = Debug|x64
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x86.ActiveCfg = Debug|Win32
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x86.Build.0 = Debug|Win32
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|ARM.ActiveCfg = Release|ARM
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|ARM.Build.0 = Release|ARM
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x64.ActiveCfg = Release|x64
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x64.Build.0 = Release|x64
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x86.ActiveCfg = Release|Win32
- {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x86.Build.0 = Release|Win32
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|ARM.ActiveCfg = Debug|ARM
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|ARM.Build.0 = Debug|ARM
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x64.ActiveCfg = Debug|x64
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x64.Build.0 = Debug|x64
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x86.ActiveCfg = Debug|Win32
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x86.Build.0 = Debug|Win32
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|ARM.ActiveCfg = Release|ARM
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|ARM.Build.0 = Release|ARM
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x64.ActiveCfg = Release|x64
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x64.Build.0 = Release|x64
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x86.ActiveCfg = Release|Win32
- {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x86.Build.0 = Release|Win32
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|ARM.ActiveCfg = Debug|ARM
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|ARM.Build.0 = Debug|ARM
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x64.ActiveCfg = Debug|x64
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x64.Build.0 = Debug|x64
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x86.ActiveCfg = Debug|Win32
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x86.Build.0 = Debug|Win32
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|ARM.ActiveCfg = Release|ARM
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|ARM.Build.0 = Release|ARM
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x64.ActiveCfg = Release|x64
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x64.Build.0 = Release|x64
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x86.ActiveCfg = Release|Win32
- {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x86.Build.0 = Release|Win32
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|ARM.ActiveCfg = Debug|ARM
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|ARM.Build.0 = Debug|ARM
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x64.ActiveCfg = Debug|x64
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x64.Build.0 = Debug|x64
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x86.ActiveCfg = Debug|Win32
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x86.Build.0 = Debug|Win32
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|ARM.ActiveCfg = Release|ARM
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|ARM.Build.0 = Release|ARM
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x64.ActiveCfg = Release|x64
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x64.Build.0 = Release|x64
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x86.ActiveCfg = Release|Win32
- {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx b/build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx
deleted file mode 100644
index 3aeb9f3b9..000000000
Binary files a/build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx and /dev/null differ
diff --git a/build/windows10/liblinphone-tester/project.json b/build/windows10/liblinphone-tester/project.json
deleted file mode 100644
index e3b2dba25..000000000
--- a/build/windows10/liblinphone-tester/project.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "dependencies": {
- "Microsoft.ApplicationInsights": "1.0.0",
- "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0",
- "Microsoft.ApplicationInsights.WindowsApps": "1.0.0",
- "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
- },
- "frameworks": {
- "uap10.0": {}
- },
- "runtimes": {
- "win10-arm": {},
- "win10-arm-aot": {},
- "win10-x86": {},
- "win10-x86-aot": {},
- "win10-x64": {},
- "win10-x64-aot": {}
- }
-}
\ No newline at end of file
diff --git a/build/windows10/liblinphone/liblinphone.sln b/build/windows10/liblinphone/liblinphone.sln
deleted file mode 100644
index abfa15a85..000000000
--- a/build/windows10/liblinphone/liblinphone.sln
+++ /dev/null
@@ -1,230 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.22823.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone", "liblinphone.vcxproj", "{C7139899-D8BC-48A3-A437-6844A8BAABEF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj", "{88E3C241-EB6F-4C84-80DC-89B8961DAF80}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ortp", "..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj", "{2E56B851-9D8D-40E5-84BB-E4EE63B71D25}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srtp", "..\..\..\..\srtp\build\windows10\srtp\srtp.vcxproj", "{59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml2", "..\..\..\..\build\xml2\xml2.vcxproj", "{2B04DE79-4D33-4405-AC01-C89E0593A71D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polarssl", "..\..\..\..\polarssl\build\windows10\polarssl\polarssl.vcxproj", "{88768DD9-5110-4AC8-8B0E-41CD7713E1A2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "..\..\..\..\speex\build\windows10\speex\speex.vcxproj", "{971DD379-1C2D-44D2-9285-FDA556C48176}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speexdsp", "..\..\..\..\speex\build\windows10\speexdsp\speexdsp.vcxproj", "{104BF91B-8314-4328-A996-90B8DF6052AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "..\..\..\..\opus\build\windows10\opus\opus.vcxproj", "{81AF1025-E0EE-4AD6-988D-2EF162778693}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzrtp", "..\..\..\..\bzrtp\build\windows10\bzrtp\bzrtp.vcxproj", "{45C7723D-3107-4906-9633-F43ABE8A7147}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsm", "..\..\..\..\gsm\build\windows10\gsm\gsm.vcxproj", "{EF1103C7-8AAC-464B-BA31-86B87246FA72}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "belle-sip", "..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj", "{B6CDF482-7DA3-43D4-9B12-70150106C191}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "antlr3c", "..\..\..\..\antlr3\runtime\C\build\windows10\antlr3c\antlr3c.vcxproj", "{01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj", "{A34F450D-392D-4660-9618-810BD695B3B0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "..\..\..\..\build\sqlite\sqlite.vcxproj", "{74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|ARM = Debug|ARM
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|ARM = Release|ARM
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.ActiveCfg = Debug|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.Build.0 = Debug|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.ActiveCfg = Debug|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.Build.0 = Debug|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.ActiveCfg = Debug|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.Build.0 = Debug|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.ActiveCfg = Release|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.Build.0 = Release|ARM
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.ActiveCfg = Release|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.Build.0 = Release|x64
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.ActiveCfg = Release|Win32
- {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.Build.0 = Release|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.ActiveCfg = Debug|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.Build.0 = Debug|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.ActiveCfg = Debug|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.Build.0 = Debug|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.ActiveCfg = Debug|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.Build.0 = Debug|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.ActiveCfg = Release|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.Build.0 = Release|ARM
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.ActiveCfg = Release|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.Build.0 = Release|x64
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.ActiveCfg = Release|Win32
- {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.Build.0 = Release|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.ActiveCfg = Debug|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.Build.0 = Debug|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.ActiveCfg = Debug|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.Build.0 = Debug|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.ActiveCfg = Debug|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.Build.0 = Debug|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.ActiveCfg = Release|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.Build.0 = Release|ARM
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.ActiveCfg = Release|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.Build.0 = Release|x64
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.ActiveCfg = Release|Win32
- {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.Build.0 = Release|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.ActiveCfg = Debug|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.Build.0 = Debug|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.ActiveCfg = Debug|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.Build.0 = Debug|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.ActiveCfg = Debug|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.Build.0 = Debug|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.ActiveCfg = Release|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.Build.0 = Release|ARM
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.ActiveCfg = Release|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.Build.0 = Release|x64
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.ActiveCfg = Release|Win32
- {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.Build.0 = Release|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.ActiveCfg = Debug|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.Build.0 = Debug|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.ActiveCfg = Debug|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.Build.0 = Debug|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.ActiveCfg = Debug|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.Build.0 = Debug|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.ActiveCfg = Release|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.Build.0 = Release|ARM
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.ActiveCfg = Release|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.Build.0 = Release|x64
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.ActiveCfg = Release|Win32
- {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.Build.0 = Release|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.ActiveCfg = Debug|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.Build.0 = Debug|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.ActiveCfg = Debug|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.Build.0 = Debug|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.ActiveCfg = Debug|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.Build.0 = Debug|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.ActiveCfg = Release|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.Build.0 = Release|ARM
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.ActiveCfg = Release|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.Build.0 = Release|x64
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.ActiveCfg = Release|Win32
- {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.Build.0 = Release|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.ActiveCfg = Debug|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.Build.0 = Debug|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.ActiveCfg = Debug|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.Build.0 = Debug|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.ActiveCfg = Debug|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.Build.0 = Debug|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.ActiveCfg = Release|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.Build.0 = Release|ARM
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.ActiveCfg = Release|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.Build.0 = Release|x64
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.ActiveCfg = Release|Win32
- {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.Build.0 = Release|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.ActiveCfg = Debug|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.Build.0 = Debug|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.ActiveCfg = Debug|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.Build.0 = Debug|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.ActiveCfg = Debug|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.Build.0 = Debug|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.ActiveCfg = Release|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.Build.0 = Release|ARM
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.ActiveCfg = Release|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.Build.0 = Release|x64
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.ActiveCfg = Release|Win32
- {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.Build.0 = Release|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.ActiveCfg = Debug|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.Build.0 = Debug|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.ActiveCfg = Debug|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.Build.0 = Debug|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.ActiveCfg = Debug|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.Build.0 = Debug|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.ActiveCfg = Release|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.Build.0 = Release|ARM
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.ActiveCfg = Release|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.Build.0 = Release|x64
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.ActiveCfg = Release|Win32
- {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.Build.0 = Release|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.ActiveCfg = Debug|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.Build.0 = Debug|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.ActiveCfg = Debug|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.Build.0 = Debug|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.ActiveCfg = Debug|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.Build.0 = Debug|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.ActiveCfg = Release|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.Build.0 = Release|ARM
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.ActiveCfg = Release|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.Build.0 = Release|x64
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.ActiveCfg = Release|Win32
- {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.Build.0 = Release|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.ActiveCfg = Debug|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.Build.0 = Debug|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.ActiveCfg = Debug|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.Build.0 = Debug|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.ActiveCfg = Debug|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.Build.0 = Debug|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.ActiveCfg = Release|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.Build.0 = Release|ARM
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.ActiveCfg = Release|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.Build.0 = Release|x64
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.ActiveCfg = Release|Win32
- {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.Build.0 = Release|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.ActiveCfg = Debug|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.Build.0 = Debug|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.ActiveCfg = Debug|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.Build.0 = Debug|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.ActiveCfg = Debug|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.Build.0 = Debug|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.ActiveCfg = Release|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.Build.0 = Release|ARM
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.ActiveCfg = Release|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.Build.0 = Release|x64
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.ActiveCfg = Release|Win32
- {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.Build.0 = Release|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.ActiveCfg = Debug|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.Build.0 = Debug|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.ActiveCfg = Debug|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.Build.0 = Debug|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.ActiveCfg = Debug|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.Build.0 = Debug|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.ActiveCfg = Release|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.Build.0 = Release|ARM
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.ActiveCfg = Release|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.Build.0 = Release|x64
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.ActiveCfg = Release|Win32
- {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.Build.0 = Release|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.ActiveCfg = Debug|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.Build.0 = Debug|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.ActiveCfg = Debug|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.Build.0 = Debug|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.ActiveCfg = Debug|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.Build.0 = Debug|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.ActiveCfg = Release|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.Build.0 = Release|ARM
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.ActiveCfg = Release|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.Build.0 = Release|x64
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.ActiveCfg = Release|Win32
- {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.Build.0 = Release|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.ActiveCfg = Debug|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.Build.0 = Debug|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.ActiveCfg = Debug|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.Build.0 = Debug|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.ActiveCfg = Debug|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.Build.0 = Debug|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.ActiveCfg = Release|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.Build.0 = Release|ARM
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.ActiveCfg = Release|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.Build.0 = Release|x64
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.ActiveCfg = Release|Win32
- {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/build/windows10/liblinphone/liblinphone.vcxproj b/build/windows10/liblinphone/liblinphone.vcxproj
deleted file mode 100644
index b5922519b..000000000
--- a/build/windows10/liblinphone/liblinphone.vcxproj
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- ARM
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {b6cdf482-7da3-43d4-9b12-70150106c191}
-
-
- {74cad9d0-d8ae-4896-b71b-b2d9b48f30aa}
-
-
- {2b04de79-4d33-4405-ac01-c89e0593a71d}
-
-
- {a34f450d-392d-4660-9618-810bd695b3b0}
-
-
- {88e3c241-eb6f-4c84-80dc-89b8961daf80}
-
-
- {2e56b851-9d8d-40e5-84bb-e4ee63b71d25}
-
-
-
- {c7139899-d8bc-48a3-a437-6844a8baabef}
- DynamicLibrary
- liblinphone
- liblinphone
- en-US
- 14.0
- true
- Windows Store
- 10
- 10.0.10240.0
- 10.0.10069.0
-
-
-
- DynamicLibrary
- true
- v140
-
-
- DynamicLibrary
- false
- true
- v140
-
-
-
-
-
-
-
-
-
-
-
- false
- false
- $(SolutionDir)$(Platform)\$(Configuration)\
-
-
-
- NotUsing
- false
- $(SolutionDir)$(Platform)\$(Configuration)\include;$(ProjectDir)..\..\..\include;$(ProjectDir)..\..\..\coreapi;$(ProjectDir)..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\belle-sip\include;$(ProjectDir)..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\sqlite;$(ProjectDir)..\..\..\..\zlib;%(AdditionalIncludeDirectories)
- HAVE_CONFIG_H;HAVE_ZLIB;MSG_STORAGE_ENABLED;VIDEO_ENABLED;IN_LINPHONE;LINPHONE_PLUGINS_DIR="\\linphone\\plugins";_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)
- 4996
-
-
- Console
- false
- false
-
-
- version.bat
-
-
- Batch script to get the git version
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/windows10/liblinphone/version.bat b/build/windows10/liblinphone/version.bat
deleted file mode 100644
index c015636e2..000000000
--- a/build/windows10/liblinphone/version.bat
+++ /dev/null
@@ -1,22 +0,0 @@
-@ECHO off
-
-SET gitlog=
-FOR /f "delims=" %%a IN ('git log -1 "--pretty=format:%%H" ../../../configure.ac') DO SET gitlog=%%a
-
-IF [%gitlog%] == [] GOTO UnknownGitVersion
-
-FOR /f "delims=" %%a IN ('git describe --always') DO SET gitdescribe=%%a
-GOTO End
-
-:UnknownGitVersion
-SET gitdescribe=unknown
-
-:End
-ECHO #define LIBLINPHONE_GIT_VERSION "%gitdescribe%" > liblinphone_gitversion.h
-
-
-FOR /F "delims=" %%a IN ('findstr /B AC_INIT ..\..\..\configure.ac') DO (
- FOR /F "tokens=1,2,3 delims=[,]" %%1 IN ("%%a") DO (
- ECHO #define LIBLINPHONE_VERSION "%%3" > config.h
- )
-)
diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am
index 3b12d4132..97ba75460 100644
--- a/coreapi/Makefile.am
+++ b/coreapi/Makefile.am
@@ -44,6 +44,7 @@ linphone_include_HEADERS=\
lpconfig.h \
nat_policy.h \
sipsetup.h \
+ sqlite3_bctbx_vfs.h \
xml2lpc.h \
xmlrpc.h \
vcard.h \
diff --git a/coreapi/bellesip_sal/sal_impl.c b/coreapi/bellesip_sal/sal_impl.c
index 7f58094e2..acaaf6c0a 100644
--- a/coreapi/bellesip_sal/sal_impl.c
+++ b/coreapi/bellesip_sal/sal_impl.c
@@ -292,7 +292,7 @@ static void process_request_event(void *ud, const belle_sip_request_event_t *eve
belle_sip_provider_send_response(sal->prov,resp);
return;
}else if (sal->enable_test_features && strcmp("PUBLISH",method)==0) {
- resp=belle_sip_response_create_from_request(req,200);/*out of dialog BYE */
+ resp=belle_sip_response_create_from_request(req,200);/*out of dialog PUBLISH */
belle_sip_message_add_header((belle_sip_message_t*)resp,belle_sip_header_create("SIP-Etag","4441929FFFZQOA"));
belle_sip_provider_send_response(sal->prov,resp);
return;
diff --git a/coreapi/bellesip_sal/sal_op_call.c b/coreapi/bellesip_sal/sal_op_call.c
index 7ff099f72..f8e42e211 100644
--- a/coreapi/bellesip_sal/sal_op_call.c
+++ b/coreapi/bellesip_sal/sal_op_call.c
@@ -68,9 +68,10 @@ static void sdp_process(SalOp *h){
if(h->cnx_ip_to_0000_if_sendonly_enabled && sal_media_description_has_dir(h->result,SalStreamSendOnly)) {
set_addr_to_0000(h->result->addr);
for(i=0;iresult->streams[i].dir == SalStreamSendOnly)
- set_addr_to_0000(h->result->streams[i].rtp_addr);
- set_addr_to_0000(h->result->streams[i].rtcp_addr);
+ if (h->result->streams[i].dir == SalStreamSendOnly) {
+ set_addr_to_0000(h->result->streams[i].rtp_addr);
+ set_addr_to_0000(h->result->streams[i].rtcp_addr);
+ }
}
}
h->sdp_answer=(belle_sdp_session_description_t *)belle_sip_object_ref(media_description_to_sdp(h->result));
diff --git a/coreapi/bellesip_sal/sal_op_events.c b/coreapi/bellesip_sal/sal_op_events.c
index a6d11b2aa..f1f6d20b1 100644
--- a/coreapi/bellesip_sal/sal_op_events.c
+++ b/coreapi/bellesip_sal/sal_op_events.c
@@ -61,7 +61,22 @@ static void subscribe_refresher_listener (belle_sip_refresher_t* refresher
}
static void subscribe_process_io_error(void *user_ctx, const belle_sip_io_error_event_t *event){
- ms_error("subscribe_process_io_error not implemented yet");
+ SalOp *op = (SalOp*)user_ctx;
+ belle_sip_object_t *src = belle_sip_io_error_event_get_source(event);
+ if (BELLE_SIP_OBJECT_IS_INSTANCE_OF(src, belle_sip_client_transaction_t)){
+ belle_sip_client_transaction_t *tr = BELLE_SIP_CLIENT_TRANSACTION(src);
+ belle_sip_request_t* req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr);
+ const char *method=belle_sip_request_get_method(req);
+
+ if (!op->dialog) {
+ /*this is handling outgoing out-of-dialog notifies*/
+ if (strcmp(method,"NOTIFY")==0){
+ SalErrorInfo *ei=&op->error_info;
+ sal_error_info_set(ei,SalReasonIOError,0,NULL,NULL);
+ op->base.root->callbacks.on_notify_response(op);
+ }
+ }
+ }
}
static void subscribe_process_dialog_terminated(void *ctx, const belle_sip_dialog_terminated_event_t *event) {
@@ -83,9 +98,41 @@ static void subscribe_process_dialog_terminated(void *ctx, const belle_sip_dialo
}
static void subscribe_response_event(void *op_base, const belle_sip_response_event_t *event){
+ SalOp *op = (SalOp*)op_base;
+ belle_sip_request_t * req;
+ const char *method;
+ belle_sip_client_transaction_t *tr = belle_sip_response_event_get_client_transaction(event);
+
+ if (!tr) return;
+ req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr);
+ method = belle_sip_request_get_method(req);
+
+ if (!op->dialog) {
+ if (strcmp(method,"NOTIFY")==0){
+ sal_op_set_error_info_from_response(op,belle_sip_response_event_get_response(event));
+ op->base.root->callbacks.on_notify_response(op);
+ }
+ }
}
static void subscribe_process_timeout(void *user_ctx, const belle_sip_timeout_event_t *event) {
+ SalOp *op = (SalOp*)user_ctx;
+ belle_sip_request_t * req;
+ const char *method;
+ belle_sip_client_transaction_t *tr = belle_sip_timeout_event_get_client_transaction(event);
+
+ if (!tr) return;
+ req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr);
+ method = belle_sip_request_get_method(req);
+
+ if (!op->dialog) {
+ /*this is handling outgoing out-of-dialog notifies*/
+ if (strcmp(method,"NOTIFY")==0){
+ SalErrorInfo *ei=&op->error_info;
+ sal_error_info_set(ei,SalReasonRequestTimeout,0,NULL,NULL);
+ op->base.root->callbacks.on_notify_response(op);
+ }
+ }
}
static void subscribe_process_transaction_terminated(void *user_ctx, const belle_sip_transaction_terminated_event_t *event) {
@@ -236,11 +283,7 @@ int sal_subscribe(SalOp *op, const char *from, const char *to, const char *event
if( req == NULL ) {
return -1;
}
- if (eventname){
- if (op->event) belle_sip_object_unref(op->event);
- op->event=belle_sip_header_event_create(eventname);
- belle_sip_object_ref(op->event);
- }
+ sal_op_set_event(op, eventname);
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(op->event));
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires)));
belle_sip_message_set_body_handler(BELLE_SIP_MESSAGE(req), BELLE_SIP_BODY_HANDLER(body_handler));
@@ -309,14 +352,20 @@ int sal_subscribe_decline(SalOp *op, SalReason reason){
int sal_notify(SalOp *op, const SalBodyHandler *body_handler){
belle_sip_request_t* notify;
- if (!op->dialog) return -1;
-
- if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1;
+ if (op->dialog){
+ if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1;
+ }else{
+ sal_op_subscribe_fill_cbs(op);
+ notify = sal_op_build_request(op, "NOTIFY");
+ }
if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),BELLE_SIP_HEADER(op->event));
belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify)
- ,BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_ACTIVE,600)));
+ ,op->dialog ?
+ BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_ACTIVE,600)) :
+ BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_TERMINATED,0))
+ );
belle_sip_message_set_body_handler(BELLE_SIP_MESSAGE(notify), BELLE_SIP_BODY_HANDLER(body_handler));
return sal_op_send_request(op,notify);
}
diff --git a/coreapi/bellesip_sal/sal_op_impl.c b/coreapi/bellesip_sal/sal_op_impl.c
index b58be0f2b..51b7d23a5 100644
--- a/coreapi/bellesip_sal/sal_op_impl.c
+++ b/coreapi/bellesip_sal/sal_op_impl.c
@@ -799,3 +799,13 @@ int sal_op_refresh(SalOp *op) {
ms_warning("sal_refresh on op [%p] of type [%s] no refresher",op,sal_op_type_to_string(op->type));
return -1;
}
+
+void sal_op_set_event(SalOp *op, const char *eventname){
+ belle_sip_header_event_t *header = NULL;
+ if (op->event) belle_sip_object_unref(op->event);
+ if (eventname){
+ header = belle_sip_header_event_create(eventname);
+ belle_sip_object_ref(header);
+ }
+ op->event = header;
+}
diff --git a/coreapi/call_log.c b/coreapi/call_log.c
index b90afcf74..1e8a3786c 100644
--- a/coreapi/call_log.c
+++ b/coreapi/call_log.c
@@ -373,8 +373,6 @@ void linphone_core_call_log_storage_init(LinphoneCore *lc) {
int ret;
const char *errmsg;
sqlite3 *db;
-
- sqlite3_bctbx_vfs_register(1);
linphone_core_call_log_storage_close(lc);
diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c
index 8f9f50690..9cb4572e6 100644
--- a/coreapi/callbacks.c
+++ b/coreapi/callbacks.c
@@ -1315,8 +1315,8 @@ static void notify(SalOp *op, SalSubscribeStatus st, const char *eventname, SalB
LinphoneCore *lc=(LinphoneCore *)sal_get_user_pointer(sal_op_get_sal(op));
bool_t out_of_dialog = (lev==NULL);
if (out_of_dialog) {
- /*out of subscribe notify */
- lev=linphone_event_new_with_out_of_dialog_op(lc,op,LinphoneSubscriptionOutgoing,eventname);
+ /*out of dialog notify */
+ lev = linphone_event_new_with_out_of_dialog_op(lc,op,LinphoneSubscriptionOutgoing,eventname);
}
{
LinphoneContent *ct=linphone_content_from_sal_body_handler(body_handler);
@@ -1325,14 +1325,12 @@ static void notify(SalOp *op, SalSubscribeStatus st, const char *eventname, SalB
linphone_content_unref(ct);
}
}
- if (st!=SalSubscribeNone){
+ if (out_of_dialog){
+ /*out of dialog NOTIFY do not create an implicit subscription*/
+ linphone_event_set_state(lev, LinphoneSubscriptionTerminated);
+ }else if (st!=SalSubscribeNone){
linphone_event_set_state(lev,linphone_subscription_state_from_sal(st));
}
-
- if (out_of_dialog) {
- linphone_event_unref(lev);
- }
-
}
static void subscribe_received(SalOp *op, const char *eventname, const SalBodyHandler *body_handler){
@@ -1373,6 +1371,7 @@ static void on_publish_response(SalOp* op){
}
}
+
static void on_expire(SalOp *op){
LinphoneEvent *lev=(LinphoneEvent*)sal_op_get_user_pointer(op);
@@ -1385,6 +1384,25 @@ static void on_expire(SalOp *op){
}
}
+static void on_notify_response(SalOp *op){
+ LinphoneEvent *lev=(LinphoneEvent*)sal_op_get_user_pointer(op);
+
+ if (lev==NULL) return;
+ /*this is actually handling out of dialogs notify - for the moment*/
+ if (!lev->is_out_of_dialog_op) return;
+ switch (linphone_event_get_subscription_state(lev)){
+ case LinphoneSubscriptionIncomingReceived:
+ if (sal_op_get_error_info(op)->reason == SalReasonNone){
+ linphone_event_set_state(lev, LinphoneSubscriptionTerminated);
+ }else{
+ linphone_event_set_state(lev, LinphoneSubscriptionError);
+ }
+ break;
+ default:
+ ms_warning("Unhandled on_notify_response() case %s", linphone_subscription_state_to_string(linphone_event_get_subscription_state(lev)));
+ }
+}
+
SalCallbacks linphone_sal_callbacks={
call_received,
call_ringing,
@@ -1417,7 +1435,8 @@ SalCallbacks linphone_sal_callbacks={
auth_requested,
info_received,
on_publish_response,
- on_expire
+ on_expire,
+ on_notify_response
};
diff --git a/coreapi/chat.c b/coreapi/chat.c
index 061e14fc6..1f8df2a14 100644
--- a/coreapi/chat.c
+++ b/coreapi/chat.c
@@ -27,6 +27,7 @@
#include "lpconfig.h"
#include "belle-sip/belle-sip.h"
#include "ortp/b64.h"
+#include "lime.h"
#include
#include
@@ -264,8 +265,48 @@ LinphoneChatRoom *linphone_core_get_chat_room_from_uri(LinphoneCore *lc, const c
return _linphone_core_get_or_create_chat_room(lc, to);
}
-bool_t linphone_chat_room_lime_enabled(LinphoneChatRoom *cr) {
- return linphone_core_lime_enabled(cr->lc) != LinphoneLimeDisabled/*&& TODO: check that cr->peer_url has a verified token */;
+bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr) {
+ if (cr) {
+ switch (linphone_core_lime_enabled(cr->lc)) {
+ case LinphoneLimeDisabled: return FALSE;
+ case LinphoneLimeMandatory: return TRUE;
+ case LinphoneLimePreferred: {
+ FILE *CACHEFD = NULL;
+ if (cr->lc->zrtp_secrets_cache != NULL) {
+ CACHEFD = fopen(cr->lc->zrtp_secrets_cache, "rb+");
+ if (CACHEFD) {
+ size_t cacheSize;
+ xmlDocPtr cacheXml;
+ char *cacheString=ms_load_file_content(CACHEFD, &cacheSize);
+ if (!cacheString){
+ ms_warning("Unable to load content of ZRTP ZID cache to decrypt message");
+ return FALSE;
+ }
+ cacheString[cacheSize] = '\0';
+ cacheSize += 1;
+ fclose(CACHEFD);
+ cacheXml = xmlParseDoc((xmlChar*)cacheString);
+ ms_free(cacheString);
+ if (cacheXml) {
+ bool_t res;
+ limeURIKeys_t associatedKeys;
+ /* retrieve keys associated to the peer URI */
+ associatedKeys.peerURI = (uint8_t *)malloc(strlen(cr->peer)+1);
+ strcpy((char *)(associatedKeys.peerURI), cr->peer);
+ associatedKeys.associatedZIDNumber = 0;
+ associatedKeys.peerKeys = NULL;
+
+ res = (lime_getCachedSndKeysByURI(cacheXml, &associatedKeys) == 0 && associatedKeys.associatedZIDNumber != 0);
+ lime_freeKeys(associatedKeys);
+ xmlFreeDoc(cacheXml);
+ return res;
+ }
+ }
+ }
+ }
+ }
+ }
+ return FALSE;
}
static void linphone_chat_room_delete_composing_idle_timer(LinphoneChatRoom *cr) {
@@ -380,7 +421,7 @@ void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage
char *peer_uri = linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr));
const char *content_type;
- if (linphone_chat_room_lime_enabled(cr)) {
+ if (linphone_chat_room_lime_available(cr)) {
/* ref the msg or it may be destroyed by callback if the encryption failed */
if (msg->content_type && strcmp(msg->content_type, "application/vnd.gsma.rcs-ft-http+xml") == 0) {
/* it's a file transfer, content type shall be set to
@@ -877,7 +918,7 @@ void linphone_core_real_time_text_received(LinphoneCore *lc, LinphoneChatRoom *c
msg->state = LinphoneChatMessageStateDelivered;
msg->is_read = FALSE;
msg->dir = LinphoneChatMessageIncoming;
-
+
if (lp_config_get_int(lc->config, "misc", "store_rtt_messages", 1) == 1) {
msg->storage_id = linphone_chat_message_store(msg);
}
@@ -924,7 +965,7 @@ int linphone_chat_message_put_char(LinphoneChatMessage *msg, uint32_t character)
if (!call || !call->textstream) {
return -1;
}
-
+
if (character == new_line || character == crlf || character == lf) {
if (lc && lp_config_get_int(lc->config, "misc", "store_rtt_messages", 1) == 1) {
ms_debug("New line sent, forge a message with content %s", msg->message);
@@ -944,7 +985,7 @@ int linphone_chat_message_put_char(LinphoneChatMessage *msg, uint32_t character)
ms_debug("Sent RTT character: %s (%lu), pending text is %s", value, (unsigned long)character, msg->message);
ms_free(value);
}
-
+
text_stream_putchar32(call->textstream, character);
return 0;
}
diff --git a/coreapi/chat_file_transfer.c b/coreapi/chat_file_transfer.c
index e64839e35..21d003450 100644
--- a/coreapi/chat_file_transfer.c
+++ b/coreapi/chat_file_transfer.c
@@ -155,7 +155,7 @@ static int linphone_chat_message_file_transfer_on_send_body(belle_sip_user_body_
static void linphone_chat_message_process_response_from_post_file(void *data,
const belle_http_response_event_t *event) {
LinphoneChatMessage *msg = (LinphoneChatMessage *)data;
-
+
if (msg->http_request && !file_transfer_in_progress_and_valid(msg)) {
ms_warning("Cancelled request for %s msg [%p], ignoring %s", msg->chat_room?"":"ORPHAN", msg, __FUNCTION__);
_release_http_request(msg);
@@ -172,7 +172,7 @@ static void linphone_chat_message_process_response_from_post_file(void *data,
belle_sip_body_handler_t *first_part_bh;
/* shall we encrypt the file */
- if (linphone_chat_room_lime_enabled(msg->chat_room) &&
+ if (linphone_chat_room_lime_available(msg->chat_room) &&
linphone_core_lime_for_file_sharing_enabled(msg->chat_room->lc)) {
char keyBuffer
[FILE_TRANSFER_KEY_SIZE]; /* temporary storage of generated key: 192 bits of key + 64 bits of
@@ -317,22 +317,22 @@ static void on_recv_body(belle_sip_user_body_handler_t *bh, belle_sip_message_t
const uint8_t *buffer, size_t size) {
LinphoneChatMessage *msg = (LinphoneChatMessage *)data;
LinphoneCore *lc;
-
+
if (!msg->chat_room) {
linphone_chat_message_cancel_file_transfer(msg);
return;
}
lc = msg->chat_room->lc;
-
+
if (lc == NULL){
return; /*might happen during linphone_core_destroy()*/
}
-
+
if (!msg->http_request || belle_http_request_is_cancelled(msg->http_request)) {
ms_warning("Cancelled request for msg [%p], ignoring %s", msg, __FUNCTION__);
return;
}
-
+
/* first call may be with a zero size, ignore it */
if (size == 0) {
return;
diff --git a/coreapi/event.c b/coreapi/event.c
index 2d6e7eaf5..79d3845b3 100644
--- a/coreapi/event.c
+++ b/coreapi/event.c
@@ -161,13 +161,21 @@ LinphoneEvent *linphone_core_create_subscribe(LinphoneCore *lc, const LinphoneAd
return lev;
}
+LinphoneEvent *linphone_core_create_notify(LinphoneCore *lc, const LinphoneAddress *resource, const char *event){
+ LinphoneEvent *lev=linphone_event_new(lc, LinphoneSubscriptionIncoming, event, -1);
+ linphone_configure_op(lc,lev->op,resource,NULL,TRUE);
+ lev->subscription_state = LinphoneSubscriptionIncomingReceived;
+ sal_op_set_event(lev->op, event);
+ lev->is_out_of_dialog_op = TRUE;
+ return lev;
+}
+
LinphoneEvent *linphone_core_subscribe(LinphoneCore *lc, const LinphoneAddress *resource, const char *event, int expires, const LinphoneContent *body){
LinphoneEvent *lev=linphone_core_create_subscribe(lc,resource,event,expires);
linphone_event_send_subscribe(lev,body);
return lev;
}
-
int linphone_event_send_subscribe(LinphoneEvent *lev, const LinphoneContent *body){
SalBodyHandler *body_handler;
int err;
@@ -241,7 +249,7 @@ int linphone_event_deny_subscription(LinphoneEvent *lev, LinphoneReason reason){
int linphone_event_notify(LinphoneEvent *lev, const LinphoneContent *body){
SalBodyHandler *body_handler;
- if (lev->subscription_state!=LinphoneSubscriptionActive){
+ if (lev->subscription_state!=LinphoneSubscriptionActive && lev->subscription_state!=LinphoneSubscriptionIncomingReceived){
ms_error("linphone_event_notify(): cannot notify if subscription is not active.");
return -1;
}
@@ -392,7 +400,7 @@ const char *linphone_event_get_name(const LinphoneEvent *lev){
}
const LinphoneAddress *linphone_event_get_from(const LinphoneEvent *lev){
- if (lev->is_out_of_dialog_op){
+ if (lev->is_out_of_dialog_op && lev->dir == LinphoneSubscriptionOutgoing){
return (LinphoneAddress*)sal_op_get_to_address(lev->op);
}else{
return (LinphoneAddress*)sal_op_get_from_address(lev->op);
@@ -400,7 +408,7 @@ const LinphoneAddress *linphone_event_get_from(const LinphoneEvent *lev){
}
const LinphoneAddress *linphone_event_get_resource(const LinphoneEvent *lev){
- if (lev->is_out_of_dialog_op){
+ if (lev->is_out_of_dialog_op && lev->dir == LinphoneSubscriptionOutgoing){
return (LinphoneAddress*)sal_op_get_from_address(lev->op);
}else{
return (LinphoneAddress*)sal_op_get_to_address(lev->op);
diff --git a/coreapi/event.h b/coreapi/event.h
index d84d6d180..0c8c16215 100644
--- a/coreapi/event.h
+++ b/coreapi/event.h
@@ -129,6 +129,18 @@ LINPHONE_PUBLIC LinphoneEvent *linphone_core_subscribe(LinphoneCore *lc, const L
**/
LINPHONE_PUBLIC LinphoneEvent *linphone_core_create_subscribe(LinphoneCore *lc, const LinphoneAddress *resource, const char *event, int expires);
+
+/**
+ * Create an out-of-dialog notification, specifying the destination resource, the event name.
+ * The notification can be send with linphone_event_notify().
+ * @param lc the #LinphoneCore
+ * @param resource the destination resource
+ * @param event the event name
+ * @return a LinphoneEvent holding the context of the notification.
+**/
+LinphoneEvent *linphone_core_create_notify(LinphoneCore *lc, const LinphoneAddress *resource, const char *event);
+
+
/**
* Send a subscription previously created by linphone_core_create_subscribe().
* @param ev the LinphoneEvent
diff --git a/coreapi/friend.c b/coreapi/friend.c
index d9d5bbe7c..2251b370c 100644
--- a/coreapi/friend.c
+++ b/coreapi/friend.c
@@ -1138,7 +1138,7 @@ void linphone_core_friends_storage_init(LinphoneCore *lc) {
const char *errmsg;
sqlite3 *db;
const MSList *friends_lists = NULL;
- sqlite3_bctbx_vfs_register(1);
+
linphone_core_friends_storage_close(lc);
ret = _linphone_sqlite3_open(lc->friends_db_file, &db);
diff --git a/coreapi/lime.h b/coreapi/lime.h
index a5da93e34..1b5101018 100644
--- a/coreapi/lime.h
+++ b/coreapi/lime.h
@@ -69,7 +69,7 @@ LINPHONE_PUBLIC int lime_getCachedRcvKeyByZid(xmlDocPtr cacheBuffer, limeKey_t *
*
* @param[out] cacheBuffer The xmlDoc containing current cache to be updated
* @param[in/out] associatedKey Structure containing the key and ZID to identify the peer node to be updated
- * @param[in] role Can be LIME_SENDER or LIME_RECEIVER, specify which key we want to update
+ * @param[in] role Can be LIME_SENDER or LIME_RECEIVER, specify which key we want to update
*
* @return 0 on success, error code otherwise
*/
@@ -87,7 +87,7 @@ LINPHONE_PUBLIC void lime_freeKeys(limeURIKeys_t associatedKeys);
/**
* @brief encrypt a message with the given key
- *
+ *
* @param[in] key Key to use: first 192 bits are used as key, last 64 bits as init vector
* @param[in] message The string to be encrypted
* @param[in] messageLength The length in bytes of the message to be encrypted
@@ -96,7 +96,7 @@ LINPHONE_PUBLIC void lime_freeKeys(limeURIKeys_t associatedKeys);
* Authentication tag is set at the begining of the encrypted Message
*
* @return 0 on success, error code otherwise
- *
+ *
*/
LINPHONE_PUBLIC int lime_encryptMessage(limeKey_t *key, uint8_t *plainMessage, uint32_t messageLength, uint8_t selfZID[12], uint8_t *encryptedMessage);
@@ -130,7 +130,7 @@ LINPHONE_PUBLIC int lime_decryptFile(void **cryptoContext, unsigned char *key, s
/**
* @brief decrypt and authentify a message with the given key
- *
+ *
* @param[in] key Key to use: first 192 bits are used as key, last 64 bits as init vector
* @param[in] message The string to be decrypted
* @param[in] messageLength The length in bytes of the message to be decrypted (this include the 16 bytes tag at the begining of the message)
@@ -139,7 +139,7 @@ LINPHONE_PUBLIC int lime_decryptFile(void **cryptoContext, unsigned char *key, s
* Authentication tag is retrieved at the begining of the encrypted Message
*
* @return 0 on success, error code otherwise
- *
+ *
*/
LINPHONE_PUBLIC int lime_decryptMessage(limeKey_t *key, uint8_t *encryptedMessage, uint32_t messageLength, uint8_t selfZID[12], uint8_t *plainMessage);
diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c
index d766d9855..eb4cab7e9 100644
--- a/coreapi/linphonecore.c
+++ b/coreapi/linphonecore.c
@@ -26,6 +26,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "lime.h"
#include "conference_private.h"
+#ifdef SQLITE_STORAGE_ENABLED
+#include "sqlite3_bctbx_vfs.h"
+#endif
+
#include
#include
#include
@@ -946,7 +950,10 @@ static void sip_config_read(LinphoneCore *lc)
const char *tmpstr;
LCSipTransports tr;
int i,tmp;
- int ipv6;
+ int ipv6_default = FALSE;
+#if TARGET_OS_IPHONE
+ ipv6_default=TRUE;
+#endif
if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){
sal_use_session_timers(lc->sal,200);
@@ -955,11 +962,16 @@ static void sip_config_read(LinphoneCore *lc)
sal_use_no_initial_route(lc->sal,lp_config_get_int(lc->config,"sip","use_no_initial_route",0));
sal_use_rport(lc->sal,lp_config_get_int(lc->config,"sip","use_rport",1));
- ipv6=lp_config_get_int(lc->config,"sip","use_ipv6",-1);
- if (ipv6==-1){
- ipv6=0;
+#if TARGET_OS_IPHONE
+ if (!lp_config_get_int(lc->config,"sip","ipv6_migration_done",FALSE) && lp_config_has_entry(lc->config,"sip","use_ipv6")) {
+ lp_config_clean_entry(lc->config,"sip","use_ipv6");
+ lp_config_set_int(lc->config, "sip", "ipv6_migration_done", TRUE);
+ ms_message("IPV6 settings migration done.");
}
- linphone_core_enable_ipv6(lc,ipv6);
+#endif
+
+ lc->sip_conf.ipv6_enabled=lp_config_get_int(lc->config,"sip","use_ipv6",ipv6_default);
+
memset(&tr,0,sizeof(tr));
tr.udp_port=lp_config_get_int(lc->config,"sip","sip_port",5060);
@@ -1270,6 +1282,38 @@ static MSList *add_missing_supported_codecs(LinphoneCore *lc, const MSList *defa
return newlist;
}
+/*
+ * This function adds missing codecs, if required by configuration.
+ * This 'l' list is entirely destroyed and a new list is returned.
+ */
+static MSList *handle_missing_codecs(LinphoneCore *lc, const MSList *default_list, MSList *l, MSFormatType ft){
+ const char *name = "unknown";
+ int add_missing;
+ MSList *ret;
+
+ switch(ft){
+ case MSAudio:
+ name = "add_missing_audio_codecs";
+ break;
+ case MSVideo:
+ name = "add_missing_video_codecs";
+ break;
+ case MSText:
+ name = "add_missing_text_codecs";
+ break;
+ case MSUnknownMedia:
+ break;
+ }
+ add_missing = lp_config_get_int(lc->config, "misc", name, 1);
+ if (add_missing){
+ ret = add_missing_supported_codecs(lc, default_list, l);
+ }else{
+ ret = ms_list_copy_with_data(l,(void *(*)(void*))payload_type_clone);
+ ms_list_free(l);
+ }
+ return ret;
+}
+
static MSList *codec_append_if_new(MSList *l, PayloadType *pt){
MSList *elem;
for (elem=l;elem!=NULL;elem=elem->next){
@@ -1281,8 +1325,7 @@ static MSList *codec_append_if_new(MSList *l, PayloadType *pt){
return l;
}
-static void codecs_config_read(LinphoneCore *lc)
-{
+static void codecs_config_read(LinphoneCore *lc){
int i;
PayloadType *pt;
MSList *audio_codecs=NULL;
@@ -1297,18 +1340,15 @@ static void codecs_config_read(LinphoneCore *lc)
audio_codecs=codec_append_if_new(audio_codecs, pt);
}
}
- if( lp_config_get_int(lc->config, "misc", "add_missing_audio_codecs", 1) == 1 ){
- audio_codecs=add_missing_supported_codecs(lc, lc->default_audio_codecs,audio_codecs);
- }
+ audio_codecs = handle_missing_codecs(lc, lc->default_audio_codecs,audio_codecs, MSAudio);
for (i=0;get_codec(lc,SalVideo,i,&pt);i++){
if (pt){
video_codecs=codec_append_if_new(video_codecs, pt);
}
}
- if( lp_config_get_int(lc->config, "misc", "add_missing_video_codecs", 1) == 1 ){
- video_codecs=add_missing_supported_codecs(lc, lc->default_video_codecs,video_codecs);
- }
+
+ video_codecs = handle_missing_codecs(lc, lc->default_video_codecs, video_codecs, MSVideo);
for (i=0;get_codec(lc,SalText,i,&pt);i++){
if (pt){
@@ -1787,6 +1827,9 @@ static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtab
if (remote_provisioning_uri == NULL) {
linphone_configuring_terminated(lc, LinphoneConfiguringSkipped, NULL);
} // else linphone_core_start will be called after the remote provisioning (see linphone_core_iterate)
+#ifdef SQLITE_STORAGE_ENABLED
+ sqlite3_bctbx_vfs_register(0);
+#endif
}
LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable,
@@ -2518,9 +2561,6 @@ bool_t linphone_core_ipv6_enabled(LinphoneCore *lc){
*
* @ingroup network_parameters
*
- * @note IPv6 support is exclusive with IPv4 in liblinphone:
- * when IPv6 is turned on, IPv4 calls won't be possible anymore.
- * By default IPv6 support is off.
**/
void linphone_core_enable_ipv6(LinphoneCore *lc, bool_t val){
if (lc->sip_conf.ipv6_enabled!=val){
@@ -6392,7 +6432,6 @@ void sip_config_uninit(LinphoneCore *lc)
lp_config_set_int(lc->config,"sip","inc_timeout",config->inc_timeout);
lp_config_set_int(lc->config,"sip","in_call_timeout",config->in_call_timeout);
lp_config_set_int(lc->config,"sip","delayed_timeout",config->delayed_timeout);
- lp_config_set_int(lc->config,"sip","use_ipv6",config->ipv6_enabled);
lp_config_set_int(lc->config,"sip","register_only_when_network_is_up",config->register_only_when_network_is_up);
lp_config_set_int(lc->config,"sip","register_only_when_upnp_is_ok",config->register_only_when_upnp_is_ok);
@@ -6684,24 +6723,35 @@ static void linphone_core_uninit(LinphoneCore *lc)
ms_factory_destroy(lc->factory);
}
+static void stop_refreshing_proxy_config(bool_t is_sip_reachable, LinphoneProxyConfig* cfg) {
+ if (linphone_proxy_config_register_enabled(cfg) ) {
+ if (!is_sip_reachable) {
+ linphone_proxy_config_stop_refreshing(cfg);
+ linphone_proxy_config_set_state(cfg, LinphoneRegistrationNone,"Registration impossible (network down)");
+ }else{
+ cfg->commit=TRUE;
+ }
+ }
+}
static void set_sip_network_reachable(LinphoneCore* lc,bool_t is_sip_reachable, time_t curtime){
// second get the list of available proxies
- const MSList *elem=linphone_core_get_proxy_config_list(lc);
+ const MSList *elem = NULL;
if (lc->sip_network_reachable==is_sip_reachable) return; // no change, ignore.
lc->network_reachable_to_be_notified=TRUE;
ms_message("SIP network reachability state is now [%s]",is_sip_reachable?"UP":"DOWN");
- for(;elem!=NULL;elem=elem->next){
+ for(elem=linphone_core_get_proxy_config_list(lc);elem!=NULL;elem=elem->next){
LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data;
- if (linphone_proxy_config_register_enabled(cfg) ) {
- if (!is_sip_reachable) {
- linphone_proxy_config_stop_refreshing(cfg);
- linphone_proxy_config_set_state(cfg, LinphoneRegistrationNone,"Registration impossible (network down)");
- }else{
- cfg->commit=TRUE;
- }
- }
+ stop_refreshing_proxy_config(is_sip_reachable, cfg);
}
+ for(elem=lc->sip_conf.deleted_proxies;elem!=NULL;elem=elem->next){
+ LinphoneProxyConfig *deleted_cfg=(LinphoneProxyConfig*)elem->data;
+ stop_refreshing_proxy_config(is_sip_reachable, deleted_cfg);
+ }
+
+
+
+
lc->netup_time=curtime;
lc->sip_network_reachable=is_sip_reachable;
diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h
index 343b088f8..3c1d2e93a 100644
--- a/coreapi/linphonecore.h
+++ b/coreapi/linphonecore.h
@@ -25,7 +25,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "mediastreamer2/msvideo.h"
#include "mediastreamer2/mediastream.h"
#include "mediastreamer2/bitratecontrol.h"
-#include "sqlite3_bctbx_vfs.h"
#ifdef IN_LINPHONE
#include "sipsetup.h"
@@ -1516,6 +1515,13 @@ LINPHONE_PUBLIC LinphoneCore* linphone_chat_room_get_core(LinphoneChatRoom *cr);
*/
LINPHONE_PUBLIC uint32_t linphone_chat_room_get_char(const LinphoneChatRoom *cr);
+/**
+ * Returns true if lime is available for given peer
+ *
+ * @return true if zrtp secrets have already been shared and ready to use
+ */
+ LINPHONE_PUBLIC bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr);
+
/**
* Returns an list of chat rooms
* @param[in] lc #LinphoneCore object
@@ -4413,6 +4419,7 @@ LINPHONE_PUBLIC bool_t linphone_core_video_multicast_enabled(const LinphoneCore
* @param lc the LinphoneCore
* @param params the parameters used for the network simulation.
* @return 0 if successful, -1 otherwise.
+ * @ingroup media_parameters
**/
LINPHONE_PUBLIC int linphone_core_set_network_simulator_params(LinphoneCore *lc, const OrtpNetworkSimulatorParams *params);
@@ -4421,6 +4428,7 @@ LINPHONE_PUBLIC int linphone_core_set_network_simulator_params(LinphoneCore *lc,
* Get the previously set network simulation parameters.
* @see linphone_core_set_network_simulator_params
* @return a OrtpNetworkSimulatorParams structure.
+ * @ingroup media_parameters
**/
LINPHONE_PUBLIC const OrtpNetworkSimulatorParams *linphone_core_get_network_simulator_params(const LinphoneCore *lc);
@@ -4428,6 +4436,7 @@ LINPHONE_PUBLIC const OrtpNetworkSimulatorParams *linphone_core_get_network_simu
* Set the video preset to be used for video calls.
* @param[in] lc LinphoneCore object
* @param[in] preset The name of the video preset to be used (can be NULL to use the default video preset).
+ * @ingroup media_parameters
*/
LINPHONE_PUBLIC void linphone_core_set_video_preset(LinphoneCore *lc, const char *preset);
@@ -4435,6 +4444,7 @@ LINPHONE_PUBLIC void linphone_core_set_video_preset(LinphoneCore *lc, const char
* Get the video preset used for video calls.
* @param[in] lc LinphoneCore object
* @return The name of the video preset used for video calls (can be NULL if the default video preset is used).
+ * @ingroup media_parameters
*/
LINPHONE_PUBLIC const char * linphone_core_get_video_preset(const LinphoneCore *lc);
@@ -4442,6 +4452,7 @@ LINPHONE_PUBLIC const char * linphone_core_get_video_preset(const LinphoneCore *
* Gets if realtime text is enabled or not
* @param[in] lc LinphoneCore object
* @return true if realtime text is enabled, false otherwise
+ * @ingroup media_parameters
*/
LINPHONE_PUBLIC bool_t linphone_core_realtime_text_enabled(LinphoneCore *lc);
@@ -4449,6 +4460,7 @@ LINPHONE_PUBLIC bool_t linphone_core_realtime_text_enabled(LinphoneCore *lc);
* Set http proxy address to be used for signaling during next channel connection. Use #linphone_core_set_network_reachable FASLE/TRUE to force channel restart.
* @param[in] lc LinphoneCore object
* @param[in] hostname of IP adress of the http proxy (can be NULL to disable).
+ * @ingroup network_parameters
*/
LINPHONE_PUBLIC void linphone_core_set_http_proxy_host(LinphoneCore *lc, const char *host) ;
@@ -4456,6 +4468,7 @@ LINPHONE_PUBLIC void linphone_core_set_http_proxy_host(LinphoneCore *lc, const c
* Set http proxy port to be used for signaling.
* @param[in] lc LinphoneCore object
* @param[in] port of the http proxy.
+ * @ingroup network_parameters
*/
LINPHONE_PUBLIC void linphone_core_set_http_proxy_port(LinphoneCore *lc, int port) ;
@@ -4463,6 +4476,7 @@ LINPHONE_PUBLIC void linphone_core_set_http_proxy_port(LinphoneCore *lc, int por
* Get http proxy address to be used for signaling.
* @param[in] lc LinphoneCore object
* @return hostname of IP adress of the http proxy (can be NULL to disable).
+ * @ingroup network_parameters
*/
LINPHONE_PUBLIC const char *linphone_core_get_http_proxy_host(const LinphoneCore *lc);
@@ -4470,6 +4484,7 @@ LINPHONE_PUBLIC const char *linphone_core_get_http_proxy_host(const LinphoneCore
* Get http proxy port to be used for signaling.
* @param[in] lc LinphoneCore object
* @return port of the http proxy.
+ * @ingroup network_parameters
*/
LINPHONE_PUBLIC int linphone_core_get_http_proxy_port(const LinphoneCore *lc);
diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c
index b466c4d7c..2f410e7b3 100644
--- a/coreapi/lpconfig.c
+++ b/coreapi/lpconfig.c
@@ -25,6 +25,7 @@
#define MAX_LEN 16384
#include "linphonecore.h"
+#include "bctoolbox/bc_vfs.h"
#include
#include
@@ -401,7 +402,7 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa
bctbx_vfs_file_t* pFile = NULL;
LpConfig *lpconfig=lp_new0(LpConfig,1);
- bctbx_vfs_register(bc_create_vfs(),&lpconfig->g_bctbx_vfs);
+ lpconfig->g_bctbx_vfs = bctbx_vfs_get_default();
lpconfig->refcnt=1;
if (config_filename!=NULL){
@@ -431,13 +432,13 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa
#endif /*_WIN32*/
/*open with r+ to check if we can write on it later*/
- pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,lpconfig->filename, "r+");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->filename, "r+");
fd = pFile->fd;
lpconfig->pFile = pFile;
#ifdef RENAME_REQUIRES_NONEXISTENT_NEW_PATH
if (fd == -1){
- pFile = bctbx_filecreate_and_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "r+");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "r+");
if (fd){
ms_warning("Could not open %s but %s works, app may have crashed during last sync.",lpconfig->filename,lpconfig->tmpfilename);
}
@@ -463,7 +464,7 @@ fail:
int lp_config_read_file(LpConfig *lpconfig, const char *filename){
char* path = lp_realpath(filename, NULL);
int fd=-1;
- bctbx_vfs_file_t* pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs, path, "r");
+ bctbx_vfs_file_t* pFile = bctbx_file_open(lpconfig->g_bctbx_vfs, path, "r");
fd = pFile->fd;
if (fd != -1){
ms_message("Reading config information from %s", path);
@@ -801,7 +802,7 @@ int lp_config_sync(LpConfig *lpconfig){
/* don't create group/world-accessible files */
(void) umask(S_IRWXG | S_IRWXO);
#endif
- pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "w");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "w");
lpconfig->pFile = pFile;
fd = pFile->fd;
if (fd == -1 ){
@@ -942,7 +943,7 @@ bool_t lp_config_relative_file_exists(const LpConfig *lpconfig, const char *file
if(realfilepath == NULL) return FALSE;
- pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath, "r");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath, "r");
ms_free(realfilepath);
if (pFile->fd != -1) {
bctbx_file_close(pFile);
@@ -975,7 +976,7 @@ void lp_config_write_relative_file(const LpConfig *lpconfig, const char *filenam
goto end;
}
- pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath, "w");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath, "w");
fd = pFile->fd;
if(fd == -1) {
@@ -1011,7 +1012,7 @@ int lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename,
goto err;
}
- pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath,"r");
+ pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath,"r");
if (pFile !=NULL)
fd = pFile->fd;
@@ -1096,3 +1097,24 @@ char* lp_config_dump(const LpConfig *lpconfig) {
return buffer;
}
+
+void lp_config_clean_entry(LpConfig *lpconfig, const char *section, const char *key) {
+ LpSection *sec;
+ LpItem *item;
+ sec=lp_config_find_section(lpconfig,section);
+ if (sec!=NULL){
+ item=lp_section_find_item(sec,key);
+ if (item!=NULL)
+ lp_section_remove_item(sec,item);
+ }
+ return ;
+}
+int lp_config_has_entry(const LpConfig *lpconfig, const char *section, const char *key) {
+ LpSection *sec;
+ sec=lp_config_find_section(lpconfig,section);
+ if (sec!=NULL){
+ return lp_section_find_item(sec,key) != NULL;
+ } else
+ return FALSE;
+
+}
diff --git a/coreapi/lpconfig.h b/coreapi/lpconfig.h
index feae2a88d..2e3a99d60 100644
--- a/coreapi/lpconfig.h
+++ b/coreapi/lpconfig.h
@@ -213,6 +213,26 @@ LINPHONE_PUBLIC int lp_config_has_section(const LpConfig *lpconfig, const char *
**/
LINPHONE_PUBLIC void lp_config_clean_section(LpConfig *lpconfig, const char *section);
+/**
+ * Returns 1 if a given section with a given key is present in the configuration.
+ * @param[in] lpconfig The LpConfig object
+ * @param[in] section
+ * @param[in] key
+ *
+ * @ingroup misc
+ **/
+LINPHONE_PUBLIC int lp_config_has_entry(const LpConfig *lpconfig, const char *section, const char *key);
+
+/**
+ * Removes entries for key,value in a section.
+ * @param[in] lpconfig The LpConfig object
+ * @param[in] section
+ * @param[in] key
+ *
+ * @ingroup misc
+ **/
+LINPHONE_PUBLIC void lp_config_clean_entry(LpConfig *lpconfig, const char *section, const char *key);
+
/**
* Returns the list of sections' names in the LpConfig.
* @param[in] lpconfig The LpConfig object
diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c
index 7787734f4..997c7f108 100644
--- a/coreapi/message_storage.c
+++ b/coreapi/message_storage.c
@@ -28,8 +28,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#endif
#ifndef _WIN32
-#if !defined(ANDROID) && !defined(__QNXNTO__)
+#if !defined(__QNXNTO__)
# include
+# include
# include
# include
#endif
@@ -42,28 +43,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "sqlite3.h"
#include
-int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) {
- char* errmsg = NULL;
- int ret;
-#if defined(ANDROID) || defined(__QNXNTO__)
- ret = sqlite3_open(db_file, db);
-#elif TARGET_OS_IPHONE
- /* the secured filesystem of the iPHone doesn't allow writing while the app is in background mode, which is problematic.
- * We workaround by asking that the open is made with no protection*/
- ret = sqlite3_open_v2(db_file, db, SQLITE_OPEN_FILEPROTECTION_NONE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE, NULL);
-#elif defined(_WIN32)
- wchar_t db_file_utf16[MAX_PATH_SIZE];
- ret = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, db_file, -1, db_file_utf16, MAX_PATH_SIZE);
- if(ret == 0) db_file_utf16[0] = '\0';
- ret = sqlite3_open16(db_file_utf16, db);
+static char *utf8_convert(const char *filename){
+ char db_file_utf8[MAX_PATH_SIZE] = "";
+#if defined(_WIN32)
+ wchar_t db_file_utf16[MAX_PATH_SIZE]={0};
+ MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, filename, -1, db_file_utf16, MAX_PATH_SIZE);
+ WideCharToMultiByte(CP_UTF8, 0, db_file_utf16, -1, db_file_utf8, sizeof(db_file_utf8), NULL, NULL);
#else
char db_file_locale[MAX_PATH_SIZE] = {'\0'};
- char db_file_utf8[MAX_PATH_SIZE] = "";
char *inbuf=db_file_locale, *outbuf=db_file_utf8;
size_t inbyteleft = MAX_PATH_SIZE, outbyteleft = MAX_PATH_SIZE;
iconv_t cb;
- strncpy(db_file_locale, db_file, MAX_PATH_SIZE-1);
+ strncpy(db_file_locale, filename, MAX_PATH_SIZE-1);
cb = iconv_open("UTF-8", nl_langinfo(CODESET));
if(cb != (iconv_t)-1) {
int ret;
@@ -71,8 +63,26 @@ int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) {
if(ret == -1) db_file_utf8[0] = '\0';
iconv_close(cb);
}
- ret = sqlite3_open(db_file_utf8, db);
#endif
+ return ms_strdup(db_file_utf8);
+}
+
+
+int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) {
+ char* errmsg = NULL;
+ int ret;
+ int flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE;
+
+#if TARGET_OS_IPHONE
+ /* the secured filesystem of the iPHone doesn't allow writing while the app is in background mode, which is problematic.
+ * We workaround by asking that the open is made with no protection*/
+ flags |= SQLITE_OPEN_FILEPROTECTION_NONE;
+#endif
+
+ char *utf8_filename = utf8_convert(db_file);
+ ret = sqlite3_open_v2(utf8_filename, db, flags, LINPHONE_SQLITE3_VFS);
+ ms_free(utf8_filename);
+
if (ret != SQLITE_OK) return ret;
// Some platforms do not provide a way to create temporary files which are needed
// for transactions... so we work in memory only
@@ -662,7 +672,7 @@ void linphone_core_message_storage_init(LinphoneCore *lc){
int ret;
const char *errmsg;
sqlite3 *db = NULL;
- sqlite3_bctbx_vfs_register(1);
+
linphone_core_message_storage_close(lc);
ret=_linphone_sqlite3_open(lc->chat_db_file,&db);
diff --git a/coreapi/private.h b/coreapi/private.h
index 365e0c9e4..3f614b16a 100644
--- a/coreapi/private.h
+++ b/coreapi/private.h
@@ -38,6 +38,7 @@
#include "vcard.h"
#include
+#include
#include
#include
@@ -53,9 +54,6 @@
#include "upnp.h"
#endif //BUILD_UPNP
-#ifdef SQLITE_STORAGE_ENABLED
-#include "sqlite3.h"
-#endif
#ifndef LIBLINPHONE_VERSION
#define LIBLINPHONE_VERSION LINPHONE_VERSION
@@ -123,6 +121,11 @@
#include
#include
+
+#ifdef SQLITE_STORAGE_ENABLED
+#include
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -589,7 +592,6 @@ int linphone_chat_room_upload_file(LinphoneChatMessage *msg);
void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage *msg);
LinphoneChatMessageCbs *linphone_chat_message_cbs_new(void);
LinphoneChatRoom *_linphone_core_create_chat_room_from_call(LinphoneCall *call);
-bool_t linphone_chat_room_lime_enabled(LinphoneChatRoom *cr);
/**/
struct _LinphoneProxyConfig
@@ -1540,6 +1542,8 @@ int linphone_core_get_default_proxy_config_index(LinphoneCore *lc);
char *linphone_presence_model_to_xml(LinphonePresenceModel *model) ;
+#define LINPHONE_SQLITE3_VFS "sqlite3bctbx_vfs"
+
#ifdef __cplusplus
}
#endif
diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c
index 940dfff2b..ae9d4e869 100644
--- a/coreapi/sqlite3_bctbx_vfs.c
+++ b/coreapi/sqlite3_bctbx_vfs.c
@@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef SQLITE_STORAGE_ENABLED
+#include "private.h"
#include "sqlite3_bctbx_vfs.h"
#include
@@ -36,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static int sqlite3bctbx_Close(sqlite3_file *p){
int ret;
- sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p;
+ sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p;
ret = bctbx_file_close(pFile->pbctbx_file);
if (!ret){
@@ -64,18 +65,17 @@ static int sqlite3bctbx_Close(sqlite3_file *p){
*/
static int sqlite3bctbx_Read(sqlite3_file *p, void *buf, int count, sqlite_int64 offset){
int ret;
- sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p;
+ sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p;
if (pFile){
ret = bctbx_file_read(pFile->pbctbx_file, buf, count, offset);
if( ret==count ){
return SQLITE_OK;
}
else if( ret >= 0 ){
-
+ /*fill in unread portion of buffer, as requested by sqlite3 documentation*/
+ memset(((uint8_t*)buf) + ret, 0, count-ret);
return SQLITE_IOERR_SHORT_READ;
- }
-
- else {
+ }else {
return SQLITE_IOERR_READ;
}
@@ -93,7 +93,7 @@ static int sqlite3bctbx_Read(sqlite3_file *p, void *buf, int count, sqlite_int64
* @return SQLITE_OK on success, SQLITE_IOERR_WRITE if an error occurred.
*/
static int sqlite3bctbx_Write(sqlite3_file *p, const void *buf, int count, sqlite_int64 offset){
- sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p;
+ sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p;
int ret;
if (pFile ){
ret = bctbx_file_write(pFile->pbctbx_file, buf, count, offset);
@@ -116,7 +116,7 @@ static int sqlite3bctbx_Write(sqlite3_file *p, const void *buf, int count, sqlit
static int sqlite3bctbx_FileSize(sqlite3_file *p, sqlite_int64 *pSize){
int rc; /* Return code from fstat() call */
- sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p;
+ sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p;
if (pFile->pbctbx_file){
rc = bctbx_file_size(pFile->pbctbx_file);
if( rc < 0 ) {
@@ -157,7 +157,9 @@ static int sqlite3bctbx_DeviceCharacteristics(sqlite3_file *p){
* @return SQLITE_OK on success, SALITE_NOTFOUND otherwise.
*/
static int sqlite3bctbx_FileControl(sqlite3_file *p, int op, void *pArg){
+#ifdef SQLITE_FCNTL_MMAP_SIZE
if (op == SQLITE_FCNTL_MMAP_SIZE) return SQLITE_OK;
+#endif
return SQLITE_NOTFOUND;
}
@@ -205,13 +207,16 @@ static int sqlite3bctbx_nolockUnlock(sqlite3_file *pUnused, int unused){
* @return SQLITE_OK on success, SLITE_IOERR_FSYNC if an error occurred.
*/
static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){
- sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*)p;
- int rc;
-
- rc = fsync(pFile->pbctbx_file->fd);
- return (rc==0 ? SQLITE_OK : SQLITE_IOERR_FSYNC);
+ sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*)p;
+#if _WIN32
+ return (FlushFileBuffers(pFile->pbctbx_file->fd) ? SQLITE_OK : SQLITE_IOERR_FSYNC);
+#else
+ int rc = fsync(pFile->pbctbx_file->fd);
+ return (rc==0 ? SQLITE_OK : SQLITE_IOERR_FSYNC);
+#endif
}
+/************************ END OF PLACE HOLDER FUNCTIONS ***********************/
/**
* Opens the file fName and populates the structure pointed by p
@@ -243,7 +248,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file
sqlite3bctbx_DeviceCharacteristics,
};
- sqlite3_bctbx_file * pFile = (sqlite3_bctbx_file*)p; /*File handle sqlite3_bctbx_file*/
+ sqlite3_bctbx_file_t * pFile = (sqlite3_bctbx_file_t*)p; /*File handle sqlite3_bctbx_file_t*/
int openFlags = 0;
@@ -258,7 +263,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file
if( flags&SQLITE_OPEN_READONLY ) openFlags |= O_RDONLY;
if( flags&SQLITE_OPEN_READWRITE ) openFlags |= O_RDWR;
- pFile->pbctbx_file = bctbx_file_create_and_open2(bc_create_vfs(), fName, openFlags);
+ pFile->pbctbx_file = bctbx_file_open2(bctbx_vfs_get_default(), fName, openFlags);
if( pFile->pbctbx_file == NULL){
return SQLITE_CANTOPEN;
}
@@ -267,40 +272,19 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file
*pOutFlags = flags;
}
pFile->base.pMethods = &sqlite3_bctbx_io;
- pFile->pbctbx_file->filename = (char*)fName;
return SQLITE_OK;
}
-/**
- * Returns a sqlite3_vfs pointer to the VFS named sqlite3bctbx_vfs
- * implemented in this file.
- * Methods not implemented:
- * xDelete
- * xAccess
- * xFullPathname
- * xDlOpen
- * xDlError
- * xDlSym
- * xDlClose
- * xRandomness
- * xSleep
- * xCurrentTime , xCurrentTimeInt64,
- * xGetLastError
- * xGetSystemCall
- * xSetSystemCall
- * xNextSystemCall
- * To make the VFS available to SQLite
- * @return Pointer to bctbx_vfs.
- */
+
sqlite3_vfs *sqlite3_bctbx_vfs_create(void){
static sqlite3_vfs bctbx_vfs = {
1, /* iVersion */
- sizeof(sqlite3_bctbx_file), /* szOsFile */
+ sizeof(sqlite3_bctbx_file_t), /* szOsFile */
MAXPATHNAME, /* mxPathname */
0, /* pNext */
- "sqlite3bctbx_vfs", /* zName */
+ LINPHONE_SQLITE3_VFS, /* zName */
0, /* pAppData */
sqlite3bctbx_Open, /* xOpen */
0, /* xDelete */
@@ -318,17 +302,13 @@ sqlite3_vfs *sqlite3_bctbx_vfs_create(void){
}
-/**
- * Registers sqlite3bctbx_vfs to SQLite VFS. If makeDefault is 1,
- * the VFS will be used by default.
- * Methods not implemented by sqlite3_bctbx_vfs are initialized to the one
- * used by the unix-none VFS where all locking file operations are no-ops.
- * @param makeDefault set to 1 to make the newly registered VFS be the default one, set to 0 instead.
- */
void sqlite3_bctbx_vfs_register( int makeDefault){
sqlite3_vfs* pVfsToUse = sqlite3_bctbx_vfs_create();
+ #if _WIN32
+ sqlite3_vfs* pDefault = sqlite3_vfs_find("win32");
+ #else
sqlite3_vfs* pDefault = sqlite3_vfs_find("unix-none");
-
+ #endif
pVfsToUse->xAccess = pDefault->xAccess;
pVfsToUse->xCurrentTime = pDefault->xCurrentTime;
@@ -340,24 +320,21 @@ void sqlite3_bctbx_vfs_register( int makeDefault){
/*Functions below should not be a problem sincve we are declaring ourselves
in version 1 */
- /* used in version 2 */
- pVfsToUse->xCurrentTimeInt64 = pDefault->xCurrentTimeInt64;
- /* used in version 3 */
- pVfsToUse->xGetSystemCall = pDefault->xGetSystemCall;
- pVfsToUse->xSetSystemCall = pDefault->xSetSystemCall;
- pVfsToUse->xNextSystemCall = pDefault->xNextSystemCall;
+ /* used in version 2
+ xCurrentTimeInt64;*/
+ /* used in version 3
+ xGetSystemCall
+ xSetSystemCall
+ xNextSystemCall*/
sqlite3_vfs_register(pVfsToUse, makeDefault);
}
-/**
- * Unregisters sqlite3bctbx_vfs from SQLite.
- */
void sqlite3_bctbx_vfs_unregister(void)
{
- sqlite3_vfs* pVfs = sqlite3_vfs_find("sqlite3bctbx_vfs");
+ sqlite3_vfs* pVfs = sqlite3_vfs_find(LINPHONE_SQLITE3_VFS);
sqlite3_vfs_unregister(pVfs);
}
diff --git a/coreapi/sqlite3_bctbx_vfs.h b/coreapi/sqlite3_bctbx_vfs.h
index 001c1b142..0b1fb9d8a 100644
--- a/coreapi/sqlite3_bctbx_vfs.h
+++ b/coreapi/sqlite3_bctbx_vfs.h
@@ -1,5 +1,5 @@
/*
-sqlite3_bctbx_vfs.h
+sqlite3_bctbx_vfs_t.h
Copyright (C) 2016 Belledonne Communications SARL
This program is free software; you can redistribute it and/or
@@ -17,15 +17,18 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef sqlite3_bctx_vfs_h
+#define sqlite3_bctx_vfs_h
+
#include
#include
#include
#include
-#include
-#include "sqlite3.h"
#include
+#include "sqlite3.h"
+
/*
** The maximum pathname length supported by this VFS.
@@ -34,10 +37,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/**
- * sqlite3_bctbx_file VFS file structure.
+ * sqlite3_bctbx_file_t VFS file structure.
*/
-typedef struct sqlite3_bctbx_file sqlite3_bctbx_file;
-struct sqlite3_bctbx_file {
+typedef struct sqlite3_bctbx_file_t sqlite3_bctbx_file_t;
+struct sqlite3_bctbx_file_t {
sqlite3_file base; /* Base class. Must be first. */
bctbx_vfs_file_t* pbctbx_file;
};
@@ -48,9 +51,9 @@ struct sqlite3_bctbx_file {
* Very simple VFS structure based on sqlite3_vfs.
* Only the Open function is implemented,
*/
-typedef struct sqlite3_bctbx_vfs sqlite3_bctbx_vfs;
-struct sqlite3_bctbx_vfs {
- sqlite3_bctbx_vfs *pNext; /* Next registered VFS */
+typedef struct sqlite3_bctbx_vfs_t sqlite3_bctbx_vfs_t;
+struct sqlite3_bctbx_vfs_t {
+ sqlite3_bctbx_vfs_t *pNext; /* Next registered VFS */
const char *vfsName; /* Virtual file system name */
int (*xOpen)(sqlite3_vfs* pVfs, const char *fName, sqlite3_file *pFile,int flags, int *pOutFlags);
@@ -60,6 +63,43 @@ struct sqlite3_bctbx_vfs {
/****************************************************
VFS API to register this VFS to sqlite3 VFS
*****************************************************/
+
+/**
+ * Returns a sqlite3_vfs pointer to the VFS named sqlite3bctbx_vfs
+ * implemented in this file.
+ * Methods not implemented:
+ * xDelete
+ * xAccess
+ * xFullPathname
+ * xDlOpen
+ * xDlError
+ * xDlSym
+ * xDlClose
+ * xRandomness
+ * xSleep
+ * xCurrentTime , xCurrentTimeInt64,
+ * xGetLastError
+ * xGetSystemCall
+ * xSetSystemCall
+ * xNextSystemCall
+ * To make the VFS available to SQLite
+ * @return Pointer to bctbx_vfs.
+ */
sqlite3_vfs *sqlite3_bctbx_vfs_create(void);
+
+/**
+ * Registers sqlite3bctbx_vfs to SQLite VFS. If makeDefault is 1,
+ * the VFS will be used by default.
+ * Methods not implemented by sqlite3_bctbx_vfs_t are initialized to the one
+ * used by the unix-none VFS where all locking file operations are no-ops.
+ * @param makeDefault set to 1 to make the newly registered VFS be the default one, set to 0 instead.
+ */
void sqlite3_bctbx_vfs_register(int makeDefault);
-void sqlite3_bctbx_vfs_unregister(void);
\ No newline at end of file
+
+
+/**
+ * Unregisters sqlite3bctbx_vfs from SQLite.
+ */
+void sqlite3_bctbx_vfs_unregister(void);
+
+#endif
diff --git a/gtk/chat.c b/gtk/chat.c
index 8b5e8b289..2a2287b2c 100644
--- a/gtk/chat.c
+++ b/gtk/chat.c
@@ -180,7 +180,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from,
g_object_set_data(G_OBJECT(w),"from_message",g_strdup(from_str));
}
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;
@@ -216,7 +216,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from,
if(tnow_day != tm->tm_yday || (tnow_day == tm->tm_yday && tnow_year != tm->tm_year)) {
strftime(buf,80,"%a %x, %H:%M",tm);
} else {
- strftime(buf,80,"%H:%M",tm);
+ strftime(buf,80,"%H:%M:%S",tm);
}
gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1,"status", me ? "me" : NULL, NULL);
break;
@@ -267,7 +267,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag
case LinphoneChatMessageStateDelivered:
t=time(NULL);
tm=localtime(&t);
- strftime(buf,80,"%H:%M",tm);
+ strftime(buf,80,"%H:%M:%S",tm);
gtk_text_buffer_insert_with_tags_by_name(b,&iter,(gchar*)buf,-1,"status", "me", NULL);
break;
case LinphoneChatMessageStateNotDelivered:
@@ -468,6 +468,15 @@ static gboolean copy_uri_into_clipboard_handler(GtkMenuItem *menuitem, gpointer
return FALSE;
}
+static void refresh_lime_icon(GtkWidget* chat_view, LinphoneChatRoom*cr) {
+ GtkWidget *lime_icon = linphone_gtk_get_widget(chat_view, "lime_icon");
+ if (linphone_chat_room_lime_available(cr)) {
+ gtk_widget_show(lime_icon);
+ } else {
+ gtk_widget_hide(lime_icon);
+ }
+}
+
static gint linphone_gtk_window_focused(GtkWidget* widget, GdkEvent *event, gpointer user_data) {
// if we are in a chat, mark it as read
GtkWidget *main_window=linphone_gtk_get_main_window();
@@ -477,6 +486,7 @@ static gint linphone_gtk_window_focused(GtkWidget* widget, GdkEvent *event, gpoi
if (cr) {
linphone_gtk_mark_chat_read(cr);
}
+ refresh_lime_icon(w, cr);
return FALSE;
}
@@ -559,6 +569,8 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres
gtk_signal_connect(GTK_OBJECT(main_window), "focus-in-event", GTK_SIGNAL_FUNC(linphone_gtk_window_focused), NULL);
+ refresh_lime_icon(chat_view, cr);
+
return chat_view;
}
@@ -595,6 +607,8 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,
gtk_text_buffer_get_end_iter(text_buffer,&end);
gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0);
}
+ refresh_lime_icon(chat_view, cr);
+
ms_free(from_str);
ms_free(uri_str);
ms_free(uri_only);
diff --git a/gtk/chatroom_frame.ui b/gtk/chatroom_frame.ui
index 9f5b66ef7..d7b8137a3 100644
--- a/gtk/chatroom_frame.ui
+++ b/gtk/chatroom_frame.ui
@@ -37,6 +37,20 @@
diff --git a/include/sal/sal.h b/include/sal/sal.h
index 0fa288ea0..b885cf6a1 100644
--- a/include/sal/sal.h
+++ b/include/sal/sal.h
@@ -508,6 +508,7 @@ typedef void (*SalOnSubscribePresenceClosed)(SalOp *salop, const char *from);
typedef void (*SalOnPingReply)(SalOp *salop);
typedef void (*SalOnInfoReceived)(SalOp *salop, SalBodyHandler *body);
typedef void (*SalOnPublishResponse)(SalOp *salop);
+typedef void (*SalOnNotifyResponse)(SalOp *salop);
typedef void (*SalOnExpire)(SalOp *salop);
/*allows sal implementation to access auth info if available, return TRUE if found*/
@@ -546,6 +547,7 @@ typedef struct SalCallbacks{
SalOnInfoReceived info_received;
SalOnPublishResponse on_publish_response;
SalOnExpire on_expire;
+ SalOnNotifyResponse on_notify_response;
}SalCallbacks;
@@ -700,6 +702,8 @@ void sal_error_info_set(SalErrorInfo *ei, SalReason reason, int code, const char
/*entity tag used for publish (see RFC 3903)*/
const char *sal_op_get_entity_tag(const SalOp* op);
void sal_op_set_entity_tag(SalOp *op, const char* entity_tag);
+/*set the event header, for used with out of dialog SIP notify*/
+void sal_op_set_event(SalOp *op, const char *event);
/*Call API*/
int sal_call_set_local_media_description(SalOp *h, SalMediaDescription *desc);
diff --git a/mediastreamer2 b/mediastreamer2
index ba1083047..9dbf6cd97 160000
--- a/mediastreamer2
+++ b/mediastreamer2
@@ -1 +1 @@
-Subproject commit ba1083047f6ec4e812fb3f6c13facb33ce4ab407
+Subproject commit 9dbf6cd9723f359b8b1bc0fe2a06a3de5100e2ad
diff --git a/oRTP b/oRTP
index 5d4738492..846174f90 160000
--- a/oRTP
+++ b/oRTP
@@ -1 +1 @@
-Subproject commit 5d4738492a9fd1018ad2508c1b7729766e980b29
+Subproject commit 846174f901b264e50c6dfb0f8c81fffffed90c52
diff --git a/po/ar.po b/po/ar.po
index 69b2dfb11..6fff00113 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Arabic (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ar/)\n"
@@ -2047,16 +2047,16 @@ msgstr "خدمة غير متاحة، تجري الإعادة"
msgid "Authentication token is %s"
msgstr "شارة التحقق من الهوية هي %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "لم تُعدَّل معاملات المكالمات : %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "عُدِّلت معاملات المكالمات بنجاج."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/cs.po b/po/cs.po
index e099b19d2..70d394fa7 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Czech (http://www.transifex.com/belledonne-communications/linphone-gtk/language/cs/)\n"
@@ -2038,16 +2038,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr "Klíč k ověření totožnosti je %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/de.po b/po/de.po
index 4c99e91c5..50aef056b 100644
--- a/po/de.po
+++ b/po/de.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: German (http://www.transifex.com/belledonne-communications/linphone-gtk/language/de/)\n"
@@ -2038,16 +2038,16 @@ msgstr "Service nicht verfügbar, versuche erneut"
msgid "Authentication token is %s"
msgstr "Authentifizierungs-Token ist %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Anrufparameter konnten nicht geändert werden: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Anrufparameter wurden erfolgreich geändert."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/es.po b/po/es.po
index 0d3cfb6af..d166e8cb1 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Spanish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/es/)\n"
@@ -2034,16 +2034,16 @@ msgstr "Servicio no disponible, reintentando"
msgid "Authentication token is %s"
msgstr "El tóken de autenticación es%s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Parámetros de llamada no pudieron ser modificados: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Parámetros de llamada modificados correctamente."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/fi.po b/po/fi.po
index 3361e2d15..5f8ffbe18 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Finnish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fi/)\n"
@@ -2034,16 +2034,16 @@ msgstr "Palvelin saavuttamattomissa, uudelleen yritetään"
msgid "Authentication token is %s"
msgstr "Todennus merkki on %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Soiton raja-arvoja ei voitu muokata: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Soiton raja-arvot ovat onnistuneesti muokattu."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/fr.po b/po/fr.po
index ad7beb948..0b8c6ae59 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,15 +4,15 @@
#
# Translators:
# Belledonne Communications , 2015-2016
-# Gautier Pelloux-Prayer , 2014
-# Gautier Pelloux-Prayer , 2014
-# Gautier Pelloux-Prayer , 2014-2016
+# Gautier Pelloux , 2014
+# Gautier Pelloux , 2014
+# Gautier Pelloux , 2014-2016
# Simon Morlat , 2001
msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:59+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: French (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fr/)\n"
@@ -2038,16 +2038,16 @@ msgstr "Service indisponible, nouvelle tentative"
msgid "Authentication token is %s"
msgstr "Le jeton d'authentification est %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Les paramètres d'appel n'ont pas pu être modifiés : %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Les paramètres d'appel ont été modifiés avec succès."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/he.po b/po/he.po
index 28b648bfe..bb53d7e06 100644
--- a/po/he.po
+++ b/po/he.po
@@ -4,7 +4,7 @@
#
# Translators:
# Eli Zaretskii , 2012
-# Gautier Pelloux-Prayer , 2015
+# Gautier Pelloux , 2015
# GenghisKhan , 2014
# GenghisKhan , 2014,2016
# GenghisKhan , 2012-2013
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Hebrew (http://www.transifex.com/belledonne-communications/linphone-gtk/language/he/)\n"
@@ -2038,16 +2038,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr "אות האימות הינה %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/hu.po b/po/hu.po
index daa8b8909..bee6d8fdf 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Hungarian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/hu/)\n"
@@ -2034,16 +2034,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr "Hitelesítési jel: %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/it.po b/po/it.po
index c22d60aac..63dc17acb 100644
--- a/po/it.po
+++ b/po/it.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Italian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/it/)\n"
@@ -2035,16 +2035,16 @@ msgstr "Servizio non disponibile, nuovo tentativo in corso"
msgid "Authentication token is %s"
msgstr "Il codice di autenticazione è %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "I parametri della chiamata sono stati modificati con successo: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "I parametri della chiamata sono stati modificati con successo."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/ja.po b/po/ja.po
index dac47a32a..851003f4e 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Japanese (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ja/)\n"
@@ -2032,16 +2032,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/lt.po b/po/lt.po
index 8a9ead05e..70a798dbf 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Lithuanian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/lt/)\n"
@@ -2037,16 +2037,16 @@ msgstr "Paslauga neprieinama, bandoma iš naujo"
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Nepavyko modifikuoti skambučio parametrų: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Skambučio parametrai buvo sėkmingai modifikuoti."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/nb_NO.po b/po/nb_NO.po
index a080f28ff..87aff17c0 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nb_NO/)\n"
@@ -2034,16 +2034,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/nl.po b/po/nl.po
index d6f2d22a9..a833e03b7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Dutch (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nl/)\n"
@@ -2034,16 +2034,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/pl.po b/po/pl.po
index f7b85227f..00d4e22cd 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Polish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pl/)\n"
@@ -2036,16 +2036,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 840ff80e5..2fa82eac4 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pt_BR/)\n"
@@ -2033,16 +2033,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/ru.po b/po/ru.po
index c89042ca3..294f2f35a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
-"PO-Revision-Date: 2016-05-10 09:58+0000\n"
-"Last-Translator: Belledonne Communications \n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
+"PO-Revision-Date: 2016-05-10 12:36+0000\n"
+"Last-Translator: AlexL \n"
"Language-Team: Russian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -2044,16 +2044,16 @@ msgstr "Сервис недоступен, повтор"
msgid "Authentication token is %s"
msgstr "Маркер проверки подлинности: %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Параметры звонка не были изменены: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Параметры звонка были успешно изменены."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
@@ -2099,4 +2099,4 @@ msgstr "Невозможно воспроизвести %s."
#: ../gtk/videowindow.c:252
msgid "Take screenshot"
-msgstr ""
+msgstr "Сделать скриншот"
diff --git a/po/sr.po b/po/sr.po
index 5b81e540d..eb96493a2 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Serbian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sr/)\n"
@@ -2037,16 +2037,16 @@ msgstr "Услуга није доступна, поново покушавам"
msgid "Authentication token is %s"
msgstr "Симбол потврђивања идентитета је „%s“"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Параметри позива не могу бити измењени: %s."
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Параметри позива су успешно измењени."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/sv.po b/po/sv.po
index 03816e5ce..983966d5a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Swedish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sv/)\n"
@@ -2035,16 +2035,16 @@ msgstr "Tjänst ej tillgänglig, försöker igen"
msgid "Authentication token is %s"
msgstr "Autentiseringstecken är %s"
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr "Samtalsparametrar kunde inte ändras: %s"
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr "Samtalsparametrar ändrades framgångsrikt."
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/tr.po b/po/tr.po
index 8fb11ee8f..4b27eecfa 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Turkish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/tr/)\n"
@@ -2035,16 +2035,16 @@ msgstr "Servis kullanımdışı, tekrar deneyin"
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c52be6fd2..3ae8176a3 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Chinese (China) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_CN/)\n"
@@ -2030,16 +2030,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 7c095bb7b..581911162 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: linphone-gtk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-10 11:54+0200\n"
+"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 09:58+0000\n"
"Last-Translator: Belledonne Communications \n"
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_TW/)\n"
@@ -2030,16 +2030,16 @@ msgstr ""
msgid "Authentication token is %s"
msgstr ""
-#: ../coreapi/linphonecall.c:1646
+#: ../coreapi/linphonecall.c:1663
#, c-format
msgid "Call parameters could not be modified: %s."
msgstr ""
-#: ../coreapi/linphonecall.c:1648
+#: ../coreapi/linphonecall.c:1665
msgid "Call parameters were successfully modified."
msgstr ""
-#: ../coreapi/linphonecall.c:4619
+#: ../coreapi/linphonecall.c:4636
#, c-format
msgid "You have missed %i call."
msgid_plural "You have missed %i calls."
diff --git a/tester/call_tester.c b/tester/call_tester.c
index 2cdfc4686..57cf3086f 100644
--- a/tester/call_tester.c
+++ b/tester/call_tester.c
@@ -5799,6 +5799,9 @@ static void _call_with_network_switch(bool_t use_ice, bool_t with_socket_refresh
/*pauline shall be able to end the call without problem now*/
end_call(pauline, marie);
end:
+ if (pauline_params) {
+ linphone_call_params_unref(pauline_params);
+ }
ms_list_free(lcs);
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
diff --git a/tester/eventapi_tester.c b/tester/eventapi_tester.c
index 170d749df..9ddf99ff6 100644
--- a/tester/eventapi_tester.c
+++ b/tester/eventapi_tester.c
@@ -39,7 +39,7 @@ void linphone_notify_received(LinphoneCore *lc, LinphoneEvent *lev, const char *
LinphoneCoreManager *mgr;
const char * ua = linphone_event_get_custom_header(lev, "User-Agent");
if (!BC_ASSERT_PTR_NOT_NULL(content)) return;
- if (!linphone_content_is_multipart(content) && (!ua || !strstr(ua, "flexisip"))) { /*disable check for full presence serveur support*/
+ if (!linphone_content_is_multipart(content) && (!ua || !strstr(ua, "flexisip"))) { /*disable check for full presence server support*/
/*hack to disable content checking for list notify */
BC_ASSERT_STRING_EQUAL(notify_content,(const char*)linphone_content_get_buffer(content));
}
@@ -358,6 +358,35 @@ static void publish_without_expires(void){
publish_test_with_args(TRUE,-1);
}
+static void out_of_dialog_notify(void){
+ LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
+ LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc");
+ LinphoneContent* content;
+ LinphoneEvent *lev;
+ MSList* lcs=ms_list_append(NULL,marie->lc);
+ lcs=ms_list_append(lcs,pauline->lc);
+
+ content = linphone_core_create_content(marie->lc);
+ linphone_content_set_type(content,"application");
+ linphone_content_set_subtype(content,"somexml");
+ linphone_content_set_buffer(content,notify_content,strlen(notify_content));
+
+ lev = linphone_core_create_notify(marie->lc,pauline->identity,"dodo");
+ linphone_event_ref(lev);
+ linphone_event_add_custom_header(lev,"CustomHeader","someValue");
+ linphone_event_notify(lev,content);
+
+
+ BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_NotifyReceived,1,3000));
+ BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionTerminated,1,3000));
+
+ linphone_event_unref(lev);
+
+ linphone_content_unref(content);
+ linphone_core_manager_destroy(marie);
+ linphone_core_manager_destroy(pauline);
+}
+
test_t event_tests[] = {
TEST_ONE_TAG("Subscribe declined", subscribe_test_declined, "presence"),
TEST_ONE_TAG("Subscribe terminated by subscriber", subscribe_test_terminated_by_subscriber, "presence"),
@@ -367,7 +396,8 @@ test_t event_tests[] = {
TEST_ONE_TAG("Subscribe terminated by notifier", subscribe_test_terminated_by_notifier, "LeaksMemory"),
TEST_ONE_TAG("Publish", publish_test, "presence"),
TEST_ONE_TAG("Publish without expires", publish_without_expires, "presence"),
- TEST_ONE_TAG("Publish without automatic refresh",publish_no_auto_test, "presence")
+ TEST_ONE_TAG("Publish without automatic refresh",publish_no_auto_test, "presence"),
+ TEST_ONE_TAG("Out of dialog notify", out_of_dialog_notify, "presence")
};
test_suite_t event_test_suite = {"Event", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each,
diff --git a/tester/liblinphone_tester.c b/tester/liblinphone_tester.c
index 684654e88..bbd1052bf 100644
--- a/tester/liblinphone_tester.c
+++ b/tester/liblinphone_tester.c
@@ -229,6 +229,8 @@ int main (int argc, char *argv[])
liblinphone_tester_keep_recorded_files(TRUE);
} else if (strcmp(argv[i],"--disable-leak-detector")==0){
liblinphone_tester_disable_leak_detector(TRUE);
+ } else if (strcmp(argv[i],"--6")==0){
+ liblinphonetester_ipv6=TRUE;
} else {
int bret = bc_tester_parse_args(argc, argv, i);
if (bret>0) {
diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h
index 9cc244ad8..7c17d7231 100644
--- a/tester/liblinphone_tester.h
+++ b/tester/liblinphone_tester.h
@@ -60,7 +60,9 @@ extern test_suite_t video_test_suite;
extern test_suite_t multicast_call_test_suite;
extern test_suite_t multi_call_test_suite;
extern test_suite_t proxy_config_test_suite;
+#ifdef VCARD_ENABLED
extern test_suite_t vcard_test_suite;
+#endif
extern test_suite_t audio_bypass_suite;
#if HAVE_SIPP
extern test_suite_t complex_sip_call_test_suite;
@@ -106,7 +108,7 @@ extern const char* test_username;
extern const char* test_password;
extern const char* test_route;
extern const char* userhostsfile;
-
+extern bool_t liblinphonetester_ipv6;
typedef struct _stats {
int number_of_LinphoneRegistrationNone;
@@ -193,7 +195,7 @@ typedef struct _stats {
int number_of_LinphonePresenceActivityWorking;
int number_of_LinphonePresenceActivityWorship;
const LinphonePresenceModel *last_received_presence;
-
+
int number_of_LinphonePresenceBasicStatusOpen;
int number_of_LinphonePresenceBasicStatusClosed;
diff --git a/tester/tester.c b/tester/tester.c
index c932f68ce..315428bc1 100644
--- a/tester/tester.c
+++ b/tester/tester.c
@@ -53,6 +53,7 @@ const char* test_username="liblinphone_tester";
const char* test_password="secret";
const char* test_route="sip2.linphone.org";
const char *userhostsfile = "tester_hosts";
+bool_t liblinphonetester_ipv6 = FALSE;
const char *liblinphone_tester_mire_id="Mire: Mire (synthetic moving picture)";
@@ -148,7 +149,9 @@ LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, c
linphone_core_set_ringback(lc, ringbackpath);
linphone_core_set_root_ca(lc,rootcapath);
}
-
+
+ linphone_core_enable_ipv6(lc, liblinphonetester_ipv6);
+
sal_enable_test_features(lc->sal,TRUE);
sal_set_dns_user_hosts_file(lc->sal, dnsuserhostspath);
linphone_core_set_static_picture(lc,nowebcampath);
@@ -496,7 +499,9 @@ void liblinphone_tester_add_suites() {
#if HAVE_SIPP
bc_tester_add_suite(&complex_sip_call_test_suite);
#endif
+#ifdef VCARD_ENABLED
bc_tester_add_suite(&vcard_test_suite);
+#endif
}
static int linphone_core_manager_get_max_audio_bw_base(const int array[],int array_size) {
diff --git a/tester/vcard_tester.c b/tester/vcard_tester.c
index f49d6a31c..c1ef79f7a 100644
--- a/tester/vcard_tester.c
+++ b/tester/vcard_tester.c
@@ -16,6 +16,8 @@
along with this program. If not, see .
*/
+#ifdef VCARD_ENABLED
+
#include "linphonecore.h"
#include "private.h"
#include "liblinphone_tester.h"
@@ -25,17 +27,12 @@
#define CARDDAV_SERVER "http://dav.linphone.org/card.php/addressbooks/tester/default"
-#ifdef VCARD_ENABLED
-static char *create_filepath(const char *dir, const char *filename, const char *ext) {
- return ms_strdup_printf("%s/%s.%s", dir, filename, ext);
-}
-
static void linphone_vcard_import_export_friends_test(void) {
LinphoneCoreManager* manager = linphone_core_manager_new2("empty_rc", FALSE);
LinphoneFriendList *lfl = linphone_core_get_default_friend_list(manager->lc);
const MSList *friends = linphone_friend_list_get_friends(lfl);
char *import_filepath = bc_tester_res("vcards/vcards.vcf");
- char *export_filepath = create_filepath(bc_tester_get_writable_dir_prefix(), "export_vcards", "vcf");
+ char *export_filepath = bc_tester_file("export_vcards.vcf");
int count = 0;
BC_ASSERT_EQUAL(ms_list_size(friends), 0, int, "%d");
@@ -212,7 +209,7 @@ static void friends_migration(void) {
LinphoneFriendList *lfl = linphone_core_get_default_friend_list(manager->lc);
const MSList *friends = linphone_friend_list_get_friends(lfl);
MSList *friends_from_db = NULL;
- char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db");
+ char *friends_db = bc_tester_file("friends.db");
BC_ASSERT_EQUAL(ms_list_size(friends), 3, int, "%d");
BC_ASSERT_EQUAL(lp_config_get_int(lpc, "misc", "friends_migration_done", 0), 0, int, "%i");
@@ -261,7 +258,7 @@ static void friends_sqlite_storage(void) {
const MSList *friends = NULL;
MSList *friends_from_db = NULL;
MSList *friends_lists_from_db = NULL;
- char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db");
+ char *friends_db = bc_tester_file("friends.db");
LinphoneFriendListStats *stats = (LinphoneFriendListStats *)ms_new0(LinphoneFriendListStats, 1);
v_table->friend_list_created = friend_list_created_cb;
@@ -414,7 +411,7 @@ static void carddav_sync_2(void) {
LinphoneCoreManager *manager = linphone_core_manager_new2("carddav_rc", FALSE);
LinphoneCardDAVStats *stats = (LinphoneCardDAVStats *)ms_new0(LinphoneCardDAVStats, 1);
LinphoneFriend *lf = linphone_core_create_friend_with_address(manager->lc, "\"Sylvain\" ");
- char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db");
+ char *friends_db = bc_tester_file("friends.db");
LinphoneFriendList *lfl = linphone_core_create_friend_list(manager->lc);
LinphoneCardDavContext *c = NULL;
@@ -456,7 +453,7 @@ static void carddav_sync_3(void) {
LinphoneCardDAVStats *stats = (LinphoneCardDAVStats *)ms_new0(LinphoneCardDAVStats, 1);
LinphoneVcard *lvc = linphone_vcard_new_from_vcard4_buffer("BEGIN:VCARD\r\nVERSION:4.0\r\nUID:1f08dd48-29ac-4097-8e48-8596d7776283\r\nFN:Sylvain Berfini\r\nIMPP;TYPE=work:sip:sylvain@sip.linphone.org\r\nEND:VCARD\r\n");
LinphoneFriend *lf = linphone_friend_new_from_vcard(lvc);
- char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db");
+ char *friends_db = bc_tester_file("friends.db");
LinphoneFriendList *lfl = linphone_core_create_friend_list(manager->lc);
LinphoneCardDavContext *c = NULL;
@@ -722,7 +719,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) {
LinphoneVcard *lvc2 = linphone_vcard_new_from_vcard4_buffer("BEGIN:VCARD\r\nVERSION:4.0\r\nFN:Ghislain Mary\r\nIMPP;TYPE=work:sip:ghislain@sip.linphone.org\r\nEND:VCARD\r\n");
LinphoneFriend *lf2 = linphone_friend_new_from_vcard(lvc2);
MSList *friends = NULL, *friends_iterator = NULL;
-
+
linphone_friend_list_cbs_set_user_data(cbs, stats);
linphone_friend_list_cbs_set_contact_created(cbs, carddav_contact_created);
linphone_friend_list_cbs_set_contact_deleted(cbs, carddav_contact_deleted);
@@ -730,7 +727,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) {
linphone_friend_list_cbs_set_sync_status_changed(cbs, carddav_sync_status_changed);
linphone_core_add_friend_list(manager->lc, lfl);
linphone_friend_list_set_uri(lfl, CARDDAV_SERVER);
-
+
linphone_friend_list_add_friend(lfl, lf1);
linphone_friend_unref(lf1);
linphone_friend_list_synchronize_friends_from_server(lfl);
@@ -738,7 +735,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) {
linphone_friend_unref(lf2);
wait_for_until(manager->lc, NULL, &stats->sync_done_count, 3, 15000);
BC_ASSERT_EQUAL(stats->sync_done_count, 3, int, "%i");
-
+
stats->sync_done_count = 0;
friends = ms_list_copy(lfl->friends);
friends_iterator = friends;
@@ -759,13 +756,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) {
linphone_core_manager_destroy(manager);
}
-#else
-static void dummy_test(void) {
-}
-#endif
-
test_t vcard_tests[] = {
-#ifdef VCARD_ENABLED
{ "Import / Export friends from vCards", linphone_vcard_import_export_friends_test },
{ "Import a lot of friends from vCards", linphone_vcard_import_a_lot_of_friends_test },
{ "vCard creation for existing friends", linphone_vcard_update_existing_friends_test },
@@ -783,9 +774,6 @@ test_t vcard_tests[] = {
{ "CardDAV integration", carddav_integration },
{ "CardDAV multiple synchronizations", carddav_multiple_sync },
{ "CardDAV client to server and server to client sync", carddav_server_to_client_and_client_to_sever_sync },
-#else
- { "Dummy test", dummy_test }
-#endif
};
test_suite_t vcard_test_suite = {
@@ -793,3 +781,5 @@ test_suite_t vcard_test_suite = {
liblinphone_tester_before_each, liblinphone_tester_after_each,
sizeof(vcard_tests) / sizeof(vcard_tests[0]), vcard_tests
};
+
+#endif