diff --git a/coreapi/account_creator.c b/coreapi/account_creator.c index 1a2107ed0..4136de229 100644 --- a/coreapi/account_creator.c +++ b/coreapi/account_creator.c @@ -694,7 +694,9 @@ static void _is_phone_number_used_cb(LinphoneXmlRpcRequest *request) { LinphoneAccountCreatorStatus status = LinphoneAccountCreatorReqFailed; const char* resp = linphone_xml_rpc_request_get_string_response(request); if (linphone_xml_rpc_request_get_status(request) == LinphoneXmlRpcStatusOk) { - status = (strcmp(resp, "OK") == 0) ? LinphoneAccountCreatorPhoneNumberUsed : LinphoneAccountCreatorPhoneNumberNotUsed; + status = (strcmp(resp, "OK_ACCOUNT") == 0) ? LinphoneAccountCreatorPhoneNumberUsedAccount + : (strcmp(resp, "OK_ALIAS") == 0) ? LinphoneAccountCreatorPhoneNumberUsedAlias + : LinphoneAccountCreatorPhoneNumberNotUsed; } creator->callbacks->is_phone_number_used(creator, status, resp); } @@ -704,16 +706,17 @@ LinphoneAccountCreatorStatus linphone_account_creator_is_phone_number_used(Linph LinphoneXmlRpcRequest *request; char *identity = _get_identity(creator); if (!identity) { - if (creator->callbacks->is_account_activated != NULL) { - creator->callbacks->is_account_activated(creator, LinphoneAccountCreatorReqFailed, "Missing required parameters"); + if (creator->callbacks->is_phone_number_used != NULL) { + creator->callbacks->is_phone_number_used(creator, LinphoneAccountCreatorReqFailed, "Missing required parameters"); } return LinphoneAccountCreatorReqFailed; } - request = linphone_xml_rpc_request_new_with_args("is_account_activated", LinphoneXmlRpcArgString, - LinphoneXmlRpcArgString, creator->username ? creator->username : creator->phone_number, + request = linphone_xml_rpc_request_new_with_args("is_phone_number_used", LinphoneXmlRpcArgString, + LinphoneXmlRpcArgString, creator->phone_number, + LinphoneXmlRpcArgString, creator->domain, LinphoneXmlRpcArgNone); linphone_xml_rpc_request_set_user_data(request, creator); - linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _is_account_activated_cb); + linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _is_phone_number_used_cb); linphone_xml_rpc_session_send_request(creator->xmlrpc_session, request); linphone_xml_rpc_request_unref(request); ms_free(identity); diff --git a/coreapi/account_creator.h b/coreapi/account_creator.h index e59573d4a..1ce03f265 100644 --- a/coreapi/account_creator.h +++ b/coreapi/account_creator.h @@ -62,7 +62,8 @@ typedef enum _LinphoneAccountCreatorStatus { LinphoneAccountCreatorPhoneNumberInvalid, LinphoneAccountCreatorPhoneNumberTooShort, LinphoneAccountCreatorPhoneNumberTooLong, - LinphoneAccountCreatorPhoneNumberUsed, + LinphoneAccountCreatorPhoneNumberUsedAccount, + LinphoneAccountCreatorPhoneNumberUsedAlias, LinphoneAccountCreatorPhoneNumberNotUsed, LinphoneAccountCreatorPasswordTooShort, diff --git a/java/common/org/linphone/core/LinphoneAccountCreator.java b/java/common/org/linphone/core/LinphoneAccountCreator.java index b1efbbc22..0fdc329ce 100644 --- a/java/common/org/linphone/core/LinphoneAccountCreator.java +++ b/java/common/org/linphone/core/LinphoneAccountCreator.java @@ -38,37 +38,39 @@ public interface LinphoneAccountCreator { static private Vector values = new Vector(); private final int mValue; private final String mStringValue; + private static int mStatusNum = 0; public final int value() { return mValue; } - public final static Status Ok = new Status(0, "Ok"); - public final static Status Failed = new Status(1, "Failed"); - public final static Status AccountCreated = new Status(2, "AccountCreated"); - public final static Status AccountNotCreated = new Status(3, "AccountNotCreated"); - public final static Status AccountExist = new Status(4, "AccountExist"); - public final static Status AccountExistWithAlias = new Status(5, "AccountExistWithAlias"); - public final static Status AccountNotExist = new Status(6, "AccountNotExist"); - public final static Status AccountActivated = new Status(7, "AccountActivated"); - public final static Status AccountAlreadyActivated = new Status(8, "AccountAlreadyActivated"); - public final static Status AccountNotActivated = new Status(9, "AccountNotActivated"); - public final static Status AccountLinked = new Status(10, "AccountLinked"); - public final static Status AccountNotLinked = new Status(11, "AccountNotLinked"); - public final static Status EmailInvalid = new Status(12, "EmailInvalid"); - public final static Status UsernameInvalid = new Status(13, "UsernameInvalid"); - public final static Status UsernameTooShort = new Status(14, "UsernameTooShort"); - public final static Status UsernameTooLong = new Status(15, "UsernameTooLong"); - public final static Status UsernameInvalidSize = new Status(16, "UsernameInvalidSize"); - public final static Status PhoneNumberInvalid = new Status(17, "PhoneNumberInvalid"); - public final static Status PhoneNumberTooShort = new Status(18, "PhoneNumberTooShort"); - public final static Status PhoneNumberTooLong = new Status(19, "PhoneNumberTooLong"); - public final static Status PhoneNumberUsed = new Status(20, "PhoneNumberUsed"); - public final static Status PhoneNumberNotUsed = new Status(21, "PhoneNumberNotUsed"); - public final static Status PasswordTooShort = new Status(22, "PasswordTooShort"); - public final static Status PasswordTooLong = new Status(23, "PasswordTooLong"); - public final static Status DomainInvalid = new Status(24, "DomainInvalid"); - public final static Status RouteInvalid = new Status(25, "RouteInvalid"); - public final static Status DisplayNameInvalid = new Status(26, "DisplayNameInvalid"); - public final static Status TransportNotSupported = new Status(27, "TransportNotSupported"); - public final static Status CountryCodeInvalid = new Status(28, "CountryCodeInvalid"); + public final static Status Ok = new Status(mStatusNum++, "Ok"); + public final static Status Failed = new Status(mStatusNum++, "Failed"); + public final static Status AccountCreated = new Status(mStatusNum++, "AccountCreated"); + public final static Status AccountNotCreated = new Status(mStatusNum++, "AccountNotCreated"); + public final static Status AccountExist = new Status(mStatusNum++, "AccountExist"); + public final static Status AccountExistWithAlias = new Status(mStatusNum++, "AccountExistWithAlias"); + public final static Status AccountNotExist = new Status(mStatusNum++, "AccountNotExist"); + public final static Status AccountActivated = new Status(mStatusNum++, "AccountActivated"); + public final static Status AccountAlreadyActivated = new Status(mStatusNum++, "AccountAlreadyActivated"); + public final static Status AccountNotActivated = new Status(mStatusNum++, "AccountNotActivated"); + public final static Status AccountLinked = new Status(mStatusNum++, "AccountLinked"); + public final static Status AccountNotLinked = new Status(mStatusNum++, "AccountNotLinked"); + public final static Status EmailInvalid = new Status(mStatusNum++, "EmailInvalid"); + public final static Status UsernameInvalid = new Status(mStatusNum++, "UsernameInvalid"); + public final static Status UsernameTooShort = new Status(mStatusNum++, "UsernameTooShort"); + public final static Status UsernameTooLong = new Status(mStatusNum++, "UsernameTooLong"); + public final static Status UsernameInvalidSize = new Status(mStatusNum++, "UsernameInvalidSize"); + public final static Status PhoneNumberInvalid = new Status(mStatusNum++, "PhoneNumberInvalid"); + public final static Status PhoneNumberTooShort = new Status(mStatusNum++, "PhoneNumberTooShort"); + public final static Status PhoneNumberTooLong = new Status(mStatusNum++, "PhoneNumberTooLong"); + public final static Status PhoneNumberUsedAccount = new Status(mStatusNum++, "PhoneNumberUsed"); + public final static Status PhoneNumberUsedAlias = new Status(mStatusNum++, "PhoneNumberUsed"); + public final static Status PhoneNumberNotUsed = new Status(mStatusNum++, "PhoneNumberNotUsed"); + public final static Status PasswordTooShort = new Status(mStatusNum++, "PasswordTooShort"); + public final static Status PasswordTooLong = new Status(mStatusNum++, "PasswordTooLong"); + public final static Status DomainInvalid = new Status(mStatusNum++, "DomainInvalid"); + public final static Status RouteInvalid = new Status(mStatusNum++, "RouteInvalid"); + public final static Status DisplayNameInvalid = new Status(mStatusNum++, "DisplayNameInvalid"); + public final static Status TransportNotSupported = new Status(mStatusNum++, "TransportNotSupported"); + public final static Status CountryCodeInvalid = new Status(mStatusNum++, "CountryCodeInvalid"); private Status(int value, String stringValue) { mValue = value;