]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
MODAPP-368
authorBrian West <brian@freeswitch.org>
Wed, 18 Nov 2009 20:25:49 +0000 (20:25 +0000)
committerBrian West <brian@freeswitch.org>
Wed, 18 Nov 2009 20:25:49 +0000 (20:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15530 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/include/switch_types.h
src/mod/applications/mod_commands/mod_commands.c
src/switch_ivr_originate.c

index fa098f23aa8e0db3f5255ad34c2f053dbb067106..5e44a1baa19f44a2fdc0accf1befcc7d224c08e4 100644 (file)
@@ -37,6 +37,7 @@
 
 #include <switch.h>
 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
index 494f8e7fd91c04da29b8df4690889a511d4389cc..b53b7a1bc56ef656aebde737fe5b8f995ff7295f 100644 (file)
@@ -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 = '[';
index 844f7aa04baa8a216b9dc1c70549914104e5d7fc..9d45af65fc26e1720e83fad7a0a5ad6616664940 100644 (file)
@@ -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);
        }