[reSIProcate] Missing non-INVITE request before BYE
Hello.
In case when remote UA sends BYE just after INFO not waiting for
termination of INFO transaction, reSIProcate misses the INFO
sometimes. The log is attached.
"Terminating a Session with a BYE Request" / "UAS Behavior" (15.1.2
section of SIP RFC) states:
The UAS MUST still respond to any pending requests received for
that dialog. It is RECOMMENDED that a 487 (Request Terminated)
response be generated to those pending requests."
Therefore, although remote UAs must not use overlapping transactions,
reSIProcate in turn must not miss them.
--
...Bye..Dmitry.
DEBUG | 20050429-193535.779 | SipMgr | RESIP:TRANSPORT | 2216 |
Transport.cxx:209 | incoming from: [ V4 1.2.3.4:5070 UDP received on:
Transport: [ V4 0.0.0.0:5070 UDP connectionId=0 ] connectionId=0 ]
STACK | 20050429-193535.779 | SipMgr | RESIP:TRANSPORT | 2216 |
Transport.cxx:210 |
INFO sip:5.6.7.8:5070 SIP/2.0
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK4313
Call-ID: 5443cf4db969a868@U0U.
CSeq: 5 INFO
Max-Forwards: 5
[...]
STACK | 20050429-193535.779 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:155 | Found matching transaction for SipReq: INFO
5.6.7.8:5070 tid=4313 cseq=INFO / 5 from(wire) -> tid=4313 [
ServerNonInvite/Completed unreliable target=[ V4 1.2.3.4:5070 UDP received on:
Transport: [ V4 0.0.0.0:5070 UDP connectionId=0 ] connectionId=0 ]]
STACK | 20050429-193535.779 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:781 | TransactionState::processServerNonInvite: SipReq:
INFO 5.6.7.8:5070 tid=4313 cseq=INFO / 5 from(wire)
STACK | 20050429-193535.779 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:1472 | tid=4313 sending to : [ V4 1.2.3.4:5070 UDP
received on: Transport: [ V4 0.0.0.0:5070 UDP connectionId=0 ] connectionId=0 ]
DEBUG | 20050429-193535.779 | SipMgr | RESIP:TRANSPORT | 2216 |
Transport.cxx:160 | Adding message to tx buffer to: [ V4 1.2.3.4:5070 UDP
received on: Transport: [ V4 0.0.0.0:5070 UDP connectionId=0 ] connectionId=0 ]
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSPORT | 2216 |
Transport.cxx:209 | incoming from: [ V4 1.2.3.4:5070 UDP received on:
Transport: [ V4 0.0.0.0:5070 UDP connectionId=0 ] connectionId=0 ]
STACK | 20050429-193535.795 | SipMgr | RESIP:TRANSPORT | 2216 |
Transport.cxx:210 |
BYE sip:5.6.7.8:5070 SIP/2.0
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Max-Forwards: 5
Content-Length: 0
STACK | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:190 | No matching transaction for SipReq: BYE
5.6.7.8:5070 tid=11840 cseq=BYE / 6 from(wire)
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionUser.cxx:56 | Checking if SipReq: BYE 5.6.7.8:5070 tid=11840
cseq=BYE / 6 from(wire) is for me
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionUser.cxx:61 | Checking rule...
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
MessageFilterRule.cxx:42 | Matching rule for BYE sip:5.6.7.8:5070 SIP/2.0
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Max-Forwards: 5
Content-Length: 0
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionUser.cxx:64 | Match!
STACK | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:45 | Creating new TransactionState: tid=11840 [
ServerNonInvite/Trying reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
DEBUG | 20050429-193535.795 | SipMgr | RESIP:TRANSACTION | 2216 |
TransactionState.cxx:1535 | Send to TU: TU: DialogUsageManager size=0 BYE
sip:5.6.7.8:5070 SIP/2.0
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Max-Forwards: 5
Content-Length: 0
INFO | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:820 | Got: SipReq: BYE 5.6.7.8:5070 tid=11840 cseq=BYE
/ 6 from(wire)
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1205 | DialogUsageManager::processRequest: SipReq: BYE
5.6.7.8:5070 tid=11840 cseq=BYE / 6 from(wire)
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1486 | Looking for dialogSet:
5443cf4db969a868@xxxxxxxxxxxxx in map:
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1487 | [1645876e3c206309@xxxxxxxxxxxxx -> 0ED1C840,
5443cf4db969a868@xxxxxxxxxxxxx -> 099F2EF8, 791d2071fa54af39@xxxxxxxxxxxxx ->
09A1B8B8, a2190f60f612f80d@xxxxxxxxxxxxx -> 09ABA668,
af3c9b1acd04db3d@xxxxxxxxxxxxx -> 09A0B608]
INFO | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1259 | Handling in-dialog request: SipReq: BYE
5.6.7.8:5070 tid=11840 cseq=BYE / 6 from(wire)
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | DialogId.cxx:50 |
DialogId::DialogId: 5443cf4db969a868@xxxxxxxxxxxxxxxxxxx
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | DialogSet.cxx:669 |
findDialog: 5443cf4db969a868@xxxxxxxxxxxxxxxxxxx in
[5443cf4db969a868@xxxxxxxxxxxxxxxxxxx -> 0ECFAEC0]
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | DialogSet.cxx:365 |
Found matching dialog mClientSubscriptions(0), mServerSubscriptions(0) for
BYE sip:5.6.7.8:5070 SIP/2.0
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Max-Forwards: 5
Content-Length: 0
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | Dialog.cxx:289 |
Dialog::dispatch: SipReq: BYE 5.6.7.8:5070 tid=11840 cseq=BYE / 6 from(wire)
INFO | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | InviteSession.cxx:1050
| Received SipReq: BYE 5.6.7.8:5070 tid=11840 cseq=BYE / 6 from(wire)
DEBUG | 20050429-193535.795 | SipMgr | RESIP | 2216 | Helper.cxx:282 |
Helper::makeResponse(SipReq: BYE 5.6.7.8:5070 tid=11840 cseq=BYE / 6
from(wire) code=200 reason=
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | Dialog.cxx:914 |
Dialog::makeResponse: SIP/2.0 200 OK
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Contact: <sip:5.6.7.8:5070>
Content-Length: 0
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1486 | Looking for dialogSet:
5443cf4db969a868@xxxxxxxxxxxxx in map:
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:1487 | [1645876e3c206309@xxxxxxxxxxxxx -> 0ED1C840,
5443cf4db969a868@xxxxxxxxxxxxx -> 099F2EF8, 791d2071fa54af39@xxxxxxxxxxxxx ->
09A1B8B8, a2190f60f612f80d@xxxxxxxxxxxxx -> 09ABA668,
af3c9b1acd04db3d@xxxxxxxxxxxxx -> 09A0B608]
DEBUG | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 |
DialogUsageManager.cxx:605 | SEND: SIP/2.0 200 OK
To: <sip:SE>;tag=081eec19
From: <sip:1.2.3.4:5070>;tag=13597
Via: SIP/2.0/UDP 1.2.3.4:5070;branch=z9hG4bK11840
Call-ID: 5443cf4db969a868@U0U.
CSeq: 6 BYE
Contact: <sip:5.6.7.8:5070>
Content-Length: 0
DEBUG | 20050429-193535.795 | SipMgr | RESIP | 2216 | SipStack.cxx:269 | SEND:
SipResp: 200 tid=11840 cseq=BYE contact=5.6.7.8:5070 / 6 from(tu)
INFO | 20050429-193535.795 | SipMgr | RESIP:DUM | 2216 | InviteSession.cxx:1435
| Transition InviteSession::Connected -> InviteSession::Terminated