MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / cc_load_db_data

Function cc_load_db_data

modules/call_center/cc_db.c:607–839  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

605
606
607int cc_load_db_data( struct cc_data *data)
608{
609 db_key_t columns[13];
610 db_res_t* res;
611 db_row_t* row;
612 int i, j;
613 str id,skill,cid;
614 unsigned int priority, logstate, wrapup, wrapup_end_time;
615 unsigned int diss_hangup, diss_ewt_th, diss_qsize_th, diss_onhold_th;
616 str messages[MAX_AUDIO];
617
618 cc_dbf.use_table( cc_db_handle, &cc_flow_table_name);
619
620 columns[0] = &ccf_flowid_column;
621 columns[1] = &ccf_priority_column;
622 columns[2] = &ccf_skill_column;
623 columns[3] = &ccf_cid_column;
624 columns[4] = &ccf_max_wrapup_column;
625 columns[5] = &ccf_dissuading_hangup_column;
626 columns[6] = &ccf_dissuading_ewt_th_column;
627 columns[7] = &ccf_dissuading_qsize_th_column;
628 columns[8] = &ccf_dissuading_onhold_th_column;
629 columns[9] = &ccf_m_welcome_column;
630 columns[10] = &ccf_m_queue_column;
631 columns[11] = &ccf_m_dissuading_column;
632 columns[12] = &ccf_m_flow_id_column;
633
634 if (0/*DB_CAPABILITY(cc_dbf, DB_CAP_FETCH))*/) {
635 if ( cc_dbf.query( cc_db_handle, 0, 0, 0, columns, 0, 13, 0, 0 ) < 0) {
636 LM_ERR("DB query failed\n");
637 return -1;
638 }
639 if(cc_dbf.fetch_result( cc_db_handle, &res, CC_FETCH_ROWS)<0) {
640 LM_ERR("Error fetching rows\n");
641 return -1;
642 }
643 } else {
644 if ( cc_dbf.query( cc_db_handle, 0, 0, 0, columns, 0, 13, 0, &res)<0) {
645 LM_ERR("DB query failed\n");
646 return -1;
647 }
648 }
649
650 LM_DBG("%d records found in %.*s\n",
651 RES_ROW_N(res), cc_flow_table_name.len,cc_flow_table_name.s );
652
653 do {
654 for(i=0; i < RES_ROW_N(res); i++) {
655 row = RES_ROWS(res) + i;
656 /* flowID column */
657 check_val( ROW_VALUES(row), DB_STRING, 1, 1, "flowid");
658 id.s = (char*)VAL_STRING(ROW_VALUES(row));
659 id.len = strlen(id.s);
660 /* PRIORITY column */
661 check_val( ROW_VALUES(row)+1, DB_INT, 1, 0, "priority");
662 priority = VAL_INT(ROW_VALUES(row)+1);
663 /* SKILL column */
664 check_val( ROW_VALUES(row)+2, DB_STRING, 1, 1, "skill");

Callers 2

mod_initFunction · 0.85
mi_cc_reloadFunction · 0.85

Calls 2

add_cc_flowFunction · 0.85
add_cc_agentFunction · 0.85

Tested by

no test coverage detected