static void event_handler(switch_event_t *event)
{
const char *dest_proto = switch_event_get_header(event, "dest_proto");
+ const char *check_failure = switch_event_get_header(event, "Delivery-Failure");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "skip_global_process", "true");
+
+ if (switch_true(check_failure)) {
+
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Delivery Failure\n");
+ DUMP_EVENT(event);
+
+ return;
+ }
+
switch_core_chat_send(dest_proto, event);
}
if ((ci = (switch_chat_interface_t *) val)) {
if (ci->chat_send && !strncasecmp(ci->interface_name, "GLOBAL_", 7)) {
status = ci->chat_send(message_event);
-
if (status == SWITCH_STATUS_BREAK) {
do_skip = 1;
}
if (!do_skip && !switch_stristr("GLOBAL", dest_proto)) {
if ((ci = switch_loadable_module_get_chat_interface(dest_proto)) && ci->chat_send) {
status = ci->chat_send(message_event);
+ printf("FRICK\n");
+
UNPROTECT_INTERFACE(ci);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid chat interface [%s]!\n", dest_proto);