Merge branch 'master' into dev_turn

This commit is contained in:
Ghislain MARY 2016-06-01 14:56:52 +02:00
commit fc1fed70fe
78 changed files with 654 additions and 2698 deletions

View file

@ -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()

13
NEWS
View file

@ -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

View file

@ -1,16 +0,0 @@
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:liblinphone_tester"
xmlns:model="using:liblinphone_tester.DataModel" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
x:Class="liblinphone_tester.App"
RequestedTheme="Light">
<Application.Resources>
<ResourceDictionary>
<model:UnitTestCaseStateToSymbolConverter x:Key="UnitTestCaseStateToSymbol"/>
<model:UnitTestCaseStateToSymbolColorConverter x:Key="UnitTestCaseStateToSymbolColor"/>
<model:OutputTraceLevelToColorConverter x:Key="OutputTraceLevelToColor"/>
</ResourceDictionary>
</Application.Resources>
</Application>

View file

@ -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
{
/// <summary>
/// Provides application-specific behavior to supplement the default Application class.
/// </summary>
sealed partial class App : Application
{
/// <summary>
/// Allows tracking page views, exceptions and other telemetry through the Microsoft Application Insights service.
/// </summary>
public static Microsoft.ApplicationInsights.TelemetryClient TelemetryClient;
/// <summary>
/// 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().
/// </summary>
public App()
{
TelemetryClient = new Microsoft.ApplicationInsights.TelemetryClient();
this.InitializeComponent();
this.Suspending += OnSuspending;
}
/// <summary>
/// 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.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
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();
}
/// <summary>
/// Invoked when Navigation to a certain page fails
/// </summary>
/// <param name="sender">The Frame which failed navigation</param>
/// <param name="e">Details about the navigation failure</param>
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
{
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
}
/// <summary>
/// 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.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
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);
}
}
}

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
<!--
Learn more about Application Insights configuration with ApplicationInsights.config here:
http://go.microsoft.com/fwlink/?LinkID=513840
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
-->
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights"/>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.SessionTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows"/>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.PageViewTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows"/>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.UnhandledExceptionTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows"/>
</TelemetryModules>
<TelemetryChannel Type="Microsoft.ApplicationInsights.Channel.PersistenceChannel, Microsoft.ApplicationInsights.PersistenceChannel"/>
<ContextInitializers>
<Add Type="Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights"/>
<Add Type="Microsoft.ApplicationInsights.Extensibility.DeviceContextInitializer, Microsoft.ApplicationInsights"/>
</ContextInitializers>
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.UserContextInitializer, Microsoft.ApplicationInsights.Extensibility.Windows"/>
</TelemetryInitializers>
</ApplicationInsights>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View file

@ -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<UnitTestCase>();
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<UnitTestCase> 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<OutputTrace>();
}
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<OutputTrace> 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<OutputTrace> _traces;
}
public sealed class UnitTestDataSource
{
private static UnitTestDataSource _unitTestDataSource = new UnitTestDataSource();
private ObservableCollection<UnitTestSuite> _suites = new ObservableCollection<UnitTestSuite>();
public ObservableCollection<UnitTestSuite> Suites
{
get { return this._suites; }
}
public static IEnumerable<UnitTestSuite> GetSuites(LibLinphoneTester tester)
{
return _unitTestDataSource.FillSuites(tester);
}
private IEnumerable<UnitTestSuite> 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();
}
}
}

View file

