[Core] Fix race between switch_ivr_park_session() and the state machine. switch_core_session_run() wants to clear the CF_TRANSFER flag on state change while parking sets the flag.

This commit is contained in:
Andrey Volk 2021-02-20 21:14:15 +03:00
parent 2ca0d02531
commit 8e2234a205

View File

@ -3522,8 +3522,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_generate_json_cdr(switch_core_session
SWITCH_DECLARE(void) switch_ivr_park_session(switch_core_session_t *session) SWITCH_DECLARE(void) switch_ivr_park_session(switch_core_session_t *session)
{ {
switch_channel_t *channel = switch_core_session_get_channel(session); switch_channel_t *channel = switch_core_session_get_channel(session);
switch_channel_set_state(channel, CS_PARK);
switch_channel_set_flag(channel, CF_TRANSFER); switch_channel_set_flag(channel, CF_TRANSFER);
switch_channel_set_state(channel, CS_PARK);
} }