From 850a3fd0173f96dfdf5f025a0a91348863acbb62 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Mon, 14 Aug 2017 12:20:25 -0500
Subject: [PATCH] chan_pjsip.c: Fix topology refresh response code accuracy.

There are other 1xx and 2xx codes than 100 and 200 respectively.

Change-Id: I680db0997343256add1478714f5bf5b5569aee17
---
 channels/chan_pjsip.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c
index 4a24fa689f..677dfd3dd3 100644
--- a/channels/chan_pjsip.c
+++ b/channels/chan_pjsip.c
@@ -1484,14 +1484,14 @@ static struct topology_change_refresh_data *topology_change_refresh_data_alloc(
 
 static int on_topology_change_response(struct ast_sip_session *session, pjsip_rx_data *rdata)
 {
-	if (rdata->msg_info.msg->line.status.code == 200) {
+	if (PJSIP_IS_STATUS_IN_CLASS(rdata->msg_info.msg->line.status.code, 200)) {
 		/* The topology was changed to something new so give notice to what requested
 		 * it so it queries the channel and updates accordingly.
 		 */
 		if (session->channel) {
 			ast_queue_control(session->channel, AST_CONTROL_STREAM_TOPOLOGY_CHANGED);
 		}
-	} else if (rdata->msg_info.msg->line.status.code != 100) {
+	} else if (300 <= rdata->msg_info.msg->line.status.code) {
 		/* The topology change failed, so drop the current pending media state */
 		ast_sip_session_media_state_reset(session->pending_media_state);
 	}
-- 
GitLab