Make the patch for master branch, 4.0 doesn't take any new feature and I applied the patches to master branch anyhow.

Also, do not forget the patch for xml documentation.

Cheers,
Daniel
Patch for master branch is in the attachment.

Changelog:
- documentation is updated
- tcpconn_id initialized to "-1" for contacts loaded from a database during startup (Write-Back & Write-Through database modes). - tcpconn_id is being updated when UA reconnects and refreshes its registration.
diff --git a/modules/usrloc/doc/usrloc_admin.xml b/modules/usrloc/doc/usrloc_admin.xml
index ce7ddfb..4f7e3e5 100644
--- a/modules/usrloc/doc/usrloc_admin.xml
+++ b/modules/usrloc/doc/usrloc_admin.xml
@@ -875,6 +875,26 @@ modparam("usrloc", "db_ops_ruid", 1)
                </example>
        </section>
 
+       <section id="usrloc.p.handle_lost_tcp">
+               <title><varname>handle_lost_tcp</varname> (int)</title>
+               <para>
+                       If set to 1, Kamailio will remove location records made via
+                       TCP/TLS/WS/WSS transports when it looses corresponding tcp connections.
+               </para>
+               <para>
+               <emphasis>
+                       Default value is <quote>0</quote>.
+               </emphasis>
+               <example>
+               <title>Set <varname>handle_lost_tcp</varname> parameter</title>
+               <programlist format="linespecific">
+...
+modparam("usrloc", "handle_lost_tcp", 1)
+...
+<programlisting>
+               </example>
+       </section>
+
        </section>
 
        <section>
diff --git a/modules/usrloc/ucontact.c b/modules/usrloc/ucontact.c
index e7f8938..9cc2e06 100644
--- a/modules/usrloc/ucontact.c
+++ b/modules/usrloc/ucontact.c
@@ -307,6 +307,7 @@ int mem_update_ucontact(ucontact_t* _c, ucontact_info_t* _ci)
        _c->last_keepalive = _ci->last_modified;
        _c->flags = _ci->flags;
        _c->cflags = _ci->cflags;
+       _c->tcpconn_id = _ci->tcpconn_id;
 
        return 0;
 }
diff --git a/modules/usrloc/udomain.c b/modules/usrloc/udomain.c
index f587c1b..244f8e7 100644
--- a/modules/usrloc/udomain.c
+++ b/modules/usrloc/udomain.c
@@ -351,6 +351,9 @@ static inline ucontact_info_t* dbrow2info( db_val_t *vals, str *contact)
                ci.reg_id = VAL_UINT(vals+15);
        }
 
+       /* tcp connection id */
+       ci.tcpconn_id = -1;
+
        return &ci;
 }
 
diff --git a/modules/usrloc/ul_mod.c b/modules/usrloc/ul_mod.c
index 7d88f67..b1be56b 100644
--- a/modules/usrloc/ul_mod.c
+++ b/modules/usrloc/ul_mod.c
@@ -161,7 +161,7 @@ int timer_interval  = 60;                           /*!< Timer interval in seconds */
 int db_mode         = 0;                               /*!< Database sync scheme: 0-no db, 1-write through, 2-write back, 3-only db */
 int use_domain      = 0;                               /*!< Whether usrloc should use domain part of aor */
 int desc_time_order = 0;                               /*!< By default do not enable timestamp ordering */
-int handle_lost_tcp = 0;
+int handle_lost_tcp = 0;                               /*!< By default do not remove contacts before expiration time */
 
 int ul_fetch_rows = 2000;                              /*!< number of rows to fetch from result */
 int ul_hash_size = 9;
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to