return NULL;
}
+ if (switch_channel_var_true(session->channel, "fire_text_events")) {
+ switch_channel_set_flag(session->channel, CF_FIRE_TEXT_EVENTS);
+ }
+
cr_frame.data = CR;
cr_frame.datalen = 3;
switch_core_media_bug_prune(session);
}
}
-
+
if (status == SWITCH_STATUS_SUCCESS || status == SWITCH_STATUS_BREAK) {
- if (switch_channel_test_flag(session->channel, CF_QUEUE_TEXT_EVENTS) && (*frame)->datalen && !switch_test_flag((*frame), SFF_CNG)) {
+ if ((switch_channel_test_flag(session->channel, CF_QUEUE_TEXT_EVENTS) || switch_channel_test_flag(session->channel, CF_FIRE_TEXT_EVENTS)) &&
+ (*frame)->datalen && !switch_test_flag((*frame), SFF_CNG)) {
int ok = 1;
switch_event_t *event;
void *data = (*frame)->data;
if (ok) {
- if (switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) {
- switch_channel_event_set_extended_data(session->channel, event);
+ if (switch_event_create(&event, SWITCH_EVENT_TEXT) == SWITCH_STATUS_SUCCESS) {
+ switch_channel_event_set_data(session->channel, event);
switch_event_add_body(event, "%s", (char *)data);
- switch_core_session_queue_event(session, &event);
+
+ if (switch_channel_test_flag(session->channel, CF_QUEUE_TEXT_EVENTS)) {
+ switch_event_t *q_event = NULL;
+
+ if (switch_channel_test_flag(session->channel, CF_FIRE_TEXT_EVENTS)) {
+ switch_event_dup(&q_event, event);
+ } else {
+ q_event = event;
+ event = NULL;
+ }
+
+ switch_core_session_queue_event(session, &q_event);
+ }
+
+ if (switch_channel_test_flag(session->channel, CF_FIRE_TEXT_EVENTS)) {
+ switch_event_fire(&event);
+ }
}
if (session->text_line_buffer) {
switch_buffer_zero(session->text_line_buffer);
switch_core_session_t *session = switch_core_media_bug_get_session(bug);
//switch_channel_t *channel = switch_core_session_get_channel(session);
- if (switch_event_create(&event, SWITCH_EVENT_REAL_TIME_TEXT) == SWITCH_STATUS_SUCCESS) {
+ if (switch_event_create(&event, SWITCH_EVENT_TEXT) == SWITCH_STATUS_SUCCESS) {
switch_event_add_body(event, text, SWITCH_VA_NONE);
if (switch_true(switch_core_get_variable("fire_text_events"))) {