]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9248 [mod_callcenter] Adding truncate-tiers-on-load and truncate-agents-on-load...
authorItalo Rossi <italorossib@gmail.com>
Thu, 9 Jun 2016 19:53:21 +0000 (16:53 -0300)
committerItalo Rossi <italorossib@gmail.com>
Thu, 9 Jun 2016 19:53:21 +0000 (16:53 -0300)
src/mod/applications/mod_callcenter/mod_callcenter.c

index d626eb2ed0e530bb688a50b07b913714feebfd35..14e5d67b9912ec95cf428d8e937fd6affa4f3e67 100644 (file)
@@ -417,6 +417,8 @@ static struct {
        char *odbc_dsn;
        char *dbname;
        switch_bool_t reserve_agents;
+       switch_bool_t truncate_tiers;
+       switch_bool_t truncate_agents;
        int32_t threads;
        int32_t running;
        switch_mutex_t *mutex;
@@ -1428,8 +1430,12 @@ static switch_status_t load_config(void)
                                globals.dbname = strdup(val);
                        } else if (!strcasecmp(var, "odbc-dsn")) {
                                globals.odbc_dsn = strdup(val);
-                       } else if(!strcasecmp(var, "reserve-agents")) {
+                       } else if (!strcasecmp(var, "reserve-agents")) {
                                globals.reserve_agents = switch_true(val);
+                       } else if (!strcasecmp(var, "truncate-tiers-on-load")) {
+                               globals.truncate_tiers = switch_true(val);
+                       } else if (!strcasecmp(var, "truncate-agents-on-load")) {
+                               globals.truncate_agents = switch_true(val);
                        }
                }
        }
@@ -1465,6 +1471,20 @@ static switch_status_t load_config(void)
        cc_execute_sql(NULL, sql, NULL);
        switch_safe_free(sql);
 
+       /* Truncating tiers if needed */
+       if (globals.truncate_tiers) {
+               sql = switch_mprintf("delete from tiers;");
+               cc_execute_sql(NULL, sql, NULL);
+               switch_safe_free(sql);
+       }
+
+       /* Truncating agents if needed */
+       if (globals.truncate_agents) {
+               sql = switch_mprintf("delete from agents;");
+               cc_execute_sql(NULL, sql, NULL);
+               switch_safe_free(sql);
+       }
+
        /* Loading queue into memory struct */
        if ((x_queues = switch_xml_child(cfg, "queues"))) {
                for (x_queue = switch_xml_child(x_queues, "queue"); x_queue; x_queue = x_queue->next) {