diff --git a/Classes/BuschJaegerCallView.m b/Classes/BuschJaegerCallView.m index a95e0599f..d57d1488b 100644 --- a/Classes/BuschJaegerCallView.m +++ b/Classes/BuschJaegerCallView.m @@ -186,7 +186,7 @@ case LinphoneCallOutgoingRinging: case LinphoneCallConnected: case LinphoneCallStreamsRunning: - case LinphoneCallUpdated: + case LinphoneCallUpdating: { [[LinphoneManager instance] setSpeakerEnabled:TRUE]; //check video diff --git a/Classes/BuschJaegerConfiguration.m b/Classes/BuschJaegerConfiguration.m index 0e33e889d..8be8117d4 100644 --- a/Classes/BuschJaegerConfiguration.m +++ b/Classes/BuschJaegerConfiguration.m @@ -513,7 +513,7 @@ NSArray *anchors = (NSArray*)certificates; SecTrustSetAnchorCertificates(trust, (CFArrayRef)anchors); SecTrustSetAnchorCertificatesOnly(trust, YES); - SecPolicyCreateBasicX509() + SecTrustResultType result = kSecTrustResultInvalid; OSStatus sanityChesk = SecTrustEvaluate(trust, &result); diff --git a/Classes/BuschJaegerMainView.m b/Classes/BuschJaegerMainView.m index 41190125f..e4e4cdc58 100644 --- a/Classes/BuschJaegerMainView.m +++ b/Classes/BuschJaegerMainView.m @@ -195,7 +195,7 @@ static BuschJaegerMainView* mainViewInstance=nil; } case LinphoneCallPausedByRemote: case LinphoneCallConnected: - case LinphoneCallUpdated: + case LinphoneCallUpdating: { [navigationController popToViewController:welcomeView animated:FALSE]; [navigationController pushViewController:callView animated:FALSE]; // No animation... Come back when Apple have learned how to create a good framework diff --git a/Classes/LinphoneAppDelegate.h b/Classes/LinphoneAppDelegate.h index cad7eba73..241616b74 100644 --- a/Classes/LinphoneAppDelegate.h +++ b/Classes/LinphoneAppDelegate.h @@ -19,7 +19,7 @@ #import #import -#import + @interface UILinphoneWindow : UIWindow @@ -28,9 +28,9 @@ @interface LinphoneAppDelegate : NSObject { @private UIWindow *window; - CTCallCenter* callCenter; BOOL started; int savedMaxCall; + } @property (assign) BOOL started; diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index f7d4d2719..bf2fbc101 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -53,17 +53,7 @@ #pragma mark - -- (void)handleGSMCallInteration: (id) cCenter { - CTCallCenter* ct = (CTCallCenter*) cCenter; - - int callCount = [ct.currentCalls count]; - /* pause current call, if any */ - LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); - if (callCount>0 && call) { - [LinphoneLogger logc:LinphoneLoggerLog format:"Pausing SIP call"]; - linphone_core_pause_call([LinphoneManager getLc], call); - } -} + - (void)applicationDidEnterBackground:(UIApplication *)application{ [LinphoneLogger logc:LinphoneLoggerLog format:"applicationDidEnterBackground"]; @@ -91,13 +81,7 @@ } if (![[LinphoneManager instance] resignActive]) { - // destroying eventHandler if app cannot go in background. - // Otherwise if a GSM call happen and Linphone is resumed, - // the handler will be called before LinphoneCore is built. - // Then handler will be restored in appDidBecomeActive cb - callCenter.callEventHandler = nil; - [callCenter release]; - callCenter = nil; + } } @@ -108,8 +92,6 @@ [[LinphoneManager instance] becomeActive]; - // check call state at startup - [self handleGSMCallInteration:callCenter]; LinphoneCore* lc = [LinphoneManager getLc]; LinphoneCall* call = linphone_core_get_current_call(lc); @@ -128,17 +110,7 @@ } } -- (void)setupGSMInteraction { - if (callCenter == nil) { - callCenter = [[CTCallCenter alloc] init]; - callCenter.callEventHandler = ^(CTCall* call) { - // post on main thread - [self performSelectorOnMainThread:@selector(handleGSMCallInteration:) - withObject:callCenter - waitUntilDone:YES]; - }; - } -} + /* MODIFICATION: Add default settings */ - (void) loadDefaultSettings { @@ -193,6 +165,13 @@ [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound |UIRemoteNotificationTypeBadge]; + //work around until we can access lpconfig without linphonecore + NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: + @"YES", @"start_at_boot_preference", + @"YES", @"backgroundmode_preference", + nil]; + [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults]; + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [UIApplication sharedApplication].applicationState == UIApplicationStateBackground && (![[NSUserDefaults standardUserDefaults] boolForKey:@"start_at_boot_preference"] || @@ -202,7 +181,10 @@ } [self startApplication]; - + NSDictionary *remoteNotif =[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; + if (remoteNotif){ + [LinphoneLogger log:LinphoneLoggerLog format:@"PushNotification from launch received."]; + } return YES; } @@ -212,7 +194,7 @@ [[LinphoneManager instance] startLibLinphone]; } if([LinphoneManager isLcReady]) { - [self setupGSMInteraction]; + // Only execute one time at application start if(!started) { @@ -228,6 +210,7 @@ - (void)applicationWillTerminate:(UIApplication *)application { + } - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { @@ -247,41 +230,12 @@ } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { - [LinphoneLogger log:LinphoneLoggerDebug format:@"PushNotification: Receive %@", userInfo]; - /* MODIFICATION: Remove remote notification - NSDictionary *aps = [userInfo objectForKey:@"aps"]; - if(aps != nil) { - NSDictionary *alert = [aps objectForKey:@"alert"]; - if(alert != nil) { - NSString *loc_key = [alert objectForKey:@"loc-key"]; - //if we receive a remote notification, it is because our TCP background socket was no more working. - //As a result, break it and refresh registers in order to make sure to receive incoming INVITE or MESSAGE - LinphoneCore *lc = [LinphoneManager getLc]; - linphone_core_set_network_reachable(lc, FALSE); - linphone_core_set_network_reachable(lc, TRUE); - if(loc_key != nil) { - if([loc_key isEqualToString:@"IM_MSG"]) { - [[PhoneMainView instance] addInhibitedEvent:kLinphoneTextReceived]; - [[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]]; - } else if([loc_key isEqualToString:@"IC_MSG"]) { - //it's a call - [[LinphoneManager instance] didReceiveRemoteNotification]; - } - } - } - } - */ + [LinphoneLogger log:LinphoneLoggerLog format:@"PushNotification: Receive %@", userInfo]; } - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { - if([notification.userInfo objectForKey:@"call"] != nil) { - LinphoneCall* call; - [(NSData*)[notification.userInfo objectForKey:@"call"] getBytes:&call]; - if (!call) { - [LinphoneLogger logc:LinphoneLoggerWarning format:"Local notification received with nil call"]; - return; - } - linphone_core_accept_call([LinphoneManager getLc], call); + if([notification.userInfo objectForKey:@"callId"] != nil) { + [[LinphoneManager instance] acceptCallForCallId:[notification.userInfo objectForKey:@"callId"]]; } else if([notification.userInfo objectForKey:@"chat"] != nil) { /* MODIFICATION: Remove chat local notificaiton NSString *remoteContact = (NSString*)[notification.userInfo objectForKey:@"chat"]; diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index 2e3c1afff..8db7cfca3 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -22,6 +22,7 @@ #import #import #import +#import #import @@ -69,10 +70,14 @@ struct NetworkReachabilityContext { void (*networkStateChanged) (Connectivity newConnectivity); }; -typedef struct _LinphoneCallAppData { - bool_t batteryWarningShown; +@interface LinphoneCallAppData :NSObject { + @public + bool_t batteryWarningShown; UILocalNotification *notification; -} LinphoneCallAppData; + NSMutableDictionary *userInfos; + bool_t videoRequested; /*set when user has requested for video*/ +}; +@end typedef struct _LinphoneManagerSounds { SystemSoundID call; @@ -88,9 +93,12 @@ typedef struct _LinphoneManagerSounds { @private NSTimer* mIterateTimer; - time_t lastRemoteNotificationTime; + NSMutableArray* pendindCallIdFromRemoteNotif; Connectivity connectivity; BOOL stopWaitingRegisters; + UIBackgroundTaskIdentifier pausedCallBgTask; + UIBackgroundTaskIdentifier incallBgTask; + CTCallCenter* callCenter; /* MODIFICATION: Add NSUSerdefault settings */ NSDictionary *currentSettings; @@ -116,9 +124,10 @@ typedef struct _LinphoneManagerSounds { - (BOOL)resignActive; - (void)becomeActive; - (BOOL)enterBackgroundMode; -- (void)didReceiveRemoteNotification; +- (void)enableAutoAnswerForCallId:(NSString*) callid; - (void)addPushTokenToProxyConfig: (LinphoneProxyConfig*)cfg; -- (BOOL)shouldAutoAcceptCall; +- (BOOL)shouldAutoAcceptCallForCallId:(NSString*) callId; +- (void)acceptCallForCallId:(NSString*)callid; - (void)waitForRegisterToArrive; + (void)kickOffNetworkConnection; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 15564c72b..45cb212c8 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -45,7 +45,7 @@ static LinphoneManager* theLinphoneManager = nil; const char *const LINPHONERC_APPLICATION_KEY = "app"; -NSString *const kLinphoneCoreUpdate = @"kLinphoneCoreUpdate"; +NSString *const kLinphoneCoreUpdate = @"LinphoneCoreUpdate"; NSString *const kLinphoneDisplayStatusUpdate = @"LinphoneDisplayStatusUpdate"; NSString *const kLinphoneTextReceived = @"LinphoneTextReceived"; NSString *const kLinphoneCallUpdate = @"LinphoneCallUpdate"; @@ -81,7 +81,22 @@ extern void libmssilk_init(); #if HAVE_G729 extern void libmsbcg729_init(); #endif +@implementation LinphoneCallAppData +- (id)init { + if ((self = [super init])) { + self->batteryWarningShown = FALSE; + self->notification = nil; + self->videoRequested=FALSE; + self->userInfos = [[NSMutableDictionary alloc] init]; + } + return self; +} +- (void)dealloc { + [self->userInfos release]; + [super dealloc]; +} +@end @implementation LinphoneManager @synthesize connectivity; @@ -110,7 +125,8 @@ struct codec_name_pref_table codec_pref_table[]={ { "speex", 16000, @"speex_16k_preference" }, { "silk", 24000, @"silk_24k_preference" }, { "silk", 16000, @"silk_16k_preference" }, - { "amr", 8000, @"amr_8k_preference" }, + { "amr", 8000, @"amr_preference" }, + { "gsm", 8000, @"gsm_preference" }, { "ilbc", 8000, @"ilbc_preference"}, { "pcmu", 8000, @"pcmu_preference"}, { "pcma", 8000, @"pcma_preference"}, @@ -234,7 +250,7 @@ struct codec_name_pref_table codec_pref_table[]={ [self openDatabase]; /**/ [self copyDefaultSettings]; - lastRemoteNotificationTime=0; + pendindCallIdFromRemoteNotif = [[NSMutableArray alloc] init ]; /* MODIFICATION: Add buschjaeger configuration */ configuration = [[BuschJaegerConfiguration alloc] init]; [configuration loadFile:kLinphoneConfigurationPath]; @@ -268,6 +284,7 @@ struct codec_name_pref_table codec_pref_table[]={ [LinphoneLogger logc:LinphoneLoggerError format:"cannot un register route change handler [%ld]", lStatus]; } + [pendindCallIdFromRemoteNotif release]; [super dealloc]; } @@ -383,44 +400,39 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char #pragma mark - Call State Functions - (void)onCall:(LinphoneCall*)call StateChanged:(LinphoneCallState)state withMessage:(const char *)message { - // Handling wrapper - CTCallCenter* ct = [[CTCallCenter alloc] init]; - - int callCount = [ct.currentCalls count]; - if (callCount>0 && state==LinphoneCallIncomingReceived) { - [LinphoneLogger logc:LinphoneLoggerLog format:"Mobile call ongoing... rejecting call from [%s]",linphone_address_get_username(linphone_call_get_call_log(call)->from)]; - linphone_core_terminate_call([LinphoneManager getLc], call); - return; + // Handling wrapper + LinphoneCallAppData* data=nil; + if (!linphone_call_get_user_pointer(call)) { + data = [[LinphoneCallAppData alloc] init]; + linphone_call_set_user_pointer(call, data); + } else { + data = (LinphoneCallAppData*) linphone_call_get_user_pointer(call); } - [ct release]; if(state == LinphoneCallReleased) { - if(linphone_call_get_user_pointer(call) != NULL) { - free (linphone_call_get_user_pointer(call)); + if(data != NULL) { + [data release]; linphone_call_set_user_pointer(call, NULL); } - return; - } - if (!linphone_call_get_user_pointer(call)) { - LinphoneCallAppData* data = (LinphoneCallAppData*) malloc(sizeof(LinphoneCallAppData)); - data->batteryWarningShown = FALSE; - data->notification = nil; - linphone_call_set_user_pointer(call, data); } + // Disable speaker when no more call if ((state == LinphoneCallEnd || state == LinphoneCallError)) { if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0) [self setSpeakerEnabled:FALSE]; + if (incallBgTask) { + [[UIApplication sharedApplication] endBackgroundTask:incallBgTask]; + incallBgTask=0; + } } // Enable speaker when video if(state == LinphoneCallIncomingReceived || state == LinphoneCallOutgoingInit || state == LinphoneCallConnected || - state == LinphoneCallStreamsRunning || - state == LinphoneCallUpdated) { + state == LinphoneCallStreamsRunning) { if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { [self setSpeakerEnabled:TRUE]; } @@ -447,7 +459,7 @@ static void linphone_iphone_transfer_state_changed(LinphoneCore* lc, LinphoneCal #pragma mark - Registration State Functions --(void) onRegister:(LinphoneCore *)lc cfg:(LinphoneProxyConfig*) cfg state:(LinphoneRegistrationState) state message:(const char*) message { +- (void)onRegister:(LinphoneCore *)lc cfg:(LinphoneProxyConfig*) cfg state:(LinphoneRegistrationState) state message:(const char*) message { [LinphoneLogger logc:LinphoneLoggerLog format:"NEW REGISTRATION STATE: '%s' (message: '%s')", linphone_registration_state_to_string(state), message]; if (state==LinphoneRegistrationOk) [LinphoneManager instance]->stopWaitingRegisters=TRUE; @@ -679,10 +691,14 @@ static LinphoneCoreVTable linphonec_vtable = { #if HAVE_G729 libmsbcg729_init(); // load g729 plugin #endif + [self setupGSMInteraction]; /* Initialize linphone core*/ - - [LinphoneLogger logc:LinphoneLoggerLog format:"Create linphonecore"]; - linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler); + + /*to make sure we don't loose debug trace*/ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"debugenable_preference"]) { + linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler); + } + [LinphoneLogger logc:LinphoneLoggerLog format:"Create linphonecore"]; theLinphoneCore = linphone_core_new (&linphonec_vtable , [confiFileName cStringUsingEncoding:[NSString defaultCStringEncoding]] , [factoryConfig cStringUsingEncoding:[NSString defaultCStringEncoding]] @@ -764,10 +780,6 @@ static LinphoneCoreVTable linphonec_vtable = { linphone_core_enable_video(theLinphoneCore, FALSE, FALSE); } - if ([LinphoneManager runningOnIpad]) - ms_set_cpu_count(2); - else - ms_set_cpu_count(1); @@ -788,6 +800,14 @@ static LinphoneCoreVTable linphonec_vtable = { - (void)destroyLibLinphone { [mIterateTimer invalidate]; + // destroying eventHandler if app cannot go in background. + // Otherwise if a GSM call happen and Linphone is resumed, + // the handler will be called before LinphoneCore is built. + // Then handler will be restored in appDidBecomeActive cb + callCenter.callEventHandler = nil; + [callCenter release]; + callCenter = nil; + AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setDelegate:nil]; @@ -808,21 +828,50 @@ static LinphoneCoreVTable linphonec_vtable = { } } -- (void)didReceiveRemoteNotification{ - lastRemoteNotificationTime=time(NULL); +static int comp_call_id(const LinphoneCall* call , const char *callid) { + return strcmp(linphone_call_get_call_log(call)->call_id, callid); } -- (BOOL)shouldAutoAcceptCall{ - if (lastRemoteNotificationTime!=0){ - if ((time(NULL)-lastRemoteNotificationTime)<15) - return TRUE; - lastRemoteNotificationTime=0; +- (void)acceptCallForCallId:(NSString*)callid { + //first, make sure this callid is not already involved in a call + if ([LinphoneManager isLcReady]) { + MSList* calls = (MSList*)linphone_core_get_calls([LinphoneManager getLc]); + MSList* call = ms_list_find_custom(calls, (MSCompareFunc)comp_call_id, [callid UTF8String]); + if (call != NULL) { + linphone_core_accept_call(theLinphoneCore, (LinphoneCall*)call->data); + return; + }; + } +} + +- (void)enableAutoAnswerForCallId:(NSString*) callid { + //first, make sure this callid is not already involved in a call + if ([LinphoneManager isLcReady]) { + MSList* calls = (MSList*)linphone_core_get_calls([LinphoneManager getLc]); + if (ms_list_find_custom(calls, (MSCompareFunc)comp_call_id, [callid UTF8String])) { + [LinphoneLogger log:LinphoneLoggerWarning format:@"Call id [%@] already handled",callid]; + return; + }; + } + if ([pendindCallIdFromRemoteNotif count] > 10 /*max number of pending notif*/) + [pendindCallIdFromRemoteNotif removeObjectAtIndex:0]; + [pendindCallIdFromRemoteNotif addObject:callid]; + +} + +- (BOOL)shouldAutoAcceptCallForCallId:(NSString*) callId { + for (NSString* pendingNotif in pendindCallIdFromRemoteNotif) { + if ([pendingNotif compare:callId] == NSOrderedSame) { + [pendindCallIdFromRemoteNotif removeObject:pendingNotif]; + return TRUE; + } } return FALSE; } - (BOOL)resignActive { linphone_core_stop_dtmf_stream(theLinphoneCore); + return YES; } @@ -844,20 +893,28 @@ static LinphoneCoreVTable linphonec_vtable = { } } +static int comp_call_state_paused (const LinphoneCall* call, const void* param) { + return linphone_call_get_state(call) != LinphoneCallPaused; +} + - (BOOL)enterBackgroundMode { LinphoneProxyConfig* proxyCfg; linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg); - if (proxyCfg && [[NSUserDefaults standardUserDefaults] boolForKey:@"backgroundmode_preference"]) { - //For registration register - [self refreshRegisters]; - //wait for registration answer - int i=0; - while (!linphone_proxy_config_is_registered(proxyCfg) && i++<40 ) { - linphone_core_iterate(theLinphoneCore); - usleep(100000); - } + if ((proxyCfg || linphone_core_get_calls_nb(theLinphoneCore) > 0) && + [[NSUserDefaults standardUserDefaults] boolForKey:@"backgroundmode_preference"]) { + + if(proxyCfg != NULL) { + //For registration register + [self refreshRegisters]; + //wait for registration answer + int i=0; + while (!linphone_proxy_config_is_registered(proxyCfg) && i++<40 ) { + linphone_core_iterate(theLinphoneCore); + usleep(100000); + } + } //register keepalive if ([[UIApplication sharedApplication] setKeepAliveTimeout:600/*(NSTimeInterval)linphone_proxy_config_get_expires(proxyCfg)*/ handler:^{ @@ -878,10 +935,18 @@ static LinphoneCoreVTable linphonec_vtable = { } else { [LinphoneLogger logc:LinphoneLoggerLog format:"keepalive handler cannot be registered"]; } - LCSipTransports transportValue; - if (linphone_core_get_sip_transports(theLinphoneCore, &transportValue)) { - [LinphoneLogger logc:LinphoneLoggerError format:"cannot get current transport"]; + LinphoneCall* currentCall = linphone_core_get_current_call(theLinphoneCore); + const MSList* callList = linphone_core_get_calls(theLinphoneCore); + if (!currentCall //no active call + && callList // at least one call in a non active state + && ms_list_find_custom((MSList*)callList, (MSCompareFunc) comp_call_state_paused, NULL)) { + pausedCallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ + [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot be paused any more, too late"]; + }]; + [LinphoneLogger log:LinphoneLoggerLog format:@"Long running task started, remaining [%fs] because at least one call is paused" + ,[[UIApplication sharedApplication] backgroundTimeRemaining]]; } + return YES; } else { @@ -897,9 +962,27 @@ static LinphoneCoreVTable linphonec_vtable = { [self refreshRegisters]; } /**/ - + if (pausedCallBgTask) { + [[UIApplication sharedApplication] endBackgroundTask:pausedCallBgTask]; + pausedCallBgTask=0; + } + if (incallBgTask) { + [[UIApplication sharedApplication] endBackgroundTask:incallBgTask]; + incallBgTask=0; + } + /*IOS specific*/ linphone_core_start_dtmf_stream(theLinphoneCore); + + + //call center is unrelialable on the long run, so we change it each time the application is resumed. To avoid zombie GSM call + [self setupGSMInteraction]; + + //to make sure presence status is correct + if ([callCenter currentCalls]==nil) + linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService); + + } - (void)beginInterruption { @@ -986,8 +1069,8 @@ static void audioRouteChangeListenerCallback ( return; } - CTCallCenter* ct = [[CTCallCenter alloc] init]; - if ([ct.currentCalls count] > 0) { + + if ([callCenter currentCalls]!=nil) { [LinphoneLogger logc:LinphoneLoggerError format:"GSM call in progress, cancelling outgoing SIP call request"]; UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot make call",nil) message:NSLocalizedString(@"Please terminate GSM call",nil) @@ -996,16 +1079,15 @@ static void audioRouteChangeListenerCallback ( otherButtonTitles:nil]; [error show]; [error release]; - [ct release]; return; } - [ct release]; LinphoneProxyConfig* proxyCfg; //get default proxy linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg); LinphoneCallParams* lcallParams = linphone_core_create_default_call_parameters([LinphoneManager getLc]); - + LinphoneCall* call=NULL; + if ([address length] == 0) return; //just return if ([address hasPrefix:@"sip:"]) { LinphoneAddress* linphoneAddress = linphone_address_new([address cStringUsingEncoding:[NSString defaultCStringEncoding]]); @@ -1015,7 +1097,7 @@ static void audioRouteChangeListenerCallback ( if(transfer) { linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), [address cStringUsingEncoding:[NSString defaultCStringEncoding]]); } else { - linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress, lcallParams); + call=linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress, lcallParams); } linphone_address_destroy(linphoneAddress); } else if (proxyCfg==nil){ @@ -1037,10 +1119,15 @@ static void audioRouteChangeListenerCallback ( if(transfer) { linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), normalizedUserName); } else { - linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress, lcallParams); + call=linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress, lcallParams); } linphone_address_destroy(linphoneAddress); } + if (call) { + LinphoneCallAppData* data = [[LinphoneCallAppData alloc] init]; + data->videoRequested = linphone_call_params_video_enabled(lcallParams); /* will be used later to notify user if video was not activated because of the linphone core*/ + linphone_call_set_user_pointer(call, data); + } linphone_call_params_destroy(lcallParams); } @@ -1474,4 +1561,34 @@ static void audioRouteChangeListenerCallback ( return [self lpConfigIntForKey:key forSection:section] == 1; } +#pragma GSM management + +- (void)setupGSMInteraction { + + if (callCenter != nil) + [callCenter release]; + + callCenter = [[CTCallCenter alloc] init]; + callCenter.callEventHandler = ^(CTCall* call) { + // post on main thread + [self performSelectorOnMainThread:@selector(handleGSMCallInteration:) + withObject:callCenter + waitUntilDone:YES]; + }; + +} + +- (void)handleGSMCallInteration: (id) cCenter { + CTCallCenter* ct = (CTCallCenter*) cCenter; + /* pause current call, if any */ + LinphoneCall* call = linphone_core_get_current_call(theLinphoneCore); + if ([ct currentCalls]!=nil) { + if (call) {[LinphoneLogger logc:LinphoneLoggerLog format:"Pausing SIP call"]; + linphone_core_pause_call(theLinphoneCore, call); + } + //set current status to busy + linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusBusy); + } else + linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService); +} @end diff --git a/Classes/LinphoneUI/UILinphone.h b/Classes/LinphoneUI/UILinphone.h index 02b6d660c..d291ff639 100644 --- a/Classes/LinphoneUI/UILinphone.h +++ b/Classes/LinphoneUI/UILinphone.h @@ -35,8 +35,8 @@ @end -@interface UIImage (NormalizedImage) +@interface UIImage (ForceDecode) -- (void)forceDecompression; ++ (UIImage *)decodedImageWithImage:(UIImage *)image; @end diff --git a/Classes/LinphoneUI/UILinphone.m b/Classes/LinphoneUI/UILinphone.m index a9fbce149..ab35fe731 100644 --- a/Classes/LinphoneUI/UILinphone.m +++ b/Classes/LinphoneUI/UILinphone.m @@ -93,16 +93,36 @@ @end -@implementation UIImage (NormalizedImage) +@implementation UIImage (ForceDecode) -- (void)forceDecompression { - CGImageRef imageRef = [self CGImage]; ++ (UIImage *)decodedImageWithImage:(UIImage *)image +{ + CGImageRef imageRef = image.CGImage; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(NULL, CGImageGetWidth(imageRef), CGImageGetHeight(imageRef), 8, CGImageGetWidth(imageRef) * 4, colorSpace,kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little); + CGContextRef context = CGBitmapContextCreate(NULL, + CGImageGetWidth(imageRef), + CGImageGetHeight(imageRef), + 8, + // Just always return width * 4 will be enough + CGImageGetWidth(imageRef) * 4, + // System only supports RGB, set explicitly + colorSpace, + // Makes system don't need to do extra conversion when displayed. + // NOTE: here we remove the alpha channel for performance. Most of the time, images loaded + // from the network are jpeg with no alpha channel. As a TODO, finding a way to detect + // if alpha channel is necessary would be nice. + kCGImageAlphaNoneSkipLast | kCGBitmapByteOrder32Little); CGColorSpaceRelease(colorSpace); - if (!context) { NSLog(@"Could not create context for image decompression"); return; } - CGContextDrawImage(context, (CGRect){{0.0f, 0.0f}, {CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)}}, imageRef); - CFRelease(context); + if (!context) return nil; + + CGRect rect = (CGRect){CGPointZero,{CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)}}; + CGContextDrawImage(context, rect, imageRef); + CGImageRef decompressedImageRef = CGBitmapContextCreateImage(context); + CGContextRelease(context); + + UIImage *decompressedImage = [[UIImage alloc] initWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation]; + CGImageRelease(decompressedImageRef); + return [decompressedImage autorelease]; } @end diff --git a/Classes/LinphoneUI/UIVideoButton.m b/Classes/LinphoneUI/UIVideoButton.m index 6100bc7da..9514e3f23 100644 --- a/Classes/LinphoneUI/UIVideoButton.m +++ b/Classes/LinphoneUI/UIVideoButton.m @@ -66,7 +66,9 @@ [waitView startAnimating]; LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); - if (call) { + if (call) { + LinphoneCallAppData* callAppData = (LinphoneCallAppData*)linphone_call_get_user_pointer(call); + callAppData->videoRequested=TRUE; /* will be used later to notify user if video was not activated because of the linphone core*/ LinphoneCallParams* call_params = linphone_call_params_copy(linphone_call_get_current_params(call)); linphone_call_params_enable_video(call_params, TRUE); linphone_core_update_call(lc, call, call_params); @@ -104,17 +106,20 @@ - (bool)onUpdate { if([LinphoneManager isLcReady]) { bool val = false; +#ifdef VIDEO_ENABLED if(linphone_core_video_enabled([LinphoneManager getLc])) { LinphoneCall* currentCall = linphone_core_get_current_call([LinphoneManager getLc]); if (currentCall) { LinphoneCallState state = linphone_call_get_state(currentCall); switch (state) { - case LinphoneCallUpdated: + case LinphoneCallUpdating: { - [waitView stopAnimating]; + [self setEnabled:FALSE]; + break; } case LinphoneCallStreamsRunning: { + [waitView stopAnimating]; [self setEnabled:TRUE]; if (linphone_call_params_video_enabled(linphone_call_get_current_params(currentCall))) { val = true; @@ -141,6 +146,9 @@ [self setEnabled:FALSE]; [waitView stopAnimating]; } +#else //VIDEO_ENABLED + [self setEnabled:FALSE]; +#endif //VIDEO_ENABLED return val; } else { [LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update video button: Linphone core not ready"]; diff --git a/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.h b/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.h new file mode 100755 index 000000000..47fc08713 --- /dev/null +++ b/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.h @@ -0,0 +1,20 @@ +// +// CAAnimation+Blocks.h +// CAAnimationBlocks +// +// Created by xissburg on 7/7/11. +// Copyright 2011 xissburg. All rights reserved. +// + +#import +#import + + +@interface CAAnimation (BlocksAddition) + +@property (nonatomic, copy) void (^completion)(BOOL finished); +@property (nonatomic, copy) void (^start)(void); + +- (void)setCompletion:(void (^)(BOOL finished))completion; // Forces auto-complete of setCompletion: to add the name 'finished' in the block parameter + +@end diff --git a/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.m b/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.m new file mode 100755 index 000000000..f6ce6c738 --- /dev/null +++ b/Classes/Utils/CAAnimationBlocks/CAAnimation+Blocks.m @@ -0,0 +1,99 @@ +// +// CAAnimation+Blocks.m +// CAAnimationBlocks +// +// Created by xissburg on 7/7/11. +// Copyright 2011 xissburg. All rights reserved. +// + +#import "CAAnimation+Blocks.h" + + +@interface CAAnimationDelegate : NSObject + +@property (nonatomic, copy) void (^completion)(BOOL); +@property (nonatomic, copy) void (^start)(void); + +- (void)animationDidStart:(CAAnimation *)anim; +- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag; + +@end + +@implementation CAAnimationDelegate + +@synthesize completion=_completion; +@synthesize start=_start; + +- (id)init +{ + self = [super init]; + if (self) { + self.completion = nil; + self.start = nil; + } + return self; +} + +- (void)dealloc +{ + self.completion = nil; + self.start = nil; + [super dealloc]; +} + +- (void)animationDidStart:(CAAnimation *)anim +{ + if (self.start != nil) { + self.start(); + } +} + +- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag +{ + if (self.completion != nil) { + self.completion(flag); + } +} + +@end + + +@implementation CAAnimation (BlocksAddition) + +- (void)setCompletion:(void (^)(BOOL))completion +{ + if ([self.delegate isKindOfClass:[CAAnimationDelegate class]]) { + ((CAAnimationDelegate *)self.delegate).completion = completion; + } + else { + CAAnimationDelegate *delegate = [[CAAnimationDelegate alloc] init]; + delegate.completion = completion; + self.delegate = delegate; + [delegate release]; + } +} + +- (void (^)(BOOL))completion +{ + return [self.delegate isKindOfClass:[CAAnimationDelegate class]]? ((CAAnimationDelegate *)self.delegate).completion: nil; +} + +- (void)setStart:(void (^)(void))start +{ + if ([self.delegate isKindOfClass:[CAAnimationDelegate class]]) { + ((CAAnimationDelegate *)self.delegate).start = start; + } + else { + CAAnimationDelegate *delegate = [[CAAnimationDelegate alloc] init]; + delegate.start = start; + self.delegate = delegate; + [delegate release]; + } +} + +- (void (^)(void))start +{ + return [self.delegate isKindOfClass:[CAAnimationDelegate class]]? ((CAAnimationDelegate *)self.delegate).start: nil; +} + +@end diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index bdb6e1b70..ffa5d826a 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -111,8 +111,16 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf if ((self = [super init]) != nil) { addressBookMap = [[NSMutableDictionary alloc] init]; addressBook = ABAddressBookCreate(); - ABAddressBookRegisterExternalChangeCallback (addressBook, sync_address_book, self); - [self loadData]; + ABAddressBookRegisterExternalChangeCallback (addressBook, sync_address_book, self); + if (ABAddressBookGetAuthorizationStatus && ABAddressBookGetAuthorizationStatus() != kABAuthorizationStatusNotDetermined) { + ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { + if (granted) [self loadData]; + }); + } else { + [self loadData]; + } + + } return self; } diff --git a/Classes/Utils/Utils.h b/Classes/Utils/Utils.h index 4f1e9f0a8..00c7b3eeb 100644 --- a/Classes/Utils/Utils.h +++ b/Classes/Utils/Utils.h @@ -47,6 +47,7 @@ typedef enum _LinphoneLoggerSeverity { } ++ (BOOL)findAndResignFirstResponder:(UIView*)view; + (void)adjustFontSize:(UIView*)view mult:(float)mult; + (void)buttonFixStates:(UIButton*)button; + (void)buttonFixStatesForTabs:(UIButton*)button; diff --git a/Classes/Utils/Utils.m b/Classes/Utils/Utils.m index 3c93afb03..8e7b39d1d 100644 --- a/Classes/Utils/Utils.m +++ b/Classes/Utils/Utils.m @@ -63,6 +63,18 @@ @implementation LinphoneUtils ++ (BOOL)findAndResignFirstResponder:(UIView*)view { + if (view.isFirstResponder) { + [view resignFirstResponder]; + return YES; + } + for (UIView *subView in view.subviews) { + if ([LinphoneUtils findAndResignFirstResponder:subView]) + return YES; + } + return NO; +} + + (void)adjustFontSize:(UIView*)view mult:(float)mult{ if([view isKindOfClass:[UILabel class]]) { UILabel *label = (UILabel*)view; diff --git a/Classes/en.lproj/ImageViewController.xib b/Classes/en.lproj/ImageViewController.xib deleted file mode 100644 index cbe23f899..000000000 --- a/Classes/en.lproj/ImageViewController.xib +++ /dev/null @@ -1,349 +0,0 @@ - - - - 1536 - 11E53 - 2840 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1926 - - - IBProxyObject - IBUIButton - IBUIImageView - IBUIScrollView - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 290 - - - - 290 - {320, 44} - - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - toolsbar_background.png - - - - - 292 - {160, 44} - - - - _NS:9 - NO - - Back - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Back - - 2 - MCAwIDAAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - image_back_over.png - - - NSImage - image_back_default.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - {320, 44} - - - - _NS:9 - - 3 - MCAwAA - - IBCocoaTouchFramework - - - - 274 - - - - 274 - {320, 416} - - - _NS:9 - - 4 - NO - IBCocoaTouchFramework - - - {{0, 44}, {320, 416}} - - - - _NS:9 - - 3 - MAA - - YES - YES - IBCocoaTouchFramework - 0.0 - 10 - - - {{0, 20}, {320, 460}} - - - - - - IBCocoaTouchFramework - - - - - - - view - - - - 3 - - - - backButton - - - - 8 - - - - imageView - - - - 9 - - - - scrollView - - - - 13 - - - - onBackClick: - - - 7 - - 10 - - - - - - 0 - - - - - - 1 - - - - - - - - - -1 - - - File's Owner - - - -2 - - - - - 11 - - - - - - - toolbar - - - 7 - - - backButton - - - 6 - - - background - - - 12 - - - - - - scrollView - - - 4 - - - imageView - - - - - ImageViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - - - 13 - - - - - ImageViewController - UIViewController - - onBackClick: - id - - - onBackClick: - - onBackClick: - id - - - - UIButton - UIImageView - UIScrollView - - - - backButton - UIButton - - - imageView - UIImageView - - - scrollView - UIScrollView - - - - IBProjectSource - ./Classes/ImageViewController.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - - {320, 88} - {320, 88} - {5, 88} - - 1926 - - diff --git a/Classes/en.lproj/WizardViewController~ipad.xib b/Classes/en.lproj/WizardViewController~ipad.xib deleted file mode 100644 index 3644e0e0f..000000000 --- a/Classes/en.lproj/WizardViewController~ipad.xib +++ /dev/null @@ -1,795 +0,0 @@ - - - - 1536 - 11E53 - 2840 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1926 - - - IBProxyObject - IBUIActivityIndicatorView - IBUIButton - IBUIScrollView - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 292 - - - - 274 - {768, 966} - - - _NS:9 - YES - YES - 1 - IBCocoaTouchFramework - NO - NO - - - - 266 - - - - 290 - {{0, 77}, {768, 2000}} - - _NS:9 - - 1 - MC4xNDkwMTk2MDc4IDAuMTY0NzA1ODgyNCAwLjE4MDM5MjE1NjkAA - - 28 - IBCocoaTouchFramework - - - - 294 - {384, 77} - - - _NS:9 - NO - 3 - - Cancel - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Cancel - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - setup_cancel_over~ipad.png - - - NSImage - setup_cancel_disabled~ipad.png - - - NSImage - setup_cancel_default~ipad.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - - 291 - {{384, 0}, {384, 77}} - - - _NS:9 - NO - 4 - - Start - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 54 - 0.0 - Start - - - - - NSImage - setup_start_over~ipad.png - - - NSImage - setup_start_default~ipad.png - - - - - - - -2147483357 - {{384, 0}, {384, 77}} - - - _NS:9 - NO - 5 - - Back - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 54 - 0.0 - Back - - - - - NSImage - setup_back_over~ipad.png - - - NSImage - setup_back_disabled~ipad.png - - - NSImage - setup_back_default~ipad.png - - - - - - {{0, 947}, {768, 77}} - - - _NS:9 - - 3 - MCAwAA - - 2 - IBCocoaTouchFramework - - - - -2147483374 - - - - 301 - {{366, 492}, {37, 37}} - - - _NS:9 - NO - 7 - IBCocoaTouchFramework - NO - YES - 0 - - - {768, 1024} - - - _NS:9 - - 3 - MSAwLjUAA - - 6 - IBCocoaTouchFramework - - - {768, 1024} - - - _NS:9 - - IBCocoaTouchFramework - - - - 292 - - - - 274 - {1024, 711} - - - _NS:9 - YES - YES - 1 - IBCocoaTouchFramework - NO - NO - - - - 266 - - - - 290 - {{0, 77}, {1024, 2000}} - - _NS:9 - - 1 - MC4xNDkwMTk2MDc4IDAuMTY0NzA1ODgyNCAwLjE4MDM5MjE1NjkAA - - 28 - IBCocoaTouchFramework - - - - 294 - {512, 77} - - - _NS:9 - NO - 3 - - Cancel - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Cancel - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - - NSImage - setup_cancel_over_landscape~ipad.png - - - NSImage - setup_cancel_disabled_landscape~ipad.png - - - NSImage - setup_cancel_default_landscape~ipad.png - - - - - - - 291 - {{512, 0}, {512, 77}} - - - _NS:9 - NO - 4 - - Start - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 16 - 0.0 - Start - - - - - NSImage - setup_start_over_landscape~ipad.png - - - NSImage - setup_start_default_landscape~ipad.png - - - - - - - -2147483357 - {{512, 0}, {512, 77}} - - - _NS:9 - NO - 5 - - Back - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 16 - 0.0 - Back - - - - - NSImage - setup_back_over_landscape~ipad.png - - - NSImage - setup_back_disabled_landscape~ipad.png - - - NSImage - setup_back_default_landscape~ipad.png - - - - - - {{0, 691}, {1024, 77}} - - - _NS:9 - - 2 - IBCocoaTouchFramework - - - - -2147483374 - - - - 301 - {{494, 364}, {37, 37}} - - - _NS:9 - NO - 7 - IBCocoaTouchFramework - NO - YES - 0 - - - {1024, 768} - - - _NS:9 - - 3 - MSAwLjUAA - - 6 - IBCocoaTouchFramework - - - {1024, 768} - - - _NS:9 - - IBCocoaTouchFramework - - - - - - - view - - - - 20 - - - - startButton - - - - 26 - - - - backButton - - - - 27 - - - - contentView - - - - 99 - - - - portraitView - - - - 117 - - - - waitView - - - - 131 - - - - landscapeView - - - - 134 - - - - onStartClick: - - - 7 - - 25 - - - - onBackClick: - - - 7 - - 23 - - - - onCancelClick: - - - 7 - - 24 - - - - onCancelClick: - - - 7 - - 128 - - - - onStartClick: - - - 7 - - 126 - - - - onBackClick: - - - 7 - - 127 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 12 - - - - - - - - Portrait View - - - 98 - - - contentView - - - 14 - - - - - - - - - tabBar - - - 18 - - - cancelButton - - - 16 - - - startButton - - - 17 - - - backButton - - - 118 - - - - - - - - Landscape View - - - 119 - - - contentView - - - 120 - - - - - - - - - tabBar - - - 122 - - - cancelButton - - - 123 - - - startButton - - - 124 - - - backButton - - - 129 - - - - - - waitView - - - 130 - - - activityIndicatorView - - - 132 - - - - - - waitView - - - 133 - - - activityIndicatorView - - - 137 - - - background - - - 136 - - - background - - - - - WizardViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 137 - - - 0 - IBCocoaTouchFramework - YES - 3 - - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - - 1926 - - diff --git a/Classes/en.lproj/WizardViews.xib b/Classes/en.lproj/WizardViews.xib deleted file mode 100644 index d1584ea80..000000000 --- a/Classes/en.lproj/WizardViews.xib +++ /dev/null @@ -1,1551 +0,0 @@ - - - - 1536 - 11E53 - 2840 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1926 - - - IBProxyObject - IBUIButton - IBUIImageView - IBUILabel - IBUITextField - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{60, 80}, {201, 129}} - - - _NS:9 - 1 - NO - - Linphone setup assistant icon - - - IBCocoaTouchFramework - - NSImage - setup_welcome_logo.png - - - - - 319 - {{31, 230}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - 1 - MCAwIDAAA - darkTextColor - - - - 3 - MC4zMzMzMzMzMzMzAA - - {-1, -1} - 0 - 10 - 1 - - 3 - 20 - - - Helvetica-Oblique - 20 - 16 - - - - - 282 - {{40, 290}, {240, 44}} - - _NS:9 - NO - YES - 7 - NO - IBCocoaTouchFramework - This assistant will help you to use a SIP account for your calls. - - - 0 - 10 - 0 - 1 - - 1 - 12 - - - Helvetica - 12 - 16 - - NO - 240 - - - {320, 394} - - - _NS:9 - - 3 - MCAwAA - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 319 - {{33, 141}, {255, 50}} - - - _NS:9 - NO - - Create linphone.org account - - - IBCocoaTouchFramework - 0 - 0 - NO - Create an account on linphone.org - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - button_background_over.png - - - NSImage - button_background_default.png - - - 2 - 13 - - - Helvetica-Bold - 13 - 16 - - - - - 319 - {{33, 205}, {255, 50}} - - - _NS:9 - NO - - Sign in linphone.org account - - - IBCocoaTouchFramework - 0 - 0 - NO - I have already a linphone.org account - - - - - - - - - - - 319 - {{33, 269}, {255, 50}} - - _NS:9 - NO - - Sign in SIP account - - - IBCocoaTouchFramework - 0 - 0 - NO - I have already a SIP account - - - - - - - - - - {320, 394} - - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{39, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Enter your username and password with your email address. - - - 0 - 10 - 0 - 1 - - - NO - 240 - - - - 319 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Username - - IBCocoaTouchFramework - 0 - - Username - - 3 - MAA - - 2 - - - 10 - - 1 - IBCocoaTouchFramework - - - NSImage - field_background.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - - 319 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Password - - IBCocoaTouchFramework - 0 - - Password - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 230}, {255, 31}} - - - _NS:9 - NO - YES - 102 - - Password again - - IBCocoaTouchFramework - 0 - - Password - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 275}, {255, 31}} - - - _NS:9 - NO - YES - 103 - - Email - - IBCocoaTouchFramework - 0 - - Email - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{33, 330}, {255, 50}} - - _NS:9 - NO - - Register - - IBCocoaTouchFramework - 0 - 0 - NO - Register - - - - - - - 2 - 20 - - - Helvetica-Bold - 20 - 16 - - - - {320, 394} - - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Enter your username and password of your linphone.org account. - - - 0 - 10 - 0 - 1 - - - NO - 240 - - - - 319 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Password - - IBCocoaTouchFramework - 0 - - Password - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Username - - IBCocoaTouchFramework - 0 - - Username - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{32, 330}, {255, 50}} - - _NS:9 - NO - - Sign in - - IBCocoaTouchFramework - 0 - 0 - NO - Sign in - - - - - - - - - - {320, 394} - - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Enter your username and password with your SIP domain. - - - 0 - 10 - 0 - 1 - - - NO - 240 - - - - 319 - {{33, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Username - - IBCocoaTouchFramework - 0 - - Username - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 319 - {{33, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Password - - IBCocoaTouchFramework - 0 - - Password - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{33, 230}, {255, 31}} - - - _NS:9 - NO - YES - 104 - - Domain - - IBCocoaTouchFramework - 0 - - Domain - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{34, 330}, {255, 50}} - - _NS:9 - NO - - Sign in - - IBCocoaTouchFramework - 0 - 0 - NO - Sign in - - - - - - - - - - {320, 394} - - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Account setup assistant - - IBCocoaTouchFramework - Account setup assistant - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Your account is created. Please check your mails in order to validate your account. - - - 0 - 10 - 0 - 1 - - - NO - 240 - - - - -2147483329 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - - - IBCocoaTouchFramework - 0 - - Password - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - -2147483329 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - - - IBCocoaTouchFramework - 0 - - Username - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{32, 330}, {255, 50}} - - _NS:9 - NO - - Check validation - - IBCocoaTouchFramework - 0 - 0 - NO - Check validation - - - - - - - - - - {320, 394} - - - _NS:9 - - IBCocoaTouchFramework - - - - - - - welcomeView - - - - 28 - - - - choiceView - - - - 40 - - - - createAccountView - - - - 70 - - - - connectAccountView - - - - 71 - - - - externalAccountView - - - - 72 - - - - validateAccountView - - - - 112 - - - - onCreateAccountClick: - - - 7 - - 42 - - - - onConnectAccountClick: - - - 7 - - 41 - - - - onExternalAccountClick: - - - 7 - - 43 - - - - delegate - - - - 86 - - - - delegate - - - - 87 - - - - delegate - - - - 88 - - - - onSignInExternalClick: - - - 7 - - 115 - - - - onSignInClick: - - - 7 - - 116 - - - - delegate - - - - 85 - - - - delegate - - - - 81 - - - - delegate - - - - 80 - - - - delegate - - - - 82 - - - - delegate - - - - 83 - - - - onRegisterClick: - - - 7 - - 113 - - - - delegate - - - - 84 - - - - onCheckValidationClick: - - - 7 - - 114 - - - - delegate - - - - 109 - - - - delegate - - - - 110 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 21 - - - - - - - - welcomeView - - - 19 - - - iconImage - - - 22 - - - label - - - 33 - - - - - - - - - choiceView - - - 44 - - - - - - - - - - - - createAccountView - - - 52 - - - - - - - - - - connectAccountView - - - 56 - - - - - - - - - - - externalAccountView - - - 58 - - - label - - - 59 - - - usernameField - - - 60 - - - passwordField - - - 61 - - - domainField - - - 62 - - - signInButton - - - 66 - - - passwordField - - - 67 - - - label - - - 68 - - - usernameField - - - 73 - - - label - - - 74 - - - usernameField - - - 75 - - - passwordField - - - 76 - - - password2Field - - - 77 - - - registerButton - - - 79 - - - emailField - - - 39 - - - externalAccountButton - - - 38 - - - connectAccountButton - - - 36 - - - createAccountButton - - - 101 - - - - - - - - - - validateAccountView - - - 103 - - - checkValidationButton - - - 105 - - - label - - - 104 - - - usernameField - - - 106 - - - passwordField - - - 117 - - - title - - - 122 - - - title - - - 123 - - - title - - - 124 - - - title - - - 126 - - - title - - - 64 - - - signInButton - - - 127 - - - title - - - - - WizardViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 127 - - - 0 - IBCocoaTouchFramework - YES - 3 - - {550, 101} - {550, 101} - {542, 88} - {179, 161} - - 1926 - - diff --git a/Classes/fr.lproj/ImageViewController.xib b/Classes/fr.lproj/ImageViewController.xib deleted file mode 100644 index b3439c30a..000000000 --- a/Classes/fr.lproj/ImageViewController.xib +++ /dev/null @@ -1,302 +0,0 @@ - - - - 1536 - 11E53 - 2840 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1926 - - - IBProxyObject - IBUIButton - IBUIImageView - IBUIScrollView - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 290 - - - - 290 - {320, 44} - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - toolsbar_background.png - - - - - 292 - {160, 44} - - - _NS:9 - NO - - Retour - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Retour - - 2 - MCAwIDAAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - image_back_over.png - - - NSImage - image_back_default.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - {320, 44} - - - _NS:9 - - 3 - MCAwAA - - IBCocoaTouchFramework - - - - 274 - - - - 274 - {320, 416} - - _NS:9 - - 4 - NO - IBCocoaTouchFramework - - - {{0, 44}, {320, 416}} - - - _NS:9 - - 3 - MAA - - YES - YES - IBCocoaTouchFramework - 0.0 - 10 - - - {{0, 20}, {320, 460}} - - - - - IBCocoaTouchFramework - - - - - - - view - - - - 3 - - - - backButton - - - - 8 - - - - imageView - - - - 9 - - - - scrollView - - - - 13 - - - - onBackClick: - - - 7 - - 10 - - - - - - 0 - - - - - - 1 - - - - - - - - - -1 - - - File's Owner - - - -2 - - - - - 11 - - - - - - - toolbar - - - 7 - - - backButton - - - 6 - - - background - - - 12 - - - - - - scrollView - - - 4 - - - imageView - - - - - ImageViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - - - 13 - - - 0 - IBCocoaTouchFramework - YES - 3 - - {320, 88} - {320, 88} - {5, 88} - - 1926 - - diff --git a/Classes/fr.lproj/WizardViewController~ipad.xib b/Classes/fr.lproj/WizardViewController~ipad.xib deleted file mode 100644 index 0a1f3c058..000000000 --- a/Classes/fr.lproj/WizardViewController~ipad.xib +++ /dev/null @@ -1,793 +0,0 @@ - - - - 1280 - 11E53 - 1938 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 933 - - - IBUIButton - IBUIActivityIndicatorView - IBUIView - IBUIScrollView - IBProxyObject - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 292 - - - - 274 - {768, 966} - - - _NS:9 - YES - YES - 1 - IBCocoaTouchFramework - NO - NO - - - - 266 - - - - 290 - {{0, 77}, {768, 2000}} - - _NS:9 - - 1 - MC4xNDkwMTk2MDc4IDAuMTY0NzA1ODgyNCAwLjE4MDM5MjE1NjkAA - - 28 - IBCocoaTouchFramework - - - - 294 - {384, 77} - - - _NS:9 - NO - 3 - - Annuler - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Annuler - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - setup_cancel_over~ipad.png - - - NSImage - setup_cancel_disabled~ipad.png - - - NSImage - setup_cancel_default~ipad.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - - 291 - {{384, 0}, {384, 77}} - - - _NS:9 - NO - 4 - - Démarrer - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 54 - 0.0 - Démarrer - - - - - NSImage - setup_start_over~ipad.png - - - NSImage - setup_start_default~ipad.png - - - - - - - -2147483357 - {{384, 0}, {384, 77}} - - - _NS:9 - NO - 5 - - Retour - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 54 - 0.0 - Retour - - - - - NSImage - setup_back_over~ipad.png - - - NSImage - setup_back_disabled~ipad.png - - - NSImage - setup_back_default~ipad.png - - - - - - {{0, 947}, {768, 77}} - - - _NS:9 - - 3 - MCAwAA - - 2 - IBCocoaTouchFramework - - - - -2147483374 - - - - 301 - {{366, 492}, {37, 37}} - - - _NS:9 - NO - 7 - IBCocoaTouchFramework - NO - YES - 0 - - - {768, 1024} - - - _NS:9 - - 3 - MSAwLjUAA - - 6 - IBCocoaTouchFramework - - - {768, 1024} - - _NS:9 - - IBCocoaTouchFramework - - - - 292 - - - - 274 - {1024, 711} - - - _NS:9 - YES - YES - 1 - IBCocoaTouchFramework - NO - NO - - - - 266 - - - - 290 - {{0, 77}, {1024, 2000}} - - _NS:9 - - 1 - MC4xNDkwMTk2MDc4IDAuMTY0NzA1ODgyNCAwLjE4MDM5MjE1NjkAA - - 28 - IBCocoaTouchFramework - - - - 294 - {512, 77} - - - _NS:9 - NO - 3 - - Annuler - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 0.0 - 0.0 - Annuler - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - - NSImage - setup_cancel_over_landscape~ipad.png - - - NSImage - setup_cancel_disabled_landscape~ipad.png - - - NSImage - setup_cancel_default_landscape~ipad.png - - - - - - - 291 - {{512, 0}, {512, 77}} - - - _NS:9 - NO - 4 - - Démarrer - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 16 - 0.0 - Démarrer - - - - - NSImage - setup_start_over_landscape~ipad.png - - - NSImage - setup_start_default_landscape~ipad.png - - - - - - - -2147483357 - {{512, 0}, {512, 77}} - - - _NS:9 - NO - 5 - - Retour - - IBCocoaTouchFramework - 0 - 0 - NO - NO - 18 - 0.0 - 16 - 0.0 - Retour - - - - - NSImage - setup_back_over_landscape~ipad.png - - - NSImage - setup_back_disabled_landscape~ipad.png - - - NSImage - setup_back_default_landscape~ipad.png - - - - - - {{0, 691}, {1024, 77}} - - - _NS:9 - - 2 - IBCocoaTouchFramework - - - - -2147483374 - - - - 301 - {{494, 364}, {37, 37}} - - - _NS:9 - NO - 7 - IBCocoaTouchFramework - NO - YES - 0 - - - {1024, 768} - - - _NS:9 - - 3 - MSAwLjUAA - - 6 - IBCocoaTouchFramework - - - {1024, 768} - - _NS:9 - - IBCocoaTouchFramework - - - - - - - view - - - - 20 - - - - startButton - - - - 26 - - - - backButton - - - - 27 - - - - contentView - - - - 99 - - - - portraitView - - - - 117 - - - - waitView - - - - 131 - - - - landscapeView - - - - 134 - - - - onStartClick: - - - 7 - - 25 - - - - onBackClick: - - - 7 - - 23 - - - - onCancelClick: - - - 7 - - 24 - - - - onCancelClick: - - - 7 - - 128 - - - - onStartClick: - - - 7 - - 126 - - - - onBackClick: - - - 7 - - 127 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 12 - - - - - - - - Portrait View - - - 98 - - - contentView - - - 14 - - - - - - - - - tabBar - - - 18 - - - cancelButton - - - 16 - - - startButton - - - 17 - - - backButton - - - 118 - - - - - - - - Landscape View - - - 119 - - - contentView - - - 120 - - - - - - - - - tabBar - - - 122 - - - cancelButton - - - 123 - - - startButton - - - 124 - - - backButton - - - 129 - - - - - - waitView - - - 130 - - - activityIndicatorView - - - 132 - - - - - - waitView - - - 133 - - - activityIndicatorView - - - 137 - - - background - - - 136 - - - background - - - - - WizardViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 137 - - - 0 - IBCocoaTouchFramework - YES - 3 - - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - {1024, 171} - {768, 153} - - 933 - - diff --git a/Classes/fr.lproj/WizardViews.xib b/Classes/fr.lproj/WizardViews.xib deleted file mode 100644 index 073e3646f..000000000 --- a/Classes/fr.lproj/WizardViews.xib +++ /dev/null @@ -1,1539 +0,0 @@ - - - - 1280 - 11E53 - 1938 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 933 - - - IBUITextField - IBUIButton - IBUIImageView - IBUIView - IBUILabel - IBProxyObject - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{60, 80}, {201, 129}} - - - _NS:9 - 1 - NO - - Icône de l'assistant de configuration de compte - - - IBCocoaTouchFramework - - NSImage - setup_welcome_logo.png - - - - - 319 - {{31, 230}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - 1 - MCAwIDAAA - - - - 3 - MC4zMzMzMzMzMzMzAA - - {-1, -1} - 0 - 10 - 1 - - 3 - 20 - - - Helvetica-Oblique - 20 - 16 - - - - - 282 - {{40, 290}, {240, 44}} - - _NS:9 - NO - YES - 7 - NO - IBCocoaTouchFramework - Cet assistant va vous aider à utiliser votre compte SIP pour vos appels. - - - 0 - NO - 10 - 0 - 1 - - 1 - 12 - - - Helvetica - 12 - 16 - - - - {320, 394} - - _NS:9 - - 3 - MCAwAA - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 319 - {{33, 141}, {255, 50}} - - - _NS:9 - NO - - Créer un compte linphone.org - - - IBCocoaTouchFramework - 0 - 0 - NO - Créer un compte sur linphone.org - - 2 - MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA - - - 2 - MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA - - - 3 - MC41AA - - - NSImage - button_background_over.png - - - NSImage - button_background_default.png - - - 2 - 13 - - - Helvetica-Bold - 13 - 16 - - - - - 319 - {{33, 205}, {255, 50}} - - - _NS:9 - NO - - S'enregistrer sur un compte linphone.org - - - IBCocoaTouchFramework - 0 - 0 - NO - J'ai déjà un compte linphone.org - - - - - - - - - - - 319 - {{33, 269}, {255, 50}} - - _NS:9 - NO - - S'enregistrer sur un compte SIP - - - IBCocoaTouchFramework - 0 - 0 - NO - J'ai déjà un compte SIP - - - - - - - - - - {320, 394} - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{39, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Entrez votre nom d'utilsateur, votre mot de passe ainsi que votre adresse email. - - - 0 - NO - 10 - 0 - 1 - - - - - - 319 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Nom d'utilisateur - - IBCocoaTouchFramework - 0 - - Nom d'utilisateur - - 3 - MAA - - 2 - - - 10 - - 1 - IBCocoaTouchFramework - - - NSImage - field_background.png - - - 1 - 14 - - - Helvetica - 14 - 16 - - - - - 319 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Mot de passe - - IBCocoaTouchFramework - 0 - - Mot de passe - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 230}, {255, 31}} - - - _NS:9 - NO - YES - 102 - - Mot de passe à nouveau - - IBCocoaTouchFramework - 0 - - Mot de passe - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 275}, {255, 31}} - - - _NS:9 - NO - YES - 103 - - Email - - IBCocoaTouchFramework - 0 - - Email - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{33, 330}, {255, 50}} - - _NS:9 - NO - - S'enregistrer - - IBCocoaTouchFramework - 0 - 0 - NO - S'enregistrer - - - - - - - 2 - 20 - - - Helvetica-Bold - 20 - 16 - - - - {320, 394} - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Entrez votre nom d'utilisateur et votre mot de passe de votre compte linphone.org. - - - 0 - NO - 10 - 0 - 1 - - - - - - 319 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Mot de passe - - IBCocoaTouchFramework - 0 - - Mot de passe - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Nom d'utilisateur - - IBCocoaTouchFramework - 0 - - Nom d'utilisateur - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{32, 330}, {255, 50}} - - _NS:9 - NO - - S'enregistrer - - IBCocoaTouchFramework - 0 - 0 - NO - S'enregistrer - - - - - - - - - - {320, 394} - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Entrez votre nom d'utilisateur, votre mot de passe ainsi que votre domaine SIP. - - - 0 - NO - 10 - 0 - 1 - - - - - - 319 - {{33, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - Nom d'utilisateur - - IBCocoaTouchFramework - 0 - - Nom d'utilisateur - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 319 - {{33, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - Mot de passe - - IBCocoaTouchFramework - 0 - - Mot de passe - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - 319 - {{33, 230}, {255, 31}} - - - _NS:9 - NO - YES - 104 - - Domaine - - IBCocoaTouchFramework - 0 - - Domaine - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{34, 330}, {255, 50}} - - _NS:9 - NO - - S'enregistrer - - IBCocoaTouchFramework - 0 - 0 - NO - S'enregistrer - - - - - - - - - - {320, 394} - - _NS:9 - - IBCocoaTouchFramework - - - - 274 - - - - 311 - {{31, 34}, {258, 40}} - - - _NS:9 - NO - YES - 7 - NO - - Assistant de configuration de compte - - IBCocoaTouchFramework - Assistant de configuration de compte - - - - {-1, -1} - 0 - 10 - 1 - - - - - - 314 - {{40, 80}, {240, 44}} - - - _NS:9 - NO - YES - 7 - 200 - NO - IBCocoaTouchFramework - Votre compte est crée. Vérifier vos emails pour valider votre compte. - - - 0 - NO - 10 - 0 - 1 - - - - - - -2147483329 - {{32, 185}, {255, 31}} - - - _NS:9 - NO - YES - 101 - - - - IBCocoaTouchFramework - 0 - - Mot de passe - - 3 - MAA - - - 10 - - 1 - YES - IBCocoaTouchFramework - - - - - - - - -2147483329 - {{32, 140}, {255, 31}} - - - _NS:9 - NO - YES - 100 - - - - IBCocoaTouchFramework - 0 - - Nom d'utilisateur - - 3 - MAA - - - 10 - - 1 - IBCocoaTouchFramework - - - - - - - - 287 - {{32, 330}, {255, 50}} - - _NS:9 - NO - - Vérifier la validation - - IBCocoaTouchFramework - 0 - 0 - NO - Vérifier la validation - - - - - - - - - - {320, 394} - - _NS:9 - - IBCocoaTouchFramework - - - - - - - welcomeView - - - - 28 - - - - choiceView - - - - 40 - - - - createAccountView - - - - 70 - - - - connectAccountView - - - - 71 - - - - externalAccountView - - - - 72 - - - - validateAccountView - - - - 112 - - - - onCreateAccountClick: - - - 7 - - 42 - - - - onConnectAccountClick: - - - 7 - - 41 - - - - onExternalAccountClick: - - - 7 - - 43 - - - - delegate - - - - 86 - - - - delegate - - - - 87 - - - - delegate - - - - 88 - - - - onSignInExternalClick: - - - 7 - - 115 - - - - onSignInClick: - - - 7 - - 116 - - - - delegate - - - - 85 - - - - delegate - - - - 81 - - - - delegate - - - - 80 - - - - delegate - - - - 82 - - - - delegate - - - - 83 - - - - onRegisterClick: - - - 7 - - 113 - - - - delegate - - - - 84 - - - - onCheckValidationClick: - - - 7 - - 114 - - - - delegate - - - - 109 - - - - delegate - - - - 110 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 21 - - - - - - - - welcomeView - - - 19 - - - iconImage - - - 22 - - - label - - - 33 - - - - - - - - - choiceView - - - 44 - - - - - - - - - - - - createAccountView - - - 52 - - - - - - - - - - connectAccountView - - - 56 - - - - - - - - - - - externalAccountView - - - 58 - - - label - - - 59 - - - usernameField - - - 60 - - - passwordField - - - 61 - - - domainField - - - 62 - - - signInButton - - - 66 - - - passwordField - - - 67 - - - label - - - 68 - - - usernameField - - - 73 - - - label - - - 74 - - - usernameField - - - 75 - - - passwordField - - - 76 - - - password2Field - - - 77 - - - registerButton - - - 79 - - - emailField - - - 39 - - - externalAccountButton - - - 38 - - - connectAccountButton - - - 36 - - - createAccountButton - - - 101 - - - - - - - - - - validateAccountView - - - 103 - - - checkValidationButton - - - 105 - - - label - - - 104 - - - usernameField - - - 106 - - - passwordField - - - 117 - - - title - - - 122 - - - title - - - 123 - - - title - - - 124 - - - title - - - 126 - - - title - - - 64 - - - signInButton - - - 127 - - - title - - - - - WizardViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UILinphoneButton - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - UILinphoneTextField - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 127 - - - 0 - IBCocoaTouchFramework - YES - 3 - - {550, 101} - {550, 101} - {542, 88} - {179, 161} - - 933 - - diff --git a/Settings.bundle/audio.plist b/Settings.bundle/audio.plist index d51abaff1..46b19291c 100644 --- a/Settings.bundle/audio.plist +++ b/Settings.bundle/audio.plist @@ -50,6 +50,16 @@ Type PSToggleSwitchSpecifier + + DefaultValue + + Key + amr_preference + Title + AMR + Type + PSToggleSwitchSpecifier + DefaultValue @@ -64,7 +74,17 @@ DefaultValue Key - gsm_8k_preference + g729_preference + Title + G729 + Type + PSToggleSwitchSpecifier + + + DefaultValue + + Key + gsm_preference Title GSM Type diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 29e32a40e..754926902 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -257,6 +257,8 @@ D37CD3A215E2452C0028869A /* BuschJaegerStationTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D37CD3A015E2452B0028869A /* BuschJaegerStationTableViewController.m */; }; D37DC7181594AF3400B2A5EB /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D37DC7171594AF3400B2A5EB /* MessageUI.framework */; }; D37DC7191594AF3F00B2A5EB /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D37DC7171594AF3400B2A5EB /* MessageUI.framework */; }; + D37E3ECD1619C27A0087659A /* CAAnimation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = D37E3ECC1619C27A0087659A /* CAAnimation+Blocks.m */; }; + D37E3ECE1619C27A0087659A /* CAAnimation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = D37E3ECC1619C27A0087659A /* CAAnimation+Blocks.m */; }; D380800515C28A7A005BE9BC /* UILinphone.m in Sources */ = {isa = PBXBuildFile; fileRef = D380800415C28A7A005BE9BC /* UILinphone.m */; }; D380800615C28A7A005BE9BC /* UILinphone.m in Sources */ = {isa = PBXBuildFile; fileRef = D380800415C28A7A005BE9BC /* UILinphone.m */; }; D380801315C299D0005BE9BC /* ColorSpaceUtilites.m in Sources */ = {isa = PBXBuildFile; fileRef = D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */; }; @@ -693,6 +695,8 @@ D37CD39F15E245290028869A /* BuschJaegerStationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuschJaegerStationTableViewController.h; sourceTree = ""; }; D37CD3A015E2452B0028869A /* BuschJaegerStationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BuschJaegerStationTableViewController.m; sourceTree = ""; }; D37DC7171594AF3400B2A5EB /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + D37E3ECB1619C27A0087659A /* CAAnimation+Blocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CAAnimation+Blocks.h"; sourceTree = ""; }; + D37E3ECC1619C27A0087659A /* CAAnimation+Blocks.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CAAnimation+Blocks.m"; sourceTree = ""; }; D37EE160160377D7003608A6 /* DTActionSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DTActionSheet.h; sourceTree = ""; }; D37EE161160377D7003608A6 /* DTActionSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DTActionSheet.m; sourceTree = ""; }; D380800415C28A7A005BE9BC /* UILinphone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UILinphone.m; sourceTree = ""; }; @@ -1343,6 +1347,7 @@ D326483415887D4400930C67 /* Utils */ = { isa = PBXGroup; children = ( + D37E3ECA1619C27A0087659A /* CAAnimationBlocks */, D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */, D380801115C29984005BE9BC /* ColorSpaceUtilities.h */, D37EE15F160377D7003608A6 /* DTFoundation */, @@ -1389,6 +1394,16 @@ path = Utils/ZBarSDK; sourceTree = ""; }; + D37E3ECA1619C27A0087659A /* CAAnimationBlocks */ = { + isa = PBXGroup; + children = ( + D37E3ECB1619C27A0087659A /* CAAnimation+Blocks.h */, + D37E3ECC1619C27A0087659A /* CAAnimation+Blocks.m */, + ); + name = CAAnimationBlocks; + path = Utils/CAAnimationBlocks; + sourceTree = ""; + }; D37CD35615E22B0C0028869A /* Headers */ = { isa = PBXGroup; children = ( @@ -1744,6 +1759,7 @@ D376EAF416008DF1007C8226 /* User.m in Sources */, D32EDD9B1600C450009A84C7 /* LevelPushButton.m in Sources */, D37490841612E3F200A62D02 /* NSURLConnection+SynchronousDelegate.m in Sources */, + D37E3ECD1619C27A0087659A /* CAAnimation+Blocks.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1799,6 +1815,7 @@ D376EAF516008DF1007C8226 /* User.m in Sources */, D32EDD9C1600C450009A84C7 /* LevelPushButton.m in Sources */, D37490851612E3F200A62D02 /* NSURLConnection+SynchronousDelegate.m in Sources */, + D37E3ECE1619C27A0087659A /* CAAnimation+Blocks.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1833,6 +1850,7 @@ VIDEO_ENABLED, HAVE_X264, HAVE_SILK, + HAVE_SSL, DEBUG, ); GCC_TREAT_WARNINGS_AS_ERRORS = YES; @@ -1903,6 +1921,7 @@ VIDEO_ENABLED, HAVE_X264, HAVE_SILK, + HAVE_SSL, ); GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( @@ -2147,6 +2166,7 @@ VIDEO_ENABLED, HAVE_X264, HAVE_SILK, + HAVE_SSL, ); GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( @@ -2217,6 +2237,7 @@ VIDEO_ENABLED, HAVE_X264, HAVE_SILK, + HAVE_SSL, ); GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( diff --git a/submodules/build/builders.d/openssl.mk b/submodules/build/builders.d/openssl.mk index c3a2555df..0cdf5d830 100644 --- a/submodules/build/builders.d/openssl.mk +++ b/submodules/build/builders.d/openssl.mk @@ -1,4 +1,4 @@ -openssl_version=1.0.0a +openssl_version=1.0.1c openssl_site=http://www.openssl.org/source OPENSSL_BUILD_DIR?=$(BUILDER_BUILD_DIR)/externals/openssl diff --git a/submodules/externals/exosip b/submodules/externals/exosip index 3403f378b..cbb76acfe 160000 --- a/submodules/externals/exosip +++ b/submodules/externals/exosip @@ -1 +1 @@ -Subproject commit 3403f378bab82b67d569b029f466a2f1dee499bb +Subproject commit cbb76acfe36aaa0e79911569e218d77c622fa9d4 diff --git a/submodules/liblinphone.xcodeproj/project.pbxproj b/submodules/liblinphone.xcodeproj/project.pbxproj index 52ba9c37e..5b7ff9953 100644 --- a/submodules/liblinphone.xcodeproj/project.pbxproj +++ b/submodules/liblinphone.xcodeproj/project.pbxproj @@ -647,8 +647,6 @@ 22405EE31600671D00B92522 /* logging.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = logging.c; sourceTree = ""; }; 22405EE41600671D00B92522 /* rtpprofile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rtpprofile.c; sourceTree = ""; }; 22405EE71600675C00B92522 /* genericplc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = genericplc.c; sourceTree = ""; }; - 224AD571143208BB00510FF3 /* android-display.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "android-display.c"; path = "../../../../../../workspace-android/linphone-android/submodules/linphone/mediastreamer2/src/android-display.c"; sourceTree = ""; }; - 224AD57314320EB400510FF3 /* scaler_arm.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = scaler_arm.S; path = "../../../../../../workspace-android/linphone-android/submodules/linphone/mediastreamer2/src/scaler_arm.S"; sourceTree = ""; }; 22512698145F13CE0041FBF2 /* aqsnd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = aqsnd.c; sourceTree = ""; }; 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ec-calibrator.c"; path = "linphone/coreapi/ec-calibrator.c"; sourceTree = SOURCE_ROOT; }; 2258C44013A9377B0087A596 /* swscale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swscale.h; sourceTree = ""; }; @@ -925,73 +923,51 @@ 222CA5DC11F6CF7600621220 /* src */ = { isa = PBXGroup; children = ( - 22405EE71600675C00B92522 /* genericplc.c */, - 22405EDF1600668800B92522 /* msvoip.c */, - 221DCB6A153584410025E54D /* yuv2rgb.fs */, - 221DCB6B153584410025E54D /* yuv2rgb.vs */, - 221DCB6715347EF80025E54D /* opengles_display.c */, - 2211DB9B1476539600DEE054 /* l16.c */, - 22512698145F13CE0041FBF2 /* aqsnd.c */, - F4D9F25E14583B580035B0D0 /* bitratedriver.c */, - F4D9F25F14583B580035B0D0 /* qosanalyzer.c */, - 22313679143DED490035C1F4 /* msandroidvideo.cpp */, - 229ECDEE143AEC2400D611B8 /* audioconference.c */, - 229ECDEA143AEA6300D611B8 /* msvideo_neon.c */, - 224AD57314320EB400510FF3 /* scaler_arm.S */, - 224AD571143208BB00510FF3 /* android-display.c */, - 7014533713FA7AEA00A01D86 /* shaders.c */, - 7066FC0613E82A3600EFC6DC /* vp8.c */, - 70E542F613E14816002BA2C0 /* shaders.h */, - 229A614913DDFE3500090183 /* g722_decode.c */, - 229A614A13DDFE3500090183 /* g722_encode.c */, - 229A614B13DDFE3500090183 /* g722.h */, - 229A614C13DDFE3500090183 /* msg722.c */, - 22FC56A913CB6A4F002FD0F1 /* bitratecontrol.c */, - 22FC56A713CB69FA002FD0F1 /* qualityindicator.c */, - 221F58AD13ABA42800D603C9 /* scaler.c */, - 221F58AB13AB71A400D603C9 /* sizeconv.c */, - 221F58A513AB716300D603C9 /* tonedetector.c */, - 221F58A613AB716300D603C9 /* jpegwriter.c */, - 221F58A713AB716300D603C9 /* h264dec.c */, - 221F58A113AB6F8000D603C9 /* pixconv.c */, - 221F589B13AB4FC500D603C9 /* msvideo.c */, - 2258C44813A946890087A596 /* videostream.c */, - 2258C44913A946890087A596 /* videoenc.c */, - 2258C44A13A946890087A596 /* videodec.c */, - 2258C44013A9377B0087A596 /* swscale.h */, - 220ED1AA13A9062500AC21E0 /* nowebcam.h */, - 220ED1AB13A9062500AC21E0 /* nowebcam.c */, - 22D15AB5139F579D00C7713A /* qtcapture.m */, - 22D15AB3139F505400C7713A /* ioscapture.m */, - 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */, 222CA5DD11F6CF7600621220 /* .gitignore */, 222CA5DE11F6CF7600621220 /* _kiss_fft_guts.h */, 222CA5DF11F6CF7600621220 /* alaw.c */, + 22512698145F13CE0041FBF2 /* aqsnd.c */, + 229ECDEE143AEC2400D611B8 /* audioconference.c */, 222CA5E311F6CF7600621220 /* audiomixer.c */, 222CA5E411F6CF7600621220 /* audiostream.c */, + 22FC56A913CB6A4F002FD0F1 /* bitratecontrol.c */, + F4D9F25E14583B580035B0D0 /* bitratedriver.c */, 222CA5E511F6CF7600621220 /* chanadapt.c */, 222CA5E711F6CF7600621220 /* dsptools.c */, 222CA5E811F6CF7600621220 /* dtmfgen.c */, + 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */, 222CA5EB11F6CF7600621220 /* equalizer.c */, 222CA5EC11F6CF7600621220 /* eventqueue.c */, 222CA5ED11F6CF7600621220 /* extdisplay.c */, 222CA5EE11F6CF7600621220 /* ffmpeg-priv.h */, + 2203127413A249F70049A2ED /* filter-template.c */, 222CA5EF11F6CF7600621220 /* g711common.h */, + 229A614B13DDFE3500090183 /* g722.h */, + 229A614913DDFE3500090183 /* g722_decode.c */, + 229A614A13DDFE3500090183 /* g722_encode.c */, + 22405EE71600675C00B92522 /* genericplc.c */, 222CA5F011F6CF7600621220 /* gsm.c */, + 221F58A713AB716300D603C9 /* h264dec.c */, 222CA5F211F6CF7600621220 /* ice.c */, + 22D15AB3139F505400C7713A /* ioscapture.m */, + 2203127113A247B40049A2ED /* iosdisplay.m */, 222CA5F311F6CF7600621220 /* itc.c */, + 221F58A613AB716300D603C9 /* jpegwriter.c */, 222CA5F411F6CF7600621220 /* kiss_fft.c */, 222CA5F511F6CF7600621220 /* kiss_fft.h */, 222CA5F611F6CF7600621220 /* kiss_fftr.c */, 222CA5F711F6CF7600621220 /* kiss_fftr.h */, + 2211DB9B1476539600DEE054 /* l16.c */, 222CA5F911F6CF7600621220 /* Makefile.am */, 222CA5FA11F6CF7600621220 /* Makefile.in */, 222CA5FB11F6CF7600621220 /* mire.c */, + 22313679143DED490035C1F4 /* msandroidvideo.cpp */, 222CA5FD11F6CF7600621220 /* mscommon.c */, 222CA5FE11F6CF7600621220 /* msconf.c */, 222CA60011F6CF7600621220 /* msfileplayer.c */, 222CA60211F6CF7600621220 /* msfilerec.c */, 222CA60411F6CF7600621220 /* msfilter.c */, + 229A614C13DDFE3500090183 /* msg722.c */, 222CA60511F6CF7600621220 /* msiounit.m */, 222CA60611F6CF7600621220 /* msjoin.c */, 222CA60711F6CF7600621220 /* msqueue.c */, @@ -1000,18 +976,38 @@ 222CA60A11F6CF7600621220 /* mssndcard.c */, 222CA60B11F6CF7600621220 /* msspeex.c */, 222CA60C11F6CF7600621220 /* msticker.c */, + 221F589B13AB4FC500D603C9 /* msvideo.c */, + 229ECDEA143AEA6300D611B8 /* msvideo_neon.c */, + 22405EDF1600668800B92522 /* msvoip.c */, 222CA61111F6CF7600621220 /* msvolume.c */, 222CA61311F6CF7600621220 /* mtu.c */, + 220ED1AB13A9062500AC21E0 /* nowebcam.c */, + 220ED1AA13A9062500AC21E0 /* nowebcam.h */, + 221DCB6715347EF80025E54D /* opengles_display.c */, + 221F58A113AB6F8000D603C9 /* pixconv.c */, + F4D9F25F14583B580035B0D0 /* qosanalyzer.c */, + 22D15AB5139F579D00C7713A /* qtcapture.m */, + 22FC56A713CB69FA002FD0F1 /* qualityindicator.c */, 222CA61B11F6CF7600621220 /* rfc2429.h */, 222CA61C11F6CF7600621220 /* rfc3984.c */, + 221F58AD13ABA42800D603C9 /* scaler.c */, + 221F58E313AF44B300D603C9 /* scaler.h */, + 7014533713FA7AEA00A01D86 /* shaders.c */, + 70E542F613E14816002BA2C0 /* shaders.h */, + 221F58AB13AB71A400D603C9 /* sizeconv.c */, 222CA61F11F6CF7600621220 /* speexec.c */, + 2258C44013A9377B0087A596 /* swscale.h */, 222CA62111F6CF7600621220 /* tee.c */, + 221F58A513AB716300D603C9 /* tonedetector.c */, 222CA62311F6CF7600621220 /* ulaw.c */, 222CA62411F6CF7600621220 /* vfw-missing.h */, + 2258C44A13A946890087A596 /* videodec.c */, + 2258C44913A946890087A596 /* videoenc.c */, + 2258C44813A946890087A596 /* videostream.c */, 222CA62911F6CF7600621220 /* void.c */, - 2203127113A247B40049A2ED /* iosdisplay.m */, - 2203127413A249F70049A2ED /* filter-template.c */, - 221F58E313AF44B300D603C9 /* scaler.h */, + 7066FC0613E82A3600EFC6DC /* vp8.c */, + 221DCB6A153584410025E54D /* yuv2rgb.fs */, + 221DCB6B153584410025E54D /* yuv2rgb.vs */, ); path = src; sourceTree = ""; @@ -1802,10 +1798,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); COPY_PHASE_STRIP = NO; DSTROOT = /tmp/liblinphone.dst; GCC_DYNAMIC_NO_PIC = NO; @@ -1863,10 +1855,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2003,10 +1991,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); COPY_PHASE_STRIP = NO; DSTROOT = /tmp/liblinphone.dst; GCC_DYNAMIC_NO_PIC = NO; @@ -2035,6 +2019,7 @@ HAVE_LIBAVCODEC_AVCODEC_H, HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, + MS2_FILTERS, ); GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; @@ -2065,10 +2050,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2094,6 +2075,7 @@ HAVE_LIBAVCODEC_AVCODEC_H, HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, + MS2_FILTERS, ); GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; @@ -2124,10 +2106,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2153,6 +2131,7 @@ HAVE_LIBAVCODEC_AVCODEC_H, HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, + MS2_FILTERS, ); GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; @@ -2183,10 +2162,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); COPY_PHASE_STRIP = NO; DSTROOT = /tmp/liblinphone.dst; GCC_DYNAMIC_NO_PIC = NO; @@ -2245,10 +2220,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2304,10 +2275,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -2404,10 +2371,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ( - armv6, - "$(ARCHS_STANDARD_32_BIT)", - ); DSTROOT = /tmp/liblinphone.dst; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; diff --git a/submodules/linphone b/submodules/linphone index d2bf8846e..bdaa5ae91 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit d2bf8846e3c40ce5b4dec886f2d0fc6d9698fc87 +Subproject commit bdaa5ae91ac1ba1e3844fceb5f611ba37ddde964