@ -1,128 +0,0 @@
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:liblinphone_tester"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:model="using:liblinphone_tester.DataModel"
xmlns:uixdata="using:Windows.UI.Xaml.Data" x:Name="page"
x:Class="liblinphone_tester.MainPage">
<Page.Resources>
<CollectionViewSource x:Name="UnitTestCVS"
Source="{x:Bind Suites}"
ItemsPath="Cases"
IsSourceGrouped="True"/>
<DataTemplate x:Key="ZoomedInTemplate" x:DataType="model:UnitTestCase">
<Grid Width="320">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="0"
Content="{x:Bind Name}"
IsChecked="{Binding Selected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<SymbolIcon Grid.Column="1"
Symbol="{Binding State, Mode=OneWay, Converter={StaticResource UnitTestCaseStateToSymbol}, UpdateSourceTrigger=PropertyChanged}"
Foreground="{Binding State, Mode=OneWay, Converter={StaticResource UnitTestCaseStateToSymbolColor}, UpdateSourceTrigger=PropertyChanged}" Margin="16,0,32,0"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ZoomedInGroupHeaderTemplate" x:DataType="model:UnitTestSuite">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Name}" Foreground="{ThemeResource ApplicationForegroundThemeBrush}" Style="{StaticResource SubtitleTextBlockStyle}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="ZoomedOutTemplate" x:DataType="uixdata:ICollectionViewGroup">
<TextBlock Text="{x:Bind Group.(model:UnitTestSuite.Name)}" Style="{StaticResource SubtitleTextBlockStyle}" TextWrapping="Wrap"/>
</DataTemplate>
<DataTemplate x:Key="TraceTemplate">
<TextBlock FontFamily="Courier New">
<Run Text="{Binding Msg}" Foreground="{Binding Level, Converter={StaticResource OutputTraceLevelToColor}}"/>
</TextBlock>
</DataTemplate>
</Page.Resources>
<Page.BottomAppBar>
<CommandBar x:Name="CommandBar">
<AppBarButton x:Name="Run" Icon="Play" Label="Run" Click="RunSelected_Click"/>
<AppBarButton x:Name="SelectAll" Icon="SelectAll" Label="Select all" Click="SelectAll_Click"/>
<AppBarToggleButton x:Name="Verbose" Icon="Comment" IsChecked="True" Label="Verbose"/>
</CommandBar>
</Page.BottomAppBar>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<SplitView x:Name="splitView" Grid.Row="0" IsPaneOpen="True" DisplayMode="Inline">
<SplitView.Pane>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Test selection" Style="{StaticResource HeaderTextBlockStyle}" Margin="12,0,0,0"/>
<SemanticZoom x:Name="SemanticZoom" Grid.Row="1">
<SemanticZoom.ZoomedInView>
<ListView ItemsSource="{x:Bind UnitTestCVS.View}"
ScrollViewer.IsHorizontalScrollChainingEnabled="False"
SelectionMode="None"
ItemTemplate="{StaticResource ZoomedInTemplate}"
IsItemClickEnabled="True"
ItemClick="UnitTestCase_Click">
<ListView.GroupStyle>
<GroupStyle HeaderTemplate="{StaticResource ZoomedInGroupHeaderTemplate}" />
</ListView.GroupStyle>
</ListView>
</SemanticZoom.ZoomedInView>
<SemanticZoom.ZoomedOutView>
<ListView ItemsSource="{x:Bind UnitTestCVS.View.CollectionGroups}"
SelectionMode="None"
ItemTemplate="{StaticResource ZoomedOutTemplate}">
</ListView>
</SemanticZoom.ZoomedOutView>
</SemanticZoom>
</Grid>
</SplitView.Pane>
<Grid x:Name="TestResultPage">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Test result" Style="{StaticResource HeaderTextBlockStyle}" Margin="12,0,0,0"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Style="{StaticResource SubheaderTextBlockStyle}" Margin="16,0,0,0" Text="{Binding Name, Mode=OneWay}"/>
<SymbolIcon Grid.Column="1" x:Name="TestResultState"
Visibility="Collapsed"
Symbol="{Binding State, Mode=OneWay, Converter={StaticResource UnitTestCaseStateToSymbol}, UpdateSourceTrigger=PropertyChanged}"
Foreground="{Binding State, Mode=OneWay, Converter={StaticResource UnitTestCaseStateToSymbolColor}, UpdateSourceTrigger=PropertyChanged}" Margin="16,0,32,0"/>
<AppBarButton Grid.Column="2" x:Name="TestResultRun"
Icon="Play" Label="Run"
IsEnabled="{Binding IsEnabled, ElementName=CommandBar}"
Click="RunSingle_Click" Visibility="Collapsed"/>
</Grid>
<ScrollViewer Grid.Row="2">
<ItemsControl ItemsSource="{Binding Traces}" ItemTemplate="{StaticResource TraceTemplate}" Margin="20,12,0,0"/>
</ScrollViewer>
</Grid>
</SplitView>
<ProgressBar x:Name="ProgressIndicator" Grid.Row="1"
Width="{Binding ActualWidth, ElementName=CommandBar, Mode=OneWay}" Margin="16,0,0,0"/>
</Grid>
</Page>

