some chat fixes

This commit is contained in:
Anthony Minessale 2011-10-07 08:23:40 -05:00
parent 1afda8fb39
commit 78a9a6488a
3 changed files with 10 additions and 3 deletions

View File

@ -1562,7 +1562,7 @@ SWITCH_STANDARD_API(chat_api_function)
if (!zstr(cmd) && (lbuf = strdup(cmd)) if (!zstr(cmd) && (lbuf = strdup(cmd))
&& (argc = switch_separate_string(lbuf, '|', argv, (sizeof(argv) / sizeof(argv[0])))) >= 4) { && (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"); stream->write_function(stream, "Sent");
} else { } else {
stream->write_function(stream, "Error! Message Not Sent"); stream->write_function(stream, "Error! Message Not Sent");

View File

@ -42,6 +42,7 @@ SWITCH_MODULE_DEFINITION(mod_sms, mod_sms_load, mod_sms_shutdown, NULL);
static void event_handler(switch_event_t *event) static void event_handler(switch_event_t *event)
{ {
const char *dest_proto = switch_event_get_header(event, "dest_proto"); 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); switch_core_chat_send(dest_proto, event);
} }

View File

@ -547,10 +547,15 @@ static switch_status_t do_chat_send(switch_event_t *message_event)
hint = switch_event_get_header(message_event, "hint"); 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"); 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); switch_mutex_lock(loadable_modules.mutex);
for (hi = switch_hash_first(NULL, loadable_modules.chat_hash); hi; hi = switch_hash_next(hi)) { for (hi = switch_hash_first(NULL, loadable_modules.chat_hash); hi; hi = switch_hash_next(hi)) {
switch_hash_this(hi, &var, NULL, &val); 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, "subject", subject);
switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "type", type); 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, "hint", hint);
switch_event_add_header_string(message_event, SWITCH_STACK_BOTTOM, "skip_global_process", "true");
if (body) { if (body) {
switch_event_add_body(message_event, "%s", body); switch_event_add_body(message_event, "%s", body);