Module: sip-router
Branch: master
Commit: ca6d901216360694d7834cde05c875c5c141af66
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ca6d901…
Author: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Date: Fri Feb 10 16:18:05 2012 +0000
modules_k/rls: rls_presentity can now be in a different DB from rls_watchers
- During performance testing it was observed that the rls_presentity table
is hit very hard. Separating it off into a different table helps.
- It may also be a good candidate for use with db_cassandra, and putting it
in its own DB is a first step.
- There are two new modparams, one for the dburl and one to give rls_presentity
it's own clean period. Leaving these unset maintains the current behaviour.
Using a different dburl and leaving the new clean period parameter unset
puts rls_presentity in a different DB, but still uses the existing clean period
for it (and rls_watchers).
- Setting the new clean period parameter to 0 means that the timer to clean the
rls_presentity table is not started at all.
- Also cleaned up the xcap table query a little. The arrays allocated for it
were larger than they needed to be.
---
modules_k/rls/README | 286 ++++++++++++++++++++++-----------------
modules_k/rls/doc/rls_admin.xml | 53 +++++++-
modules_k/rls/notify.c | 18 ++--
modules_k/rls/resource_notify.c | 24 ++--
modules_k/rls/rls.c | 88 +++++++++++-
modules_k/rls/rls.h | 2 +
6 files changed, 319 insertions(+), 152 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=ca6…
Module: sip-router
Branch: master
Commit: 4b30db3bce5211b34d6988e585a839fa7bcf4c66
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=4b30db3…
Author: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Date: Fri Feb 10 16:38:27 2012 +0000
modules_k/pua: Simplified dialog matching in hash-table and DB
- SIP dialogs can be matched with just Call-ID, From-Tag, and To-Tag
so I have simplified the lookups/queries to just use those.
- Also some tidy-up of pua_db.c
---
modules_k/pua/hash.c | 26 +--
modules_k/pua/pua_db.c | 505 +++++++++++++-----------------------------------
modules_k/pua/pua_db.h | 1 -
3 files changed, 146 insertions(+), 386 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=4b3…
Module: sip-router
Branch: master
Commit: ee94f5341864d6a9e74e60935f61862832ae1112
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ee94f53…
Author: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Date: Fri Feb 10 16:10:52 2012 +0000
modules_k/rls: New modparam to disable remote (to a domain that is not local) back-end SUBSCRIBEs
- RLS and presence put heavy loads on servers and networks - especially
interconnects between networks.
- Using this modparam disables federation with non-local domains and
prevents RLS sending back-end SUBSCRIBEs to remote destinations.
---
modules_k/rls/README | 74 +++++++++++++++++++++++++--------------
modules_k/rls/doc/rls_admin.xml | 26 ++++++++++++++
modules_k/rls/rls.c | 3 ++
modules_k/rls/rls.h | 2 +
modules_k/rls/subscribe.c | 15 +++++++-
5 files changed, 93 insertions(+), 27 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=ee9…
Module: sip-router
Branch: master
Commit: 04979bc60fcd22752ab74521e1e56da9090a1607
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=04979bc…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Fri Feb 10 11:28:06 2012 +0100
kcore: removed local_route.{c,h} - they are not used
- removed unused code from acc related to local route
---
lib/kcore/local_route.c | 78 -----------------------------------------------
lib/kcore/local_route.h | 42 -------------------------
modules_k/acc/acc_mod.c | 19 -----------
3 files changed, 0 insertions(+), 139 deletions(-)
diff --git a/lib/kcore/local_route.c b/lib/kcore/local_route.c
deleted file mode 100644
index ba2f156..0000000
--- a/lib/kcore/local_route.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *$Id: local_route.c 5132 2008-10-24 11:49:14Z miconda $
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of Kamailio, a free SIP server.
- *
- * Kamailio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * Kamailio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*!
- * \file
- * \brief Local Route related functions.
- */
-
-#include <string.h>
-
-#include "../../dprint.h"
-#include "../../mem/mem.h"
-
-#include "local_route.h"
-
-static lrt_info_t* lrt_info_list = 0;
-static int lrt_info_no = 0;
-
-
-int lrt_do_init_child(void)
-{
- int i;
-
- for ( i=0; i< lrt_info_no; i++ )
- {
- if ( lrt_info_list[i].init && lrt_info_list[i].init()!=0 )
- {
- LM_ERR("failed to init child for local route <%s>\n",
- lrt_info_list[i].name);
- return -1;
- }
- }
- return 0;
-}
-
-int register_lrt_info(lrt_info_t *lrti)
-{
- lrt_info_t *l;
-
- if(lrti==NULL || lrti->name==NULL || lrti->init==NULL)
- return 0;
-
- l = (lrt_info_t*)pkg_realloc(lrt_info_list,
- (lrt_info_no+1)*sizeof(lrt_info_t));
- if (l==0)
- {
- LM_ERR("no more pkg memory\n");
- return -1;
- }
-
- lrt_info_list = l;
- lrt_info_list[lrt_info_no].init = lrti->init;
- lrt_info_list[lrt_info_no].name = lrti->name;
- lrt_info_no++;
-
- return 0;
-}
-
-
diff --git a/lib/kcore/local_route.h b/lib/kcore/local_route.h
deleted file mode 100644
index fe1da2c..0000000
--- a/lib/kcore/local_route.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *$Id: local_route.h 5132 2008-10-24 11:49:14Z miconda $
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of Kamailio, a free SIP server.
- *
- * Kamailio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * Kamailio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*!
- * \file
- * \brief Local Route related functions.
- */
-
-#ifndef _LOCAL_ROUTE_H_
-#define _LOCAL_ROUTE_H_
-
-typedef int (lrt_child_init_f)(void);
-
-typedef struct _lrt_info {
- char *name;
- lrt_child_init_f *init;
-} lrt_info_t;
-
-int lrt_do_init_child(void);
-int register_lrt_info(lrt_info_t *lrti);
-
-#endif
-
diff --git a/modules_k/acc/acc_mod.c b/modules_k/acc/acc_mod.c
index c913eba..c1d6d68 100644
--- a/modules_k/acc/acc_mod.c
+++ b/modules_k/acc/acc_mod.c
@@ -63,7 +63,6 @@
#include <string.h>
#include "../../sr_module.h"
-#include "../../lib/kcore/local_route.h"
#include "../../dprint.h"
#include "../../mem/mem.h"
#include "../../modules/tm/tm_load.h"
@@ -362,18 +361,6 @@ static int free_acc_fixup(void** param, int param_no)
/************************** INTERFACE functions ****************************/
-static int mod_lrt_init( void )
-{
-
-#ifdef SQL_ACC
- if(db_url.s && acc_db_init_child(&db_url)<0) {
- LM_ERR("could not open database connection");
- return -1;
- }
-#endif
-
- return 0;
-}
static int parse_failed_filter(char *s, unsigned short *failed_filter)
{
@@ -416,12 +403,6 @@ static int parse_failed_filter(char *s, unsigned short *failed_filter)
static int mod_init( void )
{
- lrt_info_t li;
- li.init = mod_lrt_init;
- li.name = "acc";
- if(register_lrt_info(&li)!=0)
- return -1;
-
#ifdef SQL_ACC
if (db_url.s) {
db_url.len = strlen(db_url.s);
Module: sip-router
Branch: master
Commit: 390383e2d0dff755ff9f0eb6a6b1fe627dc29949
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=390383e…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Thu Feb 9 15:28:44 2012 +0100
dialog(k): match on callid and ftag for no ACK'ed dialogs
- some of the TM callbacks look for the dialog with initial INVITE that
has no to-tag yet, even that the callback is run on 200ok and dialog was
updated with this field
- reported by Jon Bergli Heier
---
modules_k/dialog/dlg_hash.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/modules_k/dialog/dlg_hash.h b/modules_k/dialog/dlg_hash.h
index fa7566b..06fbd75 100644
--- a/modules_k/dialog/dlg_hash.h
+++ b/modules_k/dialog/dlg_hash.h
@@ -458,6 +458,16 @@ static inline int match_dialog(dlg_cell_t *dlg, str *callid,
*dir = DLG_DIR_DOWNSTREAM;
return 1;
}
+ /* if no ACK yet, might be a lookup of dlg from a TM callback that
+ * runs on 200ok but with initial INVITE that has no to-tag */
+ if(ttag->len==0 && dlg->state==DLG_STATE_CONFIRMED_NA
+ && dlg->tag[DLG_CALLER_LEG].len == ftag->len &&
+ strncmp(dlg->tag[DLG_CALLER_LEG].s, ftag->s, ftag->len)==0 &&
+ strncmp(dlg->callid.s, callid->s, callid->len)==0) {
+
+ *dir = DLG_DIR_DOWNSTREAM;
+ return 1;
+ }
}
}