diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index d0a6337166..011acd43c3 100755 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -1562,7 +1562,7 @@ SWITCH_STANDARD_API(chat_api_function) if (!zstr(cmd) && (lbuf = strdup(cmd)) && (argc = switch_separate_string(lbuf, '|', argv, (sizeof(argv) / sizeof(argv[0])))) >= 4) { - if (switch_core_chat_send_args(argv[0], "dp", argv[1], argv[2], "", argv[3], !zstr(argv[4]) ? argv[4] : NULL, "") == SWITCH_STATUS_SUCCESS) { + if (switch_core_chat_send_args(argv[0], "global", argv[1], argv[2], "", argv[3], !zstr(argv[4]) ? argv[4] : NULL, "") == SWITCH_STATUS_SUCCESS) { stream->write_function(stream, "Sent"); } else { stream->write_function(stream, "Error! Message Not Sent"); diff --git a/src/mod/applications/mod_sms/mod_sms.c b/src/mod/applications/mod_sms/mod_sms.c index 70db75a5e3..5c1e8c5ab5 100644 --- a/src/mod/applications/mod_sms/mod_sms.c +++ b/src/mod/applications/mod_sms/mod_sms.c @@ -42,6 +42,7 @@ SWITCH_MODULE_DEFINITION(mod_sms, mod_sms_load, mod_sms_shutdown, NULL); static void event_handler(switch_event_t *event) { const char *dest_proto = switch_event_get_header(event, "dest_proto"); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "skip_global_process", "true"); switch_core_chat_send(dest_proto, event); } diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index 48e9226080..d788908437 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -547,10 +547,15 @@ static switch_status_t do_chat_send(switch_event_t *message_event) hint = switch_event_get_header(message_event, "hint"); */ - proto = switch_event_get_header(message_event, "proto"); + if (!(proto = switch_event_get_header(message_event, "proto"))) { + proto = "global"; + switch_event_add_header(message_event, SWITCH_STACK_BOTTOM, "proto", proto); + } + + replying = switch_event_get_header(message_event, "replying"); - if (!switch_true(replying) && !switch_stristr("global", proto)) { + if (!switch_true(replying) && !switch_stristr("global", proto) && !switch_true(switch_event_get_header(message_event, "skip_global_process"))) { switch_mutex_lock(loadable_modules.mutex); for (hi = switch_hash_first(NULL, loadable_modules.chat_hash); hi; hi = switch_hash_next(hi)) { switch_hash_this(hi, &var, NULL, &val); @@ -741,6 +746,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_chat_send_args(const char *dest_prot switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "subject", subject); switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "hint", hint); + switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "skip_global_process", "true"); if (body) { switch_event_add_body(message_event, "%s", body);