Hello,
For outbound I currently have a modparam to set the flow token key.
There is absolutely no reason why this should be user configurable,
replicated across multiple Kamailio instances, or survive Kamailio
restart as each flow is unique and should be re-established if there is
a server failure.
I would much prefer to have Kamailio just select its own key at
start-up. Is there any simple way to get Kamailio to select a 20-octet
crypto random string?
Regards,
Peter
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#277 - Added Record Route Header incorrect when Request-URI contains a SIPS URI
User who did this - Hugh James (hugh.james)
----------
Wilco ,but may take a few days due to other commitments
----------
More information can be found at the following URL:
https://sip-router.org/tracker/index.php?do=details&task_id=277#comment795
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
A new Flyspray task has been opened. Details are below.
User who did this - Klaus Feichtinger (kfeichti)
Attached to Project - sip-router
Summary - global variable "TOS" is not supported for IPv6 packets
Task Type - Bug Report
Category - Core
Status - Unconfirmed
Assigned To -
Operating System - All
Severity - Low
Priority - Normal
Reported Version - 3.3
Due in Version - Undecided
Due Date - Undecided
Details - sip packets that are based on IPv6 are not marked with the defined TOS value from the kamailio.cfg config file. The bug was detected in a bridging scenario from IPv4 to IPv6 and vice versa.
It is working fine for IPv4; but IPv6 SIP packets are sent out of Kamailio with dscp (tos) value 0x0.
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=279
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
Spam detection software, running on the system "mail.iptel.org", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: We have an opening for a person with great people skills,
attentive to instructions and a determination to succeed. In addition the
individual must have working knowledge of Microsoft Office, be able to effectively
use social networking sites such as Twitter and Facebook, be organized, well
turned out, a team player and can work independently, are punctual and reliable,
have basic knowledge of internet marketing and have a sharp eye for detail.
[...]
Content analysis details: (15.8 points, 5.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
1.7 URIBL_DBL_SPAM Contains an URL listed in the DBL blocklist
[URIs: europacareers.com]
0.0 CK_HELO_DYNAMIC_SPLIT_IP Relay HELO'd using suspicious hostname
(Split IP)
0.0 TVD_RCVD_IP TVD_RCVD_IP
0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail)
1.3 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net
[Blocked - see <http://www.spamcop.net/bl.shtml?190.191.82.157>]
3.3 RCVD_IN_PBL RBL: Received via a relay in Spamhaus PBL
[190.191.82.157 listed in zen.spamhaus.org]
0.4 RCVD_IN_XBL RBL: Received via a relay in Spamhaus XBL
1.7 URIBL_BLACK Contains an URL listed in the URIBL blacklist
[URIs: europacareers.com]
0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60%
[score: 0.5000]
1.4 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT
[190.191.82.157 listed in bb.barracudacentral.org]
0.8 RDNS_NONE Delivered to internal network by a host with no rDNS
3.6 HELO_DYNAMIC_IPADDR2 Relay HELO'd using suspicious hostname (IP addr
2)
0.0 T_FILL_THIS_FORM_SHORT Fill in a short form with personal information
Granted, I haven't tried 4.0 yet, but in the 3.3 branch, it appears that
the sercmd/binrpc version of dlg.end_dlg doesn't do anything.
So, I have to kill dialogs using: kamctl fifo dlg_end_dlg
Is there a ready explanation?
-- Alex
--
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
United States
Tel: +1-678-954-0670
Web: http://www.evaristesys.com/, http://www.alexbalashov.com/
Module: sip-router
Branch: master
Commit: d80ea02f5d96477e1c6deca581500cfa4a24380e
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d80ea02…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Sun Mar 24 13:53:50 2013 +0100
usrloc: new option for db_mode - DB_READONLY (4)
- location records are loaded only at startup
- no write back to database, not even at shutdown
- useful when registrations are replicated to another node that does the
db storage at runtime
- started from a patch by Marcus Hunger
---
modules/usrloc/README | 51 +++++++++++++++++++---------------
modules/usrloc/doc/usrloc_admin.xml | 9 ++++++
modules/usrloc/ul_mod.c | 14 ++++++---
modules/usrloc/urecord.c | 1 +
modules/usrloc/usrloc.h | 1 +
5 files changed, 48 insertions(+), 28 deletions(-)
diff --git a/modules/usrloc/README b/modules/usrloc/README
index 00ea649..68772fb 100644
--- a/modules/usrloc/README
+++ b/modules/usrloc/README
@@ -580,6 +580,11 @@ modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname")
For example NAT pinging is a killer since during each ping cycle
all nated contact are loaded from the DB; The lack of memory
caching also disable the statistics exports.
+ * 4 - This uses database to load records at startup but uses only
+ memory during the runtime. Records are not written back at all, not
+ even at shutdown. Useful for scenarios when registrations are
+ replicated to a node that does the storage in database during
+ runtime.
Warning
@@ -740,7 +745,7 @@ modparam("usrloc", "xavp_contact", "ulattrs")
5.5. ul_add
5.6. ul_show_contact
-5.1. ul_rm
+5.1. ul_rm
Deletes an entire AOR record (including its contacts).
@@ -749,7 +754,7 @@ modparam("usrloc", "xavp_contact", "ulattrs")
* AOR - user AOR in username[@domain] format (domain must be supplied
only if use_domain option is on).
-5.2. ul_rm_contact
+5.2. ul_rm_contact
Deletes a contact from an AOR record.
@@ -759,7 +764,7 @@ modparam("usrloc", "xavp_contact", "ulattrs")
only if use_domain option is on).
* contact - exact contact to be removed
-5.3. ul_dump
+5.3. ul_dump
Dumps the entire content of the USRLOC in memory cache
@@ -768,11 +773,11 @@ modparam("usrloc", "xavp_contact", "ulattrs")
"brief", a brief dump will be done (only AOR and contacts, with no
other details)
-5.4. ul_flush
+5.4. ul_flush
Triggers the flush of USRLOC memory cache into DB.
-5.5. ul_add
+5.5. ul_add
Adds a new contact for an user AOR.
@@ -788,7 +793,7 @@ modparam("usrloc", "xavp_contact", "ulattrs")
* cflags - per branch flags of the contact
* methods - mask with supported requests of the contact
-5.6. ul_show_contact
+5.6. ul_show_contact
Dumps the contacts of an user AOR.
@@ -802,14 +807,14 @@ modparam("usrloc", "xavp_contact", "ulattrs")
6.1. ul.dump
6.2. ul.lookup table AOR
-6.1. ul.dump
+6.1. ul.dump
Dumps the content of the location table
Parameters:
* None.
-6.2. ul.lookup table AOR
+6.2. ul.lookup table AOR
Looks up the contents of an AOR entry in the location table
@@ -897,7 +902,7 @@ Chapter 2. Developer Guide
1.14. ul_register_ulcb(type ,callback, param)
1.15. ul_get_num_users()
-1.1. ul_register_domain(name)
+1.1. ul_register_domain(name)
The function registers a new domain. Domain is just another name for
table used in registrar. The function is called from fixups in
@@ -912,7 +917,7 @@ Chapter 2. Developer Guide
* const char* name - Name of the domain (also called table) to be
registered.
-1.2. ul_insert_urecord(domain, aor, rec)
+1.2. ul_insert_urecord(domain, aor, rec)
The function creates a new record structure and inserts it in the
specified domain. The record is structure that contains all the
@@ -927,7 +932,7 @@ Chapter 2. Developer Guide
* urecord_t** rec - The newly created record structure.
-1.3. ul_delete_urecord(domain, aor)
+1.3. ul_delete_urecord(domain, aor)
The function deletes all the contacts bound with the given Address Of
Record.
@@ -939,7 +944,7 @@ Chapter 2. Developer Guide
* str* aor - Address of record (aka username) of the record, that
should be deleted.
-1.4. ul_get_urecord(domain, aor)
+1.4. ul_get_urecord(domain, aor)
The function returns pointer to record with given Address of Record.
@@ -949,7 +954,7 @@ Chapter 2. Developer Guide
* str* aor - Address of Record of request record.
-1.5. ul_lock_udomain(domain)
+1.5. ul_lock_udomain(domain)
The function lock the specified domain, it means, that no other
processes will be able to access during the time. This prevents race
@@ -960,14 +965,14 @@ Chapter 2. Developer Guide
Meaning of the parameters is as follows:
* udomain_t* domain - Domain to be locked.
-1.6. ul_unlock_udomain(domain)
+1.6. ul_unlock_udomain(domain)
Unlock the specified domain previously locked by ul_lock_udomain.
Meaning of the parameters is as follows:
* udomain_t* domain - Domain to be unlocked.
-1.7. ul_release_urecord(record)
+1.7. ul_release_urecord(record)
Do some sanity checks - if all contacts have been removed, delete the
entire record structure.
@@ -975,7 +980,7 @@ Chapter 2. Developer Guide
Meaning of the parameters is as follows:
* urecord_t* record - Record to be released.
-1.8. ul_insert_ucontact(record, contact, expires, q, callid, cseq, flags,
+1.8. ul_insert_ucontact(record, contact, expires, q, callid, cseq, flags,
cont, ua, sock)
The function inserts a new contact in the given record with specified
@@ -996,7 +1001,7 @@ cont, ua, sock)
* struct socket_info *sock - socket on which the REGISTER message was
received on.
-1.9. ul_delete_ucontact (record, contact)
+1.9. ul_delete_ucontact (record, contact)
The function deletes given contact from record.
@@ -1006,7 +1011,7 @@ cont, ua, sock)
* ucontact_t* contact - Contact to be deleted.
-1.10. ul_get_ucontact(record, contact)
+1.10. ul_get_ucontact(record, contact)
The function tries to find contact with given Contact URI and returns
pointer to structure representing the contact.
@@ -1016,7 +1021,7 @@ cont, ua, sock)
* str_t* contact - URI of the request contact.
-1.11. ul_get_all_ucontacts (buf, len, flags)
+1.11. ul_get_all_ucontacts (buf, len, flags)
The function retrieves all contacts of all registered users and returns
them in the caller-supplied buffer. If the buffer is too small, the
@@ -1037,7 +1042,7 @@ cont, ua, sock)
* unsigned int flags - Flags that must be set.
-1.12. ul_update_ucontact(contact, expires, q, callid, cseq, set, res, ua,
+1.12. ul_update_ucontact(contact, expires, q, callid, cseq, set, res, ua,
sock)
The function updates contact with new values.
@@ -1056,7 +1061,7 @@ sock)
* struct socket_info *sock - socket on which the REGISTER message was
received on.
-1.13. ul_bind_ursloc( api )
+1.13. ul_bind_ursloc( api )
The function imports all functions that are exported by the USRLOC
module. Overs for other modules which want to user the internal USRLOC
@@ -1065,7 +1070,7 @@ sock)
Meaning of the parameters is as follows:
* usrloc_api_t* api - USRLOC API
-1.14. ul_register_ulcb(type ,callback, param)
+1.14. ul_register_ulcb(type ,callback, param)
The function register with USRLOC a callback function to be called when
some event occures inside USRLOC.
@@ -1078,6 +1083,6 @@ sock)
* void *param - some parameter to be passed to the callback each time
when it is called.
-1.15. ul_get_num_users()
+1.15. ul_get_num_users()
The function loops through all domains summing up the number of users.
diff --git a/modules/usrloc/doc/usrloc_admin.xml b/modules/usrloc/doc/usrloc_admin.xml
index 32d8baa..d38556d 100644
--- a/modules/usrloc/doc/usrloc_admin.xml
+++ b/modules/usrloc/doc/usrloc_admin.xml
@@ -588,6 +588,15 @@ modparam("usrloc", "db_url", "&exampledb;")
caching also disable the statistics exports.
</para>
</listitem>
+ <listitem>
+ <para>
+ 4 - This uses database to load records at startup but uses only
+ memory during the runtime. Records are not written back at all,
+ not even at shutdown. Useful for scenarios when registrations are
+ replicated to a node that does the storage in database during
+ runtime.
+ </para>
+ </listitem>
</itemizedlist>
<warning>
<para>
diff --git a/modules/usrloc/ul_mod.c b/modules/usrloc/ul_mod.c
index 307c887..6f13bf5 100644
--- a/modules/usrloc/ul_mod.c
+++ b/modules/usrloc/ul_mod.c
@@ -413,15 +413,19 @@ static int child_init(int _rank)
return 0;
case DB_ONLY:
case WRITE_THROUGH:
- /* we need connection from working SIP and TIMER and MAIN
- * processes only */
+ /* connect to db only from SIP workers, TIMER and MAIN processes */
if (_rank<=0 && _rank!=PROC_TIMER && _rank!=PROC_MAIN)
return 0;
break;
case WRITE_BACK:
- /* connect only from TIMER (for flush), from MAIN (for
+ /* connect to db only from TIMER (for flush), from MAIN (for
* final flush() and from child 1 for preload */
- if (_rank!=PROC_TIMER && _rank!=PROC_MAIN && _rank!=1)
+ if (_rank!=PROC_TIMER && _rank!=PROC_MAIN && _rank!=PROC_SIPINIT)
+ return 0;
+ break;
+ case DB_READONLY:
+ /* connect to db only from child 1 for preload */
+ if(_rank!=PROC_SIPINIT)
return 0;
break;
}
@@ -432,7 +436,7 @@ static int child_init(int _rank)
return -1;
}
/* _rank==PROC_SIPINIT is used even when fork is disabled */
- if (_rank==PROC_SIPINIT && db_mode!= DB_ONLY) {
+ if (_rank==PROC_SIPINIT && db_mode!=DB_ONLY) {
/* if cache is used, populate domains from DB */
for( ptr=root ; ptr ; ptr=ptr->next) {
if (preload_udomain(ul_dbh, ptr->d) < 0) {
diff --git a/modules/usrloc/urecord.c b/modules/usrloc/urecord.c
index dd98450..bac5616 100644
--- a/modules/usrloc/urecord.c
+++ b/modules/usrloc/urecord.c
@@ -382,6 +382,7 @@ static inline void wb_timer(urecord_t* _r)
void timer_urecord(urecord_t* _r)
{
switch(db_mode) {
+ case DB_READONLY:
case NO_DB: nodb_timer(_r);
break;
/* use also the write_back timer routine to handle the failed
diff --git a/modules/usrloc/usrloc.h b/modules/usrloc/usrloc.h
index 8b96d90..3848d3a 100644
--- a/modules/usrloc/usrloc.h
+++ b/modules/usrloc/usrloc.h
@@ -40,6 +40,7 @@
#define WRITE_THROUGH 1
#define WRITE_BACK 2
#define DB_ONLY 3
+#define DB_READONLY 4
/*forward declaration necessary for udomain*/