View file

@ -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
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
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<UnitTestSuite> Suites
{
get { return _suites; }
}
private IEnumerable<UnitTestSuite> _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<IEnumerable<UnitTestSuite>, bool?>(Suites, Verbose.IsChecked);
var t = Task.Factory.StartNew(async (object parameters) =>
{
var p = parameters as Tuple<IEnumerable<UnitTestSuite>, bool?>;
IEnumerable<UnitTestSuite> 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<UnitTestCase, bool?>(DisplayedTestCase, Verbose.IsChecked);
var t = Task.Factory.StartNew(async (object parameters) =>
{
var p = parameters as Tuple<UnitTestCase, bool?>;
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;
}
}

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
<Identity Name="BelledonneCommunications.LibLinphoneTester" Publisher="CN=belledonne communications, O=belledonne communications, L=Grenoble, C=FR" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="7fdbb4f3-13d7-4ca5-a0b9-c7fe297c78f1" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>liblinphone-tester</DisplayName>
<PublisherDisplayName>Belledonne Communications</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10069.0" MaxVersionTested="10.0.10069.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="liblinphone_tester.App">
<uap:VisualElements DisplayName="liblinphone-tester" Square150x150Logo="Assets\Logo.png" Square44x44Logo="Assets\SmallLogo.png" Description="liblinphone-tester" BackgroundColor="#ffffff">
<uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png">
<uap:ShowNameOnTiles>
<uap:ShowOn Tile="wide310x150Logo" />
</uap:ShowNameOnTiles>
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="liblinphone-tester" />
</uap:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
<DeviceCapability Name="microphone" />
</Capabilities>
</Package>

View file

@ -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)]

View file

@ -1,31 +0,0 @@
<!--
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
developers. However, you can modify these parameters to modify the behavior of the .NET Native
optimizer.
Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
To fully enable reflection for App1.MyClass and all of its public/private members
<Type Name="App1.MyClass" Dynamic="Required All"/>
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
<Namespace Name="DataClasses.ViewModels" Seralize="All" />
-->
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<!--
An Assembly element with Name="*Application*" applies to all assemblies in
the application package. The asterisks are not wildcards.
-->
<Assembly Name="*Application*" Dynamic="Required All" />
<!-- Add your application specific runtime directives here. -->
</Application>
</Directives>

View file

