diff options
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index bb549654..d8cf68ec 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -4797,7 +4797,8 @@ static void pjsua_call_on_tsx_state_changed(pjsip_inv_session *inv, pjsip_method_cmp(&tsx->method, &pjsip_invite_method)==0 && tsx->state >= PJSIP_TSX_STATE_COMPLETED && e->body.tsx_state.prev_state < PJSIP_TSX_STATE_COMPLETED && - (tsx->status_code!=401 && tsx->status_code!=407 && + (!PJSIP_IS_STATUS_IN_CLASS(tsx->status_code, 300) && + tsx->status_code!=401 && tsx->status_code!=407 && tsx->status_code!=422)) { if (tsx->status_code/100 == 2) { @@ -4842,7 +4843,8 @@ static void pjsua_call_on_tsx_state_changed(pjsip_inv_session *inv, pjsip_method_cmp(&tsx->method, &pjsip_update_method)==0 && tsx->state >= PJSIP_TSX_STATE_COMPLETED && e->body.tsx_state.prev_state < PJSIP_TSX_STATE_COMPLETED && - (tsx->status_code!=401 && tsx->status_code!=407 && + (!PJSIP_IS_STATUS_IN_CLASS(tsx->status_code, 300) && + tsx->status_code!=401 && tsx->status_code!=407 && tsx->status_code!=422)) { if (tsx->status_code/100 != 2 || |