Liblinphone
3.11.1
|
Macros | |
#define | LINPHONE_AUTH_INFO(obj) BELLE_SIP_CAST(obj, LinphoneAuthInfo) |
Typedefs | |
typedef struct _LinphoneAuthInfo | LinphoneAuthInfo |
#define LINPHONE_AUTH_INFO | ( | obj | ) | BELLE_SIP_CAST(obj, LinphoneAuthInfo) |
Safely cast a belle_sip_object_t into LinphoneAuthInfo
typedef struct _LinphoneAuthInfo LinphoneAuthInfo |
Object holding authentication information.
In most case, authentication information consists of a username and password. Sometimes, a userid is required by proxy, and realm can be useful to discriminate different SIP domains.
Once created and filled, a LinphoneAuthInfo must be added to the LinphoneCore in order to become known and used automatically when needed. Use linphone_core_add_auth_info() for that purpose.
The LinphoneCore object can take the initiative to request authentication information when needed to the application through the auth_info_requested callback of the LinphoneCoreVTable structure.
The application can respond to this information request later using linphone_core_add_auth_info(). This will unblock all pending authentication transactions and retry them with authentication headers.
LinphoneAuthInfo* linphone_auth_info_clone | ( | const LinphoneAuthInfo * | source | ) |
Instantiates a new auth info with values from source.
[in] | source | The LinphoneAuthInfo object to be cloned |
const char* linphone_auth_info_get_domain | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_ha1 | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_passwd | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_realm | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_tls_cert | ( | const LinphoneAuthInfo * | info | ) |
Gets the TLS certificate.
[in] | info | The LinphoneAuthInfo object |
const char* linphone_auth_info_get_tls_cert_path | ( | const LinphoneAuthInfo * | info | ) |
Gets the TLS certificate path.
[in] | info | The LinphoneAuthInfo object |
const char* linphone_auth_info_get_tls_key | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_tls_key_path | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_userid | ( | const LinphoneAuthInfo * | info | ) |
const char* linphone_auth_info_get_username | ( | const LinphoneAuthInfo * | info | ) |
LinphoneAuthInfo* linphone_auth_info_new | ( | const char * | username, |
const char * | userid, | ||
const char * | passwd, | ||
const char * | ha1, | ||
const char * | realm, | ||
const char * | domain | ||
) |
Creates a LinphoneAuthInfo object with supplied information. The object can be created empty, that is with all arguments set to NULL. Username, userid, password, realm and domain can be set later using specific methods. At the end, username and passwd (or ha1) are required.
username | The username that needs to be authenticated |
userid | The userid used for authenticating (use NULL if you don't know what it is) |
passwd | The password in clear text |
ha1 | The ha1-encrypted password if password is not given in clear text. |
realm | The authentication domain (which can be larger than the sip domain. Unfortunately many SIP servers don't use this parameter. |
domain | The SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain. |
void linphone_auth_info_set_domain | ( | LinphoneAuthInfo * | info, |
const char * | domain | ||
) |
Sets the domain for which this authentication is valid.
[in] | info | The LinphoneAuthInfo object |
[in] | domain | The domain. This should not be necessary because realm is supposed to be unique and sufficient. However, many SIP servers don't set realm correctly, then domain has to be used to distinguish between several SIP account bearing the same username. |
void linphone_auth_info_set_ha1 | ( | LinphoneAuthInfo * | info, |
const char * | ha1 | ||
) |
Sets the ha1.
[in] | info | The LinphoneAuthInfo object |
[in] | ha1 | The ha1. |
void linphone_auth_info_set_passwd | ( | LinphoneAuthInfo * | info, |
const char * | passwd | ||
) |
Sets the password.
[in] | info | The LinphoneAuthInfo object |
[in] | passwd | The password. |
void linphone_auth_info_set_realm | ( | LinphoneAuthInfo * | info, |
const char * | realm | ||
) |
Sets the realm.
[in] | info | The LinphoneAuthInfo object |
[in] | realm | The realm. |
void linphone_auth_info_set_tls_cert | ( | LinphoneAuthInfo * | info, |
const char * | tls_cert | ||
) |
Sets the TLS certificate.
[in] | info | The LinphoneAuthInfo object |
[in] | tls_cert | The TLS certificate. |
void linphone_auth_info_set_tls_cert_path | ( | LinphoneAuthInfo * | info, |
const char * | tls_cert_path | ||
) |
Sets the TLS certificate path.
[in] | info | The LinphoneAuthInfo object |
[in] | tls_cert_path | The TLS certificate path. |
void linphone_auth_info_set_tls_key | ( | LinphoneAuthInfo * | info, |
const char * | tls_key | ||
) |
Sets the TLS key.
[in] | info | The LinphoneAuthInfo object |
[in] | tls_key | The TLS key. |
void linphone_auth_info_set_tls_key_path | ( | LinphoneAuthInfo * | info, |
const char * | tls_key_path | ||
) |
Sets the TLS key path.
[in] | info | The LinphoneAuthInfo object |
[in] | tls_key_path | The TLS key path. |
void linphone_auth_info_set_userid | ( | LinphoneAuthInfo * | info, |
const char * | userid | ||
) |
Sets the userid.
[in] | info | The LinphoneAuthInfo object |
[in] | userid | The userid. |
void linphone_auth_info_set_username | ( | LinphoneAuthInfo * | info, |
const char * | username | ||
) |
Sets the username.
[in] | info | The LinphoneAuthInfo object |
[in] | username | The username. |
void linphone_core_add_auth_info | ( | LinphoneCore * | lc, |
const LinphoneAuthInfo * | info | ||
) |
Adds authentication information to the LinphoneCore. That piece of information will be used during all SIP transactions that require authentication.
[in] | lc | The LinphoneCore. |
[in] | info | The LinphoneAuthInfo to add. |
LinphoneAuthInfo* linphone_core_create_auth_info | ( | LinphoneCore * | lc, |
const char * | username, | ||
const char * | userid, | ||
const char * | passwd, | ||
const char * | ha1, | ||
const char * | realm, | ||
const char * | domain | ||
) |
Create an authentication information with default values from Linphone core.
[in] | lc | LinphoneCore object |
[in] | username | String containing the username part of the authentication credentials |
[in] | userid | String containing the username to use to calculate the authentication digest (optional) |
[in] | passwd | String containing the password of the authentication credentials (optional, either passwd or ha1 must be set) |
[in] | ha1 | String containing a ha1 hash of the password (optional, either passwd or ha1 must be set) |
[in] | realm | String used to discriminate different SIP authentication domains (optional) |
[in] | domain | String containing the SIP domain for which this authentication information is valid, if it has to be restricted for a single SIP domain. |
const LinphoneAuthInfo* linphone_core_find_auth_info | ( | LinphoneCore * | lc, |
const char * | realm, | ||
const char * | username, | ||
const char * | sip_domain | ||
) |
Find authentication info matching realm, username, domain criteria. First of all, (realm,username) pair are searched. If multiple results (which should not happen because realm are supposed to be unique), then domain is added to the search.
lc | the LinphoneCore |
realm | the authentication 'realm' (optional) |
username | the SIP username to be authenticated (mandatory) |
sip_domain | the SIP domain name (optional) |
const bctbx_list_t* linphone_core_get_auth_info_list | ( | const LinphoneCore * | lc | ) |
Returns an unmodifiable list of currently entered LinphoneAuthInfo.
[in] | lc | The LinphoneCore object. |
void linphone_core_remove_auth_info | ( | LinphoneCore * | lc, |
const LinphoneAuthInfo * | info | ||
) |
Removes an authentication information object.
[in] | lc | The LinphoneCore from which the LinphoneAuthInfo will be removed. |
[in] | info | The LinphoneAuthInfo to remove. |