@ -1,142 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\tester\liblinphone_tester_windows.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\tester\liblinphone_tester_windows.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\bcg729\build\windows10\libmsbcg729\libmsbcg729.vcxproj">
<Project>{acf5ea95-d647-4d0c-8f97-2cd9aae8a2e0}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\build\sqlite\sqlite.vcxproj">
<Project>{74cad9d0-d8ae-4896-b71b-b2d9b48f30aa}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\msamr\build\windows10\libmsamr\libmsamr.vcxproj">
<Project>{8c1bc968-c5c8-4d4b-9ef3-d6a065fc7c97}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\msilbc\build\windows10\libmsilbc\libmsilbc.vcxproj">
<Project>{6a18bbb9-08d1-41a8-be57-17fc992cc36f}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\msopenh264\build\windows10\libmsopenh264\libmsopenh264.vcxproj">
<Project>{bb8ebb21-f22c-4a68-99cb-67fa36c495e3}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\mssilk\build\windows10\libmssilk\libmssilk.vcxproj">
<Project>{b84d5c3b-6de5-49c8-b3dd-5eb67b01a527}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\mswasapi\windows10\libmswasapi\libmswasapi.vcxproj">
<Project>{266b769a-c04e-424c-9033-7209f0425bc0}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\mswebrtc\build\windows10\libmswebrtc\libmswebrtc.vcxproj">
<Project>{878cf9d3-9761-479e-a715-a1de9f99cb78}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\mswinrtvid\windows10\libmswinrtvid\libmswinrtvid.vcxproj">
<Project>{2d0e44c4-e51d-4911-b876-345d1e5e5209}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj">
<Project>{a34f450d-392d-4660-9618-810bd695b3b0}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\mediastreamer2\build\windows10\mswinrtjpeg2yuv\mswinrtjpeg2yuv.vcxproj">
<Project>{545f846d-7f19-4d6d-a50b-172a7c9b61e7}</Project>
</ProjectReference>
<ProjectReference Include="..\liblinphone-tester-static\liblinphone-tester-static.vcxproj">
<Project>{9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7}</Project>
</ProjectReference>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1ce10f06-8fad-437f-b3d7-3b7a8909a190}</ProjectGuid>
<Keyword>WindowsRuntimeComponent</Keyword>
<ProjectName>liblinphone-tester-runtime-component</ProjectName>
<RootNamespace>liblinphone_tester_runtime_component</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10</ApplicationTypeRevision>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10069.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PreprocessorDefinitions>IN_LINPHONE;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PreprocessorDefinitions>IN_LINPHONE;_WINRT_DLL;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,130 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\tester\accountmanager.c" />
<ClCompile Include="..\..\..\..\tester\call_tester.c" />
<ClCompile Include="..\..\..\..\tester\common\bc_tester_utils.c" />
<ClCompile Include="..\..\..\..\tester\dtmf_tester.c" />
<ClCompile Include="..\..\..\..\tester\eventapi_tester.c" />
<ClCompile Include="..\..\..\..\tester\flexisip_tester.c" />
<ClCompile Include="..\..\..\..\tester\liblinphone_tester.c" />
<ClCompile Include="..\..\..\..\tester\log_collection_tester.c" />
<ClCompile Include="..\..\..\..\tester\message_tester.c" />
<ClCompile Include="..\..\..\..\tester\multicast_call_tester.c" />
<ClCompile Include="..\..\..\..\tester\multi_call_tester.c" />
<ClCompile Include="..\..\..\..\tester\offeranswer_tester.c" />
<ClCompile Include="..\..\..\..\tester\player_tester.c" />
<ClCompile Include="..\..\..\..\tester\presence_tester.c" />
<ClCompile Include="..\..\..\..\tester\proxy_config_tester.c" />
<ClCompile Include="..\..\..\..\tester\quality_reporting_tester.c" />
<ClCompile Include="..\..\..\..\tester\register_tester.c" />
<ClCompile Include="..\..\..\..\tester\remote_provisioning_tester.c" />
<ClCompile Include="..\..\..\..\tester\setup_tester.c" />
<ClCompile Include="..\..\..\..\tester\stun_tester.c" />
<ClCompile Include="..\..\..\..\tester\tester.c" />
<ClCompile Include="..\..\..\..\tester\tunnel_tester.c" />
<ClCompile Include="..\..\..\..\tester\upnp_tester.c" />
<ClCompile Include="..\..\..\..\tester\video_tester.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\tester\common\bc_tester_utils.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj">
<Project>{b6cdf482-7da3-43d4-9b12-70150106c191}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\cunit\build\windows10\cunit\cunit.vcxproj">
<Project>{025e28a8-9dfb-4015-ad56-19896aa6cc9b}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj">
<Project>{88e3c241-eb6f-4c84-80dc-89b8961daf80}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj">
<Project>{2e56b851-9d8d-40e5-84bb-e4ee63b71d25}</Project>
</ProjectReference>
<ProjectReference Include="..\..\liblinphone\liblinphone.vcxproj">
<Project>{c7139899-d8bc-48a3-a437-6844a8baabef}</Project>
</ProjectReference>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<ProjectName>liblinphone-tester-static</ProjectName>
<RootNamespace>liblinphone_tester_static</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10</ApplicationTypeRevision>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10069.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(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)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>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)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,328 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}</ProjectGuid>
<OutputType>AppContainerExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>liblinphone_tester</RootNamespace>
<AssemblyName>liblinphone-tester</AssemblyName>
<DefaultLanguage>en-US</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10069.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<PackageCertificateKeyFile>liblinphone-tester_TemporaryKey.pfx</PackageCertificateKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<ItemGroup>
<!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
<Content Include="ApplicationInsights.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\messages.db">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_localfile_win10_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="project.json" />
</ItemGroup>
<ItemGroup>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
</Compile>
<Compile Include="DataModel\UnitTestDataSource.cs" />
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
<None Include="liblinphone-tester_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\sounds\sintel_trailer_opus_h264.mkv" />
<Content Include="Assets\sounds\sintel_trailer_opus_vp8.mkv" />
<Content Include="Assets\sounds\sintel_trailer_pcmu_h264.mkv" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\WideLogo.png" />
<Content Include="Properties\Default.rd.xml" />
<Content Include="Assets\images\nowebcamCIF.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\empty_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\laure_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_early_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_h264_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_quality_reporting_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_rc_rtcp_xr">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_404_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_default_values_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_https_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_invalid_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_invalid_uri_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_localfile2_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_localfile_android_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_localfile_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_remote_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_sips_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_transient_remote_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_zrtp_aes256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_zrtp_b256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\marie_zrtp_srtpsuite_aes256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\multi_account_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_alt_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_h264_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_rc_rtcp_xr">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_sips_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_tcp_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_wild_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_zrtp_aes256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_zrtp_b256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\pauline_zrtp_srtpsuite_aes256_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\remote_zero_length_params_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\stun_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\upnp_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\rcfiles\zero_length_params_rc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\ahbahouaismaisbon.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\hello8000.mkv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\hello8000.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\hello8000_mkv_ref.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\oldphone.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\ringback.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\sounds\vrroom.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\tester_hosts">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\altname\agent.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\altname\cafile.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\altname\openssl-altname.cnf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\cn\agent.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\cn\cafile.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\certificates\cn\openssl-cn.cnf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\common\vcards.vcf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\common\thousand_vcards.vcf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\Logo.png" />
<Content Include="Assets\SmallLogo.png" />
<Content Include="Assets\SplashScreen.png" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="liblinphone-tester-runtime-component\liblinphone-tester-runtime-component.vcxproj">
<Project>{1ce10f06-8fad-437f-b3d7-3b7a8909a190}</Project>
<Name>liblinphone-tester-runtime-component</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>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</PreBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -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

