chan_pjsip.c: Fix topology refresh response code accuracy.
authorRichard Mudgett <rmudgett@digium.com>
Mon, 14 Aug 2017 17:20:25 +0000 (12:20 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 22 Aug 2017 16:33:25 +0000 (11:33 -0500)
There are other 1xx and 2xx codes than 100 and 200 respectively.

Change-Id: I680db0997343256add1478714f5bf5b5569aee17

channels/chan_pjsip.c

index 4a24fa6..677dfd3 100644 (file)
@@ -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);
        }