Module: sip-router
Branch: tmp/tm_async_reply_support
Commit: 7ec4b5106ce14f353b5cb3ec0af9bc0af4ac5f90
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=7ec4b51…
Author: Richard Good <richard.good(a)smilecoms.com>
Committer: Richard Good <richard.good(a)smilecoms.com>
Date: Fri Mar 15 17:57:36 2013 +0200
tm: bug fix t_continue for responses
- t_continue.c : Only set as final response if result code >= 200 when continuing a suspended response
---
modules/tm/t_suspend.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/modules/tm/t_suspend.c b/modules/tm/t_suspend.c
index 607be99..9aea87f 100644
--- a/modules/tm/t_suspend.c
+++ b/modules/tm/t_suspend.c
@@ -328,7 +328,11 @@ int t_continue(unsigned int hash_index, unsigned int label,
//}
} else {
LOG(L_DBG,"t is NOT local sending relaying reply with status code: [%d]", t->uac[branch].reply->first_line.u.reply.statuscode);
- reply_status=relay_reply( t, t->uac[branch].reply, branch, t->uac[branch].reply->first_line.u.reply.statuscode,0, 1 );
+ int do_put_on_wait = 0;
+ if(t->uac[branch].reply->first_line.u.reply.statuscode>=200){
+ do_put_on_wait = 1;
+ }
+ reply_status=relay_reply( t, t->uac[branch].reply, branch, t->uac[branch].reply->first_line.u.reply.statuscode,0, do_put_on_wait );
//TODO do we need this?
//if (reply_status == RPS_COMPLETED) {
/* no more UAC FR/RETR (if I received a 2xx, there may
Module: sip-router
Branch: tmp/tm_async_reply_support
Commit: 27cd1fac72c48fca1891ad24499af70f4a6b02c2
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=27cd1fa…
Author: Richard Good <richard.good(a)smilecoms.com>
Committer: Richard Good <richard.good(a)smilecoms.com>
Date: Fri Mar 15 17:49:55 2013 +0200
tm: bug fixes for t_continue on responses
- free uac branch once sent and update FR/RETR timers
---
modules/tm/t_suspend.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/modules/tm/t_suspend.c b/modules/tm/t_suspend.c
index 2408749..607be99 100644
--- a/modules/tm/t_suspend.c
+++ b/modules/tm/t_suspend.c
@@ -164,7 +164,6 @@ int t_continue(unsigned int hash_index, unsigned int label,
{
struct cell *t;
struct sip_msg faked_req;
- struct sip_msg faked_reply;
int branch;
struct ua_client *uac =NULL;
int ret;
@@ -285,13 +284,15 @@ int t_continue(unsigned int hash_index, unsigned int label,
) {
//TODO not sure if this will work yet - think we need to pass which branch to continue when we call t_continue!
if (t->uac[branch].suspended_reply==1){
- LOG(L_DBG,"Found branch that has suspend reply set!");
+ LOG(L_DBG,"Found branch that has suspend reply set");
- LOG(L_DBG,"Disabling suspend branch!");
+ LOG(L_DBG,"Disabling suspend branch");
t->uac[branch].reply->flags &= ~FL_RPL_SUSPENDED;
+ if (t->uas.request) t->uas.request->flags&= ~FL_RPL_SUSPENDED;
+
t->uac[branch].suspended_reply = 0;
- LOG(L_DBG,"Running pre script!");
+ LOG(L_DBG,"Running pre script");
if (exec_pre_script_cb(t->uac[branch].reply, ONREPLY_CB_TYPE)>0) {
LOG(L_DBG,"Success running pre script!");
if (run_top_route(route, t->uac[branch].reply, 0)<0){
@@ -306,7 +307,6 @@ int t_continue(unsigned int hash_index, unsigned int label,
LOG(L_DBG,"Failed running pre script!");
}
-
int reply_status;
if ( is_local(t) ) {
LOG(L_DBG,"t is local sending local reply with status code: [%d]", t->uac[branch].reply->first_line.u.reply.statuscode);
@@ -364,9 +364,12 @@ int t_continue(unsigned int hash_index, unsigned int label,
( (last_uac_status<msg_status) &&
((msg_status>=180) || (last_uac_status==0)) )
) ) { /* provisional now */
- restart_rb_fr(& uac->request, t->fr_inv_timeout);
+ restart_rb_fr(& t->uac[branch].request, t->fr_inv_timeout);
t->uac[branch].request.flags|=F_RB_FR_INV; /* mark fr_inv */
}
+
+ sip_msg_free(t->uac[branch].reply);
+ t->uac[branch].reply = 0;
}
}
Module: sip-router
Branch: master
Commit: 85b26219f9e4c3c8c7c990a4897d40645b4ad6e7
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=85b2621…
Author: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Date: Fri Mar 15 15:04:07 2013 +0000
modules/outbound: Warn during mod_init() if STUN is not built or enabled
- STUN is required for outbound with UDP. Don't want to stop Kamailio starting
when the outbound module is loaded and STUN is not available - but a warning
seems appropriate.
---
modules/outbound/ob_mod.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/modules/outbound/ob_mod.c b/modules/outbound/ob_mod.c
index 7cf0c74..fb110d8 100644
--- a/modules/outbound/ob_mod.c
+++ b/modules/outbound/ob_mod.c
@@ -98,6 +98,15 @@ static int mod_init(void)
"random bytes\n", ob_key.len);
}
+#ifndef USE_STUN
+ LM_WARN("STUN support not built-in. UDP keep-alive not supported.\n");
+#else
+ if (stun_allow_stun != 1)
+ {
+ LM_WARN("STUN disabled. UDP keep-alive not supported.\n");
+ }
+#endif
+
return 0;
}
Module: sip-router
Branch: tmp/tm_async_reply_support
Commit: 490bb8bb6f15d53ba8aee8b93d8f3e1a8443861c
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=490bb8b…
Author: Richard Good <richard.good(a)smilecoms.com>
Committer: Richard Good <richard.good(a)smilecoms.com>
Date: Fri Mar 15 15:55:41 2013 +0200
tm: 2nd run allowing t_suspend/t_continue for resp
- Stop reply being relayed when msg is suspended and relay reply when transaction continued
---
modules/tm/t_reply.c | 12 ++++
modules/tm/t_suspend.c | 153 +++++++++++++++++++++++++++++++++---------------
2 files changed, 117 insertions(+), 48 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=490…
Hi,
As 4.0.0 is now out I thought it would be a good time to post a summary
for those who are interested in outbound support.
I have listed the known issues below, their status, and what is likely
to be available as bug-fixes in the 4.0 branch.
_*1 Registrar module issues surrounding Require:/Supported: headers and
outbound
*_*Detail:* The registrar module doesn't quite follow the procedures in
RFC 5626 with regards to checking and setting Require: and Supported:
headers (issue identified by Olle during SIPit)
*Status**:* Fixed in pd/outbound (some tidying of the parser code still
required)
*4.0 branch:* won't be fixed in this branch as some extensive changes
have been made to the Kamailio parser code to support these fixes
*_2 Registrar module cannot unregister on broken flo_*_*w
*_*Detail:* When a broken flow is detected the contact binding
associated with that flow should be removed to prevent it being used
again. Failure to do so could result in a large number of old, broken,
contact bindings ending up in usrloc (especially if long registration
expiry times are used)
*Status:* Fix in progress in pd/outbound (updated API needs to be tested
and ruid needs to be added to the destination set and made available as
a PV)
*4.0 branch:* won't be fixed in this branch as the changes are
architectural in nature
_*3 Forking issues with outbound
*_*Detail**:* When a broken flow is found during forking we need to be
able to re-send the request to that client instance immediately without
waiting for all other forked legs to complete (issue identified by Olle
during SIPit)
*Status:* Hugh Waite is working on this. An email describing the
proposed fix will be sent to sr-dev soon for others to comment on.
*4.0 branch:* won't be fixed in this branch as this will require
extensive architectural changes relating to the handling of branch failures
_*4) Broken in-dialog routing when using outbound
*_*Detail:* In-dialog requests (including ACK and BYE) are incorrectly
routed when outbound is used (issued identified by Olle during SIPit)
*Status:* The bug is in the loose routing code in the rr module. I now
have a test system for this here and will work on this issue once issues
1 and 2 are finished.
*4.0 branch:* will be fixed in this branch. It should be a relatively
small change in one function in the rr module.
The upshot of this is that I expect Kamailio 4.0.1 (when it is released)
to be suitable for use as an outbound edge proxy, but anyone wanting to
use Kamailio as an outbound registrar will need Kamailio 4.1.0 and above.
Regards,
Peter
__
Module: sip-router
Branch: master
Commit: 3445718155b324c3c9e4eac0d6137b6d8dca8cbf
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=3445718…
Author: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley(a)crocodile-rcs.com>
Date: Fri Mar 15 11:28:25 2013 +0000
Merge branch 'outbound'
* outbound: (46 commits)
modules/registrar: fixed lock usage in unregister()
modules/pv: can only retrieve $ruid for a request
modules/pv: added new $ruid and $branch(ruid) PVs
modules/xprint: updated use of get_branch() and next_branch() to cope with additional argument
modules/tm: updated use of get_branch() and next_branch() to cope with additional argument
modules/pv: updated use of get_branch() and next_branch() to cope with additional argument
modules/permissions: updated use of get_branch() and next_branch() to cope with additional argument
modules/domain: updated use of get_branch() and next_branch() to cope with additional argument
core: updated use of get_branch() and next_branch() to cope with additional argument
core: updated get_branch() and next_branch() to return ruid (if set)
modules/tm: updated t_serial to store/retrieve ruid
modules/registrar: tidied up unregister() function
modules/ims_isc: updated to include new argument to append_branch()
modules/ims_icscf: updated to include new argument to append_branch()
modules/exec: updated to include new argument to append_branch()
modules/enum: updated to include new argument to append_branch()
modules/dialplan: updated to include new argument to append_branch()
modules/cpl-c: updated to include new argument to append_branch()
modules/corex: updated to include new argument to append_branch()
modules/avpops: updated to include new argument to append_branch()
...
---