View file

@ -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": {}
}
}

View file

@ -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

View file

@ -1,192 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\coreapi\account_creator.c" />
<ClCompile Include="..\..\..\coreapi\address.c" />
<ClCompile Include="..\..\..\coreapi\authentication.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_address_impl.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_impl.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_call.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_call_transfer.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_events.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_impl.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_info.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_message.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_presence.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_publish.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_op_registration.c" />
<ClCompile Include="..\..\..\coreapi\bellesip_sal\sal_sdp.c" />
<ClCompile Include="..\..\..\coreapi\buffer.c" />
<ClCompile Include="..\..\..\coreapi\callbacks.c" />
<ClCompile Include="..\..\..\coreapi\call_log.c" />
<ClCompile Include="..\..\..\coreapi\call_params.c" />
<ClCompile Include="..\..\..\coreapi\chat.c" />
<ClCompile Include="..\..\..\coreapi\chat_file_transfer.c" />
<ClCompile Include="..\..\..\coreapi\conference.c" />
<ClCompile Include="..\..\..\coreapi\content.c" />
<ClCompile Include="..\..\..\coreapi\dict.c" />
<ClCompile Include="..\..\..\coreapi\ec-calibrator.c" />
<ClCompile Include="..\..\..\coreapi\enum.c" />
<ClCompile Include="..\..\..\coreapi\event.c" />
<ClCompile Include="..\..\..\coreapi\friend.c" />
<ClCompile Include="..\..\..\coreapi\info.c" />
<ClCompile Include="..\..\..\coreapi\lime.c" />
<ClCompile Include="..\..\..\coreapi\linphonecall.c" />
<ClCompile Include="..\..\..\coreapi\linphonecore.c" />
<ClCompile Include="..\..\..\coreapi\linphone_tunnel_config.c" />
<ClCompile Include="..\..\..\coreapi\linphone_tunnel_stubs.c" />
<ClCompile Include="..\..\..\coreapi\localplayer.c" />
<ClCompile Include="..\..\..\coreapi\lpc2xml.c" />
<ClCompile Include="..\..\..\coreapi\lpconfig.c" />
<ClCompile Include="..\..\..\coreapi\lsd.c" />
<ClCompile Include="..\..\..\coreapi\message_storage.c" />
<ClCompile Include="..\..\..\coreapi\misc.c" />
<ClCompile Include="..\..\..\coreapi\offeranswer.c" />
<ClCompile Include="..\..\..\coreapi\player.c" />
<ClCompile Include="..\..\..\coreapi\presence.c" />
<ClCompile Include="..\..\..\coreapi\proxy.c" />
<ClCompile Include="..\..\..\coreapi\quality_reporting.c" />
<ClCompile Include="..\..\..\coreapi\remote_provisioning.c" />
<ClCompile Include="..\..\..\coreapi\sal.c" />
<ClCompile Include="..\..\..\coreapi\siplogin.c" />
<ClCompile Include="..\..\..\coreapi\sipsetup.c" />
<ClCompile Include="..\..\..\coreapi\vtables.c" />
<ClCompile Include="..\..\..\coreapi\xml.c" />
<ClCompile Include="..\..\..\coreapi\xml2lpc.c" />
<ClCompile Include="..\..\..\coreapi\xmlrpc.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\coreapi\account_creator.h" />
<ClInclude Include="..\..\..\coreapi\bellesip_sal\sal_impl.h" />
<ClInclude Include="..\..\..\coreapi\buffer.h" />
<ClInclude Include="..\..\..\coreapi\call_log.h" />
<ClInclude Include="..\..\..\coreapi\call_params.h" />
<ClInclude Include="..\..\..\coreapi\content.h" />
<ClInclude Include="..\..\..\coreapi\enum.h" />
<ClInclude Include="..\..\..\coreapi\event.h" />
<ClInclude Include="..\..\..\coreapi\lime.h" />
<ClInclude Include="..\..\..\coreapi\linphonecore.h" />
<ClInclude Include="..\..\..\coreapi\linphonecore_utils.h" />
<ClInclude Include="..\..\..\coreapi\linphonefriend.h" />
<ClInclude Include="..\..\..\coreapi\linphonepresence.h" />
<ClInclude Include="..\..\..\coreapi\linphone_tunnel.h" />
<ClInclude Include="..\..\..\coreapi\lpc2xml.h" />
<ClInclude Include="..\..\..\coreapi\lpconfig.h" />
<ClInclude Include="..\..\..\coreapi\offeranswer.h" />
<ClInclude Include="..\..\..\coreapi\private.h" />
<ClInclude Include="..\..\..\coreapi\quality_reporting.h" />
<ClInclude Include="..\..\..\coreapi\sipsetup.h" />
<ClInclude Include="..\..\..\coreapi\xml2lpc.h" />
<ClInclude Include="..\..\..\coreapi\xmlrpc.h" />
<ClInclude Include="config.h" />
<ClInclude Include="liblinphone_gitversion.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj">
<Project>{b6cdf482-7da3-43d4-9b12-70150106c191}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\build\sqlite\sqlite.vcxproj">
<Project>{74cad9d0-d8ae-4896-b71b-b2d9b48f30aa}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\build\xml2\xml2.vcxproj">
<Project>{2b04de79-4d33-4405-ac01-c89e0593a71d}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj">
<Project>{a34f450d-392d-4660-9618-810bd695b3b0}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj">
<Project>{88e3c241-eb6f-4c84-80dc-89b8961daf80}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj">
<Project>{2e56b851-9d8d-40e5-84bb-e4ee63b71d25}</Project>
</ProjectReference>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{c7139899-d8bc-48a3-a437-6844a8baabef}</ProjectGuid>
<Keyword>DynamicLibrary</Keyword>
<ProjectName>liblinphone</ProjectName>
<RootNamespace>liblinphone</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10</ApplicationTypeRevision>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10069.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<GenerateManifest>false</GenerateManifest>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalIncludeDirectories>$(SolutionDir)$(Platform)\$(Configuration)\include;$(ProjectDir)..\..\..\include;$(ProjectDir)..\..\..\coreapi;$(ProjectDir)..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\belle-sip\include;$(ProjectDir)..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\sqlite;$(ProjectDir)..\..\..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>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)</PreprocessorDefinitions>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
<PreBuildEvent>
<Command>version.bat</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Batch script to get the git version</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -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
)
)

