[sr-dev] git:4.2:5b62b14c: registrar: get instance and ref_id when using msg

Victor Seva linuxmaniac at torreviejawireless.org
Fri Aug 7 11:32:53 CEST 2015


Module: kamailio
Branch: 4.2
Commit: 5b62b14c0655bfff77359d1169b31f74a354783f
URL: https://github.com/kamailio/kamailio/commit/5b62b14c0655bfff77359d1169b31f74a354783f

Author: Victor Seva <linuxmaniac at torreviejawireless.org>
Committer: Victor Seva <linuxmaniac at torreviejawireless.org>
Date: 2015-08-07T11:30:15+02:00

registrar: get instance and ref_id when using msg

needed for check max_contacts properly if sip.instance exists
as contact parameter

See: #278
(cherry picked from commit 99ce64fc555cc0b6b0189d812c6156cb05fb2e1b)

---

Modified: modules/registrar/save.c

---

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

---

diff --git a/modules/registrar/save.c b/modules/registrar/save.c
index a3a5b29..32c2c10 100644
--- a/modules/registrar/save.c
+++ b/modules/registrar/save.c
@@ -322,6 +322,22 @@ static inline ucontact_info_t* pack_ci( struct sip_msg* _m, contact_t* _c, unsig
 			ci.received = path_received;
 		}
 
+		ci.server_id = server_id;
+		if(_m->contact) {
+			_c = (((contact_body_t*)_m->contact->parsed)->contacts);
+			if(_c->instance!=NULL && _c->instance->body.len>0) {
+				ci.instance = _c->instance->body;
+				LM_DBG("set instance[%.*s]\n", ci.instance.len, ci.instance.s);
+			}
+			if(_use_regid && _c->instance!=NULL && _c->reg_id!=NULL && _c->reg_id->body.len>0) {
+				if(str2int(&_c->reg_id->body, &ci.reg_id)<0 || ci.reg_id==0)
+				{
+					LM_ERR("invalid reg-id value\n");
+					goto error;
+				}
+			}
+		}
+
 		allow_parsed = 0; /* not parsed yet */
 		received_found = 0; /* not found yet */
 		m = _m; /* remember the message */




More information about the sr-dev mailing list