From addd295cdacd0dc93b0084b688acfaf43d13d653 Mon Sep 17 00:00:00 2001
From: Torrey Searle <tsearle@voxbone.com>
Date: Wed, 22 Jul 2020 10:45:57 +0200
Subject: [PATCH] res_pjsip_diversion: handle 181

Adapt the response handler so it also called when 181 is received.
In the case 181 is received, also generate the 181 response.

ASTERISK-29001 #close

Change-Id: I73cfee46a8ca85371280ebdb38674f8fde7510df
---
 res/res_pjsip_diversion.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/res/res_pjsip_diversion.c b/res/res_pjsip_diversion.c
index 96a9069d5b..3f7487104d 100644
--- a/res/res_pjsip_diversion.c
+++ b/res/res_pjsip_diversion.c
@@ -259,6 +259,10 @@ static void set_redirecting(struct ast_sip_session *session,
 	++data.count;
 
 	ast_channel_set_redirecting(session->channel, &data, &update);
+	/* Only queue an indication if it was due to a response */
+	if (session->inv_session->role == PJSIP_ROLE_UAC) {
+		ast_channel_queue_redirecting_update(session->channel, &data, &update);
+	}
 	ast_party_redirecting_free(&data);
 }
 
@@ -406,7 +410,7 @@ static struct ast_sip_session_supplement diversion_supplement = {
 	.incoming_response = diversion_incoming_response,
 	.outgoing_request = diversion_outgoing_request,
 	.outgoing_response = diversion_outgoing_response,
-	.response_priority = AST_SIP_SESSION_BEFORE_REDIRECTING,
+	.response_priority = AST_SIP_SESSION_BEFORE_REDIRECTING|AST_SIP_SESSION_BEFORE_MEDIA,
 };
 
 static int load_module(void)
-- 
GitLab