Merge remote-tracking branch 'origin/master' into tunnel

Conflicts:
	Classes/LinphoneUI/LinphoneManager.m
This commit is contained in:
Jehan Monnier 2012-05-14 12:12:09 +02:00
commit 5aa42780c1
16 changed files with 179 additions and 71 deletions

View file

@ -63,6 +63,9 @@
UIView* videoGroup;
UIView* videoView;
UIView* videoPreview;
#ifdef TEST_VIDEO_VIEW_CHANGE
UIView* testVideoView;
#endif
UIImageView* videoCallQuality;
UICamSwitch* videoCameraSwitch;
UIActivityIndicatorView* videoUpdateIndicator;
@ -136,6 +139,9 @@
@property (nonatomic, retain) IBOutlet UIView* videoGroup;
@property (nonatomic, retain) IBOutlet UIView* videoView;
#ifdef TEST_VIDEO_VIEW_CHANGE
@property (nonatomic, retain) IBOutlet UIView* testVideoView;
#endif
@property (nonatomic, retain) IBOutlet UIView* videoPreview;
@property (nonatomic, retain) IBOutlet UIImageView* videoCallQuality;
@property (nonatomic, retain) IBOutlet UICamSwitch* videoCameraSwitch;

View file

@ -75,6 +75,9 @@ const NSInteger SECURE_BUTTON_TAG=5;
@synthesize videoCameraSwitch;
@synthesize videoUpdateIndicator;
@synthesize videoWaitingForFirstImage;
#ifdef TEST_VIDEO_VIEW_CHANGE
@synthesize testVideoView;
#endif
@synthesize addVideo;
@ -239,6 +242,19 @@ void addAnimationFadeTransition(UIView* view, float duration) {
}
}
#ifdef TEST_VIDEO_VIEW_CHANGE
// Define TEST_VIDEO_VIEW_CHANGE in IncallViewController.h to enable video view switching testing
-(void) _debugChangeVideoView {
static bool normalView = false;
if (normalView) {
linphone_core_set_native_video_window_id([LinphoneManager getLc], (unsigned long)videoView);
} else {
linphone_core_set_native_video_window_id([LinphoneManager getLc], (unsigned long)testVideoView);
}
normalView = !normalView;
}
#endif
-(void) enableVideoDisplay {
[self orientationChanged:nil];
@ -270,6 +286,9 @@ void addAnimationFadeTransition(UIView* view, float duration) {
done = true;
}
#ifdef TEST_VIDEO_VIEW_CHANGE
[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(_debugChangeVideoView) userInfo:nil repeats:YES];
#endif
[self batteryLevelChanged:nil];
}

View file

