[sr-dev] git:master:ed262dfb: topos: update the db storeage for confirmed dialogs

Daniel-Constantin Mierla miconda at gmail.com
Wed Mar 30 13:30:22 CEST 2016


Module: kamailio
Branch: master
Commit: ed262dfb056f94e2fc81bcb59cd744f4924a76ef
URL: https://github.com/kamailio/kamailio/commit/ed262dfb056f94e2fc81bcb59cd744f4924a76ef

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2016-03-30T13:30:07+02:00

topos: update the db storeage for confirmed dialogs

---

Modified: modules/topos/tps_msg.c
Modified: modules/topos/tps_storage.c

---

Diff:  https://github.com/kamailio/kamailio/commit/ed262dfb056f94e2fc81bcb59cd744f4924a76ef.diff
Patch: https://github.com/kamailio/kamailio/commit/ed262dfb056f94e2fc81bcb59cd744f4924a76ef.patch

---

diff --git a/modules/topos/tps_msg.c b/modules/topos/tps_msg.c
index f11c0bb..c350db5 100644
--- a/modules/topos/tps_msg.c
+++ b/modules/topos/tps_msg.c
@@ -668,6 +668,8 @@ int tps_request_received(sip_msg_t *msg, int dialog)
 	uint32_t direction = TPS_DIR_DOWNSTREAM;
 	int ret;
 
+	LM_DBG("handling incoming request\n");
+
 	if(dialog==0) {
 		/* nothing to do for initial request */
 		return 0;
@@ -765,6 +767,8 @@ int tps_response_received(sip_msg_t *msg)
 	str ftag;
 	uint32_t direction;
 
+	LM_DBG("handling incoming response\n");
+
 	if(msg->first_line.u.reply.statuscode==100) {
 		/* nothing to do - it should be absorbed */
 		return 0;
@@ -840,6 +844,8 @@ int tps_request_sent(sip_msg_t *msg, int dialog, int local)
 	str xuuid;
 	int direction = TPS_DIR_DOWNSTREAM;
 
+	LM_DBG("handling outgoing request\n");
+
 	memset(&mtsd, 0, sizeof(tps_data_t));
 	memset(&btsd, 0, sizeof(tps_data_t));
 	memset(&stsd, 0, sizeof(tps_data_t));
@@ -872,7 +878,7 @@ int tps_request_sent(sip_msg_t *msg, int dialog, int local)
 	}
 
 	if(dialog!=0) {
-		if(tps_storage_load_dialog(msg, &btsd, &stsd)==0) {
+		if(tps_storage_load_dialog(msg, &mtsd, &stsd)==0) {
 			ptsd = &stsd;
 		}
 	}
@@ -923,6 +929,8 @@ int tps_response_sent(sip_msg_t *msg)
 	int direction = TPS_DIR_UPSTREAM;
 	str xvbranch = {0, 0};
 
+	LM_DBG("handling outgoing response\n");
+
 	memset(&mtsd, 0, sizeof(tps_data_t));
 	memset(&stsd, 0, sizeof(tps_data_t));
 	memset(&btsd, 0, sizeof(tps_data_t));
diff --git a/modules/topos/tps_storage.c b/modules/topos/tps_storage.c
index 4fb7cd6..632d2ca 100644
--- a/modules/topos/tps_storage.c
+++ b/modules/topos/tps_storage.c
@@ -1009,6 +1009,21 @@ int tps_storage_update_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd)
 	db_uvals[nr_ucols].val.str_val = TPS_STRZ(md->b_rr);
 	nr_ucols++;
 
+	if(msg->first_line.type==SIP_REPLY) {
+		if(sd->b_tag.len<=0
+				&& msg->first_line.u.reply.statuscode>=200
+				&& msg->first_line.u.reply.statuscode<300) {
+			db_ucols[nr_ucols] = &td_col_b_tag;
+			db_uvals[nr_ucols].type = DB1_STR;
+			db_uvals[nr_ucols].val.str_val = TPS_STRZ(md->b_tag);
+			nr_ucols++;
+
+			db_ucols[nr_ucols] = &td_col_iflags;
+			db_uvals[nr_ucols].type = DB1_INT;
+			db_uvals[nr_ucols].val.int_val = 1;
+			nr_ucols++;
+		}
+	}
 	if (_tpsdbf.use_table(_tps_db_handle, &td_table_name) < 0) {
 		LM_ERR("failed to perform use table\n");
 		return -1;




More information about the sr-dev mailing list