| 605 | |
| 606 | |
| 607 | int 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"); |
no test coverage detected