View file

@ -44,6 +44,7 @@ linphone_include_HEADERS=\
lpconfig.h \
nat_policy.h \
sipsetup.h \
sqlite3_bctbx_vfs.h \
xml2lpc.h \
xmlrpc.h \
vcard.h \

View file

@ -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;

View file

@ -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;i<SAL_MEDIA_DESCRIPTION_MAX_STREAMS;++i){
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);
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));

View file

@ -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);
}

View file

@ -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;
}

View file

@ -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);

View file

@ -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
};

View file

@ -27,6 +27,7 @@
#include "lpconfig.h"
#include "belle-sip/belle-sip.h"
#include "ortp/b64.h"
#include "lime.h"
#include <libxml/parser.h>
#include <libxml/tree.h>
@ -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;
}

View file

@ -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;

View file

@ -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);

View file

@ -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

View file

@ -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);

View file

@ -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);

View file

@ -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 <math.h>
#include <sys/types.h>
#include <sys/stat.h>
@ -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;

View file

@ -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);

View file

@ -25,6 +25,7 @@
#define MAX_LEN 16384
#include "linphonecore.h"
#include "bctoolbox/bc_vfs.h"
#include <stdio.h>
#include <stdlib.h>
@ -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;
}

View file

@ -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

View file

@ -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 <langinfo.h>
# include <locale.h>
# include <iconv.h>
# include <string.h>
#endif
@ -42,28 +43,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "sqlite3.h"
#include <assert.h>
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);

