Module: sip-router
Branch: master
Commit: 17fc9913737cf3314d317d9b62cfd3dc05f8376e
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=17fc991…
Author: Miklos Tirpak <miklos(a)iptel.org>
Committer: Miklos Tirpak <miklos(a)iptel.org>
Date: Thu Feb 10 14:26:14 2011 +0100
tm: t_pick_branch() cannot ingnore the pending blined UACs
Empty branches shall be considered pending branches
before their final response is set.
When all the responses were dropped in failure route and a new
blind UAC was added, t_pick_branch() did not realize that
there is still at least one pending branch, it returned an error
instead. Later on, the blind UAC was tried to be canceled causing
deadlock.
---
modules/tm/t_reply.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/tm/t_reply.c b/modules/tm/t_reply.c
index c18c716..e65d1b9 100644
--- a/modules/tm/t_reply.c
+++ b/modules/tm/t_reply.c
@@ -1042,8 +1042,11 @@ int t_pick_branch(int inc_branch, int inc_code, struct cell *t, int *res_code)
}
continue;
}
- /* skip 'empty branches' */
- if (!t->uac[b].request.buffer) continue;
+ /* skip 'empty branches'
+ * An empty branch without a final response is still considered
+ * to be a pending, incomplete branch. */
+ if ((!t->uac[b].request.buffer) && (t->uac[b].last_received>=200))
+ continue;
/* there is still an unfinished UAC transaction; wait now! */
if ( t->uac[b].last_received<200 )
return -2;
Hello,
this year the FOSDEM developer conference was a again a really nice event, the
first time with an own room dedicated completely to open source telephony
solutions! If you're interested in our presentation about the new p_usrloc
module and how to scale location services with Kamailio, you can find it at
the usual place on our webserver:
http://kamailio.org/events/2011-fosdem/p_usrloc.pdf
Best regards,
Henning
Hello,
the presentation I did during Fosdem in Brussels last weekend is
available at:
http://www.kamailio.org/events/2011-fosdem/dcm-sip-web-lua.pdf
The focus was to show how to interact with Kamailio via HTTP and how
Kamailio can interact with Web services via HTTP, using Lua to make it
easier. There are slides for a demo config of sending asynchronous
notifications to Twitter on missed calls (using modules app_lua, mqueue,
sqlops and rtimer).
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com