mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-08 08:51:50 +00:00
Don't double-clear state handlers when uuid_bridging
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11568 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
b803ade94a
commit
9eed0168b4
@ -523,6 +523,22 @@ static const switch_state_handler_table_t audio_bridge_peer_state_handlers = {
|
|||||||
/*.on_consume_media */ audio_bridge_on_consume_media,
|
/*.on_consume_media */ audio_bridge_on_consume_media,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static switch_status_t uuid_bridge_on_reset(switch_core_session_t *session);
|
||||||
|
static switch_status_t uuid_bridge_on_hibernate(switch_core_session_t *session);
|
||||||
|
static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *session);
|
||||||
|
|
||||||
|
static const switch_state_handler_table_t uuid_bridge_state_handlers = {
|
||||||
|
/*.on_init */ NULL,
|
||||||
|
/*.on_routing */ NULL,
|
||||||
|
/*.on_execute */ NULL,
|
||||||
|
/*.on_hangup */ NULL,
|
||||||
|
/*.on_exchange_media */ NULL,
|
||||||
|
/*.on_soft_execute */ uuid_bridge_on_soft_execute,
|
||||||
|
/*.on_consume_media */ uuid_bridge_on_hibernate,
|
||||||
|
/*.on_hibernate */ uuid_bridge_on_hibernate,
|
||||||
|
/*.on_reset */ uuid_bridge_on_reset
|
||||||
|
};
|
||||||
|
|
||||||
static switch_status_t uuid_bridge_on_reset(switch_core_session_t *session)
|
static switch_status_t uuid_bridge_on_reset(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);
|
||||||
@ -551,7 +567,7 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio
|
|||||||
const char *other_uuid = NULL;
|
const char *other_uuid = NULL;
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CUSTOM SOFT_EXECUTE\n", switch_channel_get_name(channel));
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CUSTOM SOFT_EXECUTE\n", switch_channel_get_name(channel));
|
||||||
switch_channel_clear_state_handler(channel, NULL);
|
switch_channel_clear_state_handler(channel, &uuid_bridge_state_handlers);
|
||||||
|
|
||||||
if (!switch_channel_test_flag(channel, CF_ORIGINATOR)) {
|
if (!switch_channel_test_flag(channel, CF_ORIGINATOR)) {
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
@ -637,18 +653,6 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio
|
|||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const switch_state_handler_table_t uuid_bridge_state_handlers = {
|
|
||||||
/*.on_init */ NULL,
|
|
||||||
/*.on_routing */ NULL,
|
|
||||||
/*.on_execute */ NULL,
|
|
||||||
/*.on_hangup */ NULL,
|
|
||||||
/*.on_exchange_media */ NULL,
|
|
||||||
/*.on_soft_execute */ uuid_bridge_on_soft_execute,
|
|
||||||
/*.on_consume_media */ uuid_bridge_on_hibernate,
|
|
||||||
/*.on_hibernate */ uuid_bridge_on_hibernate,
|
|
||||||
/*.on_reset */ uuid_bridge_on_reset
|
|
||||||
};
|
|
||||||
|
|
||||||
static switch_status_t signal_bridge_on_hibernate(switch_core_session_t *session)
|
static switch_status_t signal_bridge_on_hibernate(switch_core_session_t *session)
|
||||||
{
|
{
|
||||||
switch_channel_t *channel = NULL;
|
switch_channel_t *channel = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user