mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-24 05:02:10 +00:00
fifo up
This commit is contained in:
+31
-29
@@ -569,14 +569,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_receive_message(swit
|
||||
|
||||
switch_assert(session != NULL);
|
||||
|
||||
if (switch_channel_down(session->channel)) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if ((status = switch_core_session_read_lock(session)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = switch_core_session_read_lock_hangup(session)) != SWITCH_STATUS_SUCCESS) {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
if (!message->_file) {
|
||||
message->_file = file;
|
||||
}
|
||||
@@ -610,7 +606,12 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_receive_message(swit
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (session->endpoint_interface->io_routines->receive_message) {
|
||||
if (switch_channel_down(session->channel)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_ID_LOG, message->_file, message->_func, message->_line,
|
||||
switch_core_session_get_uuid(session), SWITCH_LOG_DEBUG, "%s skip receive message [%s] (channel is hungup already)\n",
|
||||
switch_channel_get_name(session->channel), message_names[message->message_id]);
|
||||
|
||||
} else if (session->endpoint_interface->io_routines->receive_message) {
|
||||
status = session->endpoint_interface->io_routines->receive_message(session, message);
|
||||
}
|
||||
|
||||
@@ -626,28 +627,29 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_receive_message(swit
|
||||
message->_func = NULL;
|
||||
message->_line = 0;
|
||||
|
||||
|
||||
switch (message->message_id) {
|
||||
case SWITCH_MESSAGE_REDIRECT_AUDIO:
|
||||
case SWITCH_MESSAGE_INDICATE_ANSWER:
|
||||
case SWITCH_MESSAGE_INDICATE_PROGRESS:
|
||||
case SWITCH_MESSAGE_INDICATE_BRIDGE:
|
||||
case SWITCH_MESSAGE_INDICATE_UNBRIDGE:
|
||||
case SWITCH_MESSAGE_INDICATE_TRANSFER:
|
||||
case SWITCH_MESSAGE_INDICATE_RINGING:
|
||||
case SWITCH_MESSAGE_INDICATE_MEDIA:
|
||||
case SWITCH_MESSAGE_INDICATE_NOMEDIA:
|
||||
case SWITCH_MESSAGE_INDICATE_HOLD:
|
||||
case SWITCH_MESSAGE_INDICATE_UNHOLD:
|
||||
case SWITCH_MESSAGE_INDICATE_REDIRECT:
|
||||
case SWITCH_MESSAGE_INDICATE_RESPOND:
|
||||
case SWITCH_MESSAGE_INDICATE_BROADCAST:
|
||||
case SWITCH_MESSAGE_INDICATE_MEDIA_REDIRECT:
|
||||
case SWITCH_MESSAGE_INDICATE_DEFLECT:
|
||||
switch_core_session_kill_channel(session, SWITCH_SIG_BREAK);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (switch_channel_up(session->channel)) {
|
||||
switch (message->message_id) {
|
||||
case SWITCH_MESSAGE_REDIRECT_AUDIO:
|
||||
case SWITCH_MESSAGE_INDICATE_ANSWER:
|
||||
case SWITCH_MESSAGE_INDICATE_PROGRESS:
|
||||
case SWITCH_MESSAGE_INDICATE_BRIDGE:
|
||||
case SWITCH_MESSAGE_INDICATE_UNBRIDGE:
|
||||
case SWITCH_MESSAGE_INDICATE_TRANSFER:
|
||||
case SWITCH_MESSAGE_INDICATE_RINGING:
|
||||
case SWITCH_MESSAGE_INDICATE_MEDIA:
|
||||
case SWITCH_MESSAGE_INDICATE_NOMEDIA:
|
||||
case SWITCH_MESSAGE_INDICATE_HOLD:
|
||||
case SWITCH_MESSAGE_INDICATE_UNHOLD:
|
||||
case SWITCH_MESSAGE_INDICATE_REDIRECT:
|
||||
case SWITCH_MESSAGE_INDICATE_RESPOND:
|
||||
case SWITCH_MESSAGE_INDICATE_BROADCAST:
|
||||
case SWITCH_MESSAGE_INDICATE_MEDIA_REDIRECT:
|
||||
case SWITCH_MESSAGE_INDICATE_DEFLECT:
|
||||
switch_core_session_kill_channel(session, SWITCH_SIG_BREAK);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
end:
|
||||
|
||||
Reference in New Issue
Block a user