pjsip_options: Fix non-qualified contacts showing as unavailable

The "Add qualify_timeout processing and eventing" patch introduced
an issue where contacts that had qualify_frequency set to 0 were
showing Unavailable instead Unknown.  This patch checks for
qualify_frequency=0 and create an "Unknown"  contact_status
with an RTT = 0.

Previously, the lack of contact_status implied Unknown but since
we're now changing endpoint state based on contact_status, I've
had to add new UNKNOWN status so that changes could trigger the
appropriate contact_status observers.

ASTERISK-24977: #close

Change-Id: Ifcbc01533ce57f0e4e584b89a395326e098b8fe7
This commit is contained in:
George Joseph
2015-04-18 12:36:19 -06:00
parent e05b076827
commit 63169e00ff
5 changed files with 51 additions and 41 deletions

View File

@@ -177,7 +177,8 @@ struct ast_sip_contact {
*/
enum ast_sip_contact_status_type {
UNAVAILABLE,
AVAILABLE
AVAILABLE,
UNKNOWN
};
/*!
@@ -2000,5 +2001,13 @@ unsigned int ast_sip_get_keep_alive_interval(void);
*/
unsigned int ast_sip_get_max_initial_qualify_time(void);
/*!
* \brief translate ast_sip_contact_status_type to character string.
*
* \retval the character string equivalent.
*/
const char *ast_sip_get_contact_status_label(const enum ast_sip_contact_status_type status);
const char *ast_sip_get_contact_short_status_label(const enum ast_sip_contact_status_type status);
#endif /* _RES_PJSIP_H */