res_pjsip_outbound_registration: add support for SRV failover

ASTERISK-28624

Change-Id: I8da7c300dd985ab7b10dbd5194aff2f737808561
This commit is contained in:
Kevin Harwell
2019-11-20 12:56:08 -06:00
parent ecdc5405f9
commit 8c99930375

View File

@@ -1033,7 +1033,17 @@ static int handle_registration_response(void *data)
ast_debug(1, "Processing REGISTER response %d from server '%s' for client '%s'\n",
response->code, server_uri, client_uri);
if ((response->code == 401 || response->code == 407)
if (response->code == 408 || response->code == 503) {
if ((ast_sip_failover_request(response->old_request))) {
int res = registration_client_send(response->client_state, response->old_request);
/* The tdata ref was stolen */
response->old_request = NULL;
if (res == PJ_SUCCESS) {
ao2_ref(response, -1);
return 0;
}
}
} else if ((response->code == 401 || response->code == 407)
&& (!response->client_state->auth_attempted
|| response->rdata->msg_info.cseq->cseq != response->client_state->auth_cseq)) {
int res;