mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-18 03:28:07 +00:00
423 lines
17 KiB
C
423 lines
17 KiB
C
/*
|
|
account_creator.h
|
|
Copyright (C) 2010-2015 Belledonne Communications SARL
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef LINPHONE_ACCOUNT_CREATOR_H_
|
|
#define LINPHONE_ACCOUNT_CREATOR_H_
|
|
|
|
#include "linphonecore.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @addtogroup misc
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* Enum describing the status of a LinphoneAccountCreator operation.
|
|
**/
|
|
typedef enum _LinphoneAccountCreatorStatus {
|
|
LinphoneAccountCreatorOK,
|
|
LinphoneAccountCreatorReqFailed,
|
|
|
|
LinphoneAccountCreatorAccountCreated,
|
|
LinphoneAccountCreatorAccountNotCreated,
|
|
|
|
LinphoneAccountCreatorAccountExist,
|
|
LinphoneAccountCreatorAccountNotExist,
|
|
|
|
LinphoneAccountCreatorAccountActivated,
|
|
LinphoneAccountCreatorAccountAlreadyActivated,
|
|
LinphoneAccountCreatorAccountNotActivated,
|
|
|
|
LinphoneAccountCreatorEmailInvalid,
|
|
LinphoneAccountCreatorUsernameInvalid,
|
|
LinphoneAccountCreatorUsernameTooShort,
|
|
LinphoneAccountCreatorUsernameTooLong,
|
|
LinphoneAccountCreatorUsernameInvalidSize,
|
|
LinphoneAccountCreatorPhoneNumberInvalid,
|
|
LinphoneAccountCreatorPhoneNumberTooShort,
|
|
LinphoneAccountCreatorPhoneNumberTooLong,
|
|
LinphoneAccountCreatorPasswordTooShort,
|
|
LinphoneAccountCreatorPasswordTooLong,
|
|
LinphoneAccountCreatorDomainInvalid,
|
|
LinphoneAccountCreatorRouteInvalid,
|
|
LinphoneAccountCreatorDisplayNameInvalid,
|
|
LinphoneAccountCreatorTransportNotSupported,
|
|
} LinphoneAccountCreatorStatus;
|
|
|
|
/**
|
|
* The LinphoneAccountCreator object used to create an account on a server via XML-RPC.
|
|
**/
|
|
typedef struct _LinphoneAccountCreator LinphoneAccountCreator;
|
|
|
|
/**
|
|
* An object to handle the callbacks for handling the LinphoneAccountCreator operations.
|
|
**/
|
|
typedef struct _LinphoneAccountCreatorCbs LinphoneAccountCreatorCbs;
|
|
|
|
/**
|
|
* Callback to notify a status change of the account creator.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] status The status of the LinphoneAccountCreator test existence operation that has just finished
|
|
**/
|
|
typedef void (*LinphoneAccountCreatorStatusCb)(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status);
|
|
|
|
/**
|
|
* Create a LinphoneAccountCreator.
|
|
* @param[in] core The LinphoneCore used for the XML-RPC communication
|
|
* @param[in] xmlrpc_url The URL to the XML-RPC server. Must be NON NULL.
|
|
* @return The new LinphoneAccountCreator object
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreator * linphone_account_creator_new(LinphoneCore *core, const char *xmlrpc_url);
|
|
|
|
/**
|
|
* Acquire a reference to the LinphoneAccountCreator.
|
|
* @param[in] creator LinphoneAccountCreator object.
|
|
* @return The same LinphoneAccountCreator object.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreator * linphone_account_creator_ref(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Release reference to the LinphoneAccountCreator.
|
|
* @param[in] creator LinphoneAccountCreator object.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_unref(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Retrieve the user pointer associated with the LinphoneAccountCreator.
|
|
* @param[in] creator LinphoneAccountCreator object.
|
|
* @return The user pointer associated with the LinphoneAccountCreator.
|
|
**/
|
|
LINPHONE_PUBLIC void *linphone_account_creator_get_user_data(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Assign a user pointer to the LinphoneAccountCreator.
|
|
* @param[in] creator LinphoneAccountCreator object.
|
|
* @param[in] ud The user pointer to associate with the LinphoneAccountCreator.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_set_user_data(LinphoneAccountCreator *creator, void *ud);
|
|
|
|
/**
|
|
* Set the username.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] username The username to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_username(LinphoneAccountCreator *creator, const char *username);
|
|
|
|
/**
|
|
* Get the username.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The username of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_username(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the phone number normalized.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] phone number The phone number to set
|
|
* @param[in] country code Country code to associate phone number with
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_phone_number(LinphoneAccountCreator *creator, const char *phone_number, const char *country_code);
|
|
|
|
/**
|
|
* Get the RFC 3966 normalized phone number.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The phone number of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_phone_number(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the password.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] password The password to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_password(LinphoneAccountCreator *creator, const char *password);
|
|
|
|
/**
|
|
* Get the password.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The password of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_password(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the activation code.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] activation_code The activation code to set
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_activation_code(LinphoneAccountCreator *creator, const char *activation_code);
|
|
|
|
/**
|
|
* Set the transport.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] transport The transport to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error if given transport is not supported by linphone core.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_transport(LinphoneAccountCreator *creator, LinphoneTransportType transport);
|
|
|
|
/**
|
|
* Get the transport.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The transport of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneTransportType linphone_account_creator_get_transport(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the domain.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] domain The domain to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_domain(LinphoneAccountCreator *creator, const char *domain);
|
|
|
|
/**
|
|
* Get the domain.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The domain of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_domain(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the route.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] route The route to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_route(LinphoneAccountCreator *creator, const char *route);
|
|
|
|
/**
|
|
* Get the route.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The route of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_route(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the email.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] display_name The display name to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_display_name(LinphoneAccountCreator *creator, const char *display_name);
|
|
|
|
/**
|
|
* Get the email.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The display name of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_display_name(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Set the email.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @param[in] email The email to set
|
|
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_email(LinphoneAccountCreator *creator, const char *email);
|
|
|
|
/**
|
|
* Get the email.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The email of the LinphoneAccountCreator
|
|
**/
|
|
LINPHONE_PUBLIC const char * linphone_account_creator_get_email(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Get the LinphoneAccountCreatorCbs object associated with a LinphoneAccountCreator.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return The LinphoneAccountCreatorCbs object associated with the LinphoneAccountCreator.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorCbs * linphone_account_creator_get_callbacks(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to test the existence of a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOk if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_is_account_used(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to create a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOk if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_create_account(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to activate a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOk if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_activate_account(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to test the validation of a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOk if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_is_account_activated(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to link a phone number with a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOK if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_link_phone_number_with_account(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Send an XML-RPC request to activate the link of a phone number with a Linphone account.
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return LinphoneAccountCreatorOK if the request has been sent, LinphoneAccountCreatorReqFailed otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_activate_phone_number_link(LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Configure an account (create a proxy config and authentication info for it).
|
|
* @param[in] creator LinphoneAccountCreator object
|
|
* @return A LinphoneProxyConfig object if successful, NULL otherwise
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneProxyConfig * linphone_account_creator_configure(const LinphoneAccountCreator *creator);
|
|
|
|
/**
|
|
* Acquire a reference to a LinphoneAccountCreatorCbs object.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The same LinphoneAccountCreatorCbs object.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorCbs * linphone_account_creator_cbs_ref(LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Release a reference to a LinphoneAccountCreatorCbs object.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_unref(LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Retrieve the user pointer associated with a LinphoneAccountCreatorCbs object.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The user pointer associated with the LinphoneAccountCreatorCbs object.
|
|
**/
|
|
LINPHONE_PUBLIC void *linphone_account_creator_cbs_get_user_data(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Assign a user pointer to a LinphoneAccountCreatorCbs object.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] ud The user pointer to associate with the LinphoneAccountCreatorCbs object.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_user_data(LinphoneAccountCreatorCbs *cbs, void *ud);
|
|
|
|
/**
|
|
* Get the existence tested callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current existence tested callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_is_account_used(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the existence tested callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The existence tested callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_is_account_used(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* Get the create account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current create account callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_create_account(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the create account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The create account callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_create_account(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* Get the activate account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current activate account callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_activate_account(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the activate account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The activate account callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_activate_account(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* Get the link phone number with account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current link phone number with account callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_link_phone_number_with_account(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the link phone number with account callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The link phone number with account callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_link_phone_number_with_account(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* Get the activate phone number link callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current activate phone number link callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_activate_phone_number_link(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the activate phone number link callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The activate phone number link callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_activate_phone_number_link(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* Get the validation tested callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @return The current validation tested callback.
|
|
**/
|
|
LINPHONE_PUBLIC LinphoneAccountCreatorStatusCb linphone_account_creator_cbs_get_is_account_activated(const LinphoneAccountCreatorCbs *cbs);
|
|
|
|
/**
|
|
* Set the validation tested callback.
|
|
* @param[in] cbs LinphoneAccountCreatorCbs object.
|
|
* @param[in] cb The validation tested callback to be used.
|
|
**/
|
|
LINPHONE_PUBLIC void linphone_account_creator_cbs_set_is_account_activated(LinphoneAccountCreatorCbs *cbs, LinphoneAccountCreatorStatusCb cb);
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* LINPHONE_ACCOUNT_CREATOR_H_ */
|