mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 17:38:59 +00:00
fix races in bypass media regarding channel signalling that may cause answer to be skipped
This commit is contained in:
@@ -422,13 +422,7 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
|
||||
switch_channel_hangup(session->channel, SWITCH_CAUSE_INVALID_CALL_REFERENCE);
|
||||
}
|
||||
} else {
|
||||
switch_core_session_message_t *message;
|
||||
|
||||
while (switch_core_session_dequeue_message(session, &message) == SWITCH_STATUS_SUCCESS) {
|
||||
switch_core_session_receive_message(session, message);
|
||||
message = NULL;
|
||||
}
|
||||
|
||||
switch_ivr_parse_all_events(session);
|
||||
switch_ivr_parse_all_events(session);
|
||||
|
||||
if (switch_channel_get_state(session->channel) == switch_channel_get_running_state(session->channel)) {
|
||||
@@ -440,11 +434,7 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
|
||||
}
|
||||
|
||||
switch_ivr_parse_all_events(session);
|
||||
|
||||
while (switch_core_session_dequeue_message(session, &message) == SWITCH_STATUS_SUCCESS) {
|
||||
switch_core_session_receive_message(session, message);
|
||||
message = NULL;
|
||||
}
|
||||
switch_ivr_parse_all_events(session);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user