Hello,
As you will see I have merged my branch back into master.
These changes add a new event route [tm:branch-failure] to the tm module
which is run when any failure response is received on a transaction.
The event_route uses a new route type BRANCH_ROUTE which limits the
functions that can be run in the route.
The functions t_check_status(), t_next_contact_flow(), t_relay() and
unregister() can be used in this route.
A new pv $T_reply_ruid is accessible in this route which can be used to
unregister a single contact entry.
The following example route can be used on a registrar to handle failed
or invalid flows:
event_route[tm:branch-failure] {
xlog("L_INFO", "event_route[tm:branch-failure]\n");
if (t_check_status("430|403")) {
if (!unregister("location", "$tu", "$T_reply_ruid"))
{
xlog("L_WARN", "failed to unregister $tu with
ruid $T_reply_ruid\n");
}
if (!t_next_contact_flow())
{
xlog("L_INFO", "No more flows\n");
}
else
{
xlog("L_INFO", "Next flow\n");
t_relay();
}
}
}
Any bugs, memory leaks etc. let me know!
Hugh
--
Hugh Waite
Principal Design Engineer
Crocodile RCS Ltd.
Hi,
I am trying to use t_suspend()/t_continue() multiple times on the same
transaction. Calling t_suspend() more than once works, but the second
time I call t_continue() the transaction is killed and a 500 response is
sent. It is the "if (branch == t->nr_of_outgoings)" check from the code
fragment below (from t_suspend.c:t_continue()) that results in the
transaction being killed - you can see the debug/error line I added to
determine this in the fragment.
Is using t_suspend()/t_continue() multiple times something that should
work?
Thanks,
Peter
if (t->uas.status < 200) {
/* No final reply has been sent yet.
* Check whether or not there is any pending branch.
*/
for ( branch = 0;
branch < t->nr_of_outgoings;
branch++
) {
if ((t->uac[branch].request.buffer != NULL)
&& (t->uac[branch].last_received < 200)
)
break;
}
if (branch == t->nr_of_outgoings) {
/* There is not any open branch so there is
* no chance that a final response will be
received. */
ret = 0;
LM_ERR("branch == t->nr_of_outgoings\n");
goto kill_trans;
}
}
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd
Hi, the new RFC 6665 mandates that the subscription dialog is made
*after* the first NOTIFY from the UAS (rather than after the 200 to
the initial SUBSCRIBE). This means that the UAC MUST take the route
set from the *first* received NOTIFY (instead of taking it from the
200 to the initial SUBSCRIBE).
Therefore a proxy compliant with RFC 6665 MUST always add RR to
in-dialog NOTIFY requests and thus, I propose that the default SR
script file implements it.
Regards.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>
Hi,
The Flowroute development team is pleased to announce a complete
overhaul of the json and jsonrpc-c modules, originally authored two
years ago.
Credit should first and foremost go to Joe Hillenbrand who did most of
the new development. Jordan Levy (our CTO) and I were also involved in
the updates and QA to a lesser extent.
The updated modules are available in the mgw/json branch.
In addition to the Kamailio modules, we have developed a Twisted
Python library to complement the jsonrpc-c module:
https://github.com/flowroute/txjason
We would be interested in any critiques of the API, documentation, and
code. Please let us know if you use these modules and especially if
you find any bugs.
We hope to merge this into master once we have had it in production
for awhile and (ideally) have received some feedback from other users.
Feel free to contact either Joe (joe(a)flowroute.com) or me directly
with any questions or comments.
--
Matthew Williams
Flowroute LLC
http://www.flowroute.com/
Hi
We are using the t_suspend and t_continue functionality to asynchronously
send Diameter messages.
This works nicely when we suspend and resume on a SIP request. However in
some circumstances we want to send a Diameter message on a SIP response.
I have found that the SIP responses continue to be relayed despite being
suspended and returning 0 to the cfg file.
I am investigating the cause but before I get any deeper does anyone know
if the t_suspend and t_continue functionality in the tm module can be used
on a SIP response?
Regards
Richard.
This email is subject to the disclaimer of Smile Communications (PTY) Ltd. at http://www.smilecoms.com/disclaimer
Hi Henning & Charles,
So far the module performed pretty good for us.
But there might be a problem, when I shut down Kamailio I see this in the logs :
ERROR: memcached [memcached.c:255]: mod_destroy(): memory manager callbacks not removed, returned INVALID ARGUMENTS but continue anyway
It also dumps core at shutdown:
http://pastebin.com/5uJJ3tp4
Regards,
Dragos
________________________________
From: Henning Westerholt <hw(a)kamailio.org>
To: sr-users(a)lists.sip-router.org
Cc: Charles Chance <charles.chance(a)sipcentric.com>; Dragos Oancea <droancea(a)yahoo.com>
Sent: Friday, June 14, 2013 6:24 PM
Subject: Re: [SR-Users] memcache problem - reporting protocol error
Am Freitag, 7. Juni 2013, 12:07:00 schrieb Charles Chance:
> Yes, that should work fine.
>
> Cheers,
Hello Dragos,
just one thing to add - if you find any issues with the master version of the
module, please report to our developer list that we could take a look.
Best regards,
Henning Westerholt
Module: sip-router
Branch: master
Commit: b252d4ec79446bd915fe2eb6bcf8556d3275343c
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=b252d4e…
Author: Henning Westerholt <hw(a)kamailio.org>
Committer: Henning Westerholt <hw(a)kamailio.org>
Date: Sun Jun 30 16:06:16 2013 +0200
memcached: document new memory parameter for memory manager setting
---
modules/memcached/README | 21 +++++++++++++++++++++
modules/memcached/doc/memcached_admin.xml | 26 ++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/modules/memcached/README b/modules/memcached/README
index 1aeb1f9..730fa4d 100644
--- a/modules/memcached/README
+++ b/modules/memcached/README
@@ -27,6 +27,7 @@ Henning Westerholt
4.2. expire (integer)
4.3. mode (integer)
4.4. timeout (integer)
+ 4.5. memory (integer)
5.
@@ -42,6 +43,7 @@ Henning Westerholt
1.6. Set expire parameter
1.7. Set mode parameter
1.8. Set timeout parameter
+ 1.9. Set memory parameter
Chapter 1. Admin Guide
@@ -64,6 +66,7 @@ Chapter 1. Admin Guide
4.2. expire (integer)
4.3. mode (integer)
4.4. timeout (integer)
+ 4.5. memory (integer)
5.
@@ -176,6 +179,7 @@ xlog("stored value is $mct(test)"); # will return <null>
4.2. expire (integer)
4.3. mode (integer)
4.4. timeout (integer)
+ 4.5. memory (integer)
4.1. servers (str)
@@ -238,6 +242,23 @@ modparam("memcached", "mode", 0)
modparam("memcached", "timeout", 10000)
...
+4.5. memory (integer)
+
+ The memory mode for the memcached client library. The library can use
+ the system memory manager or the internal memory manager from Kamailio.
+ The system memory manager configuration is the default, most
+ implementations (like other projects) probably use this approach as
+ well. The internal memory configuration should be faster and protects
+ better against memory leaks that could bring down your server, as the
+ available memory pool is limited by the Kamailio configuration.
+
+ Default value is “0” (use system memory manager).
+
+ Example 1.9. Set memory parameter
+...
+modparam("memcached", "memory", 1)
+...
+
5.1. Exported pseudo-variables
5.1. Exported pseudo-variables
diff --git a/modules/memcached/doc/memcached_admin.xml b/modules/memcached/doc/memcached_admin.xml
index 87dd8bb..29f17e9 100644
--- a/modules/memcached/doc/memcached_admin.xml
+++ b/modules/memcached/doc/memcached_admin.xml
@@ -241,6 +241,32 @@ modparam("memcached", "timeout", 10000)
</programlisting>
</example>
</section>
+ <section>
+ <title><varname>memory</varname> (integer)</title>
+ <para>
+ The memory mode for the memcached client library. The library can
+ use the system memory manager or the internal memory manager from
+ &kamailio;. The system memory manager configuration is the default,
+ most implementations (like other projects) probably use this
+ approach as well. The internal memory configuration should be
+ faster and protects better against memory leaks that could bring
+ down your server, as the available memory pool is limited by the
+ &kamailio; configuration.
+ </para>
+ <para>
+ <emphasis>
+ Default value is <quote>0</quote> (use system memory manager).
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>memory</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("memcached", "memory", 1)
+...
+ </programlisting>
+ </example>
+ </section>
</section>
<section>
<section>
Hi,
I am using SER iptel as a SIP proxy. I have few doubts regarding
ser.cfg configuration file.
1. I am having two config variables, say $a and $b. Can't I do any
comparison of the two in any if loop? e.g. [if ($a == $b)] or something
similar.
2. I exported a function from a module say func1( ). It works perfectly
fine if I pass a static value in it but corrupts the value if I pass a
variable thru it.e.g. func1("11") will work fine but $a = '11' and
func1("%$a") will not work.
3. I want to add a new header field in 200 OK response to REGISTER. How
can I do that?
Please help.
Regards
--Piyush
Thanks and Regards,
--Piyush Bansal
NATT - I & T, Reliance Tech Services, Delhi, India
(M) +91-93502-30362
Enjoy the widest reach of 3G services across India only On Reliance
www.rcom.co.in/3G
The information contained in this electronic message (email) and any attachments to this email are intended for the exclusive use of the addressee(s) and access to this email by any one else is unauthorised. The email may contain proprietary, confidential or privileged information or information relating to Reliance Group. If you are not the intended recipient, please notify the sender by telephone, fax, or return email and delete this communication and any attachments thereto, immediately from your computer. Any dissemination, distribution, or copying of this communication and the attachments thereto (in whole or part), in any manner, is strictly prohibited and actionable at law. The recipient acknowledges that emails are susceptible to alteration and their integrity can not be guaranteed and that Company does not guarantee that any e-mail is virus-free and accept no liability for any damage caused by any virus transmitted by this email.