Module: sip-router
Branch: master
Commit: 090243564b4d54be19991457f7e014c46a131e06
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0902435…
Author: Miklos Tirpak <miklos(a)iptel.org>
Committer: Miklos Tirpak <miklos(a)iptel.org>
Date: Thu Jul 2 18:37:56 2009 +0200
tm: suspended transaction was not always replied and freed
- When the suspended transaction continued but no new UAC
was added to the transaction, for example all the new branches
tried to reach a blacklisted destination, then there was no
error message returned and the transaction was never freed.
---
modules/tm/t_suspend.c | 40 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 39 insertions(+), 1 deletions(-)
diff --git a/modules/tm/t_suspend.c b/modules/tm/t_suspend.c
index 3c22ab9..2a0cb05 100644
--- a/modules/tm/t_suspend.c
+++ b/modules/tm/t_suspend.c
@@ -39,6 +39,7 @@
#include "h_table.h"
#include "t_lookup.h"
#include "t_fwd.h"
+#include "t_funcs.h"
#include "timer.h"
#include "t_suspend.h"
@@ -145,6 +146,8 @@ int t_continue(unsigned int hash_index, unsigned int label,
Not a huge problem, fr timer will fire, but CANCEL
will not be sent. last_received will be set to 408. */
+ reset_kr();
+
/* fake the request and the environment, like in failure_route */
if (!fake_req(&faked_req, t->uas.request, 0 /* extra flags */, uac)) {
LOG(L_ERR, "ERROR: t_continue: fake_req failed\n");
@@ -171,9 +174,44 @@ int t_continue(unsigned int hash_index, unsigned int label,
/* update the flags */
t->uas.request->flags = faked_req.flags;
+ 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.
+ * The script has hopefully set the error code. If not,
+ * let us reply with a default error.
+ */
+ if ((kill_transaction_unsafe(t,
+ tm_error ? tm_error : E_UNSPEC)) <=0
+ ) {
+ LOG(L_ERR, "ERROR: t_continue: "
+ "reply generation failed\n");
+ /* The transaction must be explicitely released,
+ no more timer is running */
+ UNLOCK_REPLIES(t);
+ t_release_transaction(t);
+ t_unref(t->uas.request);
+ return 0;
+ }
+ }
+ }
+
UNLOCK_REPLIES(t);
- /* release the transaction */
+ /* unref the transaction */
t_unref(t->uas.request);
return 0;
Revision: 5893
http://openser.svn.sourceforge.net/openser/?rev=5893&view=rev
Author: henningw
Date: 2009-07-02 14:27:45 +0000 (Thu, 02 Jul 2009)
Log Message:
-----------
- extend copyright notice a bit
Modified Paths:
--------------
branches/1.5/packaging/debian/copyright
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5892
http://openser.svn.sourceforge.net/openser/?rev=5892&view=rev
Author: henningw
Date: 2009-07-02 10:35:20 +0000 (Thu, 02 Jul 2009)
Log Message:
-----------
- fix EXTRA_DEBUG information about second via in parse_msg
Modified Paths:
--------------
branches/1.3/parser/msg_parser.c
branches/1.4/parser/msg_parser.c
branches/1.5/parser/msg_parser.c
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5889
http://openser.svn.sourceforge.net/openser/?rev=5889&view=rev
Author: ibc_sf
Date: 2009-07-01 11:35:07 +0000 (Wed, 01 Jul 2009)
Log Message:
-----------
- Revert of last commit in kamailio.cfg (it was incorrect).
Modified Paths:
--------------
trunk/etc/kamailio.cfg
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Bugs item #2814137, was opened at 2009-06-29 20:29
Message generated for change (Comment added) made by miconda
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2814137&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver 1.5.x
>Status: Closed
>Resolution: Accepted
Priority: 5
Private: No
Submitted By: Marcus Hunger (marcushunger)
>Assigned to: Daniel-Constantin Mierla (miconda)
Summary: force_rtp_proxy bug
Initial Comment:
force_rtp_proxy seems to handle re-invite wrong, resulting in one-way-audio.
----------------------------------------------------------------------
>Comment By: Daniel-Constantin Mierla (miconda)
Date: 2009-07-02 12:33
Message:
Patch applied to 1.5. Thanks.
----------------------------------------------------------------------
Comment By: Marcus Hunger (marcushunger)
Date: 2009-07-01 12:14
Message:
sdp is in invite and 200 ok. the thing is, nearly the same config still
worked in 1.2-branch, but after an upgrade to 1.4 it stopped.
it happens always, no matter if the callee or caller does the reinvite.
the following trace shows what happens. the rtpproxy-port in invite and
reply is 41324. they must differ as they are used for different
media-streams.
217.10.1.1 - sip-proxy & rtpproxy
172.20.21.2 - sip-proxy doing rtpproxy_* stuff
217.10.66.165 - uac
217.10.1.2 - uas
U 217.10.1.1:5060 -> 172.20.21.2:5060
INVITE sip:3993942p0@217.10.1.2 SIP/2.0.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
Route: <sip:172.20.21.2;lr=on>.
CSeq: 4 INVITE.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
Contact: <sip:3993942e1@217.10.66.165:61020>.
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE,
NOTIFY, PRACK, UPDATE, REFER.
User-Agent: PolycomSoundPointIP-SPIP_650-UA/2.1.2.0078.
Supported: 100rel,replaces.
Allow-Events: talk,hold,conference.
Max-Forwards: 69.
Content-Type: application/sdp.
Content-Length: 297.
X-hint: rr-enforced.
X-nathint: nat.
.
v=0.
o=- 1246290867 1246290869 IN IP4 192.168.234.24.
s=Polycom IP Phone.
c=IN IP4 192.168.234.24.
t=0 0.
m=audio 2262 RTP/AVP 9 0 8 18 101.
a=sendrecv.
a=rtpmap:9 G722/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:8 PCMA/8000.
a=rtpmap:18 G729/8000.
a=rtpmap:101 telephone-event/8000.
a=direction:active.
#
U 172.20.21.2:5060 -> 217.10.1.1:5060
SIP/2.0 100 Giving a try.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
CSeq: 4 INVITE.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
Content-Length: 0.
.
#
U 172.20.21.2:5060 -> 217.10.1.2:5060
INVITE sip:3993942p0@217.10.1.2 SIP/2.0.
Via: SIP/2.0/UDP 172.20.21.2;branch=z9hG4bKe2fc.9dcfa89.0.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
CSeq: 4 INVITE.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
Contact: <sip:3993942e1@217.10.66.165:61020>.
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE,
NOTIFY, PRACK, UPDATE, REFER.
User-Agent: PolycomSoundPointIP-SPIP_650-UA/2.1.2.0078.
Supported: 100rel,replaces.
Allow-Events: talk,hold,conference.
Max-Forwards: 68.
Content-Type: application/sdp.
Content-Length: 315.
X-hint: rr-enforced.
X-nathint: nat.
.
v=0.
o=- 1246290867 1246290869 IN IP4 192.168.234.24.
s=Polycom IP Phone.
c=IN IP4 217.10.1.1.
t=0 0.
m=audio 41324 RTP/AVP 9 0 8 18 101.
a=sendrecv.
a=rtpmap:9 G722/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:8 PCMA/8000.
a=rtpmap:18 G729/8000.
a=rtpmap:101 telephone-event/8000.
a=direction:active.
a=nortpproxy:yes.
#
U 217.10.1.2:5060 -> 172.20.21.2:5060
SIP/2.0 100 Trying.
Via: SIP/2.0/UDP
172.20.21.2;branch=z9hG4bKe2fc.9dcfa89.0;received=172.20.21.2.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
CSeq: 4 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
Supported: replaces, timer.
Contact: <sip:3993942p0@217.10.1.2>.
Content-Length: 0.
.
#
U 217.10.1.2:5060 -> 172.20.21.2:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP
172.20.21.2;branch=z9hG4bKe2fc.9dcfa89.0;received=172.20.21.2.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
CSeq: 4 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
Supported: replaces, timer.
Contact: <sip:3993942p0@217.10.1.2>.
Content-Type: application/sdp.
Content-Length: 329.
.
v=0.
o=root 647471219 647471221 IN IP4 217.10.1.2.
s=sipgate VoIP GW.
c=IN IP4 217.10.1.2.
t=0 0.
m=audio 17732 RTP/AVP 8 0 18 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-16.
a=silenceSupp:off - - - -.
a=ptime:20.
a=sendrecv.
##
U 172.20.21.2:5060 -> 217.10.1.1:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 217.10.1.1:5060;branch=z9hG4bK78fccbad7757B75A.
Via: SIP/2.0/UDP
192.168.234.24;rport=61020;received=217.10.66.165;branch=z9hG4bK78fccbad7757B75A.
From: "Erika" <sip:3993942e1@sipgate.de>;tag=D6DBB0FD-C198C6EA.
To: <sip:10@sipgate.de;user=phone>;tag=as3804b1ae.
Call-ID: e521bbee-f129e0af-f6e95884(a)192.168.234.24.
CSeq: 4 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
Supported: replaces, timer.
Contact: <sip:3993942p0@217.10.1.2>.
Content-Type: application/sdp.
Content-Length: 347.
.
v=0.
o=root 647471219 647471221 IN IP4 217.10.1.2.
s=sipgate VoIP GW.
c=IN IP4 217.10.1.1.
t=0 0.
m=audio 41324 RTP/AVP 8 0 18 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-16.
a=silenceSupp:off - - - -.
a=ptime:20.
a=sendrecv.
a=nortpproxy:yes.
----------------------------------------------------------------------
Comment By: Klaus Darilion (klaus_darilion)
Date: 2009-07-01 09:53
Message:
do you have a SIP trace? Is it maybe related to late offer (SDP in 200 OK
and ACK)? Does the bug happens always or only if the reINVITE is sent by
the callee?
----------------------------------------------------------------------
Comment By: Nobody/Anonymous (nobody)
Date: 2009-06-30 16:15
Message:
in detail, the sdp is rewritten with the wrong port for this direction of
the session. it's the same as the answer's which does not work. to build
the query for the rtp-proxy from- and to-tag the have to be reversed in
this case.
----------------------------------------------------------------------
Comment By: Marcus Hunger (marcushunger)
Date: 2009-06-30 12:45
Message:
happens when i handle a reinvite with rtpproxy_offer("l")
----------------------------------------------------------------------
Comment By: Daniel-Constantin Mierla (miconda)
Date: 2009-06-29 21:19
Message:
When is this happening?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2814137&group_…