]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix ringall issue
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 13 Jul 2010 17:42:36 +0000 (12:42 -0500)
committerJeff Lenk <jeff@jefflenk.com>
Thu, 15 Jul 2010 14:02:57 +0000 (09:02 -0500)
src/mod/applications/mod_fifo/mod_fifo.c

index 646d5d0ff10d3b76f7ab223619c9312ef03d1cca..126b36e97eb951fad42ccfff4f169e40a70f0650 100644 (file)
@@ -1075,11 +1075,14 @@ static int place_call_ringall_callback(void *pArg, int argc, char **argv, char *
        
        cbh->rows[cbh->rowcount++] = h;
 
-       cbh->need--;
-
        if (cbh->rowcount == MAX_ROWS) return -1;
-       
-       return cbh->need ? 0 : -1;
+
+       if (cbh->need) {
+               cbh->need--;
+               return cbh->need ? 0 : -1;
+       }
+
+       return 0;
        
 }
 
@@ -1150,9 +1153,9 @@ static void find_consumers(fifo_node_t *node)
                        switch_core_new_memory_pool(&pool);
                        cbh = switch_core_alloc(pool, sizeof(*cbh));
                        cbh->pool = pool;
-                       cbh->need = node_consumer_wait_count(node);
+                       cbh->need = 1;
 
-                       if (node->outbound_per_cycle && node->outbound_per_cycle < cbh->need) {
+                       if (node->outbound_per_cycle != cbh->need) {
                                cbh->need = node->outbound_per_cycle;
                        }
 
@@ -2916,6 +2919,8 @@ static switch_status_t load_config(int reload, int del_all)
        switch_cache_db_test_reactive(dbh, "delete from fifo_bridge", "drop table fifo_bridge", bridge_sql);
        switch_cache_db_release_db_handle(&dbh);
 
+       fifo_execute_sql("update fifo_outbound set use_count=0,outbound_call_count=0,outbound_fail_count=0", globals.sql_mutex);
+
        if (reload) {
                switch_hash_index_t *hi;
                fifo_node_t *node;
@@ -2945,7 +2950,7 @@ static switch_status_t load_config(int reload, int del_all)
                for (fifo = switch_xml_child(fifos, "fifo"); fifo; fifo = fifo->next) {
                        const char *name, *outbound_strategy;
                        const char *val;
-                       int imp = 0, outbound_per_cycle = 0;
+                       int imp = 0, outbound_per_cycle = 1;
                        int simo_i = 1;
                        int taking_calls_i = 1;
                        int timeout_i = 60;