View file

@ -38,6 +38,7 @@
#include "vcard.h"
#include <bctoolbox/port.h>
#include <bctoolbox/bc_vfs.h>
#include <belle-sip/object.h>
#include <belle-sip/dict.h>
@ -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 <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#ifdef SQLITE_STORAGE_ENABLED
#include <sqlite3.h>
#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

View file

@ -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 <sqlite3.h>
@ -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);
}

View file

@ -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 <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdbool.h>
#include "sqlite3.h"
#include <bctoolbox/bc_vfs.h>
#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);
/**
* Unregisters sqlite3bctbx_vfs from SQLite.
*/
void sqlite3_bctbx_vfs_unregister(void);
#endif

View file

@ -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);

View file

@ -37,6 +37,20 @@
<object class="GtkHBox" id="hbox10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">10</property>
<child>
<object class="GtkImage" id="lime_icon">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixel_size">16</property>
<property name="icon_name">linphone-security-ok</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="text_entry">
<property name="visible">True</property>
@ -51,7 +65,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
<child>
@ -94,7 +108,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
</object>

View file

@ -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);

@ -1 +1 @@
Subproject commit ba1083047f6ec4e812fb3f6c13facb33ce4ab407
Subproject commit 9dbf6cd9723f359b8b1bc0fe2a06a3de5100e2ad

2
oRTP

@ -1 +1 @@
Subproject commit 5d4738492a9fd1018ad2508c1b7729766e980b29
Subproject commit 846174f901b264e50c6dfb0f8c81fffffed90c52

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -4,15 +4,15 @@
#
# Translators:
# Belledonne Communications <support@belledonne-communications.com>, 2015-2016
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2014-2016
# Gautier Pelloux <gautier.pelloux@gmail.com>, 2014
# Gautier Pelloux <gautier.pelloux@gmail.com>, 2014
# Gautier Pelloux <gautier.pelloux@gmail.com>, 2014-2016
# Simon Morlat <simon.morlat@linphone.org>, 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 <support@belledonne-communications.com>\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."

View file

@ -4,7 +4,7 @@
#
# Translators:
# Eli Zaretskii <eliz@gnu.org>, 2012
# Gautier Pelloux-Prayer <gautier.pelloux@gmail.com>, 2015
# Gautier Pelloux <gautier.pelloux@gmail.com>, 2015
# GenghisKhan <genghiskhan@gmx.ca>, 2014
# GenghisKhan <genghiskhan@gmx.ca>, 2014,2016
# GenghisKhan <genghiskhan@gmx.ca>, 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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\n"
"POT-Creation-Date: 2016-05-19 14:01+0200\n"
"PO-Revision-Date: 2016-05-10 12:36+0000\n"
"Last-Translator: AlexL <loginov.alex.valer@gmail.com>\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 "Сделать скриншот"

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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 <support@belledonne-communications.com>\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."

View file

@ -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);

View file

@ -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,

View file

@ -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) {

View file

@ -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;

View file

@ -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) {

View file

@ -16,6 +16,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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\" <sip:sylvain@sip.linphone.org>");
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