From bc72d99096ffaf3ff0ab2ae0f4cb054048bf05f1 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 18 Nov 2009 20:25:49 +0000 Subject: [PATCH] MODAPP-368 git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15530 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_types.h | 1 + src/mod/applications/mod_commands/mod_commands.c | 15 +++++++-------- src/switch_ivr_originate.c | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index fa098f23aa..5e44a1baa1 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -37,6 +37,7 @@ #include SWITCH_BEGIN_EXTERN_C +#define SWITCH_ENT_ORIGINATE_DELIM ":_:" #define SWITCH_BLANK_STRING "" #ifdef WIN32 #define SWITCH_SEQ_FWHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index 494f8e7fd9..b53b7a1bc5 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -218,6 +218,8 @@ SWITCH_STANDARD_API(group_call_function) break; case 'A': call_delim = ","; + case 'E': + call_delim = SWITCH_ENT_ORIGINATE_DELIM; break; default: break; @@ -324,10 +326,8 @@ SWITCH_STANDARD_API(group_call_function) } if (d_dest) { - if (!switch_stristr("error/", d_dest)) { - dstream.write_function(&dstream, "%s%s", d_dest, call_delim); - } - + dstream.write_function(&dstream, "%s%s", d_dest, call_delim); + if (d_dest != dest) { free(d_dest); } @@ -336,13 +336,12 @@ SWITCH_STANDARD_API(group_call_function) if (ok && dstream.data) { char *data = (char *) dstream.data; - char c = end_of(data); char *p; - if (c == ',' || c == '|') { - end_of(data) = '\0'; + if ((p = strstr(end_of_p(data) - 3, call_delim))) { + *p = '\0'; } - + for (p = data; p && *p; p++) { if (*p == '{') { *p = '['; diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 844f7aa04b..9d45af65fc 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1134,7 +1134,7 @@ static switch_status_t setup_ringback(originate_global_t *oglobals, } -#define OSEP ":_:" + #define MAX_PEERS 128 typedef struct { @@ -1359,7 +1359,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_enterprise_originate(switch_core_sess } - if (!(x_argc = switch_separate_string_string(data, OSEP, x_argv, MAX_PEERS))) { + if (!(x_argc = switch_separate_string_string(data, SWITCH_ENT_ORIGINATE_DELIM, x_argv, MAX_PEERS))) { *cause = SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER; switch_goto_status(SWITCH_STATUS_FALSE, end); } @@ -1542,7 +1542,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess const char *export_vars = NULL; - if (strstr(bridgeto, OSEP)) { + if (strstr(bridgeto, SWITCH_ENT_ORIGINATE_DELIM)) { return switch_ivr_enterprise_originate(session, bleg, cause, bridgeto, timelimit_sec, table, cid_name_override, cid_num_override, caller_profile_override, ovars, flags); }