diff --git a/src/include/switch_channel.h b/src/include/switch_channel.h index c5dbda122c..1a11bdfae8 100644 --- a/src/include/switch_channel.h +++ b/src/include/switch_channel.h @@ -472,6 +472,9 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_name_state(_In_ const char */ SWITCH_DECLARE(void) switch_channel_event_set_data(_In_ switch_channel_t *channel, _In_ switch_event_t *event); +SWITCH_DECLARE(void) switch_channel_event_set_basic_data(_In_ switch_channel_t *channel, _In_ switch_event_t *event); +SWITCH_DECLARE(void) switch_channel_event_set_extended_data(_In_ switch_channel_t *channel, _In_ switch_event_t *event); + /*! \brief Expand varaibles in a string based on the variables in a paticular channel \param channel channel to expand the variables from diff --git a/src/switch_channel.c b/src/switch_channel.c index f505e52d10..bfb5a6a4e0 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1140,13 +1140,12 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_set_state(switch_c return channel->state; } -SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, switch_event_t *event) +SWITCH_DECLARE(void) switch_channel_event_set_basic_data(switch_channel_t *channel, switch_event_t *event) { switch_caller_profile_t *caller_profile, *originator_caller_profile = NULL, *originatee_caller_profile = NULL; - switch_event_header_t *hi; switch_codec_t *codec; char state_num[25]; - int x; + switch_mutex_lock(channel->profile_mutex); if ((caller_profile = switch_channel_get_caller_profile(channel))) { @@ -1178,7 +1177,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, sw switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Name", switch_str_nil(codec->implementation->iananame)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-Write-Codec-Rate", "%u", codec->implementation->actual_samples_per_second); } - + /* Index Caller's Profile */ if (caller_profile) { switch_caller_profile_event_set_data(caller_profile, "Caller", event); @@ -1199,7 +1198,15 @@ SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, sw } } +} +SWITCH_DECLARE(void) switch_channel_event_set_extended_data(switch_channel_t *channel, switch_event_t *event) +{ + switch_event_header_t *hi; + int x; + + switch_channel_event_set_basic_data(channel, event); + if (switch_channel_test_flag(channel, CF_VERBOSE_EVENTS) || event->event_id == SWITCH_EVENT_CHANNEL_ORIGINATE || event->event_id == SWITCH_EVENT_CHANNEL_UUID || @@ -1235,6 +1242,15 @@ SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, sw switch_mutex_unlock(channel->profile_mutex); } + +SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, switch_event_t *event) +{ + switch_channel_event_set_basic_data(channel, event); + switch_channel_event_set_extended_data(channel, event); +} + + + SWITCH_DECLARE(void) switch_channel_set_caller_profile(switch_channel_t *channel, switch_caller_profile_t *caller_profile) { char *uuid = NULL;