diff --git a/Classes/AssistantLinkView.m b/Classes/AssistantLinkView.m
index 88ea6162e..d0db4e029 100644
--- a/Classes/AssistantLinkView.m
+++ b/Classes/AssistantLinkView.m
@@ -47,9 +47,9 @@
.UTF8String);
linphone_account_creator_set_user_data(account_creator, (__bridge void *)(self));
- linphone_account_creator_cbs_set_link_phone_number_with_account(
+ linphone_account_creator_cbs_set_link_account(
linphone_account_creator_get_callbacks(account_creator), assistant_link_phone_number_with_account);
- linphone_account_creator_cbs_set_activate_phone_number_link(linphone_account_creator_get_callbacks(account_creator),
+ linphone_account_creator_cbs_set_activate_alias(linphone_account_creator_get_callbacks(account_creator),
assistant_activate_phone_number_link);
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
@@ -166,7 +166,7 @@ void assistant_link_phone_number_with_account(LinphoneAccountCreator *creator, L
const char *resp) {
AssistantLinkView *thiz = (__bridge AssistantLinkView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorOK) {
+ if (status == LinphoneAccountCreatorStatusRequestOk) {
thiz.linkAccountView.hidden = thiz.activateSMSView.userInteractionEnabled = YES;
NSString* phoneNumber = [NSString stringWithUTF8String:linphone_account_creator_get_phone_number(creator)];
thiz.linkSMSText.text = [NSString stringWithFormat:NSLocalizedString(@"We have sent a SMS with a validation code to %@. To complete your phone number verification, please enter the 4 digit code below:",nil), phoneNumber];
@@ -184,7 +184,7 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
const char *resp) {
AssistantLinkView *thiz = (__bridge AssistantLinkView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorOK) {
+ if (status == LinphoneAccountCreatorStatusAccountActivated) {
[LinphoneManager.instance lpConfigSetInt:0 forKey:@"must_link_account_time"];
// save country code prefix if none is already entered
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
@@ -245,13 +245,13 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
- linphone_account_creator_link_phone_number_with_account(account_creator);
+ linphone_account_creator_link_account(account_creator);
}
- (IBAction)onCheckValidationButton:(id)sender {
_waitView.hidden = NO;
linphone_account_creator_set_activation_code(account_creator, _activationCodeField.text.UTF8String);
- linphone_account_creator_activate_phone_number_link(account_creator);
+ linphone_account_creator_activate_alias(account_creator);
}
- (IBAction)onDialerClick:(id)sender {
@@ -290,7 +290,7 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
//remove the + from the country code to avoir error when checking its validity
NSString *newStr = [_countryCodeField.text substringWithRange:NSMakeRange(1, [_countryCodeField.text length]-1)];
LinphoneAccountCreatorStatus status = linphone_account_creator_set_phone_number(account_creator, [_phoneField.text UTF8String], [newStr UTF8String]);
- if (status == LinphoneAccountCreatorPhoneNumberTooLong || self.phoneField.text.length < 8) {
+ if (status == LinphoneAccountCreatorPhoneNumberStatusTooLong || status == LinphoneAccountCreatorPhoneNumberStatusTooShort) {
self.phoneField.layer.borderWidth = .8;
self.phoneField.layer.cornerRadius = 4.f;
self.phoneField.layer.borderColor = [[UIColor redColor] CGColor];
diff --git a/Classes/AssistantView.h b/Classes/AssistantView.h
index 305b26df4..3184f85bc 100644
--- a/Classes/AssistantView.h
+++ b/Classes/AssistantView.h
@@ -66,8 +66,14 @@
@property (weak, nonatomic) IBOutlet UILabel *accountLabel;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *createAccountNextButtonPositionConstraint;
-+ (NSString *)errorForStatus:(LinphoneAccountCreatorStatus)status;
+ (NSString *)StringForXMLRPCError:(const char *)err;
++ (NSString *)errorForLinphoneAccountCreatorPhoneNumberStatus:(LinphoneAccountCreatorPhoneNumberStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorUsernameStatus:(LinphoneAccountCreatorUsernameStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorEmailStatus:(LinphoneAccountCreatorEmailStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorPasswordStatus:(LinphoneAccountCreatorPasswordStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorActivationCodeStatus:(LinphoneAccountCreatorActivationCodeStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorStatus:(LinphoneAccountCreatorStatus)status;
++ (NSString *)errorForLinphoneAccountCreatorDomainStatus:(LinphoneAccountCreatorDomainStatus)status;
- (void)reset;
- (void)fillDefaultValues;
diff --git a/Classes/AssistantView.m b/Classes/AssistantView.m
index 286f4cec8..270d381be 100644
--- a/Classes/AssistantView.m
+++ b/Classes/AssistantView.m
@@ -111,6 +111,7 @@ static UICompositeViewDescription *compositeDescription = nil;
}
mustRestoreView = NO;
_outgoingView = DialerView.compositeViewDescription;
+ [self resetLiblinphone:FALSE];
}
- (void)viewWillDisappear:(BOOL)animated {
@@ -135,17 +136,19 @@ static UICompositeViewDescription *compositeDescription = nil;
#pragma mark - Utils
-- (void)resetLiblinphone {
+- (void)resetLiblinphone:(BOOL)core {
if (account_creator) {
linphone_account_creator_unref(account_creator);
account_creator = NULL;
}
- [LinphoneManager.instance resetLinphoneCore];
+ if(core) {
+ [LinphoneManager.instance resetLinphoneCore];
+ }
account_creator = linphone_account_creator_new(
LC, [LinphoneManager.instance lpConfigStringForKey:@"xmlrpc_url" inSection:@"assistant" withDefault:@""]
.UTF8String);
linphone_account_creator_set_user_data(account_creator, (__bridge void *)(self));
- linphone_account_creator_cbs_set_is_account_used(linphone_account_creator_get_callbacks(account_creator),
+ linphone_account_creator_cbs_set_is_account_exist(linphone_account_creator_get_callbacks(account_creator),
assistant_is_account_used);
linphone_account_creator_cbs_set_create_account(linphone_account_creator_get_callbacks(account_creator),
assistant_create_account);
@@ -153,18 +156,15 @@ static UICompositeViewDescription *compositeDescription = nil;
assistant_activate_account);
linphone_account_creator_cbs_set_is_account_activated(linphone_account_creator_get_callbacks(account_creator),
assistant_is_account_activated);
- linphone_account_creator_cbs_set_recover_phone_account(linphone_account_creator_get_callbacks(account_creator),
+ linphone_account_creator_cbs_set_recover_account(linphone_account_creator_get_callbacks(account_creator),
assistant_recover_phone_account);
linphone_account_creator_cbs_set_is_account_linked(linphone_account_creator_get_callbacks(account_creator),
assistant_is_account_linked);
}
- (void)loadAssistantConfig:(NSString *)rcFilename {
- NSString *fullPath = [@"file://" stringByAppendingString:[LinphoneManager bundleFile:rcFilename]];
- linphone_core_set_provisioning_uri(LC, fullPath.UTF8String);
- [LinphoneManager.instance lpConfigSetInt:1 forKey:@"transient_provisioning" inSection:@"misc"];
-
- [self resetLiblinphone];
+ linphone_config_load_from_xml_file(linphone_core_get_config(LC), [LinphoneManager bundleFile:rcFilename].UTF8String, LC, NULL);
+ [self changeView:nextView back:FALSE animation:TRUE];
}
- (void)reset {
@@ -178,59 +178,188 @@ static UICompositeViewDescription *compositeDescription = nil;
[historyViews removeAllObjects];
}
-+ (NSString *)errorForStatus:(LinphoneAccountCreatorStatus)status {
- switch (status) {
- case LinphoneAccountCreatorCountryCodeInvalid:
- return NSLocalizedString(@"Invalid country code.", nil);
- case LinphoneAccountCreatorEmailInvalid:
- return NSLocalizedString(@"Invalid email.", nil);
- case LinphoneAccountCreatorUsernameInvalid:
- return NSLocalizedString(@"Invalid username.", nil);
- case LinphoneAccountCreatorUsernameTooShort:
- return NSLocalizedString(@"Username too short.", nil);
- case LinphoneAccountCreatorUsernameTooLong:
- return NSLocalizedString(@"Username too long.", nil);
- case LinphoneAccountCreatorUsernameInvalidSize:
- return NSLocalizedString(@"Username length invalid.", nil);
- case LinphoneAccountCreatorPhoneNumberTooShort:
- case LinphoneAccountCreatorPhoneNumberTooLong:
++ (NSString *)StringForXMLRPCError:(const char *)err {
+#define IS(x) (strcmp(err, #x) == 0)
+ if
+ IS(ERROR_ACCOUNT_ALREADY_ACTIVATED)
+ return NSLocalizedString(@"This account is already activated.", nil);
+ if
+ IS(ERROR_ACCOUNT_ALREADY_IN_USE)
+ return NSLocalizedString(@"This account is already in use.", nil);
+ if
+ IS(ERROR_ACCOUNT_DOESNT_EXIST)
+ return NSLocalizedString(@"This account does not exist.", nil);
+ if
+ IS(ERROR_ACCOUNT_NOT_ACTIVATED)
+ return NSLocalizedString(@"This account is not activated yet.", nil);
+ if
+ IS(ERROR_ALIAS_ALREADY_IN_USE)
+ return NSLocalizedString(@"This phone number is already used. Please type a different number. \nYou can delete "
+ @"your existing account if you want to reuse your phone number.",
+ nil);
+ if
+ IS(ERROR_ALIAS_DOESNT_EXIST)
+ return NSLocalizedString(@"This alias does not exist.", nil);
+ if
+ IS(ERROR_EMAIL_ALREADY_IN_USE)
+ return NSLocalizedString(@"This email address is already used.", nil);
+ if
+ IS(ERROR_EMAIL_DOESNT_EXIST)
+ return NSLocalizedString(@"This email does not exist.", nil);
+ if
+ IS(ERROR_KEY_DOESNT_MATCH)
+ return NSLocalizedString(@"The confirmation code is invalid. \nPlease try again.", nil);
+ if
+ IS(ERROR_PASSWORD_DOESNT_MATCH)
+ return NSLocalizedString(@"Passwords do not match.", nil);
+ if
+ IS(ERROR_PHONE_ISNT_E164)
+ return NSLocalizedString(@"Your phone number is invalid.", nil);
+ if
+ IS(ERROR_CANNOT_SEND_SMS)
+ return NSLocalizedString(@"Server error, please try again later.", nil);
+ if
+ IS(ERROR_NO_PHONE_NUMBER)
+ return NSLocalizedString(@"Please confirm your country code and enter your phone number.", nil);
+ if IS(Missing required parameters)
+ return NSLocalizedString(@"Missing required parameters", nil);
+ if IS(ERROR_BAD_CREDENTIALS)
+ return NSLocalizedString(@"Bad credentials, check your account settings", nil);
+ if IS(ERROR_NO_PASSWORD)
+ return NSLocalizedString(@"Please enter a password to your account", nil);
+ if IS(ERROR_NO_EMAIL)
+ return NSLocalizedString(@"Please enter your email", nil);
+ if IS(ERROR_NO_USERNAME)
+ return NSLocalizedString(@"Please enter a username", nil);
+ if IS(ERROR_INVALID_CONFIRMATION)
+ return NSLocalizedString(@"Your confirmation password doesn't match your password", nil);
+ if IS(ERROR_INVALID_EMAIL)
+ return NSLocalizedString(@"Your email is invalid", nil);
+
+ if (!linphone_core_is_network_reachable(LC))
+ return NSLocalizedString(@"There is no network connection available, enable "
+ @"WIFI or WWAN prior to configure an account.",
+ nil);
+
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+}
+
++ (NSString *)errorForLinphoneAccountCreatorPhoneNumberStatus:(LinphoneAccountCreatorPhoneNumberStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorPhoneNumberStatusTooShort: /**< Phone number too short */
+ return NSLocalizedString(@"Your country code is too short.", nil);
+ case LinphoneAccountCreatorPhoneNumberStatusTooLong: /**< Phone number too long */
+ return NSLocalizedString(@"Your country code is too long.", nil);
return nil; /* this is not an error, just user has to finish typing */
- case LinphoneAccountCreatorPhoneNumberInvalid:
- return NSLocalizedString(@"Invalid phone number.", nil);
- case LinphoneAccountCreatorPasswordTooShort:
- return NSLocalizedString(@"Password too short.", nil);
- case LinphoneAccountCreatorPasswordTooLong:
- return NSLocalizedString(@"Password too long.", nil);
- case LinphoneAccountCreatorDomainInvalid:
- return NSLocalizedString(@"Invalid domain.", nil);
- case LinphoneAccountCreatorRouteInvalid:
- return NSLocalizedString(@"Invalid route.", nil);
- case LinphoneAccountCreatorDisplayNameInvalid:
- return NSLocalizedString(@"Invalid display name.", nil);
- case LinphoneAccountCreatorReqFailed:
- return NSLocalizedString(@"Failed to query the server. Please try again later", nil);
- case LinphoneAccountCreatorTransportNotSupported:
- return NSLocalizedString(@"Unsupported transport", nil);
- case LinphoneAccountCreatorErrorServer:
- return NSLocalizedString(@"Server error", nil);
- case LinphoneAccountCreatorAccountCreated:
- case LinphoneAccountCreatorAccountExist:
- case LinphoneAccountCreatorAccountExistWithAlias:
- case LinphoneAccountCreatorAccountNotCreated:
- case LinphoneAccountCreatorAccountNotExist:
- case LinphoneAccountCreatorAccountNotActivated:
- case LinphoneAccountCreatorAccountAlreadyActivated:
- case LinphoneAccountCreatorAccountActivated:
- case LinphoneAccountCreatorAccountLinked:
- case LinphoneAccountCreatorAccountNotLinked:
- case LinphoneAccountCreatorPhoneNumberNotUsed:
- case LinphoneAccountCreatorPhoneNumberUsedAlias:
- case LinphoneAccountCreatorPhoneNumberUsedAccount:
- case LinphoneAccountCreatorOK:
-
- break;
+ case LinphoneAccountCreatorPhoneNumberStatusInvalidCountryCode: /**< Country code invalid */
+ return NSLocalizedString(@"Your country code is invalid.", nil);
+ case LinphoneAccountCreatorPhoneNumberStatusInvalid: /**< Phone number invalid */
+ return NSLocalizedString(@"Your phone number is invalid.", nil);
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorUsernameStatus:(LinphoneAccountCreatorUsernameStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorUsernameStatusTooShort: /**< Username too short */
+ return NSLocalizedString(@"Your username is too short.", nil);
+ case LinphoneAccountCreatorUsernameStatusTooLong: /**< Username too long */
+ return NSLocalizedString(@"Your username is too long.", nil);
+ case LinphoneAccountCreatorUsernameStatusInvalidCharacters: /**< Contain invalid characters */
+ return NSLocalizedString(@"Your username contains invalid characters.", nil);
+ case LinphoneAccountCreatorUsernameStatusInvalid: /**< Invalid username */
+ return NSLocalizedString(@"Your username is invalid.", nil);
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorEmailStatus:(LinphoneAccountCreatorEmailStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorEmailStatusMalformed: /**< Email malformed */
+ return NSLocalizedString(@"Your email is malformed.", nil);
+ case LinphoneAccountCreatorEmailStatusInvalidCharacters: /**< Contain invalid characters */
+ return NSLocalizedString(@"Your email contains invalid characters.", nil);
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorPasswordStatus:(LinphoneAccountCreatorPasswordStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorPasswordStatusTooShort: /**< Password too short */
+ //return NSLocalizedString(@"Your password is too short.", nil);
+ case LinphoneAccountCreatorPasswordStatusTooLong: /**< Password too long */
+ //return NSLocalizedString(@"Your password is too long.", nil);
+ return nil;
+ case LinphoneAccountCreatorPasswordStatusInvalidCharacters: /**< Contain invalid characters */
+ return NSLocalizedString(@"Your password contains invalid characters.", nil);
+ case LinphoneAccountCreatorPasswordStatusMissingCharacters: /**< Missing specific characters */
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorActivationCodeStatus:(LinphoneAccountCreatorActivationCodeStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorActivationCodeStatusTooShort: /**< Activation code too short */
+ return NSLocalizedString(@"Your country code is too short.", nil);
+ case LinphoneAccountCreatorActivationCodeStatusTooLong: /**< Activation code too long */
+ return NSLocalizedString(@"Your country code is too long.", nil);
+ return nil; /* this is not an error, just user has to finish typing */
+ case LinphoneAccountCreatorActivationCodeStatusInvalidCharacters: /**< Contain invalid characters */
+ return NSLocalizedString(@"Your activation code contains invalid characters.", nil);
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorStatus:(LinphoneAccountCreatorStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorStatusRequestFailed: /**< Request failed */
+ return NSLocalizedString(@"Server error, please try again later.", nil);
+ case LinphoneAccountCreatorStatusMissingArguments: /**< Request failed due to missing argument(s) */
+ return NSLocalizedString(@"Missing required parameters", nil);
+ case LinphoneAccountCreatorStatusMissingCallbacks: /**< Request failed due to missing callback(s) */
+ return NSLocalizedString(@"Missing required callbacks", nil);
+
+ /** Account status **/
+ /* Existence */
+ case LinphoneAccountCreatorStatusAccountNotExist: /**< Account not exist */
+ return NSLocalizedString(@"This account does not exist.", nil);
+ case LinphoneAccountCreatorStatusAliasExist: /**< Alias exist */
+ return NSLocalizedString(@"This phone number is already used. Please type a different number. \nYou can delete "
+ @"your existing account if you want to reuse your phone number.",
+ nil);
+ case LinphoneAccountCreatorStatusAliasNotExist: /**< Alias not exist */
+ return NSLocalizedString(@"This alias does not exist.", nil);
+ /* Activation */
+ case LinphoneAccountCreatorStatusAccountAlreadyActivated: /**< Account already activated */
+ return NSLocalizedString(@"This account is already activated.", nil);
+ case LinphoneAccountCreatorStatusAccountNotActivated: /**< Account not activated */
+ return NSLocalizedString(@"This account is not activated yet.", nil);
+
+ /** Server **/
+ case LinphoneAccountCreatorStatusServerError: /**< Error server */
+ return NSLocalizedString(@"Server error, please try again later.", nil);
+ default:
+ if (!linphone_core_is_network_reachable(LC)) {
+ return NSLocalizedString(@"There is no network connection available, enable "
+ @"WIFI or WWAN prior to configure an account.",
+ nil);
+ }
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
+ }
+}
+
++ (NSString *)errorForLinphoneAccountCreatorDomainStatus:(LinphoneAccountCreatorDomainStatus)status {
+ switch(status) {
+ case LinphoneAccountCreatorDomainInvalid: /**< Domain invalid */
+ return NSLocalizedString(@"Invalid.", nil);
+ default:
+ return NSLocalizedString(@"Unknown error, please try again later.", nil);
}
- return nil;
}
- (void)configureProxyConfig {
@@ -261,18 +390,7 @@ static UICompositeViewDescription *compositeDescription = nil;
linphone_core_remove_auth_info(LC, auth);
}
}
-
- // set transport
- UISegmentedControl *transports = (UISegmentedControl *)[self findView:ViewElement_Transport
- inView:self.contentView
- ofType:UISegmentedControl.class];
- if (transports) {
- NSString *type = [transports titleForSegmentAtIndex:[transports selectedSegmentIndex]];
- linphone_account_creator_set_transport(account_creator,
- linphone_transport_parse(type.lowercaseString.UTF8String));
- }
-
- new_config = linphone_account_creator_configure(account_creator);
+ new_config = linphone_account_creator_create_proxy_config(account_creator);
if (new_config) {
[lm configurePushTokenForProxyConfig:new_config];
@@ -281,22 +399,26 @@ static UICompositeViewDescription *compositeDescription = nil;
// todo: STOP doing that!
[[LinphoneManager.instance fastAddressBook] reload];
} else {
- UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Assistant error", nil)
- message:NSLocalizedString(@"Could not configure your account, please check parameters or try again later",
- nil)
- preferredStyle:UIAlertControllerStyleAlert];
-
- UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil)
- style:UIAlertActionStyleDefault
- handler:^(UIAlertAction * action) {}];
-
- [errView addAction:defaultAction];
- [self presentViewController:errView animated:YES completion:nil];
- _waitView.hidden = YES;
- return;
+ [self displayAssistantConfigurationError];
}
}
+-(void) displayAssistantConfigurationError {
+ UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Assistant error", nil)
+ message:NSLocalizedString(@"Could not configure your account, please check parameters or try again later",
+ nil)
+ preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil)
+ style:UIAlertActionStyleDefault
+ handler:^(UIAlertAction * action) {}];
+
+ [errView addAction:defaultAction];
+ [self presentViewController:errView animated:YES completion:nil];
+ _waitView.hidden = YES;
+ return;
+}
+
#pragma mark - UI update
- (void)changeView:(UIView *)view back:(BOOL)back animation:(BOOL)animation {
@@ -506,43 +628,43 @@ static UICompositeViewDescription *compositeDescription = nil;
- (void)prepareErrorLabels {
UIAssistantTextField *createUsername = [self findTextField:ViewElement_Username];
- [createUsername showError:[AssistantView errorForStatus:LinphoneAccountCreatorUsernameInvalid]
+ [createUsername showError:[AssistantView errorForLinphoneAccountCreatorUsernameStatus:LinphoneAccountCreatorUsernameStatusInvalid]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorUsernameStatus s =
linphone_account_creator_set_username(account_creator, inputEntry.UTF8String);
- if (s != LinphoneAccountCreatorOK) linphone_account_creator_set_username(account_creator, NULL);
- createUsername.errorLabel.text = [AssistantView errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ if (s != LinphoneAccountCreatorUsernameStatusOk) linphone_account_creator_set_username(account_creator, NULL);
+ createUsername.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorUsernameStatus:s];
+ return s != LinphoneAccountCreatorUsernameStatusOk;
}];
UIAssistantTextField *createPhone = [self findTextField:ViewElement_Phone];
- [createPhone showError:[AssistantView errorForStatus:LinphoneAccountCreatorPhoneNumberInvalid]
+ [createPhone showError:[AssistantView errorForLinphoneAccountCreatorPhoneNumberStatus:LinphoneAccountCreatorPhoneNumberStatusInvalid]
when:^BOOL(NSString *inputEntry) {
UIAssistantTextField* countryCodeField = [self findTextField:ViewElement_PhoneCC];
NSString *newStr = [countryCodeField.text substringWithRange:NSMakeRange(1, [countryCodeField.text length]-1)];
NSString *prefix = (inputEntry.length > 0) ? newStr : nil;
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorPhoneNumberStatus s =
linphone_account_creator_set_phone_number(account_creator, inputEntry.length > 0 ? inputEntry.UTF8String : NULL, prefix.UTF8String);
- if (s != LinphoneAccountCreatorOK) {
+ if (s != LinphoneAccountCreatorPhoneNumberStatusOk) {
linphone_account_creator_set_phone_number(account_creator, NULL, NULL);
// if phone is empty and username is empty, this is wrong
if (linphone_account_creator_get_username(account_creator) == NULL) {
- s = LinphoneAccountCreatorPhoneNumberTooShort;
+ s = LinphoneAccountCreatorPhoneNumberStatusTooShort;
}
}
- createPhone.errorLabel.text = [AssistantView errorForStatus:s];
+ createPhone.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorPhoneNumberStatus:s];
- return s != LinphoneAccountCreatorOK;
+ return s != LinphoneAccountCreatorPhoneNumberStatusOk;
}];
UIAssistantTextField *password = [self findTextField:ViewElement_Password];
- [password showError:[AssistantView errorForStatus:LinphoneAccountCreatorPasswordTooShort]
+ [password showError:[AssistantView errorForLinphoneAccountCreatorPasswordStatus:LinphoneAccountCreatorPasswordStatusTooShort]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorPasswordStatus s =
linphone_account_creator_set_password(account_creator, inputEntry.UTF8String);
- password.errorLabel.text = [AssistantView errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ password.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorPasswordStatus:s];
+ return s != LinphoneAccountCreatorPasswordStatusOk;
}];
UIAssistantTextField *password2 = [self findTextField:ViewElement_Password2];
@@ -552,21 +674,21 @@ static UICompositeViewDescription *compositeDescription = nil;
}];
UIAssistantTextField *email = [self findTextField:ViewElement_Email];
- [email showError:[AssistantView errorForStatus:LinphoneAccountCreatorEmailInvalid]
+ [email showError:[AssistantView errorForLinphoneAccountCreatorEmailStatus:LinphoneAccountCreatorEmailStatusMalformed]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorEmailStatus s =
linphone_account_creator_set_email(account_creator, inputEntry.UTF8String);
- email.errorLabel.text = [AssistantView errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ email.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorEmailStatus:s];
+ return s != LinphoneAccountCreatorEmailStatusOk;
}];
UIAssistantTextField *domain = [self findTextField:ViewElement_Domain];
- [domain showError:[AssistantView errorForStatus:LinphoneAccountCreatorDomainInvalid]
+ [domain showError:[AssistantView errorForLinphoneAccountCreatorDomainStatus:LinphoneAccountCreatorDomainInvalid]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
- linphone_account_creator_set_domain(account_creator, inputEntry.UTF8String);
- domain.errorLabel.text = [AssistantView errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ LinphoneAccountCreatorDomainStatus s =
+ linphone_account_creator_set_domain(account_creator, inputEntry.UTF8String);
+ domain.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorDomainStatus:s];
+ return s != LinphoneAccountCreatorDomainOk;
}];
UIAssistantTextField *url = [self findTextField:ViewElement_URL];
@@ -583,14 +705,14 @@ static UICompositeViewDescription *compositeDescription = nil;
}];
UIAssistantTextField *displayName = [self findTextField:ViewElement_DisplayName];
- [displayName showError:[AssistantView errorForStatus:LinphoneAccountCreatorDisplayNameInvalid]
+ [displayName showError:[AssistantView errorForLinphoneAccountCreatorUsernameStatus:LinphoneAccountCreatorUsernameStatusInvalid]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s = LinphoneAccountCreatorOK;
+ LinphoneAccountCreatorUsernameStatus s = LinphoneAccountCreatorUsernameStatusOk;
if (inputEntry.length > 0) {
s = linphone_account_creator_set_display_name(account_creator, inputEntry.UTF8String);
- displayName.errorLabel.text = [AssistantView errorForStatus:s];
+ displayName.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorUsernameStatus:s];
}
- return s != LinphoneAccountCreatorOK;
+ return s != LinphoneAccountCreatorUsernameStatusOk;
}];
UIAssistantTextField *smsCode = [self findTextField:ViewElement_SMSCode];
@@ -628,8 +750,8 @@ static UICompositeViewDescription *compositeDescription = nil;
[self showErrorPopup:"ERROR_NO_EMAIL"];
return FALSE;
} else {
- LinphoneAccountCreatorStatus s = linphone_account_creator_set_email(account_creator, [self findTextField:ViewElement_Email].text.UTF8String);
- if (s == LinphoneAccountCreatorEmailInvalid) {
+ LinphoneAccountCreatorEmailStatus s = linphone_account_creator_set_email(account_creator, [self findTextField:ViewElement_Email].text.UTF8String);
+ if (s == LinphoneAccountCreatorEmailStatusMalformed) {
[self showErrorPopup:"ERROR_INVALID_EMAIL"];
return FALSE;
}
@@ -755,72 +877,6 @@ static UICompositeViewDescription *compositeDescription = nil;
}
}
-+ (NSString *)StringForXMLRPCError:(const char *)err {
-#define IS(x) (strcmp(err, #x) == 0)
- if
- IS(ERROR_ACCOUNT_ALREADY_ACTIVATED)
- return NSLocalizedString(@"This account is already activated.", nil);
- if
- IS(ERROR_ACCOUNT_ALREADY_IN_USE)
- return NSLocalizedString(@"This account is already in use.", nil);
- if
- IS(ERROR_ACCOUNT_DOESNT_EXIST)
- return NSLocalizedString(@"This account does not exist.", nil);
- if
- IS(ERROR_ACCOUNT_NOT_ACTIVATED)
- return NSLocalizedString(@"This account is not activated yet.", nil);
- if
- IS(ERROR_ALIAS_ALREADY_IN_USE)
- return NSLocalizedString(@"This phone number is already used. Please type a different number. \nYou can delete "
- @"your existing account if you want to reuse your phone number.",
- nil);
- if
- IS(ERROR_ALIAS_DOESNT_EXIST)
- return NSLocalizedString(@"This alias does not exist.", nil);
- if
- IS(ERROR_EMAIL_ALREADY_IN_USE)
- return NSLocalizedString(@"This email address is already used.", nil);
- if
- IS(ERROR_EMAIL_DOESNT_EXIST)
- return NSLocalizedString(@"This email does not exist.", nil);
- if
- IS(ERROR_KEY_DOESNT_MATCH)
- return NSLocalizedString(@"The confirmation code is invalid. \nPlease try again.", nil);
- if
- IS(ERROR_PASSWORD_DOESNT_MATCH)
- return NSLocalizedString(@"Passwords do not match.", nil);
- if
- IS(ERROR_PHONE_ISNT_E164)
- return NSLocalizedString(@"Your phone number is invalid.", nil);
- if
- IS(ERROR_CANNOT_SEND_SMS)
- return NSLocalizedString(@"Server error, please try again later.", nil);
- if
- IS(ERROR_NO_PHONE_NUMBER)
- return NSLocalizedString(@"Please confirm your country code and enter your phone number.", nil);
- if IS(Missing required parameters)
- return NSLocalizedString(@"Missing required parameters", nil);
- if IS(ERROR_BAD_CREDENTIALS)
- return NSLocalizedString(@"Bad credentials, check your account settings", nil);
- if IS(ERROR_NO_PASSWORD)
- return NSLocalizedString(@"Please enter a password to your account", nil);
- if IS(ERROR_NO_EMAIL)
- return NSLocalizedString(@"Please enter your email", nil);
- if IS(ERROR_NO_USERNAME)
- return NSLocalizedString(@"Please enter a username", nil);
- if IS(ERROR_INVALID_CONFIRMATION)
- return NSLocalizedString(@"Your confirmation password doesn't match your password", nil);
- if IS(ERROR_INVALID_EMAIL)
- return NSLocalizedString(@"Your email is invalid", nil);
-
- if (!linphone_core_is_network_reachable(LC))
- return NSLocalizedString(@"There is no network connection available, enable "
- @"WIFI or WWAN prior to configure an account.",
- nil);
-
- return NSLocalizedString(@"Unknown error, please try again later.", nil);
-}
-
- (void)showErrorPopup:(const char *)error {
const char *err = error ? error : "";
if (strcmp(err, "ERROR_BAD_CREDENTIALS") == 0) {
@@ -915,10 +971,10 @@ static UICompositeViewDescription *compositeDescription = nil;
- (void)isAccountUsed:(LinphoneAccountCreatorStatus)status withResp:(const char *)resp {
if (currentView == _linphoneLoginView) {
- if (status == LinphoneAccountCreatorAccountExistWithAlias) {
+ if (status == LinphoneAccountCreatorStatusAccountExistWithAlias) {
_outgoingView = DialerView.compositeViewDescription;
[self configureProxyConfig];
- } else if (status == LinphoneAccountCreatorAccountExist) {
+ } else if (status == LinphoneAccountCreatorStatusAccountExist) {
_outgoingView = AssistantLinkView.compositeViewDescription;
[self configureProxyConfig];
} else {
@@ -934,14 +990,14 @@ static UICompositeViewDescription *compositeDescription = nil;
}
}
} else {
- if (status == LinphoneAccountCreatorAccountExist || status == LinphoneAccountCreatorAccountExistWithAlias) {
+ if (status == LinphoneAccountCreatorStatusAccountExist || status == LinphoneAccountCreatorStatusAccountExistWithAlias) {
if (linphone_account_creator_get_phone_number(account_creator) != NULL) {
// Offer the possibility to resend a sms confirmation in some cases
linphone_account_creator_is_account_activated(account_creator);
} else {
[self showErrorPopup:resp];
}
- } else if (status == LinphoneAccountCreatorAccountNotExist) {
+ } else if (status == LinphoneAccountCreatorStatusAccountNotExist) {
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
linphone_account_creator_create_account(account_creator);
@@ -980,7 +1036,7 @@ void assistant_is_account_used(LinphoneAccountCreator *creator, LinphoneAccountC
void assistant_create_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorAccountCreated) {
+ if (status == LinphoneAccountCreatorStatusAccountCreated) {
if (linphone_account_creator_get_phone_number(creator)) {
NSString* phoneNumber = [NSString stringWithUTF8String:linphone_account_creator_get_phone_number(creator)];
thiz.activationSMSText.text = [NSString stringWithFormat:NSLocalizedString(@"We have sent a SMS with a validation code to %@. To complete your phone number verification, please enter the 4 digit code below:", nil), phoneNumber];
@@ -999,7 +1055,7 @@ void assistant_recover_phone_account(LinphoneAccountCreator *creator, LinphoneAc
const char *resp) {
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorOK) {
+ if (status == LinphoneAccountCreatorStatusRequestOk) {
NSString* phoneNumber = [NSString stringWithUTF8String:linphone_account_creator_get_phone_number(creator)];
thiz.activationSMSText.text = [NSString stringWithFormat:NSLocalizedString(@"We have sent a SMS with a validation code to %@. To complete your phone number verification, please enter the 4 digit code below:", nil), phoneNumber];
[thiz changeView:thiz.createAccountActivateSMSView back:FALSE animation:TRUE];
@@ -1016,12 +1072,12 @@ void assistant_activate_account(LinphoneAccountCreator *creator, LinphoneAccount
const char *resp) {
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorAccountActivated) {
+ if (status == LinphoneAccountCreatorStatusAccountActivated) {
[thiz configureProxyConfig];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneAddressBookUpdate object:NULL];
- } else if (status == LinphoneAccountCreatorAccountAlreadyActivated) {
+ } else if (status == LinphoneAccountCreatorStatusAccountAlreadyActivated) {
// in case we are actually trying to link account, let's try it now
- linphone_account_creator_activate_phone_number_link(creator);
+ linphone_account_creator_activate_alias(creator);
} else {
[thiz showErrorPopup:resp];
}
@@ -1031,9 +1087,9 @@ void assistant_is_account_activated(LinphoneAccountCreator *creator, LinphoneAcc
const char *resp) {
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorAccountActivated) {
+ if (status == LinphoneAccountCreatorStatusAccountActivated) {
[thiz isAccountActivated:resp];
- } else if (status == LinphoneAccountCreatorAccountNotActivated) {
+ } else if (status == LinphoneAccountCreatorStatusAccountNotActivated) {
if (!IPAD || linphone_account_creator_get_phone_number(creator) != NULL) {
//Re send SMS if the username is the phone number
if (linphone_account_creator_get_username(creator) != linphone_account_creator_get_phone_number(creator) && linphone_account_creator_get_username(creator) != NULL) {
@@ -1042,7 +1098,7 @@ void assistant_is_account_activated(LinphoneAccountCreator *creator, LinphoneAcc
} else {
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(creator, [[language substringToIndex:2] UTF8String]);
- linphone_account_creator_recover_phone_account(creator);
+ linphone_account_creator_recover_account(creator);
}
} else {
// TO DO : Re send email ?
@@ -1058,9 +1114,9 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
const char *resp) {
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
thiz.waitView.hidden = YES;
- if (status == LinphoneAccountCreatorAccountLinked) {
+ if (status == LinphoneAccountCreatorStatusAccountLinked) {
[LinphoneManager.instance lpConfigSetInt:0 forKey:@"must_link_account_time"];
- } else if (status == LinphoneAccountCreatorAccountNotLinked) {
+ } else if (status == LinphoneAccountCreatorStatusAccountNotLinked) {
[LinphoneManager.instance lpConfigSetInt:[NSDate new].timeIntervalSince1970 forKey:@"must_link_account_time"];
} else {
[thiz showErrorPopup:resp];
@@ -1168,7 +1224,7 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
ONCLICKBUTTON(sender, 100, {
_activationTitle.text = @"CREATE ACCOUNT";
_waitView.hidden = NO;
- linphone_account_creator_is_account_used(account_creator);
+ linphone_account_creator_is_account_exist(account_creator);
});
}
}
@@ -1186,8 +1242,8 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
} else {
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
- linphone_account_creator_link_phone_number_with_account(account_creator);
- linphone_account_creator_activate_phone_number_link(account_creator);
+ linphone_account_creator_link_account(account_creator);
+ linphone_account_creator_activate_alias(account_creator);
}
});
}
@@ -1204,7 +1260,7 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
_waitView.hidden = NO;
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
- linphone_account_creator_link_phone_number_with_account(account_creator);
+ linphone_account_creator_link_account(account_creator);
});
}
@@ -1218,19 +1274,65 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
linphone_account_creator_get_ha1(account_creator) == NULL) {
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
- linphone_account_creator_recover_phone_account(account_creator);
+ linphone_account_creator_recover_account(account_creator);
} else {
// check if account is already linked with a phone number.
// if not, propose it to the user
- linphone_account_creator_is_account_used(account_creator);
+ linphone_account_creator_is_account_exist(account_creator);
}
});
}
- (IBAction)onLoginClick:(id)sender {
ONCLICKBUTTON(sender, 100, {
- _waitView.hidden = NO;
- [self configureProxyConfig];
+ _waitView.hidden = NO;
+ NSString *domain = [self findTextField:ViewElement_Domain].text;
+ NSString *username = [self findTextField:ViewElement_Username].text;
+ NSString *displayName = [self findTextField:ViewElement_DisplayName].text;
+ NSString *pwd = [self findTextField:ViewElement_Password].text;
+ LinphoneProxyConfig *config = linphone_core_create_proxy_config(LC);
+ LinphoneAddress *addr = linphone_address_new([NSString stringWithFormat:@"sip:%@@%@", username, domain].UTF8String);
+ if(displayName && ![displayName isEqualToString:@""]) {
+ linphone_address_set_display_name(addr, displayName.UTF8String);
+ }
+ linphone_proxy_config_set_identity_address(config, addr);
+ // set transport
+ UISegmentedControl *transports = (UISegmentedControl *)[self findView:ViewElement_Transport
+ inView:self.contentView
+ ofType:UISegmentedControl.class];
+ if (transports) {
+ NSString *type = [transports titleForSegmentAtIndex:[transports selectedSegmentIndex]];
+ linphone_proxy_config_set_route(config, [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String].UTF8String);
+ linphone_proxy_config_set_server_addr(config, [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String].UTF8String);
+ }
+
+ linphone_proxy_config_enable_publish(config, FALSE);
+ linphone_proxy_config_enable_register(config, TRUE);
+
+ LinphoneAuthInfo *info = linphone_auth_info_new(linphone_address_get_username(addr), // username
+ NULL, //user id
+ pwd.UTF8String, // passwd
+ NULL, // ha1
+ linphone_address_get_domain(addr), // realm - assumed to be domain
+ linphone_address_get_domain(addr) // domain
+ );
+ linphone_core_add_auth_info(LC, info);
+ linphone_address_unref(addr);
+
+ if(config) {
+ [[LinphoneManager instance] configurePushTokenForProxyConfig:config];
+ if(linphone_core_add_proxy_config(LC, config) != -1) {
+ linphone_core_set_default_proxy_config(LC, config);
+ // reload address book to prepend proxy config domain to contacts' phone number
+ // todo: STOP doing that!
+ [[LinphoneManager.instance fastAddressBook] reload];
+ [PhoneMainView.instance changeCurrentView:DialerView.compositeViewDescription];
+ } else {
+ [self displayAssistantConfigurationError];
+ }
+ } else {
+ [self displayAssistantConfigurationError];
+ }
});
}
@@ -1245,7 +1347,7 @@ void assistant_is_account_linked(LinphoneAccountCreator *creator, LinphoneAccoun
- (IBAction)onRemoteProvisioningDownloadClick:(id)sender {
ONCLICKBUTTON(sender, 100, {
[_waitView setHidden:false];
- [self resetLiblinphone];
+ [self resetLiblinphone:TRUE];
});
}
diff --git a/Classes/CallSideMenuView.m b/Classes/CallSideMenuView.m
index 9cd6b22a6..c955c1ff9 100644
--- a/Classes/CallSideMenuView.m
+++ b/Classes/CallSideMenuView.m
@@ -140,14 +140,13 @@
if (stats != NULL) {
[result
- appendString:[NSString stringWithFormat:@"Download bandwidth: %1.1f kbits/s", stats->download_bandwidth]];
+ appendString:[NSString stringWithFormat:@"Download bandwidth: %1.1f kbits/s", linphone_call_stats_get_download_bandwidth(stats)]];
[result appendString:@"\n"];
- [result appendString:[NSString stringWithFormat:@"Upload bandwidth: %1.1f kbits/s", stats->upload_bandwidth]];
+ [result appendString:[NSString stringWithFormat:@"Upload bandwidth: %1.1f kbits/s", linphone_call_stats_get_upload_bandwidth(stats)]];
[result appendString:@"\n"];
- [result appendString:[NSString stringWithFormat:@"ICE state: %@", [self.class iceToString:stats->ice_state]]];
+ [result appendString:[NSString stringWithFormat:@"ICE state: %@", [self.class iceToString:linphone_call_stats_get_ice_state(stats)]]];
[result appendString:@"\n"];
-
- [result appendString:[NSString stringWithFormat:@"Afinet: %@", [self.class afinetToString:stats->rtp_remote_family]]];
+ [result appendString:[NSString stringWithFormat:@"Afinet: %@", [self.class afinetToString:linphone_call_stats_get_ip_family_of_remote(stats)]]];
[result appendString:@"\n"];
// RTP stats section (packet loss count, etc)
diff --git a/Classes/FirstLoginView.m b/Classes/FirstLoginView.m
index d6c8be897..bd24819f4 100644
--- a/Classes/FirstLoginView.m
+++ b/Classes/FirstLoginView.m
@@ -84,28 +84,28 @@ static UICompositeViewDescription *compositeDescription = nil;
[[LinphoneManager instance] lpConfigStringForKey:@"first_login_view_url"] ?: @"http://www.linphone.org";
account_creator = linphone_account_creator_new([LinphoneManager getLc], siteUrl.UTF8String);
- [_usernameField showError:[self.class errorForStatus:LinphoneAccountCreatorUsernameInvalid]
+ [_usernameField showError:[AssistantView errorForLinphoneAccountCreatorUsernameStatus:LinphoneAccountCreatorUsernameStatusInvalid]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorUsernameStatus s =
linphone_account_creator_set_username(account_creator, inputEntry.UTF8String);
- _usernameField.errorLabel.text = [self.class errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ _usernameField.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorUsernameStatus:s];
+ return s != LinphoneAccountCreatorUsernameStatusOk;
}];
- [_passwordField showError:[self.class errorForStatus:LinphoneAccountCreatorPasswordTooShort]
+ [_passwordField showError:[AssistantView errorForLinphoneAccountCreatorPasswordStatus:LinphoneAccountCreatorPasswordStatusTooShort]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorPasswordStatus s =
linphone_account_creator_set_password(account_creator, inputEntry.UTF8String);
- _passwordField.errorLabel.text = [self.class errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ _passwordField.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorPasswordStatus:s];
+ return s != LinphoneAccountCreatorUsernameStatusOk;
}];
- [_domainField showError:[self.class errorForStatus:LinphoneAccountCreatorDomainInvalid]
+ [_domainField showError:[AssistantView errorForLinphoneAccountCreatorDomainStatus:LinphoneAccountCreatorDomainInvalid]
when:^BOOL(NSString *inputEntry) {
- LinphoneAccountCreatorStatus s =
+ LinphoneAccountCreatorDomainStatus s =
linphone_account_creator_set_domain(account_creator, inputEntry.UTF8String);
- _domainField.errorLabel.text = [self.class errorForStatus:s];
- return s != LinphoneAccountCreatorOK;
+ _domainField.errorLabel.text = [AssistantView errorForLinphoneAccountCreatorDomainStatus:s];
+ return s != LinphoneAccountCreatorDomainOk;
}];
}
@@ -116,65 +116,6 @@ static UICompositeViewDescription *compositeDescription = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self name:kLinphoneRegistrationUpdate object:nil];
}
-+ (NSString *)errorForStatus:(LinphoneAccountCreatorStatus)status {
- BOOL usePhoneNumber = [[LinphoneManager instance] lpConfigBoolForKey:@"use_phone_number" inSection:@"assistant"];
- switch (status) {
- case LinphoneAccountCreatorCountryCodeInvalid:
- return NSLocalizedString(@"Invalid country code.", nil);
- case LinphoneAccountCreatorEmailInvalid:
- return NSLocalizedString(@"Invalid email.", nil);
- case LinphoneAccountCreatorUsernameInvalid:
- return usePhoneNumber ? NSLocalizedString(@"Invalid phone number.", nil)
- : NSLocalizedString(@"Invalid username.", nil);
- case LinphoneAccountCreatorUsernameTooShort:
- return usePhoneNumber ? NSLocalizedString(@"Phone number too short.", nil)
- : NSLocalizedString(@"Username too short.", nil);
- case LinphoneAccountCreatorUsernameTooLong:
- return usePhoneNumber ? NSLocalizedString(@"Phone number too long.", nil)
- : NSLocalizedString(@"Username too long.", nil);
- case LinphoneAccountCreatorUsernameInvalidSize:
- return usePhoneNumber ? NSLocalizedString(@"Phone number length invalid.", nil)
- : NSLocalizedString(@"Username length invalid.", nil);
- case LinphoneAccountCreatorPhoneNumberTooShort:
- case LinphoneAccountCreatorPhoneNumberTooLong:
- return nil; /* this is not an error, just user has to finish typing */
- case LinphoneAccountCreatorPhoneNumberInvalid:
- return NSLocalizedString(@"Invalid phone number.", nil);
- case LinphoneAccountCreatorPasswordTooShort:
- return NSLocalizedString(@"Password too short.", nil);
- case LinphoneAccountCreatorPasswordTooLong:
- return NSLocalizedString(@"Password too long.", nil);
- case LinphoneAccountCreatorDomainInvalid:
- return NSLocalizedString(@"Invalid domain.", nil);
- case LinphoneAccountCreatorRouteInvalid:
- return NSLocalizedString(@"Invalid route.", nil);
- case LinphoneAccountCreatorDisplayNameInvalid:
- return NSLocalizedString(@"Invalid display name.", nil);
- case LinphoneAccountCreatorReqFailed:
- return NSLocalizedString(@"Failed to query the server. Please try again later", nil);
- case LinphoneAccountCreatorTransportNotSupported:
- return NSLocalizedString(@"Unsupported transport", nil);
- case LinphoneAccountCreatorErrorServer:
- return NSLocalizedString(@"Server error", nil);
- case LinphoneAccountCreatorAccountCreated:
- case LinphoneAccountCreatorAccountExist:
- case LinphoneAccountCreatorAccountExistWithAlias:
- case LinphoneAccountCreatorAccountNotCreated:
- case LinphoneAccountCreatorAccountNotExist:
- case LinphoneAccountCreatorAccountNotActivated:
- case LinphoneAccountCreatorAccountAlreadyActivated:
- case LinphoneAccountCreatorAccountActivated:
- case LinphoneAccountCreatorAccountLinked:
- case LinphoneAccountCreatorAccountNotLinked:
- case LinphoneAccountCreatorPhoneNumberNotUsed:
- case LinphoneAccountCreatorPhoneNumberUsedAlias:
- case LinphoneAccountCreatorPhoneNumberUsedAccount:
- case LinphoneAccountCreatorOK:
- break;
- }
- return nil;
-}
-
- (void)shouldEnableNextButton {
BOOL invalidInputs = NO;
for (UIAssistantTextField *field in @[ _usernameField, _passwordField, _domainField ]) {
diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m
index 0f577597b..b61953f62 100644
--- a/Classes/LinphoneManager.m
+++ b/Classes/LinphoneManager.m
@@ -1977,7 +1977,7 @@ static BOOL libStarted = FALSE;
}
void popup_link_account_cb(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
- if (status == LinphoneAccountCreatorAccountExistWithAlias) {
+ if (status == LinphoneAccountCreatorStatusAccountLinked) {
[LinphoneManager.instance lpConfigSetInt:0 forKey:@"must_link_account_time"];
} else {
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
@@ -2029,10 +2029,10 @@ void popup_link_account_cb(LinphoneAccountCreator *creator, LinphoneAccountCreat
[LinphoneManager.instance lpConfigStringForKey:@"xmlrpc_url" inSection:@"assistant" withDefault:@""]
.UTF8String);
linphone_account_creator_set_user_data(account_creator, (__bridge void *)(self));
- linphone_account_creator_cbs_set_is_account_used(linphone_account_creator_get_callbacks(account_creator),
+ linphone_account_creator_cbs_set_is_account_linked(linphone_account_creator_get_callbacks(account_creator),
popup_link_account_cb);
linphone_account_creator_set_username(account_creator, username);
- linphone_account_creator_is_account_used(account_creator);
+ linphone_account_creator_is_account_linked(account_creator);
}
}
}
diff --git a/Classes/SettingsView.m b/Classes/SettingsView.m
index 521e8c8c6..45dddd2af 100644
--- a/Classes/SettingsView.m
+++ b/Classes/SettingsView.m
@@ -392,10 +392,10 @@ static UICompositeViewDescription *compositeDescription = nil;
#pragma mark - Account Creator callbacks
void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
- SettingsView *thiz = (__bridge SettingsView *)(linphone_account_creator_get_user_data(creator));
+ SettingsView *thiz = (__bridge SettingsView *)(linphone_account_creator_cbs_get_user_data(linphone_account_creator_get_callbacks(creator)));
switch (status) {
- case LinphoneAccountCreatorOK:
+ case LinphoneAccountCreatorStatusRequestOk:
[thiz updatePassword:creator];
break;
default:
@@ -408,10 +408,10 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat
_tmpPwd = NULL;
NSString* err;
switch (status) {
- case LinphoneAccountCreatorAccountNotExist:
+ case LinphoneAccountCreatorStatusAccountNotExist:
err = NSLocalizedString(@"Bad credentials, check your account settings", nil);
break;
- case LinphoneAccountCreatorErrorServer:
+ case LinphoneAccountCreatorStatusServerError:
err = NSLocalizedString(@"Server error, please try again later.", nil);
break;
default:
@@ -880,9 +880,10 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat
}
linphone_account_creator_set_domain(account_creator, linphone_auth_info_get_domain(ai));
- linphone_account_creator_set_user_data(account_creator, (__bridge void *)(self));
- linphone_account_creator_cbs_set_update_hash(linphone_account_creator_get_callbacks(account_creator), update_hash_cbs);
- linphone_account_creator_update_password(account_creator, pwd.UTF8String);
+ linphone_account_creator_set_user_data(account_creator, (void *)pwd.UTF8String);
+ linphone_account_creator_cbs_set_update_account(linphone_account_creator_get_callbacks(account_creator), update_hash_cbs);
+ linphone_account_creator_cbs_set_user_data(linphone_account_creator_get_callbacks(account_creator), (__bridge void *)(self));
+ linphone_account_creator_update_account(account_creator);
} else {
UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Error while changing your password", nil)
message:NSLocalizedString(@"Your confirmation password doesn't match your password", nil)
diff --git a/Resources/assistant_linphone_create.rc b/Resources/assistant_linphone_create.rc
index c5404c457..d047ce190 100644
--- a/Resources/assistant_linphone_create.rc
+++ b/Resources/assistant_linphone_create.rc
@@ -10,6 +10,7 @@
180
31536000
sip:?@sip.linphone.org
+ <sip:sip.linphone.org;transport=tls>
1
push_notification
sip.linphone.org
diff --git a/Resources/assistant_linphone_existing.rc b/Resources/assistant_linphone_existing.rc
index 068d27123..e02647009 100644
--- a/Resources/assistant_linphone_existing.rc
+++ b/Resources/assistant_linphone_existing.rc
@@ -10,6 +10,7 @@
180
31536000
sip:?@sip.linphone.org
+ <sip:sip.linphone.org;transport=tls>
1
push_notification
sip.linphone.org
diff --git a/submodules/linphone b/submodules/linphone
index 1b2ed9e08..b1a30f1a4 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit 1b2ed9e0883efe1eb52e39a2b7e67e7d0840cb87
+Subproject commit b1a30f1a43e249f91cf79e744a3d5d66bc0b1647