@ -98,6 +98,7 @@ typedef struct _LinphoneCallAppData {
-(BOOL) reconfigureLinphoneIfNeeded:(NSDictionary *)oldSettings;
-(void) setupNetworkReachabilityCallback: (const char*) nodeName withContext:(SCNetworkReachabilityContext*) ctx;
-(void) refreshRegisters;
@property (nonatomic, retain) id<LinphoneUICallDelegate> callDelegate;
@property (nonatomic, retain) id<LinphoneUIRegistrationDelegate> registrationDelegate;

View file

@ -27,6 +27,7 @@
#import <AudioToolbox/AudioToolbox.h>
#import "FastAddressBook.h"
#include <sys/sysctl.h>
#include <SystemConfiguration/SystemConfiguration.h>
#include "linphone_tunnel.h"
#import <AddressBook/AddressBook.h>
@ -45,7 +46,7 @@ extern void libmsx264_init();
#endif
#define FRONT_CAM_NAME "AV Capture: Front Camera"
#define BACK_CAM_NAME "AV Capture: Back Camera"
#define DEFAULT_EXPIRES 600
#if defined (HAVE_SILK)
extern void libmssilk_init();
#endif
@ -456,32 +457,73 @@ static LinphoneCoreVTable linphonec_vtable;
CFWriteStreamClose (writeStream);
}
void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* nilCtx) {
ms_message("Network connection flag [%x]",flags);
static void showNetworkFlags(SCNetworkReachabilityFlags flags){
ms_message("Network connection flags:");
if (flags==0) ms_message("no flags.");
if (flags & kSCNetworkReachabilityFlagsTransientConnection)
ms_message("kSCNetworkReachabilityFlagsTransientConnection");
if (flags & kSCNetworkReachabilityFlagsReachable)
ms_message("kSCNetworkReachabilityFlagsReachable");
if (flags & kSCNetworkReachabilityFlagsConnectionRequired)
ms_message("kSCNetworkReachabilityFlagsConnectionRequired");
if (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)
ms_message("kSCNetworkReachabilityFlagsConnectionOnTraffic");
if (flags & kSCNetworkReachabilityFlagsConnectionOnDemand)
ms_message("kSCNetworkReachabilityFlagsConnectionOnDemand");
if (flags & kSCNetworkReachabilityFlagsIsLocalAddress)
ms_message("kSCNetworkReachabilityFlagsIsLocalAddress");
if (flags & kSCNetworkReachabilityFlagsIsDirect)
ms_message("kSCNetworkReachabilityFlagsIsDirect");
if (flags & kSCNetworkReachabilityFlagsIsWWAN)
ms_message("kSCNetworkReachabilityFlagsIsWWAN");
}
void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* nilCtx){
showNetworkFlags(flags);
LinphoneManager* lLinphoneMgr = [LinphoneManager instance];
SCNetworkReachabilityFlags networkDownFlags=kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic | kSCNetworkReachabilityFlagsConnectionOnDemand;
if ([LinphoneManager getLc] != nil) {
LinphoneProxyConfig* proxy;
linphone_core_get_default_proxy([LinphoneManager getLc], &proxy);
struct NetworkReachabilityContext* ctx = nilCtx ? ((struct NetworkReachabilityContext*)nilCtx) : 0;
if ((flags == 0) | (flags & (kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic))) {
[[LinphoneManager instance] kickOffNetworkConnection];
if ((flags == 0) || (flags & networkDownFlags)) {
linphone_core_set_network_reachable([LinphoneManager getLc],false);
lLinphoneMgr.connectivity = none;
[[LinphoneManager instance] kickOffNetworkConnection];
} else {
LinphoneTunnel *tunnel=linphone_core_get_tunnel([LinphoneManager getLc]);
Connectivity newConnectivity;
BOOL isWifiOnly = [[NSUserDefaults standardUserDefaults] boolForKey:@"wifi_only_preference"];
if (!ctx || ctx->testWWan)
newConnectivity = flags & kSCNetworkReachabilityFlagsIsWWAN ? wwan:wifi;
else
newConnectivity = wifi;
if (newConnectivity == wwan
&& proxy
&& isWifiOnly
&& (lLinphoneMgr.connectivity == newConnectivity || lLinphoneMgr.connectivity == none)) {
linphone_proxy_config_expires(proxy, 0);
} else if (proxy){
linphone_proxy_config_expires(proxy, DEFAULT_EXPIRES); //might be better to save the previous value
}
if (lLinphoneMgr.connectivity == none) {
linphone_core_set_network_reachable([LinphoneManager getLc],true);
} else if (lLinphoneMgr.connectivity != newConnectivity) {
// connectivity has changed
if (tunnel) linphone_tunnel_reconnect(tunnel);
else {
linphone_core_set_network_reachable([LinphoneManager getLc],false);
linphone_core_set_network_reachable([LinphoneManager getLc],true);
linphone_core_set_network_reachable([LinphoneManager getLc],false);
if (newConnectivity == wwan && proxy && isWifiOnly) {
linphone_proxy_config_expires(proxy, 0);
}
linphone_core_set_network_reachable([LinphoneManager getLc],true);
}
ms_message("Network connectivity changed to type [%s]",(newConnectivity==wifi?"wifi":"wwan"));
}
lLinphoneMgr.connectivity=newConnectivity;
switch (lLinphoneMgr.tunnelMode) {
@ -496,7 +538,6 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
break;
}
ms_message("new network connectivity of type [%s]",(newConnectivity==wifi?"wifi":"wwan"));
}
if (ctx && ctx->networkStateChanged) {
(*ctx->networkStateChanged)(lLinphoneMgr.connectivity);
@ -640,7 +681,13 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
linphone_proxy_config_set_identity(proxyCfg,identity);
linphone_proxy_config_set_server_addr(proxyCfg,proxy);
linphone_proxy_config_enable_register(proxyCfg,true);
linphone_proxy_config_expires(proxyCfg, 600);
BOOL isWifiOnly = [[NSUserDefaults standardUserDefaults] boolForKey:@"wifi_only_preference"];
LinphoneManager* lLinphoneMgr = [LinphoneManager instance];
if (isWifiOnly && lLinphoneMgr.connectivity == wwan) {
linphone_proxy_config_expires(proxyCfg, 0);
} else {
linphone_proxy_config_expires(proxyCfg, DEFAULT_EXPIRES);
}
if (isOutboundProxy)
linphone_proxy_config_set_route(proxyCfg,proxy);
@ -850,18 +897,18 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
handler:^{
ms_warning("keepalive handler");
if (theLinphoneCore == nil) {
ms_warning("It seam that Linphone BG mode was deacticated, just skipping");
ms_warning("It seems that Linphone BG mode was deactivated, just skipping");
return;
}
//kick up network cnx, just in case
[self kickOffNetworkConnection];
linphone_core_refresh_registers(theLinphoneCore);
[self refreshRegisters];
linphone_core_iterate(theLinphoneCore);
}
]) {
ms_warning("keepalive handler succesfully registered");
ms_message("keepalive handler succesfully registered");
} else {
ms_warning("keepalive handler cannot be registered");
}
@ -872,7 +919,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
return YES;
}
else {
ms_warning("Entering lite bg mode");
ms_message("Entering lite bg mode");
[self destroyLibLinphone];
return NO;
}
@ -884,8 +931,6 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
linphone_core_iterate(theLinphoneCore);
}
-(void) setupNetworkReachabilityCallback: (const char*) nodeName withContext:(SCNetworkReachabilityContext*) ctx {
if (proxyReachability) {
ms_message("Cancel old network reachability check");
@ -899,16 +944,19 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
//initial state is network off should be done as soon as possible
SCNetworkReachabilityFlags flags;
if (!SCNetworkReachabilityGetFlags(proxyReachability, &flags)) {
ms_error("Cannot get reachability flags");
};
networkReachabilityCallBack(proxyReachability, flags, ctx ? ctx->info : 0);
ms_error("Cannot get reachability flags: %s", SCErrorString(SCError()));
return;
}
networkReachabilityCallBack(proxyReachability, flags, ctx ? ctx->info : 0);
if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){
ms_error("Cannot register reachability cb");
};
ms_error("Cannot register reachability cb: %s", SCErrorString(SCError()));
return;
}
if(!SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)){
ms_error("Cannot register schedule reachability cb");
};
ms_error("Cannot register schedule reachability cb: %s", SCErrorString(SCError()));
return;
}
}
/*************
@ -1041,6 +1089,19 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
,[[UIDevice currentDevice].model cStringUsingEncoding:[NSString defaultCStringEncoding]] );
}
-(void) refreshRegisters{
/*first check if network is available*/
if (proxyReachability){
SCNetworkReachabilityFlags flags=0;
if (!SCNetworkReachabilityGetFlags(proxyReachability, &flags)) {
ms_error("Cannot get reachability flags");
}else
networkReachabilityCallBack(proxyReachability, flags, 0);
}else ms_error("No proxy reachability context created !");
linphone_core_refresh_registers(theLinphoneCore);//just to make sure REGISTRATION is up to date
}
-(void) becomeActive {
if (theLinphoneCore == nil) {
//back from standby and background mode is disabled
@ -1048,9 +1109,8 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
} else {
if (![self reconfigureLinphoneIfNeeded:currentSettings]) {
ms_message("becoming active with no config modification, make sure we are registered");
linphone_core_refresh_registers(theLinphoneCore);//just to make sure REGISTRATION is up to date
[self refreshRegisters];
}
}
/*IOS specific*/
linphone_core_start_dtmf_stream(theLinphoneCore);

View file

@ -26,7 +26,7 @@
} else {
cx = cy = 0.5;
}
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, cx, cy);
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, &cx, &cy);
}
-(void) videoPan:(UIPanGestureRecognizer*) reco {
@ -43,11 +43,14 @@
} else if ([reco state] == UIGestureRecognizerStateChanged) {
x = cx - translation.x / videoView.frame.size.width;
y = cy + translation.y / videoView.frame.size.height;
[reco setTranslation:CGPointMake(0, 0) inView:videoView];
} else {
return;
}
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, x, y);
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, &x, &y);
cx = x;
cy = y;
}
-(void) pinch:(UIPinchGestureRecognizer*) reco {
@ -70,7 +73,7 @@
}
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), s, cx, cy);
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), s, &cx, &cy);
}
-(void) resetZoom {

View file

@ -72,7 +72,6 @@
- (void)viewDidLoad
{
[super viewDidLoad];
[phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside];
}
-(void) switchCameraPressed {
@ -80,30 +79,32 @@
}
-(void) useCameraAtIndex:(NSInteger)camIndex startSession:(BOOL)start {
[session stopRunning];
@synchronized (self) {
[session stopRunning];
if (input != nil)
[session removeInput:input];
if (input != nil)
[session removeInput:input];
NSError* error;
NSError* error;
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];
NSArray* array = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
if ( [array count] == 0) {
ms_warning("No camera available (running on simulator ?");
return;
}
currentCamera = camIndex % [array count];
AVCaptureDevice* device = (AVCaptureDevice*) [array objectAtIndex:currentCamera];
input = [[AVCaptureDeviceInput deviceInputWithDevice:device
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];
NSArray* array = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
if ( [array count] == 0) {
ms_warning("No camera available (running on simulator ?");
return;
}
currentCamera = camIndex % [array count];
AVCaptureDevice* device = (AVCaptureDevice*) [array objectAtIndex:currentCamera];
input = [[AVCaptureDeviceInput deviceInputWithDevice:device
error:&error] retain];
[session addInput:input];
[session addInput:input];
[pool drain];
[pool drain];
if (start)
[session startRunning];
if (start)
[session startRunning];
}
}
-(void) stopPreview:(id) a {
@ -127,10 +128,18 @@
-(void) showPreview:(BOOL) show {
LinphoneCore* lc;
@try {
lc = [LinphoneManager getLc];
}
@catch (NSException *exception) {
return;
}
bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"];
if (enableVideo) {
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
LinphoneCall* call = linphone_core_get_current_call(lc);
if (show && call && linphone_call_params_video_enabled(linphone_call_get_current_params(call))) {
return;
}
@ -151,6 +160,7 @@
-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside];
}
-(void) viewDidDisappear:(BOOL)animated {

View file

@ -83,10 +83,12 @@
switch (s) {
case LinphoneRegistrationOk: m = @"Registered"; break;
case LinphoneRegistrationNone: m=@"Not registered"; break;
case LinphoneRegistrationNone:
case LinphoneRegistrationCleared:
m=@"Not registered"; break;
case LinphoneRegistrationFailed: m = @"Registration failed"; break;
case LinphoneRegistrationProgress: m = @"Registration in progress"; break;
case LinphoneRegistrationCleared: m= @"No SIP account"; break;
//case LinphoneRegistrationCleared: m= @"No SIP account"; break;
default: break;
}
}
@ -113,7 +115,7 @@
[callShort setEnabled:!linphone_core_sound_resources_locked([LinphoneManager getLc])];
} @catch (NSException* exc) {
// R.A.S: linphone core si simply not ready...
ms_warning("Exception %s: %s",
ms_warning("Catched exception %s: %s",
[exc.name cStringUsingEncoding:[NSString defaultCStringEncoding]],
[exc.reason cStringUsingEncoding:[NSString defaultCStringEncoding]]);
}

View file

@ -63,11 +63,11 @@
label.hidden = NO;
switch(state) {
case LinphoneRegistrationCleared:
image.hidden = NO;
/* image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_orange.png"]];
[spinner stopAnimating];
[label setText:message != nil ? message : NSLocalizedString(@"No SIP account defined", nil)];
return YES;
return YES;*/
case LinphoneRegistrationFailed:
image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_red.png"]];

View file

@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<string key="IBDocument.SystemVersion">11D50b</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">933</string>
<string key="NS.object.0">1181</string>
</object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -47,7 +47,6 @@
<object class="NSPSMatrix" key="NSFrameMatrix"/>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
@ -141,7 +140,6 @@
<int key="NSvFlags">266</int>
<string key="NSFrame">{{0, 431}, {320, 49}}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwAA</bytes>
@ -318,7 +316,7 @@
<string>8.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIApplication</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -368,6 +366,10 @@
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="784" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1296" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/>
@ -381,12 +383,12 @@
<string>dialer-orange.png</string>
<string>history-orange.png</string>
</object>
<object class="NSMutableArray" key="dict.values">
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{25, 24}</string>
<string>{25, 23}</string>
</object>
</object>
<string key="IBCocoaTouchPluginVersion">933</string>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

View file

@ -28,7 +28,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.1.1</string>
<string>1.1.2</string>
<key>NSMainNibFile</key>
<string>PhoneMainView</string>
<key>NSMainNibFile~ipad</key>

View file

@ -268,6 +268,8 @@
34CA8536148F669900503C01 /* VideoViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */; };
34CA8539148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; };
34CA853A148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; };
57282931154AF1460076F540 /* history-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646B14CD5585008E9607 /* history-orange.png */; };
57282933154AF14D0076F540 /* dialer-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646A14CD5585008E9607 /* dialer-orange.png */; };
70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */ = {isa = PBXBuildFile; fileRef = 70571E1913FABCB000CDD3C2 /* rootca.pem */; };
7066FC0C13E830E400EFC6DC /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0B13E830E400EFC6DC /* libvpx.a */; };
70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F213E147E3002BA2C0 /* OpenGLES.framework */; };
@ -1479,6 +1481,8 @@
3418845814C6F66F00EA48C7 /* status_orange.png in Resources */,
3418845A14C6F66F00EA48C7 /* status_red.png in Resources */,
3418845D14C7077400EA48C7 /* status_gray.png in Resources */,
57282931154AF1460076F540 /* history-orange.png in Resources */,
57282933154AF14D0076F540 /* dialer-orange.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View file

@ -337,6 +337,6 @@ delivery:
ipa:
cd $(BUILDER_SRC_DIR)/../ \
&& xcodebuild -configuration DistributionAdhoc \
&& xcrun -sdk iphoneos PackageApplication -v build/DistributionAdhoc-iphoneos/linphone.app -o $(BUILDER_SRC_DIR)/../linphone-iphone.ipa
&& xcodebuild -configuration Release \
&& xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/linphone.app -o $(BUILDER_SRC_DIR)/../linphone-iphone.ipa

View file

@ -1,16 +1,17 @@
srtp_dir?=externals/srtp
$(BUILDER_SRC_DIR)/$(srtp_dir)/configure:
$(BUILDER_SRC_DIR)/$(srtp_dir)/configure: $(BUILDER_SRC_DIR)/$(srtp_dir)/configure.in
cd $(BUILDER_SRC_DIR)/$(srtp_dir) \
&& autoconf
$(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile: $(BUILDER_SRC_DIR)/$(srtp_dir)/configure
$(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile: $(BUILDER_SRC_DIR)/$(srtp_dir)/configure $(BUILDER_SRC_DIR)/$(srtp_dir)/Makefile.in
mkdir -p $(BUILDER_BUILD_DIR)/$(srtp_dir)
cd $(BUILDER_BUILD_DIR)/$(srtp_dir)/\
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(srtp_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode}
build-srtp: $(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make libsrtp.a && make uninstall && make install
host_alias=$(host) && . /$(BUILDER_SRC_DIR)/build/$(config_site) && \
cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make libsrtp.a AR=$$AR && make install
clean-srtp:
-cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make clean

@ -1 +1 @@
Subproject commit daa25fdbacb75e2aa99f5fce1bd5836dc616fb42
Subproject commit c01a03a478d4c97fa7e2af80844f8d60440af0a6

@ -1 +1 @@
Subproject commit 38d4730be5d172c13d0bd58a53c397c140f81231
Subproject commit 04fa4d457b3b584eae8c5964a48a97ec4040c94a

@ -1 +1 @@
Subproject commit 21de31a17e022d0d65d559784cc24ad1dfb99a21
Subproject commit 4d7f0692bb8ebe1a37e686f44314fa12b327459e