diff --git a/Classes/ChatRoomTableViewController.m b/Classes/ChatRoomTableViewController.m
index 1555b96f2..1234b40a6 100644
--- a/Classes/ChatRoomTableViewController.m
+++ b/Classes/ChatRoomTableViewController.m
@@ -138,8 +138,6 @@
}
self->remoteAddress = [aremoteAddress copy];
[self loadData];
- [ChatModel readConversation:remoteAddress];
- [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
}
diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m
index 552be969f..0915a4abe 100644
--- a/Classes/ChatRoomViewController.m
+++ b/Classes/ChatRoomViewController.m
@@ -143,7 +143,11 @@ static UICompositeViewDescription *compositeDescription = nil;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
- [[NSNotificationCenter defaultCenter] addObserver:self
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(applicationWillEnterForeground:)
+ name:UIApplicationDidBecomeActiveNotification
+ object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
@@ -186,6 +190,10 @@ static UICompositeViewDescription *compositeDescription = nil;
linphone_chat_room_destroy(chatRoom);
chatRoom = NULL;
}
+ [[NSNotificationCenter defaultCenter] removeObserver:self
+ name:UIApplicationDidBecomeActiveNotification
+ object:nil];
+
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
@@ -226,6 +234,15 @@ static UICompositeViewDescription *compositeDescription = nil;
[messageField setText:@""];
[self update];
[tableController setRemoteAddress: remoteAddress];
+ [ChatModel readConversation:remoteAddress];
+ [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
+}
+
+- (void)applicationWillEnterForeground:(NSNotification*)notif {
+ if(remoteAddress != nil) {
+ [ChatModel readConversation:remoteAddress];
+ [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
+ }
}
- (void)update {
@@ -398,16 +415,16 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
}
char *fromStr = linphone_address_as_string_uri_only(from);
if(fromStr != NULL) {
- if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
- || [UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
- if([[NSString stringWithUTF8String:fromStr]
- caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
+ if([[NSString stringWithUTF8String:fromStr]
+ caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
+ if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
+ || [UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
[chat setRead:[NSNumber numberWithInt:1]];
[chat update];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
- [tableController addChatEntry:chat];
- [tableController scrollToLastUnread:TRUE];
}
+ [tableController addChatEntry:chat];
+ [tableController scrollToLastUnread:TRUE];
}
ms_free(fromStr);
}
diff --git a/Classes/ContactDetailsTableViewController.m b/Classes/ContactDetailsTableViewController.m
index d2e0ef476..74a47a6fe 100644
--- a/Classes/ContactDetailsTableViewController.m
+++ b/Classes/ContactDetailsTableViewController.m
@@ -588,10 +588,11 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
if(section == (ContactSections_MAX - 1)) {
- return [footerController view];
- } else {
- return nil;
+ if(ABRecordGetRecordID(contact) != kABRecordInvalidID) {
+ return [footerController view];
+ }
}
+ return nil;
}
- (NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
@@ -619,9 +620,13 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C
}
}
-- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
+- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
if(section == (ContactSections_MAX - 1)) {
- return [UIContactDetailsFooter height:[footerController isEditing]];
+ if(ABRecordGetRecordID(contact) != kABRecordInvalidID) {
+ return [UIContactDetailsFooter height:[footerController isEditing]];
+ } else {
+ return 0.000001f; // Hack UITableView = 0
+ }
} else if(section == ContactSections_None) {
return 0.000001f; // Hack UITableView = 0
}
diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m
index 1eb1715f1..6985dbd50 100644
--- a/Classes/LinphoneCoreSettingsStore.m
+++ b/Classes/LinphoneCoreSettingsStore.m
@@ -122,8 +122,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_address_destroy(parsed);
}
{
- [self setInteger: linphone_core_get_audio_port(lc) forKey:@"audio_port_preference"];
- [self setInteger: linphone_core_get_video_port(lc) forKey:@"video_port_preference"];
+ {
+ int minPort, maxPort;
+ linphone_core_get_audio_port_range(lc, &minPort, &maxPort);
+ if(minPort != maxPort)
+ [self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"audio_port_preference"];
+ else
+ [self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"audio_port_preference"];
+ }
+ {
+ int minPort, maxPort;
+ linphone_core_get_video_port_range(lc, &minPort, &maxPort);
+ if(minPort != maxPort)
+ [self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"video_port_preference"];
+ else
+ [self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"video_port_preference"];
+ }
+ }
+ {
+ [self setInteger: linphone_core_get_upload_bandwidth(lc) forKey:@"upload_bandwidth_preference"];
+ [self setInteger: linphone_core_get_download_bandwidth(lc) forKey:@"download_bandwidth_preference"];
+ }
+ {
+ [self setFloat:linphone_core_get_playback_gain_db(lc) forKey:@"playback_gain_preference"];
+ [self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"];
}
{
LCSipTransports tp;
@@ -212,8 +234,11 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
[self setBool:linphone_core_video_preview_enabled(lc) forKey:@"preview_preference"];
}
{
- [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "sipinfo_dtmf_preference", 0) forKey:@"sipinfo_dtmf_preference"];
- [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rfc_dtmf_preference", 1) forKey:@"rfc_dtmf_preference"];
+ [self setBool:linphone_core_get_use_info_for_dtmf(lc) forKey:@"sipinfo_dtmf_preference"];
+ [self setBool:linphone_core_get_use_rfc2833_for_dtmf(lc) forKey:@"rfc_dtmf_preference"];
+
+ [self setInteger:linphone_core_get_inc_timeout(lc) forKey:@"incoming_call_timeout_preference"];
+ [self setInteger:linphone_core_get_in_call_timeout(lc) forKey:@"in_call_timeout_preference"];
}
@@ -385,6 +410,47 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
[[[LinphoneManager instance] fastAddressBook] reload];
}
++ (int)validPort:(int)port {
+ if(port < 0) {
+ return 0;
+ }
+ if(port > 65535) {
+ return 65535;
+ }
+ return port;
+}
+
++ (BOOL)parsePortRange:(NSString*)text minPort:(int*)minPort maxPort:(int*)maxPort {
+ NSError* error = nil;
+ *minPort = -1;
+ *maxPort = -1;
+ NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"([0-9]+)(([^0-9]+)([0-9]+))?" options:0 error:&error];
+ if(error != NULL)
+ return FALSE;
+ NSArray* matches = [regex matchesInString:text options:0 range:NSMakeRange(0, [text length])];
+ if([matches count] == 1) {
+ NSTextCheckingResult *match = [matches objectAtIndex:0];
+ NSLog(@"%d", [match numberOfRanges]);
+ bool range = [match rangeAtIndex:2].length > 0;
+ if(!range) {
+ NSRange rangeMinPort = [match rangeAtIndex:1];
+ *minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]];
+ *maxPort = *minPort;
+ return TRUE;
+ } else {
+ NSRange rangeMinPort = [match rangeAtIndex:1];
+ *minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]];
+ NSRange rangeMaxPort = [match rangeAtIndex:4];
+ *maxPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMaxPort] integerValue]];
+ if(*minPort > *maxPort) {
+ *minPort = *maxPort;
+ }
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
- (BOOL)synchronize {
if (![LinphoneManager isLcReady]) return YES;
LinphoneCore *lc=[LinphoneManager getLc];
@@ -425,6 +491,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_core_set_use_info_for_dtmf(lc, [self boolForKey:@"sipinfo_dtmf_preference"]);
linphone_core_set_use_rfc2833_for_dtmf(lc, [self boolForKey:@"rfc_dtmf_preference"]);
+ linphone_core_set_inc_timeout(lc, [self integerForKey:@"incoming_call_timeout_preference"]);
+ linphone_core_set_in_call_timeout(lc, [self integerForKey:@"in_call_timeout_preference"]);
bool enableVideo = [self boolForKey:@"enable_video_preference"];
linphone_core_enable_video(lc, enableVideo, enableVideo);
@@ -472,10 +540,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
// Audio & Video Port
- int audio_port_preference = [self integerForKey:@"audio_port_preference"];
- linphone_core_set_audio_port(lc, audio_port_preference);
- int video_port_preference = [self integerForKey:@"video_port_preference"];
- linphone_core_set_video_port(lc, video_port_preference);
+ {
+ NSString *audio_port_preference = [self stringForKey:@"audio_port_preference"];
+ int minPort, maxPort;
+ [LinphoneCoreSettingsStore parsePortRange:audio_port_preference minPort:&minPort maxPort:&maxPort];
+ linphone_core_set_audio_port_range(lc, minPort, maxPort);
+ }
+ {
+ NSString *video_port_preference = [self stringForKey:@"video_port_preference"];
+ int minPort, maxPort;
+ [LinphoneCoreSettingsStore parsePortRange:video_port_preference minPort:&minPort maxPort:&maxPort];
+ linphone_core_set_video_port_range(lc, minPort, maxPort);
+ }
+
+ int upload_bandwidth = [self integerForKey:@"upload_bandwidth_preference"];
+ linphone_core_set_upload_bandwidth(lc, upload_bandwidth);
+
+ int download_bandwidth = [self integerForKey:@"download_bandwidth_preference"];
+ linphone_core_set_download_bandwidth(lc, download_bandwidth);
+
+ float playback_gain = [self floatForKey:@"playback_gain_preference"];
+ linphone_core_set_playback_gain_db(lc, playback_gain);
+
+ float mic_gain = [self floatForKey:@"microphone_gain_preference"];
+ linphone_core_set_mic_gain_db(lc, mic_gain);
UIDevice* device = [UIDevice currentDevice];
bool backgroundSupported = false;
@@ -503,6 +591,13 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
BOOL animations = [self boolForKey:@"animations_preference"];
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", animations);
+
+ BOOL wifiOnly = [self boolForKey:@"wifi_only_preference"];
+ lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly);
+ if([self valueChangedForKey:@"wifi_only_preference"]) {
+ [[LinphoneManager instance] setupNetworkReachabilityCallback];
+ }
+
NSString* sharing_server = [self stringForKey:@"sharing_server_preference"];
[[LinphoneManager instance] lpConfigSetString:sharing_server forKey:@"sharing_server_preference"];
diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h
index 4e7cb15c4..5a9d5491d 100644
--- a/Classes/LinphoneManager.h
+++ b/Classes/LinphoneManager.h
@@ -90,7 +90,7 @@ typedef struct _LinphoneManagerSounds {
BOOL stopWaitingRegisters;
UIBackgroundTaskIdentifier pausedCallBgTask;
UIBackgroundTaskIdentifier incallBgTask;
- CTCallCenter* callCenter;
+ CTCallCenter* mCallCenter;
@public
CallContext currentCallContextBeforeGoingBackground;
diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m
index 6490e6962..a20cb47c0 100644
--- a/Classes/LinphoneManager.m
+++ b/Classes/LinphoneManager.m
@@ -387,70 +387,73 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
}
- if (state == LinphoneCallIncomingReceived
- &&[[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
- && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
+ if (state == LinphoneCallIncomingReceived) {
/*first step is to re-enable ctcall center*/
- [self setupGSMInteraction];
+ CTCallCenter* lCTCallCenter = [[CTCallCenter alloc] init];
/*should we reject this call ?*/
- if ([callCenter currentCalls]!=nil) {
+ if ([lCTCallCenter currentCalls]!=nil) {
[LinphoneLogger logc:LinphoneLoggerLog format:"Mobile call ongoing... rejecting call from [%s]",linphone_address_get_username(linphone_call_get_call_log(call)->from)];
linphone_core_decline_call([LinphoneManager getLc], call,LinphoneReasonBusy);
+ [lCTCallCenter release];
return;
}
+ [lCTCallCenter release];
-
- LinphoneCallLog* callLog=linphone_call_get_call_log(call);
- NSString* callId=[NSString stringWithUTF8String:callLog->call_id];
- const LinphoneAddress *addr = linphone_call_get_remote_address(call);
- NSString* address = nil;
- if(addr != NULL) {
- BOOL useLinphoneAddress = true;
- // contact name
- char* lAddress = linphone_address_as_string_uri_only(addr);
- if(lAddress) {
- NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
- ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress];
- if(contact) {
- address = [FastAddressBook getContactDisplayName:contact];
- useLinphoneAddress = false;
- }
- ms_free(lAddress);
- }
- if(useLinphoneAddress) {
- const char* lDisplayName = linphone_address_get_display_name(addr);
- const char* lUserName = linphone_address_get_username(addr);
- if (lDisplayName)
- address = [NSString stringWithUTF8String:lDisplayName];
- else if(lUserName)
- address = [NSString stringWithUTF8String:lUserName];
- }
- }
- if(address == nil) {
- address = @"Unknown";
- }
-
- if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){
- // case where a remote notification is not already received
- // Create a new local notification
- data->notification = [[UILocalNotification alloc] init];
- if (data->notification) {
- data->notification.repeatInterval = 0;
- data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address];
- data->notification.alertAction = NSLocalizedString(@"Answer", nil);
- data->notification.soundName = @"ring.caf";
- data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"];
-
- [[UIApplication sharedApplication] presentLocalNotificationNow:data->notification];
-
- if (!incallBgTask){
- incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
- [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"];
- }];
+ if( [[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
+ && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
+
+ LinphoneCallLog* callLog=linphone_call_get_call_log(call);
+ NSString* callId=[NSString stringWithUTF8String:callLog->call_id];
+ const LinphoneAddress *addr = linphone_call_get_remote_address(call);
+ NSString* address = nil;
+ if(addr != NULL) {
+ BOOL useLinphoneAddress = true;
+ // contact name
+ char* lAddress = linphone_address_as_string_uri_only(addr);
+ if(lAddress) {
+ NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
+ ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress];
+ if(contact) {
+ address = [FastAddressBook getContactDisplayName:contact];
+ useLinphoneAddress = false;
+ }
+ ms_free(lAddress);
+ }
+ if(useLinphoneAddress) {
+ const char* lDisplayName = linphone_address_get_display_name(addr);
+ const char* lUserName = linphone_address_get_username(addr);
+ if (lDisplayName)
+ address = [NSString stringWithUTF8String:lDisplayName];
+ else if(lUserName)
+ address = [NSString stringWithUTF8String:lUserName];
+ }
+ }
+ if(address == nil) {
+ address = @"Unknown";
+ }
+
+ if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){
+ // case where a remote notification is not already received
+ // Create a new local notification
+ data->notification = [[UILocalNotification alloc] init];
+ if (data->notification) {
+ data->notification.repeatInterval = 0;
+ data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address];
+ data->notification.alertAction = NSLocalizedString(@"Answer", nil);
+ data->notification.soundName = @"ring.caf";
+ data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"];
+
+ [[UIApplication sharedApplication] presentLocalNotificationNow:data->notification];
+
+ if (!incallBgTask){
+ incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
+ [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"];
+ }];
+ }
+
}
-
}
}
}
@@ -466,8 +469,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
// Disable speaker when no more call
if ((state == LinphoneCallEnd || state == LinphoneCallError)) {
- if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0)
+ if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0) {
[self setSpeakerEnabled:FALSE];
+ [self removeCTCallCenterCb];
+ }
if (incallBgTask) {
[[UIApplication sharedApplication] endBackgroundTask:incallBgTask];
incallBgTask=0;
@@ -483,7 +488,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
[self setSpeakerEnabled:TRUE];
}
}
-
+ if (state == LinphoneCallConnected && !mCallCenter) {
+ /*only register CT call center CB for connected call*/
+ [self setupGSMInteraction];
+ }
// Post event
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSValue valueWithPointer:call], @"call",
@@ -682,7 +690,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
- (void)setupNetworkReachabilityCallback {
SCNetworkReachabilityContext *ctx=NULL;
- const char *nodeName="linphone.org";
+ //any internet cnx
+ struct sockaddr_in zeroAddress;
+ bzero(&zeroAddress, sizeof(zeroAddress));
+ zeroAddress.sin_len = sizeof(zeroAddress);
+ zeroAddress.sin_family = AF_INET;
if (proxyReachability) {
[LinphoneLogger logc:LinphoneLoggerLog format:"Cancelling old network reachability"];
@@ -691,8 +703,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
proxyReachability = nil;
}
- proxyReachability = SCNetworkReachabilityCreateWithName(nil, nodeName);
-
+ proxyReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)&zeroAddress);
if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){
[LinphoneLogger logc:LinphoneLoggerError format:"Cannot register reachability cb: %s", SCErrorString(SCError())];
@@ -702,6 +713,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
[LinphoneLogger logc:LinphoneLoggerError format:"Cannot register schedule reachability cb: %s", SCErrorString(SCError())];
return;
}
+ // this check is to know network connectivity right now without waiting for a change. Don'nt remove it unless you have good reason. Jehan
+ SCNetworkReachabilityFlags flags;
+ if (SCNetworkReachabilityGetFlags(proxyReachability, &flags)) {
+ networkReachabilityCallBack(proxyReachability,flags,nil);
+ }
}
@@ -730,6 +746,10 @@ static LinphoneCoreVTable linphonec_vtable = {
}
- (void)startLibLinphone {
+ if (theLinphoneCore != nil) {
+ [LinphoneLogger logc:LinphoneLoggerLog format:"linphonecore is already created"];
+ return;
+ }
//get default config from bundle
NSString* factoryConfig = [LinphoneManager bundleFile:[LinphoneManager runningOnIpad]?@"linphonerc-factory~ipad":@"linphonerc-factory"];
@@ -754,7 +774,6 @@ static LinphoneCoreVTable linphonec_vtable = {
#if HAVE_G729
libmsbcg729_init(); // load g729 plugin
#endif
- [self setupGSMInteraction];
/* Initialize linphone core*/
/*to make sure we don't loose debug trace*/
@@ -762,6 +781,8 @@ static LinphoneCoreVTable linphonec_vtable = {
linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
}
[LinphoneLogger logc:LinphoneLoggerLog format:"Create linphonecore"];
+ linphone_core_set_user_agent([@"LinphoneIPhone" UTF8String],
+ [[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey] UTF8String]);
theLinphoneCore = linphone_core_new (&linphonec_vtable
, [confiFileName cStringUsingEncoding:[NSString defaultCStringEncoding]]
, [factoryConfig cStringUsingEncoding:[NSString defaultCStringEncoding]]
@@ -859,13 +880,8 @@ 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;
+ //just in case
+ [self removeCTCallCenterCb];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setDelegate:nil];
@@ -956,6 +972,13 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
return linphone_call_get_state(call) != LinphoneCallPaused;
}
+- (void) startCallPausedLongRunningTask {
+ 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 [%g s] because at least one call is paused"
+ ,[[UIApplication sharedApplication] backgroundTimeRemaining]];
+}
- (BOOL)enterBackgroundMode {
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg);
@@ -983,13 +1006,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
return;
}
//kick up network cnx, just in case
- [LinphoneManager kickOffNetworkConnection];
-
- [self setupGSMInteraction];
- //to make sure presence status is correct
- if ([callCenter currentCalls]==nil)
- linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService);
-
[self refreshRegisters];
linphone_core_iterate(theLinphoneCore);
}
@@ -1005,13 +1021,8 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
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]];
+ [self startCallPausedLongRunningTask];
}
-
return YES;
}
else {
@@ -1035,14 +1046,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
/*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);
-
}
@@ -1130,7 +1133,7 @@ static void audioRouteChangeListenerCallback (
return;
}
-
+ CTCallCenter* callCenter = [[CTCallCenter alloc] init];
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)
@@ -1140,9 +1143,11 @@ static void audioRouteChangeListenerCallback (
otherButtonTitles:nil];
[error show];
[error release];
+ [callCenter release];
return;
}
-
+ [callCenter release];
+
LinphoneProxyConfig* proxyCfg;
//get default proxy
linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
@@ -1338,18 +1343,24 @@ static void audioRouteChangeListenerCallback (
}
#pragma GSM management
+-(void) removeCTCallCenterCb {
+ if (mCallCenter != nil) {
+ [LinphoneLogger log:LinphoneLoggerLog format:@"Removing CT call center listener [%p]",mCallCenter];
+ mCallCenter.callEventHandler=NULL;
+ [mCallCenter release];
+ }
+ mCallCenter=nil;
+}
- (void)setupGSMInteraction {
- if (callCenter != nil) {
- callCenter.callEventHandler=NULL;
- [callCenter release];
- }
- callCenter = [[CTCallCenter alloc] init];
- callCenter.callEventHandler = ^(CTCall* call) {
+ [self removeCTCallCenterCb];
+ mCallCenter = [[CTCallCenter alloc] init];
+ [LinphoneLogger log:LinphoneLoggerLog format:@"Adding CT call center listener [%p]",mCallCenter];
+ mCallCenter.callEventHandler = ^(CTCall* call) {
// post on main thread
[self performSelectorOnMainThread:@selector(handleGSMCallInteration:)
- withObject:callCenter
+ withObject:mCallCenter
waitUntilDone:YES];
};
@@ -1360,12 +1371,15 @@ static void audioRouteChangeListenerCallback (
/* 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"];
+ if (call) {
+ [LinphoneLogger log:LinphoneLoggerLog format:@"Pausing SIP call because GSM call"];
linphone_core_pause_call(theLinphoneCore, call);
+ [self startCallPausedLongRunningTask];
+ } else if (linphone_core_is_in_conference(theLinphoneCore)) {
+ [LinphoneLogger log:LinphoneLoggerLog format:@"Leaving conference call because GSM call"];
+ linphone_core_leave_conference(theLinphoneCore);
+ [self startCallPausedLongRunningTask];
}
- //set current status to busy
- linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusBusy);
- } else
- linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService);
+ } //else nop, keep call in paused state
}
@end
diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m
index eda89bc0e..c1848ad14 100644
--- a/Classes/LinphoneUI/UICallBar.m
+++ b/Classes/LinphoneUI/UICallBar.m
@@ -277,6 +277,22 @@
[pauseButton setHidden:true];
[conferenceButton setHidden:false];
}
+ bool enabled = true;
+ const MSList *list = linphone_core_get_calls(lc);
+ while(list != NULL) {
+ LinphoneCall *call = (LinphoneCall*) list->data;
+ LinphoneCallState state = linphone_call_get_state(call);
+ if(state == LinphoneCallIncomingReceived ||
+ state == LinphoneCallOutgoingInit ||
+ state == LinphoneCallOutgoingProgress ||
+ state == LinphoneCallOutgoingRinging ||
+ state == LinphoneCallOutgoingEarlyMedia ||
+ state == LinphoneCallConnected) {
+ enabled = false;
+ }
+ list = list->next;
+ }
+ [conferenceButton setEnabled:enabled];
} else {
if([pauseButton isHidden]) {
[pauseButton setHidden:false];
diff --git a/Classes/LinphoneUI/UIChatCell.xib b/Classes/LinphoneUI/UIChatCell.xib
index b3d2fd18f..b6b7f94a0 100644
--- a/Classes/LinphoneUI/UIChatCell.xib
+++ b/Classes/LinphoneUI/UIChatCell.xib
@@ -35,7 +35,7 @@
+
+ 143
+
+
+ leftPadding
+
+
+ 144
+
+
+ rightPadding
+
+
+ 145
+
+
+ rightPadding
+
+
+ 146
+
+
+ leftPadding
+
@@ -2535,6 +2679,10 @@
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
@@ -2605,14 +2753,296 @@
- 142
+ 163
+
+
+
+
+ TPMultiLayoutViewController
+ UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICallBar
+ TPMultiLayoutViewController
+
+ id
+ id
+ id
+ id
+ id
+
+
+
+ onConferenceClick:
+ id
+
+
+ onOptionsAddClick:
+ id
+
+
+ onOptionsClick:
+ id
+
+
+ onOptionsTransferClick:
+ id
+
+
+ onPadClick:
+ id
+
+
+
+ UIButton
+ UIToggleButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIHangUpButton
+ UIMicroButton
+ UIDigitButton
+ UIDigitButton
+ UIButton
+ UIToggleButton
+ UIButton
+ UIView
+ UIView
+ UIPauseButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UISpeakerButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIVideoButton
+ UIDigitButton
+
+
+
+ conferenceButton
+ UIButton
+
+
+ dialerButton
+ UIToggleButton
+
+
+ eightButton
+ UIDigitButton
+
+
+ fiveButton
+ UIDigitButton
+
+
+ fourButton
+ UIDigitButton
+
+
+ hangupButton
+ UIHangUpButton
+
+
+ microButton
+ UIMicroButton
+
+
+ nineButton
+ UIDigitButton
+
+
+ oneButton
+ UIDigitButton
+
+
+ optionsAddButton
+ UIButton
+
+
+ optionsButton
+ UIToggleButton
+
+
+ optionsTransferButton
+ UIButton
+
+
+ optionsView
+ UIView
+
+
+ padView
+ UIView
+
+
+ pauseButton
+ UIPauseButton
+
+
+ sevenButton
+ UIDigitButton
+
+
+ sharpButton
+ UIDigitButton
+
+
+ sixButton
+ UIDigitButton
+
+
+ speakerButton
+ UISpeakerButton
+
+
+ starButton
+ UIDigitButton
+
+
+ threeButton
+ UIDigitButton
+
+
+ twoButton
+ UIDigitButton
+
+
+ videoButton
+ UIVideoButton
+
+
+ zeroButton
+ UIDigitButton
+
+
+
+ IBProjectSource
+ ./Classes/UICallBar.h
+
+
+
+ UIDigitButton
+ UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
+
+ IBProjectSource
+ ./Classes/UIDigitButton.h
+
+
+
+ UIHangUpButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIHangUpButton.h
+
+
+
+ UILongTouchButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UILongTouchButton.h
+
+
+
+ UIMicroButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIMicroButton.h
+
+
+
+ UIPauseButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIPauseButton.h
+
+
+
+ UISpeakerButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UISpeakerButton.h
+
+
+
+ UIToggleButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIToggleButton.h
+
+
+
+ UITransparentView
+ UIView
+
+ IBProjectSource
+ ./Classes/UITransparentView.h
+
+
+
+ UIVideoButton
+ UIToggleButton
+
+ waitView
+ UIActivityIndicatorView
+
+
+ waitView
+
+ waitView
+ UIActivityIndicatorView
+
+
+
+ IBProjectSource
+ ./Classes/UIVideoButton.h
+
+
+
-
0
IBCocoaTouchFramework
YES
3
+ {88, 180}
+ {88, 180}
{209, 136}
{130, 163}
{209, 136}
diff --git a/Classes/LinphoneUI/fr.lproj/UICallBar.xib b/Classes/LinphoneUI/fr.lproj/UICallBar.xib
index 6fa108778..166865260 100644
--- a/Classes/LinphoneUI/fr.lproj/UICallBar.xib
+++ b/Classes/LinphoneUI/fr.lproj/UICallBar.xib
@@ -1,21 +1,21 @@
- 1280
- 11E53
- 1938
- 1138.47
+ 1536
+ 11G63
+ 2840
+ 1138.51
569.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 933
+ 1926
- IBUIButton
- IBUIActivityIndicatorView
- IBUIView
- IBUIImageView
IBProxyObject
+ IBUIActivityIndicatorView
+ IBUIButton
+ IBUIImageView
+ IBUIView
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -35,11 +35,11 @@
- 301
+ 266
- -2147483356
+ -2147483355
{{0, 335}, {320, 125}}
_NS:9
@@ -56,7 +56,7 @@
- 288
+ 293
@@ -427,7 +427,7 @@
- 292
+ 293
@@ -538,8 +538,38 @@
- 292
+ 293
+
+
+ 292
+ {{-44, -8}, {44, 90}}
+
+
+ _NS:9
+ 100
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ callbar_left_padding.png
+
+
+
+
+ 292
+ {{320, -8}, {44, 90}}
+
+
+ _NS:9
+ 101
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ callbar_right_padding.png
+
+
290
@@ -849,7 +879,7 @@
264
{{215, 67}, {105, 68}}
-
+
_NS:9
NO
27
@@ -884,7 +914,7 @@
{{0, 325}, {320, 135}}
-
+
_NS:9
18
@@ -895,16 +925,15 @@
_NS:9
- NO
IBCocoaTouchFramework
- 301
+ 266
- -2147483356
+ -2147483355
{{0, 248}, {480, 72}}
@@ -922,7 +951,7 @@
- 288
+ 293
@@ -1166,7 +1195,7 @@
- 292
+ 293
@@ -1261,8 +1290,32 @@
- 292
+ 293
+
+
+ 292
+ {{-44, -8}, {44, 90}}
+
+
+ _NS:9
+ 100
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+ 292
+ {{480, -8}, {44, 90}}
+
+
+ _NS:9
+ 101
+ NO
+ IBCocoaTouchFramework
+
+
290
@@ -1569,7 +1622,7 @@
264
{{415, 0}, {65, 82}}
-
+
_NS:9
NO
27
@@ -1601,7 +1654,7 @@
{{0, 238}, {480, 82}}
-
+
_NS:9
18
@@ -1612,7 +1665,6 @@
_NS:9
- NO
3
3
@@ -2033,6 +2085,8 @@
+
+
buttons
@@ -2359,6 +2413,8 @@
+
+
buttons
@@ -2435,6 +2491,30 @@
background
+
+ 143
+
+
+ leftPadding
+
+
+ 144
+
+
+ rightPadding
+
+
+ 145
+
+
+ rightPadding
+
+
+ 146
+
+
+ leftPadding
+
@@ -2533,6 +2613,10 @@
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
@@ -2603,14 +2687,296 @@
- 142
+ 163
+
+
+
+
+ TPMultiLayoutViewController
+ UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICallBar
+ TPMultiLayoutViewController
+
+ id
+ id
+ id
+ id
+ id
+
+
+
+ onConferenceClick:
+ id
+
+
+ onOptionsAddClick:
+ id
+
+
+ onOptionsClick:
+ id
+
+
+ onOptionsTransferClick:
+ id
+
+
+ onPadClick:
+ id
+
+
+
+ UIButton
+ UIToggleButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIHangUpButton
+ UIMicroButton
+ UIDigitButton
+ UIDigitButton
+ UIButton
+ UIToggleButton
+ UIButton
+ UIView
+ UIView
+ UIPauseButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UISpeakerButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIVideoButton
+ UIDigitButton
+
+
+
+ conferenceButton
+ UIButton
+
+
+ dialerButton
+ UIToggleButton
+
+
+ eightButton
+ UIDigitButton
+
+
+ fiveButton
+ UIDigitButton
+
+
+ fourButton
+ UIDigitButton
+
+
+ hangupButton
+ UIHangUpButton
+
+
+ microButton
+ UIMicroButton
+
+
+ nineButton
+ UIDigitButton
+
+
+ oneButton
+ UIDigitButton
+
+
+ optionsAddButton
+ UIButton
+
+
+ optionsButton
+ UIToggleButton
+
+
+ optionsTransferButton
+ UIButton
+
+
+ optionsView
+ UIView
+
+
+ padView
+ UIView
+
+
+ pauseButton
+ UIPauseButton
+
+
+ sevenButton
+ UIDigitButton
+
+
+ sharpButton
+ UIDigitButton
+
+
+ sixButton
+ UIDigitButton
+
+
+ speakerButton
+ UISpeakerButton
+
+
+ starButton
+ UIDigitButton
+
+
+ threeButton
+ UIDigitButton
+
+
+ twoButton
+ UIDigitButton
+
+
+ videoButton
+ UIVideoButton
+
+
+ zeroButton
+ UIDigitButton
+
+
+
+ IBProjectSource
+ ./Classes/UICallBar.h
+
+
+
+ UIDigitButton
+ UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
+
+ IBProjectSource
+ ./Classes/UIDigitButton.h
+
+
+
+ UIHangUpButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIHangUpButton.h
+
+
+
+ UILongTouchButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UILongTouchButton.h
+
+
+
+ UIMicroButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIMicroButton.h
+
+
+
+ UIPauseButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIPauseButton.h
+
+
+
+ UISpeakerButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UISpeakerButton.h
+
+
+
+ UIToggleButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIToggleButton.h
+
+
+
+ UITransparentView
+ UIView
+
+ IBProjectSource
+ ./Classes/UITransparentView.h
+
+
+
+ UIVideoButton
+ UIToggleButton
+
+ waitView
+ UIActivityIndicatorView
+
+
+ waitView
+
+ waitView
+ UIActivityIndicatorView
+
+
+
+ IBProjectSource
+ ./Classes/UIVideoButton.h
+
+
+
-
0
IBCocoaTouchFramework
YES
3
+ {88, 180}
+ {88, 180}
{209, 136}
{130, 163}
{209, 136}
@@ -2702,6 +3068,6 @@
{160, 134}
{130, 163}
- 933
+ 1926
diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h
index ad679eaea..bd8aaeec7 100644
--- a/Classes/PhoneMainView.h
+++ b/Classes/PhoneMainView.h
@@ -61,8 +61,6 @@
- (void)fullScreen:(BOOL)enabled;
- (void)startUp;
-+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated;
-
- (void)addInhibitedEvent:(id)event;
- (BOOL)removeInhibitedEvent:(id)event;
diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m
index ed00dd10f..941a752f2 100644
--- a/Classes/PhoneMainView.m
+++ b/Classes/PhoneMainView.m
@@ -172,81 +172,6 @@ static PhoneMainView* phoneMainViewInstance=nil;
return 0;
}
-+ (UIView*)findFirstResponder:(UIView*)view {
- if (view.isFirstResponder) {
- return view;
- }
- for (UIView *subView in view.subviews) {
- UIView *ret = [PhoneMainView findFirstResponder:subView];
- if (ret != nil)
- return ret;
- }
- return nil;
-}
-
-/*
- Will simulate a device rotation
- */
-+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated {
- UIView *firstResponder = nil;
- for(UIWindow *window in [[UIApplication sharedApplication] windows]) {
- if([NSStringFromClass(window.class) isEqualToString:@"UITextEffectsWindow"] ||
- [NSStringFromClass(window.class) isEqualToString:@"_UIAlertOverlayWindow"] ) {
- continue;
- }
- UIView *view = window;
- UIViewController *controller = nil;
- CGRect frame = [view frame];
- if([window isKindOfClass:[UILinphoneWindow class]]) {
- controller = window.rootViewController;
- view = controller.view;
- }
- UIInterfaceOrientation oldOrientation = controller.interfaceOrientation;
-
- NSTimeInterval animationDuration = 0.0;
- if(animated) {
- animationDuration = 0.3f;
- }
- [controller willRotateToInterfaceOrientation:orientation duration:animationDuration];
- if(animated) {
- [UIView beginAnimations:nil context:nil];
- [UIView setAnimationDuration:animationDuration];
- }
- switch (orientation) {
- case UIInterfaceOrientationPortrait:
- [view setTransform: CGAffineTransformMakeRotation(0)];
- break;
- case UIInterfaceOrientationPortraitUpsideDown:
- [view setTransform: CGAffineTransformMakeRotation(M_PI)];
- break;
- case UIInterfaceOrientationLandscapeLeft:
- [view setTransform: CGAffineTransformMakeRotation(-M_PI / 2)];
- break;
- case UIInterfaceOrientationLandscapeRight:
- [view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
- break;
- default:
- break;
- }
- if([window isKindOfClass:[UILinphoneWindow class]]) {
- [view setFrame:frame];
- }
- [controller willAnimateRotationToInterfaceOrientation:orientation duration:animationDuration];
- if(animated) {
- [UIView commitAnimations];
- }
- [controller didRotateFromInterfaceOrientation:oldOrientation];
- if(firstResponder == nil) {
- firstResponder = [PhoneMainView findFirstResponder:view];
- }
- }
- [[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated];
- if(firstResponder) {
- [firstResponder resignFirstResponder];
- [firstResponder becomeFirstResponder];
- }
-}
-
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[mainViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
@@ -267,6 +192,10 @@ static PhoneMainView* phoneMainViewInstance=nil;
return [mainViewController currentOrientation];
}
+- (void)didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+ [mainViewController clearCache:viewStack];
+}
#pragma mark - Event Functions
diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m
index 035c11cd3..f84648481 100644
--- a/Classes/SettingsViewController.m
+++ b/Classes/SettingsViewController.m
@@ -574,6 +574,19 @@ static UICompositeViewDescription *compositeDescription = nil;
[hiddenKeys addObject:@"battery_alert_button"];
#endif
+ [hiddenKeys addObject:@"audio_advanced_group"];
+ [hiddenKeys addObject:@"playback_gain_preference"];
+ [hiddenKeys addObject:@"microphone_gain_preference"];
+
+ [hiddenKeys addObject:@"network_limit_group"];
+ [hiddenKeys addObject:@"upload_bandwidth_preference"];
+ [hiddenKeys addObject:@"download_bandwidth_preference"];
+
+ [hiddenKeys addObject:@"incoming_call_timeout_preference"];
+ [hiddenKeys addObject:@"in_call_timeout_preference"];
+
+ [hiddenKeys addObject:@"wifi_only_preference"];
+
[hiddenKeys addObject:@"quit_button"]; // Hide for the moment
[hiddenKeys addObject:@"about_button"]; // Hide for the moment
@@ -639,7 +652,7 @@ static UICompositeViewDescription *compositeDescription = nil;
[[LinphoneManager instance] destroyLibLinphone];
[LinphoneManager instanceRelease];
} else if([key isEqual:@"clear_cache_button"]) {
- [[PhoneMainView instance].mainViewController clearCache];
+ [[PhoneMainView instance].mainViewController clearCache:[NSArray arrayWithObject:[[PhoneMainView instance] currentView]]];
} else if([key isEqual:@"battery_alert_button"]) {
[[UIDevice currentDevice] _setBatteryState:UIDeviceBatteryStateUnplugged];
[[UIDevice currentDevice] _setBatteryLevel:0.09f];
@@ -653,6 +666,8 @@ static UICompositeViewDescription *compositeDescription = nil;
if(controller != nil) {
[controller reset];
}
+ } else if([key isEqual:@"about_button"]) {
+ [[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE];
}
}
diff --git a/Classes/en.lproj/ChatViewController.xib b/Classes/en.lproj/ChatViewController.xib
index d524c9766..5e67b7643 100644
--- a/Classes/en.lproj/ChatViewController.xib
+++ b/Classes/en.lproj/ChatViewController.xib
@@ -2,7 +2,7 @@
1536
- 11G56
+ 11G63
2840
1138.51
569.00
@@ -174,7 +174,6 @@
{{0, 79}, {320, 381}}
-
_NS:9
3
@@ -231,6 +230,8 @@
YES
17
+ 1
+ 3
IBCocoaTouchFramework
diff --git a/Classes/fr.lproj/ChatViewController.xib b/Classes/fr.lproj/ChatViewController.xib
index 5fd2b5997..f0148c657 100644
--- a/Classes/fr.lproj/ChatViewController.xib
+++ b/Classes/fr.lproj/ChatViewController.xib
@@ -2,7 +2,7 @@
1536
- 11G56
+ 11G63
2840
1138.51
569.00
@@ -224,6 +224,8 @@
YES
17
+ 1
+ 3
IBCocoaTouchFramework
diff --git a/Resources/callbar_left_padding.png b/Resources/callbar_left_padding.png
new file mode 100644
index 000000000..c54a13b3c
Binary files /dev/null and b/Resources/callbar_left_padding.png differ
diff --git a/Resources/callbar_right_padding.png b/Resources/callbar_right_padding.png
new file mode 100644
index 000000000..fc859f667
Binary files /dev/null and b/Resources/callbar_right_padding.png differ
diff --git a/Resources/linphonerc b/Resources/linphonerc
index b119f76f0..0b454af82 100644
--- a/Resources/linphonerc
+++ b/Resources/linphonerc
@@ -1,7 +1,5 @@
[sip]
sip_random_port=1
-sip_tcp_random_port=1
-sip_tls_random_port=1
contact="Linphone iPhone"
keepalive_period=30000
default_proxy=0
diff --git a/Resources/linphonerc~ipad b/Resources/linphonerc~ipad
index f31880409..adc25c51c 100644
--- a/Resources/linphonerc~ipad
+++ b/Resources/linphonerc~ipad
@@ -1,7 +1,5 @@
[sip]
sip_random_port=1
-sip_tcp_random_port=1
-sip_tls_random_port=1
contact="Linphone iPhone"
keepalive_period=30000
default_proxy=0
diff --git a/Settings/InAppSettings.bundle/Advanced.plist b/Settings/InAppSettings.bundle/Advanced.plist
index 1a87b88a5..969901689 100644
--- a/Settings/InAppSettings.bundle/Advanced.plist
+++ b/Settings/InAppSettings.bundle/Advanced.plist
@@ -169,6 +169,12 @@
+ AutocapitalizationType
+ None
+ AutocorrectionType
+ No
+ KeyboardType
+ URL
Type
PSTextFieldSpecifier
Title
diff --git a/Settings/InAppSettings.bundle/Audio.plist b/Settings/InAppSettings.bundle/Audio.plist
index 46b19291c..422f9fc29 100644
--- a/Settings/InAppSettings.bundle/Audio.plist
+++ b/Settings/InAppSettings.bundle/Audio.plist
@@ -120,6 +120,42 @@
Type
PSToggleSwitchSpecifier
+
+ Key
+ audio_advanced_group
+ Title
+ Advanced
+ Type
+ PSGroupSpecifier
+
+
+ Key
+ playback_gain_preference
+ Title
+ Playback gain
+ Type
+ PSTextFieldSpecifier
+ KeyboardType
+ NumbersAndPunctuation
+ DefaultValue
+ 0
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
+
+ Key
+ microphone_gain_preference
+ Title
+ Microphone gain
+ Type
+ PSTextFieldSpecifier
+ KeyboardType
+ NumbersAndPunctuation
+ DefaultValue
+ 0
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
diff --git a/Settings/InAppSettings.bundle/Call.plist b/Settings/InAppSettings.bundle/Call.plist
index 6996221ff..545bb198d 100644
--- a/Settings/InAppSettings.bundle/Call.plist
+++ b/Settings/InAppSettings.bundle/Call.plist
@@ -52,6 +52,42 @@
DefaultValue
+
+ Key
+ incoming_call_timeout_preference
+ Title
+ Incoming call timeout
+ Type
+ PSTextFieldSpecifier
+ AutocapitalizationType
+ None
+ AutocorrectionType
+ No
+ KeyboardType
+ NumberPad
+ DefaultValue
+ 30
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
+
+ Key
+ in_call_timeout_preference
+ Title
+ In call timeout
+ Type
+ PSTextFieldSpecifier
+ AutocapitalizationType
+ None
+ AutocorrectionType
+ No
+ KeyboardType
+ NumberPad
+ DefaultValue
+ 0
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
diff --git a/Settings/InAppSettings.bundle/Network.plist b/Settings/InAppSettings.bundle/Network.plist
index 1bc2d7cf5..864b5acc3 100644
--- a/Settings/InAppSettings.bundle/Network.plist
+++ b/Settings/InAppSettings.bundle/Network.plist
@@ -57,10 +57,6 @@
Port
Type
PSTextFieldSpecifier
- AutocapitalizationType
- None
- AutocorrectionType
- No
KeyboardType
NumberPad
DefaultValue
@@ -72,15 +68,11 @@
Key
audio_port_preference
Title
- Audio Port
+ Audio Port(s)
Type
PSTextFieldSpecifier
- AutocapitalizationType
- None
- AutocorrectionType
- No
KeyboardType
- NumberPad
+ NumbersAndPunctuation
DefaultValue
7076
IASKTextAlignment
@@ -90,15 +82,11 @@
Key
video_port_preference
Title
- Video Port
+ Video Port(s)
Type
PSTextFieldSpecifier
- AutocapitalizationType
- None
- AutocorrectionType
- No
KeyboardType
- NumberPad
+ NumbersAndPunctuation
DefaultValue
9078
IASKTextAlignment
@@ -158,6 +146,42 @@
DefaultValue
+
+ Key
+ network_limit_group
+ Title
+ Limits
+ Type
+ PSGroupSpecifier
+
+
+ Key
+ upload_bandwidth_preference
+ Title
+ Upload bandwidth
+ Type
+ PSTextFieldSpecifier
+ KeyboardType
+ NumberPad
+ DefaultValue
+ 0
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
+
+ Key
+ download_bandwidth_preference
+ Title
+ Download bandwidth
+ Type
+ PSTextFieldSpecifier
+ KeyboardType
+ NumberPad
+ DefaultValue
+ 0
+ IASKTextAlignment
+ IASKUITextAlignmentRight
+
diff --git a/Settings/InAppSettings.bundle/en.lproj/Audio.strings b/Settings/InAppSettings.bundle/en.lproj/Audio.strings
index c73fc3480..cf7f76b96 100644
--- a/Settings/InAppSettings.bundle/en.lproj/Audio.strings
+++ b/Settings/InAppSettings.bundle/en.lproj/Audio.strings
@@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
+/* Advanced */
+"Advanced" = "Advanced";
+
+/* Playback gain */
+"Playback gain" = "Playback gain";
+
+/* Microphone gain */
+"Microphone gain" = "Microphone gain";
\ No newline at end of file
diff --git a/Settings/InAppSettings.bundle/en.lproj/Call.strings b/Settings/InAppSettings.bundle/en.lproj/Call.strings
index 68876b8cc..58a723b05 100644
--- a/Settings/InAppSettings.bundle/en.lproj/Call.strings
+++ b/Settings/InAppSettings.bundle/en.lproj/Call.strings
@@ -10,3 +10,8 @@
/* Send SIP INFO DTMFs */
"Send SIP INFO DTMFs" = "Send SIP INFO DTMFs";
+/* Incoming call timeout */
+"Incoming call timeout" = "Incoming call timeout";
+
+/* In call timeout */
+"In call timeout" = "In call timeout";
\ No newline at end of file
diff --git a/Settings/InAppSettings.bundle/en.lproj/Network.strings b/Settings/InAppSettings.bundle/en.lproj/Network.strings
index 299b28fbd..a2aa822d3 100644
--- a/Settings/InAppSettings.bundle/en.lproj/Network.strings
+++ b/Settings/InAppSettings.bundle/en.lproj/Network.strings
@@ -13,11 +13,11 @@
/* Port */
"Port" = "Port";
-/* Audio Port */
-"Audio Port" = "Audio Port";
+/* Audio Port(s) */
+"Audio Port(s)" = "Audio Port(s)";
-/* Video Port */
-"Video Port" = "Video Port";
+/* Video Port(s) */
+"Video Port(s)" = "Video Port(s)";
/* Transport */
"Transport" = "Transport";
@@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
+/* Limits */
+"Limits" = "Limits";
+
+/* Upload bandwidth */
+"Upload bandwidth" = "Upload bandwidth";
+
+/* Download bandwidth */
+"Download bandwidth" = "Download bandwidth";
diff --git a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
index c73fc3480..a86837e4a 100644
--- a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
+++ b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
@@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
+/* Advanced */
+"Advanced" = "Avancés";
+
+/* Playback gain */
+"Playback gain" = "Gain sortie";
+
+/* Microphone gain */
+"Microphone gain" = "Gain microphone";
\ No newline at end of file
diff --git a/Settings/InAppSettings.bundle/fr.lproj/Call.strings b/Settings/InAppSettings.bundle/fr.lproj/Call.strings
index 3ad20d6d2..7fec4c333 100644
Binary files a/Settings/InAppSettings.bundle/fr.lproj/Call.strings and b/Settings/InAppSettings.bundle/fr.lproj/Call.strings differ
diff --git a/Settings/InAppSettings.bundle/fr.lproj/Network.strings b/Settings/InAppSettings.bundle/fr.lproj/Network.strings
index 8382a9033..105b01f75 100644
--- a/Settings/InAppSettings.bundle/fr.lproj/Network.strings
+++ b/Settings/InAppSettings.bundle/fr.lproj/Network.strings
@@ -13,17 +13,17 @@
/* Port */
"Port" = "Port";
-/* Audio Port */
-"Audio Port" = "Port Audio";
+/* Audio Port(s) */
+"Audio Port(s)" = "Port(s) Audio";
-/* Video Port */
-"Video Port" = "Port Vidéo";
+/* Video Port(s) */
+"Video Port(s)" = "Port(s) Vidéo";
/* Transport */
"Transport" = "Transport";
/* Media Encryption */
-"Media Encryption" = "Encryption media";
+"Media Encryption" = "Chiffrement";
/* Push Notifications */
"Push Notification" = "Push Notification";
@@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
+/* Limits */
+"Limits" = "Limites";
+
+/* Upload bandwidth */
+"Upload bandwidth" = "Débit montant";
+
+/* Download bandwidth */
+"Download bandwidth" = "Débit descendant";
diff --git a/Settings/InAppSettings.bundle/fr.lproj/Root.strings b/Settings/InAppSettings.bundle/fr.lproj/Root.strings
index 61d47db49..e075895e0 100644
--- a/Settings/InAppSettings.bundle/fr.lproj/Root.strings
+++ b/Settings/InAppSettings.bundle/fr.lproj/Root.strings
@@ -2,7 +2,7 @@
"SIP account" = "Compte SIP";
/* Wizard */
-"Wizard" = "Lancer l'assistant";
+"Wizard" = "Assistant";
/* User name */
"User name" = "Nom d'utilisateur";
@@ -23,7 +23,7 @@
"Settings" = "Options";
/* Enable video */
-"Enable video" = "Activer la vidéo";
+"Enable video" = "Activer vidéo";
/* Audio */
"Audio" = "Audio";
diff --git a/linphone.ldb/Contents.plist b/linphone.ldb/Contents.plist
index 5c3c4c0a9..eb0b3d625 100644
--- a/linphone.ldb/Contents.plist
+++ b/linphone.ldb/Contents.plist
@@ -803,17 +803,17 @@
backup
- 17
+ 19
class
BLWrapperHandle
name
- Classes/ChatViewController/17/ChatViewController.xib
+ Classes/ChatViewController/19/ChatViewController.xib
change date
- 2012-10-16T14:43:40Z
+ 2012-11-19T11:40:43Z
changed values
class
@@ -823,7 +823,7 @@
flags
0
hash
- 7e5a8ab77b42e6a8f401a59751110598
+ 467bb3255f207bc3c8d25dcdfca871ee
name
ChatViewController.xib
@@ -1038,9 +1038,9 @@
versions
en
- 17
+ 19
fr
- 17
+ 19
@@ -7504,17 +7504,17 @@
backup
- 10
+ 12
class
BLWrapperHandle
name
- LinphoneUI/UICallBar/10/UICallBar.xib
+ LinphoneUI/UICallBar/12/UICallBar.xib
change date
- 2012-09-27T09:31:07Z
+ 2012-11-13T08:39:33Z
changed values
class
@@ -7524,7 +7524,7 @@
flags
0
hash
- c5958759098558a4f8f5d1c18abc0e21
+ 6ce20b228103dd1de3d5c07ecc8cc68a
name
UICallBar.xib
@@ -8626,9 +8626,9 @@
versions
en
- 10
+ 12
fr
- 10
+ 12
@@ -15470,7 +15470,7 @@ Raison: %2$s
change date
- 2012-09-18T09:26:35Z
+ 2012-10-22T08:50:22Z
changed values
class
@@ -15480,7 +15480,7 @@ Raison: %2$s
flags
0
hash
- dc9f190a8a2dcdf8026518ff11e1d480
+ 1637ea0ccdf086dbddb51c854d6310db
name
Root.strings
@@ -15523,13 +15523,13 @@ Raison: %2$s
errors
flags
- 0
+ 1
key
Wizard
localizations
en
- Wizard
+ Run assistant
fr
Assistant
@@ -16518,7 +16518,7 @@ Raison: %2$s
change date
- 2012-10-01T10:31:40Z
+ 2012-11-06T09:45:46Z
changed values
class
@@ -16528,7 +16528,7 @@ Raison: %2$s
flags
0
hash
- d07bfbef0b1c424572d4ab830553e0d6
+ d8b4f45bf8fca397a7f791bd55a61e1c
name
Audio.strings
@@ -16812,6 +16812,81 @@ Raison: %2$s
snapshots
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Advanced
+ errors
+
+ flags
+ 0
+ key
+ Advanced
+ localizations
+
+ en
+ Advanced
+ fr
+ Avancés
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Playback gain
+ errors
+
+ flags
+ 0
+ key
+ Playback gain
+ localizations
+
+ en
+ Playback gain
+ fr
+ Gain sortie
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Microphone gain
+ errors
+
+ flags
+ 0
+ key
+ Microphone gain
+ localizations
+
+ en
+ Microphone gain
+ fr
+ Gain microphone
+
+ snapshots
+
+
old objects
@@ -16840,7 +16915,7 @@ Raison: %2$s
change date
- 2012-09-11T10:05:39Z
+ 2012-10-29T15:42:49Z
changed values
class
@@ -16848,9 +16923,9 @@ Raison: %2$s
errors
flags
- 1
+ 0
hash
- 3cc5ec7e298d1a3aa4449641876f5960
+ 6ae28fd473b2900cce974380a72d5447
name
Call.strings
@@ -16956,9 +17031,107 @@ Raison: %2$s
snapshots
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Incoming call timeout
+ errors
+
+ flags
+ 0
+ key
+ Incoming call timeout
+ localizations
+
+ en
+ Incoming call timeout
+ fr
+ Durée max. sonnerie
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ In call timeout
+ errors
+
+ flags
+ 0
+ key
+ In call timeout
+ localizations
+
+ en
+ In call timeout
+ fr
+ Durée max. appel
+
+ snapshots
+
+
old objects
-
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ <reference>
+
+ class
+ BLStringKeyObject
+ comment
+ Incoming call timeout
+ errors
+
+ flags
+ 0
+ key
+ In
+ localizations
+
+ en
+ call
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ <reference>
+
+ class
+ BLStringKeyObject
+ comment
+ Incoming call timeout
+ errors
+
+ flags
+ 3
+ key
+ timeout
+ localizations
+
+ snapshots
+
+
+
plist file
snapshots
@@ -17279,7 +17452,7 @@ Raison: %2$s
change date
- 2012-09-18T15:13:17Z
+ 2012-11-13T09:28:24Z
changed values
class
@@ -17289,7 +17462,7 @@ Raison: %2$s
flags
0
hash
- f5919fdebddf11e613578ee7ff05f05e
+ 7220a3af4b5567ce1842c8a01759b1c9
name
Network.strings
@@ -17428,19 +17601,19 @@ Raison: %2$s
class
BLStringKeyObject
comment
- Audio Port
+ Audio Port(s)
errors
flags
0
key
- Audio Port
+ Audio Port(s)
localizations
en
- Audio Port
+ Audio Port(s)
fr
- Port Audio
+ Port(s) Audio
snapshots
@@ -17453,19 +17626,19 @@ Raison: %2$s
class
BLStringKeyObject
comment
- Video Port
+ Video Port(s)
errors
flags
0
key
- Video Port
+ Video Port(s)
localizations
en
- Video Port
+ Video Port(s)
fr
- Port Vidéo
+ Port(s) Vidéo
snapshots
@@ -17685,6 +17858,81 @@ Raison: %2$s
snapshots
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Limits
+ errors
+
+ flags
+ 0
+ key
+ Limits
+ localizations
+
+ en
+ Limits
+ fr
+ Limites
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Upload bandwidth
+ errors
+
+ flags
+ 0
+ key
+ Upload bandwidth
+ localizations
+
+ en
+ Upload bandwidth
+ fr
+ Débit montant
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Download bandwidth
+ errors
+
+ flags
+ 0
+ key
+ Download bandwidth
+ localizations
+
+ en
+ Download bandwidth
+ fr
+ Débit descendant
+
+ snapshots
+
+
old objects
@@ -17782,6 +18030,56 @@ Raison: %2$s
snapshots
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Audio Port
+ errors
+
+ flags
+ 0
+ key
+ Audio Port
+ localizations
+
+ en
+ Audio Port
+ fr
+ Port Audio
+
+ snapshots
+
+
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Video Port
+ errors
+
+ flags
+ 0
+ key
+ Video Port
+ localizations
+
+ en
+ Video Port
+ fr
+ Port Vidéo
+
+ snapshots
+
+
plist file
diff --git a/linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib b/linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib
similarity index 99%
rename from linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib
rename to linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib
index d524c9766..5e67b7643 100644
--- a/linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib
+++ b/linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib
@@ -2,7 +2,7 @@
1536
- 11G56
+ 11G63
2840
1138.51
569.00
@@ -174,7 +174,6 @@
{{0, 79}, {320, 381}}
-
_NS:9
3
@@ -231,6 +230,8 @@
YES
17
+ 1
+ 3
IBCocoaTouchFramework
diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
index c73fc3480..cf7f76b96 100644
--- a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
+++ b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
@@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
+/* Advanced */
+"Advanced" = "Advanced";
+
+/* Playback gain */
+"Playback gain" = "Playback gain";
+
+/* Microphone gain */
+"Microphone gain" = "Microphone gain";
\ No newline at end of file
diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings b/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings
index 68876b8cc..58a723b05 100644
--- a/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings
+++ b/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings
@@ -10,3 +10,8 @@
/* Send SIP INFO DTMFs */
"Send SIP INFO DTMFs" = "Send SIP INFO DTMFs";
+/* Incoming call timeout */
+"Incoming call timeout" = "Incoming call timeout";
+
+/* In call timeout */
+"In call timeout" = "In call timeout";
\ No newline at end of file
diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings b/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings
index 299b28fbd..a2aa822d3 100644
--- a/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings
+++ b/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings
@@ -13,11 +13,11 @@
/* Port */
"Port" = "Port";
-/* Audio Port */
-"Audio Port" = "Audio Port";
+/* Audio Port(s) */
+"Audio Port(s)" = "Audio Port(s)";
-/* Video Port */
-"Video Port" = "Video Port";
+/* Video Port(s) */
+"Video Port(s)" = "Video Port(s)";
/* Transport */
"Transport" = "Transport";
@@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
+/* Limits */
+"Limits" = "Limits";
+
+/* Upload bandwidth */
+"Upload bandwidth" = "Upload bandwidth";
+
+/* Download bandwidth */
+"Download bandwidth" = "Download bandwidth";
diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings b/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings
index 3c249d05c..536d4563e 100644
--- a/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings
+++ b/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings
@@ -2,7 +2,7 @@
"SIP account" = "SIP account";
/* Wizard */
-"Wizard" = "Wizard";
+"Wizard" = "Run assistant";
/* User name */
"User name" = "User name";
diff --git a/linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib b/linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib
similarity index 87%
rename from linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib
rename to linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib
index 26e33847b..3398db0d7 100644
--- a/linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib
+++ b/linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib
@@ -2,9 +2,9 @@
1536
- 11E53
+ 11G63
2840
- 1138.47
+ 1138.51
569.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -35,13 +35,14 @@
- 301
+ 266
- -2147483356
+ -2147483355
{{0, 335}, {320, 125}}
+
_NS:9
1
@@ -56,13 +57,14 @@
- 288
+ 293
274
{281, 260}
+
_NS:9
2
@@ -78,6 +80,7 @@
292
{{-20, 10}, {107, 54}}
+
1
@@ -121,6 +124,7 @@
292
{{87, 10}, {106, 54}}
+
NO
NO
@@ -148,6 +152,7 @@
292
{{193, 10}, {107, 54}}
+
NO
NO
@@ -175,6 +180,7 @@
292
{{-20, 72}, {107, 54}}
+
NO
NO
@@ -202,6 +208,7 @@
292
{{87, 72}, {106, 54}}
+
NO
NO
@@ -229,6 +236,7 @@
292
{{193, 72}, {107, 54}}
+
NO
NO
@@ -256,6 +264,7 @@
292
{{-20, 134}, {107, 54}}
+
NO
NO
@@ -283,6 +292,7 @@
292
{{87, 134}, {106, 54}}
+
NO
NO
@@ -310,6 +320,7 @@
292
{{193, 134}, {107, 54}}
+
NO
NO
@@ -337,6 +348,7 @@
292
{{-20, 196}, {107, 54}}
+
NO
NO
@@ -364,6 +376,7 @@
292
{{87, 196}, {106, 54}}
+
NO
NO
@@ -391,6 +404,7 @@
292
{{193, 196}, {107, 54}}
+
NO
NO
@@ -416,6 +430,7 @@
{{20, 57}, {281, 260}}
+
_NS:9
@@ -427,13 +442,14 @@
- 292
+ 293
292
{{3, 0}, {77, 68}}
+
_NS:9
NO
@@ -491,6 +507,7 @@
292
{{3, 58}, {77, 68}}
+
_NS:9
NO
@@ -530,6 +547,7 @@
{{240, 208}, {80, 126}}
+
_NS:9
@@ -538,13 +556,46 @@
- 292
+ 293
+
+
+ 292
+ {{-44, -8}, {44, 90}}
+
+
+
+ _NS:9
+ 100
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ callbar_left_padding.png
+
+
+
+
+ 292
+ {{320, -8}, {44, 90}}
+
+
+
+ _NS:9
+ 101
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ callbar_right_padding.png
+
+
290
{{0, 135}, {320, 2000}}
+
_NS:9
@@ -559,6 +610,7 @@
292
{80, 67}
+
_NS:9
NO
@@ -605,6 +657,7 @@
-2147483356
{{20, 20}, {37, 37}}
+
_NS:9
NO
@@ -617,6 +670,7 @@
292
{{80, 0}, {80, 67}}
+
_NS:9
NO
@@ -663,6 +717,7 @@
292
{{160, 0}, {80, 67}}
+
_NS:9
NO
@@ -709,6 +764,7 @@
292
{{240, 0}, {80, 67}}
+
_NS:9
NO
@@ -755,6 +811,7 @@
264
{{0, 67}, {105, 68}}
+
_NS:9
NO
@@ -791,6 +848,7 @@
-2147483384
{{0, 67}, {105, 68}}
+
_NS:9
NO
@@ -820,6 +878,7 @@
264
{{105, 67}, {111, 68}}
+
_NS:9
NO
@@ -849,7 +908,8 @@
264
{{215, 67}, {105, 68}}
-
+
+
_NS:9
NO
27
@@ -884,7 +944,8 @@
{{0, 325}, {320, 135}}
-
+
+
_NS:9
18
@@ -893,21 +954,22 @@
{320, 460}
+
_NS:9
- NO
IBCocoaTouchFramework
- 301
+ 266
- -2147483356
+ -2147483355
{{0, 248}, {480, 72}}
+
_NS:9
@@ -923,13 +985,14 @@
- 288
+ 293
274
{281, 260}
+
_NS:9
2
@@ -942,6 +1005,7 @@
292
{{-20, 10}, {107, 54}}
+
1
@@ -964,6 +1028,7 @@
292
{{87, 10}, {106, 54}}
+
NO
NO
@@ -982,6 +1047,7 @@
292
{{193, 10}, {107, 54}}
+
NO
NO
@@ -1000,6 +1066,7 @@
292
{{-20, 72}, {107, 54}}
+
NO
NO
@@ -1018,6 +1085,7 @@
292
{{87, 72}, {106, 54}}
+
NO
NO
@@ -1036,6 +1104,7 @@
292
{{193, 72}, {107, 54}}
+
NO
NO
@@ -1054,6 +1123,7 @@
292
{{-20, 134}, {107, 54}}
+
NO
NO
@@ -1072,6 +1142,7 @@
292
{{87, 134}, {106, 54}}
+
NO
NO
@@ -1090,6 +1161,7 @@
292
{{193, 134}, {107, 54}}
+
NO
NO
@@ -1108,6 +1180,7 @@
292
{{-20, 196}, {107, 54}}
+
NO
NO
@@ -1126,6 +1199,7 @@
292
{{87, 196}, {106, 54}}
+
NO
NO
@@ -1144,6 +1218,7 @@
292
{{193, 196}, {107, 54}}
+
NO
NO
14
@@ -1159,6 +1234,7 @@
{{91, 0}, {281, 260}}
+
_NS:9
@@ -1167,13 +1243,14 @@
- 292
+ 293
292
{65, 55}
+
_NS:9
NO
@@ -1215,6 +1292,7 @@
292
{{0, 51}, {65, 55}}
+
_NS:9
NO
@@ -1254,6 +1332,7 @@
{{415, 140}, {65, 105}}
+
_NS:9
@@ -1262,13 +1341,40 @@
- 292
+ 293
+
+
+ 292
+ {{-44, -8}, {44, 90}}
+
+
+
+ _NS:9
+ 100
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+ 292
+ {{480, -8}, {44, 90}}
+
+
+
+ _NS:9
+ 101
+ NO
+ IBCocoaTouchFramework
+
+
290
{{0, 82}, {480, 2000}}
+
_NS:9
@@ -1283,6 +1389,7 @@
292
{{65, 0}, {65, 82}}
+
_NS:9
NO
@@ -1329,6 +1436,7 @@
-2147483356
{{79, 20}, {37, 37}}
+
_NS:9
NO
@@ -1341,6 +1449,7 @@
292
{{130, 0}, {65, 82}}
+
_NS:9
NO
@@ -1387,6 +1496,7 @@
292
{{285, 0}, {65, 82}}
+
_NS:9
NO
@@ -1433,6 +1543,7 @@
292
{{350, 0}, {65, 82}}
+
_NS:9
NO
@@ -1479,6 +1590,7 @@
264
{65, 82}
+
_NS:9
NO
@@ -1512,6 +1624,7 @@
-2147483384
{65, 82}
+
_NS:9
NO
@@ -1541,6 +1654,7 @@
264
{{195, 0}, {90, 82}}
+
_NS:9
NO
@@ -1570,7 +1684,8 @@
264
{{415, 0}, {65, 82}}
-
+
+
_NS:9
NO
27
@@ -1602,7 +1717,8 @@
{{0, 238}, {480, 82}}
-
+
+
_NS:9
18
@@ -1611,10 +1727,10 @@
{480, 320}
+
_NS:9
- NO
3
3
@@ -2035,6 +2151,8 @@
+
+
buttons
@@ -2361,6 +2479,8 @@
+
+
buttons
@@ -2437,6 +2557,30 @@
background
+
+ 143
+
+
+ leftPadding
+
+
+ 144
+
+
+ rightPadding
+
+
+ 145
+
+
+ rightPadding
+
+
+ 146
+
+
+ leftPadding
+
@@ -2535,6 +2679,10 @@
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
@@ -2605,14 +2753,296 @@
- 142
+ 163
+
+
+
+
+ TPMultiLayoutViewController
+ UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICallBar
+ TPMultiLayoutViewController
+
+ id
+ id
+ id
+ id
+ id
+
+
+
+ onConferenceClick:
+ id
+
+
+ onOptionsAddClick:
+ id
+
+
+ onOptionsClick:
+ id
+
+
+ onOptionsTransferClick:
+ id
+
+
+ onPadClick:
+ id
+
+
+
+ UIButton
+ UIToggleButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIHangUpButton
+ UIMicroButton
+ UIDigitButton
+ UIDigitButton
+ UIButton
+ UIToggleButton
+ UIButton
+ UIView
+ UIView
+ UIPauseButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UISpeakerButton
+ UIDigitButton
+ UIDigitButton
+ UIDigitButton
+ UIVideoButton
+ UIDigitButton
+
+
+
+ conferenceButton
+ UIButton
+
+
+ dialerButton
+ UIToggleButton
+
+
+ eightButton
+ UIDigitButton
+
+
+ fiveButton
+ UIDigitButton
+
+
+ fourButton
+ UIDigitButton
+
+
+ hangupButton
+ UIHangUpButton
+
+
+ microButton
+ UIMicroButton
+
+
+ nineButton
+ UIDigitButton
+
+
+ oneButton
+ UIDigitButton
+
+
+ optionsAddButton
+ UIButton
+
+
+ optionsButton
+ UIToggleButton
+
+
+ optionsTransferButton
+ UIButton
+
+
+ optionsView
+ UIView
+
+
+ padView
+ UIView
+
+
+ pauseButton
+ UIPauseButton
+
+
+ sevenButton
+ UIDigitButton
+
+
+ sharpButton
+ UIDigitButton
+
+
+ sixButton
+ UIDigitButton
+
+
+ speakerButton
+ UISpeakerButton
+
+
+ starButton
+ UIDigitButton
+
+
+ threeButton
+ UIDigitButton
+
+
+ twoButton
+ UIDigitButton
+
+
+ videoButton
+ UIVideoButton
+
+
+ zeroButton
+ UIDigitButton
+
+
+
+ IBProjectSource
+ ./Classes/UICallBar.h
+
+
+
+ UIDigitButton
+ UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
+
+ IBProjectSource
+ ./Classes/UIDigitButton.h
+
+
+
+ UIHangUpButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIHangUpButton.h
+
+
+
+ UILongTouchButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UILongTouchButton.h
+
+
+
+ UIMicroButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIMicroButton.h
+
+
+
+ UIPauseButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UIPauseButton.h
+
+
+
+ UISpeakerButton
+ UIToggleButton
+
+ IBProjectSource
+ ./Classes/UISpeakerButton.h
+
+
+
+ UIToggleButton
+ UIButton
+
+ IBProjectSource
+ ./Classes/UIToggleButton.h
+
+
+
+ UITransparentView
+ UIView
+
+ IBProjectSource
+ ./Classes/UITransparentView.h
+
+
+
+ UIVideoButton
+ UIToggleButton
+
+ waitView
+ UIActivityIndicatorView
+
+
+ waitView
+
+ waitView
+ UIActivityIndicatorView
+
+
+
+ IBProjectSource
+ ./Classes/UIVideoButton.h
+
+
+
-
0
IBCocoaTouchFramework
YES
3
+ {88, 180}
+ {88, 180}
{209, 136}
{130, 163}
{209, 136}
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index e8bc473d7..d1708f96a 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -326,6 +326,10 @@
D33CF34B15D3A03400CD4B85 /* linphone_icon_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */; };
D33CF34C15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; };
D33CF34D15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; };
+ D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; };
+ D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; };
+ D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; };
+ D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; };
D3432A62158A4446001C6B0B /* led_connected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5C158A4446001C6B0B /* led_connected.png */; };
D3432A64158A4446001C6B0B /* led_error.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5D158A4446001C6B0B /* led_error.png */; };
D3432A66158A4446001C6B0B /* call_quality_indicator_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */; };
@@ -1757,6 +1761,8 @@
D339890515C6E16F00CAF1E4 /* dialer_alt_back_over_landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "dialer_alt_back_over_landscape~ipad.png"; path = "Resources/dialer_alt_back_over_landscape~ipad.png"; sourceTree = ""; };
D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_57@2x.png"; path = "Resources/linphone_icon_57@2x.png"; sourceTree = ""; };
D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_72@2x.png"; path = "Resources/linphone_icon_72@2x.png"; sourceTree = ""; };
+ D33E1F06164CF35100CFA363 /* callbar_left_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_left_padding.png; path = Resources/callbar_left_padding.png; sourceTree = ""; };
+ D33E1F07164CF35100CFA363 /* callbar_right_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_right_padding.png; path = Resources/callbar_right_padding.png; sourceTree = ""; };
D3432A5C158A4446001C6B0B /* led_connected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_connected.png; path = Resources/led_connected.png; sourceTree = ""; };
D3432A5D158A4446001C6B0B /* led_error.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_error.png; path = Resources/led_error.png; sourceTree = ""; };
D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_quality_indicator_0.png; path = Resources/call_quality_indicator_0.png; sourceTree = ""; };
@@ -2998,6 +3004,8 @@
D31C9C8D158A1C1000756B45 /* call_status_incoming.png */,
D31C9C8E158A1C1000756B45 /* call_status_missed.png */,
D31C9C8F158A1C1000756B45 /* call_status_outgoing.png */,
+ D33E1F06164CF35100CFA363 /* callbar_left_padding.png */,
+ D33E1F07164CF35100CFA363 /* callbar_right_padding.png */,
D3E84F1715B00F4100420DAC /* cancel_default.png */,
D3E84F1815B00F4100420DAC /* cancel_over.png */,
D36C43CC158F2F370048BA40 /* cell_call.png */,
@@ -4201,6 +4209,8 @@
D3103926162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */,
D3103928162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */,
D310392A162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */,
+ D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */,
+ D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -4707,6 +4717,8 @@
D3103927162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */,
D3103929162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */,
D310392B162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */,
+ D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */,
+ D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5266,7 +5278,7 @@
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = "";
- PROVISIONING_PROFILE = "EE9CAF78-3536-4133-BAAA-020FDF65D279";
+ PROVISIONING_PROFILE = "7763350E-083E-4ADA-8535-05883F19F947";
SDKROOT = iphoneos;
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -5676,7 +5688,7 @@
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = "";
- PROVISIONING_PROFILE = "79E53132-649F-48B3-A931-24792E466A11";
+ PROVISIONING_PROFILE = "2AC0DC11-4546-47B6-8B8A-453CCA80903C";
SDKROOT = iphoneos;
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/submodules/build/builders.d/x264.mk b/submodules/build/builders.d/x264.mk
index fbe943686..203ffe351 100644
--- a/submodules/build/builders.d/x264.mk
+++ b/submodules/build/builders.d/x264.mk
@@ -43,12 +43,12 @@ ifneq (,$(findstring armv7,$(host)))
endif
x264_dir?=externals/x264
-$(BUILDER_SRC_DIR)/$(x264_dir)/patched :
- cd $(BUILDER_SRC_DIR)/$(x264_dir) \
- && git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \
- && touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched
+#$(BUILDER_SRC_DIR)/$(x264_dir)/patched :
+# cd $(BUILDER_SRC_DIR)/$(x264_dir) \
+# && git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \
+# && touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched
-$(BUILDER_BUILD_DIR)/$(x264_dir)/configure: $(BUILDER_SRC_DIR)/$(x264_dir)/patched
+$(BUILDER_BUILD_DIR)/$(x264_dir)/configure:
mkdir -p $(BUILDER_BUILD_DIR)/$(x264_dir)
cd $(BUILDER_BUILD_DIR)/$(x264_dir)/ \
&& rsync -av --exclude ".git" $(BUILDER_SRC_DIR)/$(x264_dir)/* .
@@ -66,6 +66,9 @@ clean-x264:
veryclean-x264:
-cd $(BUILDER_BUILD_DIR)/$(x264_dir) && make distclean
+ cd $(BUILDER_SRC_DIR)/$(x264_dir)/ \
+ && git checkout common/arm/asm.S \
+ && rm -f patched
rm -rf $(BUILDER_BUILD_DIR)/$(x264_dir)
clean-makefile-x264:
diff --git a/submodules/externals/x264 b/submodules/externals/x264
index 926a03a9c..f6a8615ab 160000
--- a/submodules/externals/x264
+++ b/submodules/externals/x264
@@ -1 +1 @@
-Subproject commit 926a03a9c1f48d0fbd54b0e802d740774c100a78
+Subproject commit f6a8615ab0c922ac2cb5c82c9824f6f4742b1725
diff --git a/submodules/linphone b/submodules/linphone
index e829fa6e2..501c5ce4d 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit e829fa6e222f37de9c26e4e82f0227078f4b6629
+Subproject commit 501c5ce4db223514bdb9090405b264e862c028ad