|
@@ -59,7 +59,7 @@ str from_contact_column = str_init(FROM_CONTACT_COL);
|
|
|
str to_sock_column = str_init(TO_SOCK_COL);
|
|
|
str from_sock_column = str_init(FROM_SOCK_COL);
|
|
|
str sflags_column = str_init(SFLAGS_COL);
|
|
|
-str toroute_column = str_init(TOROUTE_COL);
|
|
|
+str toroute_name_column = str_init(TOROUTE_NAME_COL);
|
|
|
str req_uri_column = str_init(REQ_URI_COL);
|
|
|
str dialog_table_name = str_init(DIALOG_TABLE_NAME);
|
|
|
int dlg_db_mode = DB_MODE_NONE;
|
|
@@ -197,7 +197,7 @@ static int select_entire_dialog_table(db1_res_t ** res, int fetch_num_rows)
|
|
|
&from_cseq_column, &to_cseq_column, &from_route_column,
|
|
|
&to_route_column, &from_contact_column, &to_contact_column,
|
|
|
&from_sock_column, &to_sock_column, &sflags_column,
|
|
|
- &toroute_column, &req_uri_column };
|
|
|
+ &toroute_name_column, &req_uri_column };
|
|
|
|
|
|
if(use_dialog_table() != 0){
|
|
|
return -1;
|
|
@@ -265,6 +265,7 @@ static int load_dialog_info_from_db(int dlg_hash_size, int fetch_num_rows)
|
|
|
struct dlg_cell *dlg;
|
|
|
str callid, from_uri, to_uri, from_tag, to_tag, req_uri;
|
|
|
str cseq1, cseq2, contact1, contact2, rroute1, rroute2;
|
|
|
+ str toroute_name;
|
|
|
unsigned int next_id;
|
|
|
|
|
|
|
|
@@ -366,6 +367,9 @@ static int load_dialog_info_from_db(int dlg_hash_size, int fetch_num_rows)
|
|
|
dlg->bind_addr[DLG_CALLER_LEG] = create_socket_info(values, 16);
|
|
|
dlg->bind_addr[DLG_CALLEE_LEG] = create_socket_info(values, 17);
|
|
|
|
|
|
+ GET_STR_VALUE(toroute_name, values, 19, 0, 0);
|
|
|
+ dlg_set_toroute(dlg, &toroute_name);
|
|
|
+
|
|
|
/*restore the timer values */
|
|
|
if (0 != insert_dlg_timer( &(dlg->tl), (int)dlg->tl.timeout )) {
|
|
|
LM_CRIT("Unable to insert dlg %p [%u:%u] "
|
|
@@ -456,7 +460,7 @@ int update_dialog_dbinfo(struct dlg_cell * cell)
|
|
|
&start_time_column, &state_column, &timeout_column,
|
|
|
&from_cseq_column, &to_cseq_column, &from_route_column,
|
|
|
&to_route_column, &from_contact_column,&to_contact_column,
|
|
|
- &sflags_column, &toroute_column, &req_uri_column };
|
|
|
+ &sflags_column, &toroute_name_column, &req_uri_column };
|
|
|
|
|
|
if(use_dialog_table()!=0)
|
|
|
return -1;
|
|
@@ -473,7 +477,8 @@ int update_dialog_dbinfo(struct dlg_cell * cell)
|
|
|
VAL_TYPE(values+17) = VAL_TYPE(values+20) = DB1_STR;
|
|
|
|
|
|
SET_NULL_FLAG(values, i, DIALOG_TABLE_COL_NO-6, 0);
|
|
|
- VAL_TYPE(values+18) = VAL_TYPE(values+19) = DB1_INT;
|
|
|
+ VAL_TYPE(values+18) = DB1_INT;
|
|
|
+ VAL_TYPE(values+19) = DB1_STR;
|
|
|
|
|
|
/* lock the entry */
|
|
|
entry = (d_table->entries)[cell->h_entry];
|
|
@@ -514,8 +519,9 @@ int update_dialog_dbinfo(struct dlg_cell * cell)
|
|
|
|
|
|
VAL_NULL(values+18) = 0;
|
|
|
VAL_INT(values+18) = cell->sflags;
|
|
|
- VAL_NULL(values+19) = 0;
|
|
|
- VAL_INT(values+19) = cell->toroute;
|
|
|
+
|
|
|
+ SET_STR_VALUE(values+19, cell->toroute_name);
|
|
|
+ SET_PROPER_NULL_FLAG(cell->toroute_name, values, 19);
|
|
|
SET_STR_VALUE(values+20, cell->req_uri);
|
|
|
SET_PROPER_NULL_FLAG(cell->req_uri, values, 20);
|
|
|
|
|
@@ -585,7 +591,7 @@ void dialog_update_db(unsigned int ticks, void * param)
|
|
|
&start_time_column, &state_column, &timeout_column,
|
|
|
&from_cseq_column, &to_cseq_column, &from_route_column,
|
|
|
&to_route_column, &from_contact_column, &to_contact_column,
|
|
|
- &sflags_column, &toroute_column, &req_uri_column };
|
|
|
+ &sflags_column, &toroute_name_column, &req_uri_column };
|
|
|
|
|
|
if(use_dialog_table()!=0)
|
|
|
return;
|
|
@@ -602,7 +608,8 @@ void dialog_update_db(unsigned int ticks, void * param)
|
|
|
|
|
|
SET_NULL_FLAG(values, i, DIALOG_TABLE_COL_NO-6, 0);
|
|
|
|
|
|
- VAL_TYPE(values+18) = VAL_TYPE(values+19) = DB1_INT;
|
|
|
+ VAL_TYPE(values+18) = DB1_INT;
|
|
|
+ VAL_TYPE(values+19) = DB1_STR;
|
|
|
|
|
|
LM_DBG("saving current_info \n");
|
|
|
|
|
@@ -654,7 +661,10 @@ void dialog_update_db(unsigned int ticks, void * param)
|
|
|
values, 17);
|
|
|
|
|
|
VAL_INT(values+18) = cell->sflags;
|
|
|
- VAL_INT(values+19) = cell->toroute;
|
|
|
+
|
|
|
+ SET_STR_VALUE(values+19, cell->toroute_name);
|
|
|
+ SET_PROPER_NULL_FLAG(cell->toroute_name,
|
|
|
+ values, 19);
|
|
|
|
|
|
SET_STR_VALUE(values+20, cell->req_uri);
|
|
|
SET_PROPER_NULL_FLAG(cell->req_uri,
|