res_pjsip: Failover when server is not available

Previously Asterisk did not properly failover to the next resolved DNS
address when a endpoint could not be reached. With this patch, and while
using res_pjsip, SIP requests (both in/out of dialog) now attempt to use
the next address in the list of resolved addresses until a proper response
is received or no more addresses are left.

ASTERISK-25076 #close
Reported by: Joshua Colp

Change-Id: Ief14f4ebd82474881f72f4538f4577f30af2a764
This commit is contained in:
Kevin Harwell
2015-06-30 15:19:31 -05:00
parent c12ace3ab3
commit 74135c8efa
3 changed files with 118 additions and 19 deletions

View File

@@ -2044,4 +2044,13 @@ unsigned int ast_sip_get_max_initial_qualify_time(void);
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);
/*!
* \brief Set a request to use the next value in the list of resolved addresses.
*
* \param tdata the tx data from the original request
* \retval 0 No more addresses to try
* \retval 1 The request was successfully re-intialized
*/
int ast_sip_failover_request(pjsip_tx_data *tdata);
#endif /* _RES_PJSIP_H */