diff --git a/Classes/Base.lproj/DialerViewController.xib b/Classes/Base.lproj/DialerViewController.xib
index 2d9708781..1216e2588 100644
--- a/Classes/Base.lproj/DialerViewController.xib
+++ b/Classes/Base.lproj/DialerViewController.xib
@@ -47,7 +47,7 @@
-
+
diff --git a/Classes/Base.lproj/DialerViewController~ipad.xib b/Classes/Base.lproj/DialerViewController~ipad.xib
index e900e3419..23e0ed78e 100644
--- a/Classes/Base.lproj/DialerViewController~ipad.xib
+++ b/Classes/Base.lproj/DialerViewController~ipad.xib
@@ -77,7 +77,7 @@
-
+
diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h
index 5ad82797f..9c25127dc 100644
--- a/Classes/LinphoneManager.h
+++ b/Classes/LinphoneManager.h
@@ -191,6 +191,8 @@ typedef struct _LinphoneManagerSounds {
- (void)silentPushFailed:(NSTimer*)timer;
+- (void)removeAllAccounts;
+
@property (readonly) BOOL isTesting;
@property (readonly, strong) FastAddressBook* fastAddressBook;
@property Connectivity connectivity;
diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m
index a73ce1cf3..764125f2c 100644
--- a/Classes/LinphoneManager.m
+++ b/Classes/LinphoneManager.m
@@ -1885,6 +1885,7 @@ static void audioRouteChangeListenerCallback(void *inUserData, // 1
}
- (void)call:(NSString *)address displayName:(NSString *)displayName transfer:(BOOL)transfer {
+ // First verify that network is available, abort otherwise.
if (!linphone_core_is_network_reachable(theLinphoneCore)) {
UIAlertView *error = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Network Error", nil)
@@ -1893,96 +1894,92 @@ static void audioRouteChangeListenerCallback(void *inUserData, // 1
@"There is no network connection available, enable WIFI or WWAN prior to place a call",
nil)
delegate:nil
- cancelButtonTitle:NSLocalizedString(@"Continue", nil)
+ cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:nil];
[error show];
return;
}
+ // Then check that no GSM calls are in progress, abort otherwise.
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
if ([callCenter currentCalls] != nil) {
LOGE(@"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)
- delegate:nil
- cancelButtonTitle:NSLocalizedString(@"Continue", nil)
- otherButtonTitles:nil];
+ UIAlertView *error =
+ [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot make call", nil)
+ message:NSLocalizedString(@"Please terminate GSM call first.", nil)
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
+ otherButtonTitles:nil];
[error show];
return;
}
- LinphoneProxyConfig *proxyCfg;
- // get default proxy
- linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg);
- LinphoneCallParams *lcallParams = linphone_core_create_default_call_parameters(theLinphoneCore);
- if ([self lpConfigBoolForKey:@"edge_opt_preference"]) {
- bool low_bandwidth = self.network == network_2g;
- if (low_bandwidth) {
- LOGI(@"Low bandwidth mode");
- }
- linphone_call_params_enable_low_bandwidth(lcallParams, low_bandwidth);
- }
- LinphoneCall *call = NULL;
-
- BOOL addressIsASCII = [address canBeConvertedToEncoding:[NSString defaultCStringEncoding]];
-
- if ([address length] == 0)
- return; // just return
- if (!addressIsASCII) {
- UIAlertView *error =
- [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid SIP address", nil)
- message:NSLocalizedString(@"The address should only contain ASCII data", nil)
- delegate:nil
- cancelButtonTitle:NSLocalizedString(@"Continue", nil)
- otherButtonTitles:nil];
+ LinphoneAddress *addr = NULL;
+ // Continue by checking that the provided address is a valid SIP address, abort otherwise.
+ if ([address length] == 0) {
+ // no address provided... nothing to do
+ } else if (![address canBeConvertedToEncoding:[NSString defaultCStringEncoding]]) {
+ UIAlertView *error = [[UIAlertView alloc]
+ initWithTitle:NSLocalizedString(@"Invalid SIP address", nil)
+ message:NSLocalizedString(
+ @"Some invalid characters where found in the given SIP address. Please correct it.",
+ nil)
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
+ otherButtonTitles:nil];
[error show];
- }
- LinphoneAddress *linphoneAddress =
- linphone_core_interpret_url(theLinphoneCore, [address cStringUsingEncoding:[NSString defaultCStringEncoding]]);
-
- if (linphoneAddress) {
-
- if (displayName != nil) {
- linphone_address_set_display_name(linphoneAddress,
- [displayName cStringUsingEncoding:[NSString defaultCStringEncoding]]);
- }
- if ([[LinphoneManager instance] lpConfigBoolForKey:@"override_domain_with_default_one"])
- linphone_address_set_domain(
- linphoneAddress, [[[LinphoneManager instance] lpConfigStringForKey:@"domain" forSection:@"wizard"]
- cStringUsingEncoding:[NSString defaultCStringEncoding]]);
- if (transfer) {
- linphone_core_transfer_call(theLinphoneCore, linphone_core_get_current_call(theLinphoneCore),
- [address cStringUsingEncoding:[NSString defaultCStringEncoding]]);
- } else {
- call = linphone_core_invite_address_with_params(theLinphoneCore, linphoneAddress, lcallParams);
- }
- linphone_address_destroy(linphoneAddress);
-
- } else {
-
+ } else if ((addr = linphone_core_interpret_url(
+ theLinphoneCore, [address cStringUsingEncoding:[NSString defaultCStringEncoding]])) == NULL) {
UIAlertView *error = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Invalid SIP address", nil)
message:NSLocalizedString(@"Either configure a SIP proxy server from settings prior to place a "
@"call or use a valid SIP address (I.E sip:john@example.net)",
nil)
delegate:nil
- cancelButtonTitle:NSLocalizedString(@"Continue", nil)
+ cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:nil];
[error show];
- }
+ } else {
+ // Finally we can make the call
+ LinphoneProxyConfig *proxyCfg;
+ linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg);
+ LinphoneCallParams *lcallParams = linphone_core_create_default_call_parameters(theLinphoneCore);
+ if ([self lpConfigBoolForKey:@"edge_opt_preference"] && (self.network == network_2g)) {
+ LOGI(@"Enabling low bandwidth mode");
+ linphone_call_params_enable_low_bandwidth(lcallParams, YES);
+ }
+ if (displayName != nil) {
+ linphone_address_set_display_name(addr,
+ [displayName cStringUsingEncoding:[NSString defaultCStringEncoding]]);
+ }
+ if ([[LinphoneManager instance] lpConfigBoolForKey:@"override_domain_with_default_one"]) {
+ linphone_address_set_domain(
+ addr, [[[LinphoneManager instance] lpConfigStringForKey:@"domain" forSection:@"wizard"]
+ cStringUsingEncoding:[NSString defaultCStringEncoding]]);
+ }
- if (call) {
- // The LinphoneCallAppData object should be set on call creation with callback
- // - (void)onCall:StateChanged:withMessage:. If not, we are in big trouble and expect it to crash
- // We are NOT responsible for creating the AppData.
- LinphoneCallAppData *data = (__bridge LinphoneCallAppData *)linphone_call_get_user_data(call);
- if (data == nil)
- LOGE(@"New call instanciated but app data was not set. Expect it to crash.");
- /* will be used later to notify user if video was not activated because of the linphone core*/
- else
- data->videoRequested = linphone_call_params_video_enabled(lcallParams);
+ if (transfer) {
+ char *caddr = linphone_address_as_string(addr);
+ linphone_core_transfer_call(theLinphoneCore, linphone_core_get_current_call(theLinphoneCore), caddr);
+ ms_free(caddr);
+ } else {
+ LinphoneCall *call = linphone_core_invite_address_with_params(theLinphoneCore, addr, lcallParams);
+ if (call) {
+ // The LinphoneCallAppData object should be set on call creation with callback
+ // - (void)onCall:StateChanged:withMessage:. If not, we are in big trouble and expect it to crash
+ // We are NOT responsible for creating the AppData.
+ LinphoneCallAppData *data = (__bridge LinphoneCallAppData *)linphone_call_get_user_data(call);
+ if (data == nil) {
+ LOGE(@"New call instanciated but app data was not set. Expect it to crash.");
+ /* will be used later to notify user if video was not activated because of the linphone core*/
+ } else {
+ data->videoRequested = linphone_call_params_video_enabled(lcallParams);
+ }
+ }
+ }
+ linphone_address_destroy(addr);
+ linphone_call_params_destroy(lcallParams);
}
- linphone_call_params_destroy(lcallParams);
}
#pragma mark - Property Functions
@@ -2331,4 +2328,10 @@ static void audioRouteChangeListenerCallback(void *inUserData, // 1
// Query our in-app server to retrieve InApp purchases
[_iapManager retrievePurchases];
}
+
+- (void)removeAllAccounts {
+ linphone_core_clear_proxy_config([LinphoneManager getLc]);
+ linphone_core_clear_all_auth_info([LinphoneManager getLc]);
+}
+
@end
diff --git a/Classes/LinphoneUI/UIStateBar.m b/Classes/LinphoneUI/UIStateBar.m
index 375dc4fd9..d7a261d0b 100644
--- a/Classes/LinphoneUI/UIStateBar.m
+++ b/Classes/LinphoneUI/UIStateBar.m
@@ -235,6 +235,7 @@
break;
}
[registrationStateLabel setText:message];
+ registrationStateLabel.accessibilityValue = registrationStateImage.accessibilityValue = message;
[registrationStateImage setImage:image];
}
diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m
index 389fb5907..407e5b599 100644
--- a/Classes/PhoneMainView.m
+++ b/Classes/PhoneMainView.m
@@ -608,21 +608,28 @@ static RootViewManager *rootViewManagerInstance = nil;
@"SIP account configuration in the settings.",
nil);
} else {
- lMessage = [NSString stringWithFormat:NSLocalizedString(@"Cannot call %@", nil), lUserName];
+ lMessage = [NSString stringWithFormat:NSLocalizedString(@"Cannot call %@.", nil), lUserName];
}
- if (linphone_call_get_reason(call) == LinphoneReasonNotFound) {
- lMessage = [NSString stringWithFormat:NSLocalizedString(@"%@ not registered", nil), lUserName];
- } else {
- if (message != nil) {
- lMessage = [NSString stringWithFormat:NSLocalizedString(@"%@\nReason was: %@", nil), lMessage, message];
- }
+ switch (linphone_call_get_reason(call)) {
+ case LinphoneReasonNotFound:
+ lMessage = [NSString stringWithFormat:NSLocalizedString(@"%@ is not registered.", nil), lUserName];
+ break;
+ case LinphoneReasonBusy:
+ lMessage = [NSString stringWithFormat:NSLocalizedString(@"%@ is busy.", nil), lUserName];
+ break;
+ default:
+ if (message != nil) {
+ lMessage = [NSString stringWithFormat:NSLocalizedString(@"%@\nReason was: %@", nil), lMessage, message];
+ }
+ break;
}
+
lTitle = NSLocalizedString(@"Call failed", nil);
UIAlertView *error = [[UIAlertView alloc] initWithTitle:lTitle
message:lMessage
delegate:nil
- cancelButtonTitle:NSLocalizedString(@"Dismiss", nil)
+ cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:nil];
[error show];
}
diff --git a/Classes/WizardViewController.m b/Classes/WizardViewController.m
index d7e007e7d..7802a23da 100644
--- a/Classes/WizardViewController.m
+++ b/Classes/WizardViewController.m
@@ -228,7 +228,7 @@ static UICompositeViewDescription *compositeDescription = nil;
}
- (void)reset {
- [self clearProxyConfig];
+ [[LinphoneManager instance] removeAllAccounts];
[[LinphoneManager instance] lpConfigSetBool:FALSE forKey:@"pushnotification_preference"];
LinphoneCore *lc = [LinphoneManager getLc];
@@ -372,17 +372,6 @@ static UICompositeViewDescription *compositeDescription = nil;
[contentView setContentSize:[view bounds].size];
}
-- (void)clearProxyConfig {
- linphone_core_clear_proxy_config([LinphoneManager getLc]);
- linphone_core_clear_all_auth_info([LinphoneManager getLc]);
-}
-
-- (void)setDefaultSettings:(LinphoneProxyConfig *)proxyCfg {
- LinphoneManager *lm = [LinphoneManager instance];
-
- [lm configurePushTokenForProxyConfig:proxyCfg];
-}
-
- (BOOL)addProxyConfig:(NSString *)username
password:(NSString *)password
domain:(NSString *)domain
@@ -440,9 +429,9 @@ static UICompositeViewDescription *compositeDescription = nil;
LinphoneAuthInfo *info = linphone_auth_info_new([username UTF8String], NULL, [password UTF8String], NULL, NULL,
linphone_proxy_config_get_domain(proxyCfg));
- [self setDefaultSettings:proxyCfg];
-
- [self clearProxyConfig];
+ LinphoneManager *lm = [LinphoneManager instance];
+ [lm configurePushTokenForProxyConfig:proxyCfg];
+ [lm removeAllAccounts];
linphone_proxy_config_enable_register(proxyCfg, true);
linphone_core_add_auth_info(lc, info);
@@ -454,8 +443,7 @@ static UICompositeViewDescription *compositeDescription = nil;
}
- (void)addProvisionedProxy:(NSString *)username withPassword:(NSString *)password withDomain:(NSString *)domain {
- [self clearProxyConfig];
-
+ [[LinphoneManager instance] removeAllAccounts];
LinphoneProxyConfig *proxyCfg = linphone_core_create_proxy_config([LinphoneManager getLc]);
const char *addr = linphone_proxy_config_get_domain(proxyCfg);
diff --git a/TestsUI/CallTester.h b/TestsUI/CallTester.h
new file mode 100644
index 000000000..9f89b98e3
--- /dev/null
+++ b/TestsUI/CallTester.h
@@ -0,0 +1,13 @@
+//
+// CallTester.h
+// linphone
+//
+// Created by Gautier Pelloux-Prayer on 24/08/15.
+//
+//
+
+#import "LinphoneTestCase.h"
+
+@interface CallTester : LinphoneTestCase
+
+@end
diff --git a/TestsUI/CallTester.m b/TestsUI/CallTester.m
new file mode 100644
index 000000000..a6e2e2825
--- /dev/null
+++ b/TestsUI/CallTester.m
@@ -0,0 +1,62 @@
+//
+// CallTester.m
+// linphone
+//
+// Created by Gautier Pelloux-Prayer on 24/08/15.
+//
+//
+
+#import "CallTester.h"
+#include "LinphoneManager.h"
+
+@implementation CallTester
+
+- (void)beforeAll {
+ [super beforeAll];
+ [self switchToValidAccountIfNeeded];
+}
+
+- (void)beforeEach {
+ [super beforeEach];
+ if ([tester tryFindingTappableViewWithAccessibilityLabel:@"Back" error:nil]) {
+ [tester tapViewWithAccessibilityLabel:@"Back"];
+ }
+ [tester tapViewWithAccessibilityLabel:@"Dialer"];
+}
+
+- (void)afterEach {
+ if ([tester tryFindingTappableViewWithAccessibilityLabel:@"Hangup" error:nil]) {
+ [tester tapViewWithAccessibilityLabel:@"Hangup"];
+ }
+ [super afterEach];
+}
+#pragma mark - Tools
+
+- (void)callURI:(NSString *)address {
+ [tester enterText:address intoViewWithAccessibilityLabel:@"Enter an address"];
+ [tester tapViewWithAccessibilityLabel:@"Call" traits:UIAccessibilityTraitButton];
+}
+
+#pragma mark - Tests
+
+- (void)testCallMeBusy {
+ [self callURI:[self me]];
+ [tester waitForViewWithAccessibilityLabel:[NSString stringWithFormat:@"%@ is busy.", [self me]]];
+ [tester tapViewWithAccessibilityLabel:@"Cancel" traits:UIAccessibilityTraitButton];
+}
+
+- (void)testCallUnregisteredUser {
+ NSString *unregisteredUser = [self getUUID];
+ [self callURI:unregisteredUser];
+ [tester waitForViewWithAccessibilityLabel:[NSString stringWithFormat:@"%@ is not registered.", unregisteredUser]];
+ [tester tapViewWithAccessibilityLabel:@"Cancel" traits:UIAccessibilityTraitButton];
+}
+
+- (void)testDialInvalidSIPURI {
+ [self callURI:@"🎆123"];
+ [tester waitForViewWithAccessibilityLabel:
+ @"Some invalid characters where found in the given SIP address. Please correct it."];
+ [tester tapViewWithAccessibilityLabel:@"Cancel" traits:UIAccessibilityTraitButton];
+}
+
+@end
diff --git a/TestsUI/ContactsTester.m b/TestsUI/ContactsTester.m
index 974364600..4335236c8 100644
--- a/TestsUI/ContactsTester.m
+++ b/TestsUI/ContactsTester.m
@@ -75,8 +75,8 @@
NSString *phone = @"+5 15 #0664;447*46";
[self createContact:contactName lastName:@"dummy" phoneNumber:phone SIPAddress:nil];
[tester tapViewWithAccessibilityLabel:[@"Linphone, " stringByAppendingString:phone]];
- [tester waitForViewWithAccessibilityLabel:[phone stringByAppendingString:@" not registered"]];
- [tester tapViewWithAccessibilityLabel:@"Dismiss"];
+ [tester waitForViewWithAccessibilityLabel:[phone stringByAppendingString:@" is not registered."]];
+ [tester tapViewWithAccessibilityLabel:@"Cancel"];
}
- (void)testDeleteContact {
diff --git a/TestsUI/LinphoneTestCase.m b/TestsUI/LinphoneTestCase.m
index 2812779c9..647e35024 100644
--- a/TestsUI/LinphoneTestCase.m
+++ b/TestsUI/LinphoneTestCase.m
@@ -23,7 +23,11 @@
if (!([language isEqualToString:@"en"] || [language containsString:@"en-"])) {
LOGF(@"Language must be 'en' (English) instead of %@", language);
}
+#if DEBUG
+ linphone_core_set_log_level(ORTP_MESSAGE);
+#else
linphone_core_set_log_level(ORTP_WARNING);
+#endif
}
- (void)beforeAll {
@@ -34,7 +38,7 @@
};
#endif
// go to dialer
- for (NSString *button in @[ @"Cancel", @"Back", @"Dialer" ]) {
+ for (NSString *button in @[ @"Cancel", @"Back", @"Hangup", @"Dialer" ]) {
if ([tester tryFindingTappableViewWithAccessibilityLabel:button error:nil]) {
[tester tapViewWithAccessibilityLabel:button traits:UIAccessibilityTraitButton];
}
@@ -42,11 +46,12 @@
}
- (NSString *)me {
- return @"testios";
+ return [NSString
+ stringWithFormat:@"testios-%@", [[UIDevice currentDevice].identifierForVendor.UUIDString substringToIndex:6]];
}
- (NSString *)accountDomain {
- return @"sip.linphone.org";
+ return @"test.linphone.org";
}
- (NSString *)getUUID {
@@ -101,26 +106,48 @@ static bool invalidAccount = true;
[UIView setAnimationsEnabled:false];
if (invalidAccount && ![self hasValidProxyConfig]) {
+ LOGI(@"Switching to a test account...");
- [tester tapViewWithAccessibilityLabel:@"Settings"];
- [tester tapViewWithAccessibilityLabel:@"Run assistant"];
- [tester waitForTimeInterval:0.5];
- if ([tester tryFindingViewWithAccessibilityLabel:@"Launch Wizard" error:nil]) {
- [tester tapViewWithAccessibilityLabel:@"Launch Wizard"];
- [tester waitForTimeInterval:0.5];
- }
+ LinphoneCore *lc = [LinphoneManager getLc];
+ linphone_core_clear_proxy_config(lc);
+ linphone_core_clear_all_auth_info(lc);
- LOGI(@"Switching to a valid account");
+ LinphoneAddress *testAddr = linphone_address_new(
+ [[NSString stringWithFormat:@"sip:%@@%@", [self me], [self accountDomain]] UTF8String]);
+ linphone_address_set_header(testAddr, "X-Create-Account", "yes");
+ linphone_address_set_transport(testAddr, LinphoneTransportTcp);
+ linphone_address_set_port(testAddr, 0);
- [tester tapViewWithAccessibilityLabel:@"Start"];
- [tester tapViewWithAccessibilityLabel:@"Sign in linphone.org account"];
+ LinphoneProxyConfig *testProxy = linphone_proxy_config_new();
+ linphone_proxy_config_set_identity_address(testProxy, testAddr);
+ char *server_addr = ms_strdup_printf("%s;transport=tcp", linphone_address_get_domain(testAddr));
+ linphone_proxy_config_set_server_addr(testProxy, server_addr);
+ linphone_proxy_config_set_route(testProxy, server_addr);
+ ms_free(server_addr);
- [tester enterText:[self me] intoViewWithAccessibilityLabel:@"Username"];
- [tester enterText:@"testtest" intoViewWithAccessibilityLabel:@"Password"];
+ LinphoneAuthInfo *testAuth = linphone_auth_info_new(linphone_address_get_username(testAddr), NULL,
+ linphone_address_get_password(testAddr), NULL, NULL,
+ linphone_address_get_domain(testAddr));
- [tester tapViewWithAccessibilityLabel:@"Sign in"];
+ [[LinphoneManager instance] configurePushTokenForProxyConfig:testProxy];
+ [[LinphoneManager instance] removeAllAccounts];
+
+ linphone_proxy_config_enable_register(testProxy, true);
+ linphone_core_add_auth_info(lc, testAuth);
+ linphone_core_add_proxy_config(lc, testProxy);
+ linphone_core_set_default_proxy_config(lc, testProxy);
+
+ linphone_proxy_config_unref(testProxy);
+ linphone_auth_info_destroy(testAuth);
+ linphone_address_destroy(testAddr);
+
+ // reload address book to prepend proxy config domain to contacts' phone number
+ [[[LinphoneManager instance] fastAddressBook] reload];
+
+ [tester waitForViewWithAccessibilityLabel:@"Registration state"
+ value:@"Registered"
+ traits:UIAccessibilityTraitStaticText];
- [tester waitForViewWithAccessibilityLabel:@"Dialer"];
invalidAccount = false;
}
}
diff --git a/TestsUI/WizardTester.m b/TestsUI/WizardTester.m
index 03fe024a2..313564fa7 100644
--- a/TestsUI/WizardTester.m
+++ b/TestsUI/WizardTester.m
@@ -100,17 +100,16 @@
}
- (void)testLinphoneLogin {
-
- [self _linphoneLogin:[self me] withPW:@"testtest"];
+ [self _linphoneLogin:@"testios" withPW:@"testtest"];
// check the registration state
- UIView *regState = [tester waitForViewWithAccessibilityLabel:@"Registration state"];
- [tester waitForTimeInterval:1];
- [tester expectView:regState toContainText:@"Registered"];
+ [tester waitForViewWithAccessibilityLabel:@"Registration state"
+ value:@"Registered"
+ traits:UIAccessibilityTraitStaticText];
}
- (void)testLinphoneLoginWithBadPassword {
- [self _linphoneLogin:[self me] withPW:@"badPass"];
+ [self _linphoneLogin:@"testios" withPW:@"badPass"];
[self setInvalidAccountSet:true];
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index 938ab0151..4ff6d14af 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -167,6 +167,7 @@
63B81A0E1B57DA33009604A6 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A071B57DA33009604A6 /* TPKeyboardAvoidingScrollView.m */; };
63B81A0F1B57DA33009604A6 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A091B57DA33009604A6 /* TPKeyboardAvoidingTableView.m */; };
63B81A101B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A0B1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
+ 63B910C21B8B5368004641C9 /* CallTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B910BA1B8B5356004641C9 /* CallTester.m */; };
63C458261B5680AC009F2D7E /* ring.wav in Resources */ = {isa = PBXBuildFile; fileRef = 2237D4081084D7A9001383EE /* ring.wav */; };
63CD4B4F1A5AAC8C00B84282 /* DTAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63CD4B4E1A5AAC8C00B84282 /* DTAlertView.m */; };
63D2680F1B174A5E00A2CC11 /* numpad_one_voicemail_default.png in Resources */ = {isa = PBXBuildFile; fileRef = 63D2680D1B174A5E00A2CC11 /* numpad_one_voicemail_default.png */; };
@@ -1108,6 +1109,8 @@
63B81A091B57DA33009604A6 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = ""; };
63B81A0A1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = ""; };
63B81A0B1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = ""; };
+ 63B910B91B8B5356004641C9 /* CallTester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallTester.h; sourceTree = ""; };
+ 63B910BA1B8B5356004641C9 /* CallTester.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallTester.m; sourceTree = ""; };
63CD4B4D1A5AAC8C00B84282 /* DTAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DTAlertView.h; sourceTree = ""; };
63CD4B4E1A5AAC8C00B84282 /* DTAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DTAlertView.m; sourceTree = ""; };
63D2680D1B174A5E00A2CC11 /* numpad_one_voicemail_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = numpad_one_voicemail_default.png; path = Resources/numpad_one_voicemail_default.png; sourceTree = ""; };
@@ -2297,7 +2300,6 @@
F03A9B9718C0DB6F00C4D7FE /* libc++.dylib */,
F0BB8C111936240300974404 /* libcunit.a */,
220FAD2910765B400068D98F /* libgsm.a */,
- 223148E31178A08200637D6A /* libilbc.a */,
2211DB911475562600DEE054 /* liblinphone.a */,
F0BB8C0F193623F200974404 /* liblinphonetester.a */,
22405EE916006F0700B92522 /* libmediastreamer_base.a */,
@@ -2345,12 +2347,14 @@
630589DD1B4E810900EFAE36 /* TestsUI */ = {
isa = PBXGroup;
children = (
- 63058A0A1B4E81B700EFAE36 /* Info.plist */,
- 630589F21B4E816900EFAE36 /* KIF.xcodeproj */,
+ 63B910B91B8B5356004641C9 /* CallTester.h */,
+ 63B910BA1B8B5356004641C9 /* CallTester.m */,
630589DE1B4E810900EFAE36 /* ChatTester.h */,
630589DF1B4E810900EFAE36 /* ChatTester.m */,
630589E01B4E810900EFAE36 /* ContactsTester.h */,
630589E11B4E810900EFAE36 /* ContactsTester.m */,
+ 63058A0A1B4E81B700EFAE36 /* Info.plist */,
+ 630589F21B4E816900EFAE36 /* KIF.xcodeproj */,
630589E31B4E810900EFAE36 /* LinphoneTestCase.h */,
630589E41B4E810900EFAE36 /* LinphoneTestCase.m */,
630589E51B4E810900EFAE36 /* WizardTester.h */,
@@ -4118,6 +4122,7 @@
630589EA1B4E810900EFAE36 /* LinphoneTestCase.m in Sources */,
630589EB1B4E810900EFAE36 /* WizardTester.m in Sources */,
630589E71B4E810900EFAE36 /* ChatTester.m in Sources */,
+ 63B910C21B8B5368004641C9 /* CallTester.m in Sources */,
630589E81B4E810900EFAE36 /* ContactsTester.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
diff --git a/submodules/linphone b/submodules/linphone
index e7dd35efa..af43ad896 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit e7dd35efa0f0d250db66fadb11994b4f48e088b1
+Subproject commit af43ad89650f70ce5e2fb4a45287aabbdd9b63d6