[reSIProcate] RouteSet not being Re-Calculated
Hello,
I have included a trace from a simple SIP session below. From the trace
you can see that the UAS is not receiving ACKs in response to an Invite
OK.
The is because the Record-Route is not being computer properly.
According to RFC3261 :
Section 13.2.2.4 2xx Responses
....
If the dialog identifier in the 2xx response matches the dialog
identifier of an existing dialog, the dialog MUST be transitioned to
the "confirmed" state, and the route set for the dialog MUST be
recomputed based on the 2xx response using the procedures of Section
12.2.1.2.
......
However in the Dialog.cxx class the Record-Route does not get
re-calculated. If the mRouteSet variable is reset (in the
Dum::Dialog::dispatch(...)) method based on what was in the response
everything works fine.
Brian.
P.S. Should I be posting such comments here - I noticed that the
SipFoundry page has a bug-tracker of sorts, should I be using that
instead?
========================================================
TRACE
Frame 38 (794 bytes on wire, 794 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: INVITE sip:613@xxxxxxxxxxxxxx SIP/2.0
Method: INVITE
Message Header
To: <sip:613@xxxxxxxxxxxxxx>
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 INVITE
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Content-Type: application/sdp
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 187
Session Description Protocol
Frame 39 (418 bytes on wire, 418 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 100 trying -- your call is important to us
Status-Code: 100
Message Header
t: <sip:613@xxxxxxxxxxxxxx>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Server: Free World Dialup (0.8.11rc3 (i386/linux))
Record-Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Content-Length: 0
Frame 40 (473 bytes on wire, 473 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 180 Ringing
Status-Code: 180
Message Header
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
Call-ID: dbfcfc4e8754bd72
CSeq: 2 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Contact: <sip:613@xxxxxxxxxxxx:5028>
Record-Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Content-Length: 0
Frame 43 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
===============> The above 200 had Record-Routes but none of the ACKs
generated had the same information
Frame 46 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:PPC735748@xxxxxxxxxxxxx:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-279452934-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:613@xxxxxxxxxxxx:5028>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 47 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
Frame 50 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:613@xxxxxxxxxxxx:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-102648573-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 51 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
Frame 54 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:PPC735748@xxxxxxxxxxxxx:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-974695858-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:613@xxxxxxxxxxxx:5028>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 55 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
Frame 58 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:613@xxxxxxxxxxxx:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-917058701-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 60 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
Frame 65 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:PPC735748@xxxxxxxxxxxxx:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-491273261-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:613@xxxxxxxxxxxx:5028>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 66 (696 bytes on wire, 696 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
v: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-209980590-1--c87542-;rport
Record-Route:
<sip:613@xxxxxxxxxxxxxx;ftag=e2619a3b;lr=on>,<sip:PPC735748@xxxxxxxxxxxxx:5082>
f: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
t: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613@xxxxxxxxxxxx:5028>
c: application/sdp
l: 218
Session Description Protocol
Frame 69 (629 bytes on wire, 629 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Request line: ACK sip:613@xxxxxxxxxxxx:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
From: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Via: SIP/2.0/UDP
192.168.0.30:5060;branch=z9hG4bK-c87542-358831302-1--c87542-;rport
Call-ID: dbfcfc4e8754bd72
CSeq: 2 ACK
Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613@xxxxxxxxxxxxxx",response="2be8771a29b5968b73ef551e2867b689",algorithm=MD5
Content-Length: 0
Frame 70 (605 bytes on wire, 605 bytes captured)
Ethernet II, Src: 00:04:5a:df:b3:f9, Dst: 00:a0:c9:9b:ae:1c
Internet Protocol, Src Addr: 65.39.205.114 (65.39.205.114), Dst Addr:
192.168.0.30 (192.168.0.30)
User Datagram Protocol, Src Port: 5082 (5082), Dst Port: 5060 (5060)
Session Initiation Protocol
Request line: BYE sip:52017@xxxxxxxxxxxx:5060 SIP/2.0
Method: BYE
Message Header
Max-Forwards: 10
Record-Route:
<sip:PPC735748@xxxxxxxxxxxxx:5082>,<sip:PPC735748@xxxxxxxxxxxxxx;ftag=as26e859d4;lr=on>
Via: SIP/2.0/UDP
65.39.205.114:5082;branch=PPC735748.z9hG4bKf894,SIP/2.0/UDP
192.246.69.223;branch=z9hG4bKf894.9426df33.0,SIP/2.0/UDP
69.90.168.13:5028;branch=z9hG4bK174e6ee2
From: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
To: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
Contact: <sip:613@xxxxxxxxxxxx:5028>
Call-ID: dbfcfc4e8754bd72
CSeq: 102 BYE
User-Agent: Asterisk PBX
Content-Length: 0
Frame 71 (588 bytes on wire, 588 bytes captured)
Ethernet II, Src: 00:a0:c9:9b:ae:1c, Dst: 00:04:5a:df:b3:f9
Internet Protocol, Src Addr: 192.168.0.30 (192.168.0.30), Dst Addr:
65.39.205.114 (65.39.205.114)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5082 (5082)
Session Initiation Protocol
Status line: SIP/2.0 200 OK
Status-Code: 200
Message Header
To: 52017 <sip:52017@xxxxxxxxxxxxxx>;tag=e2619a3b
From: <sip:613@xxxxxxxxxxxxxx>;tag=as26e859d4
Via: SIP/2.0/UDP
65.39.205.114:5082;branch=PPC735748.z9hG4bKf894;received=65.39.205.114
Via: SIP/2.0/UDP 192.246.69.223;branch=z9hG4bKf894.9426df33.0
Via: SIP/2.0/UDP 69.90.168.13:5028;branch=z9hG4bK174e6ee2
Call-ID: dbfcfc4e8754bd72
CSeq: 102 BYE
Record-Route: <sip:PPC735748@xxxxxxxxxxxxx:5082>
Record-Route:
<sip:PPC735748@xxxxxxxxxxxxxx;ftag=as26e859d4;lr=on>
Contact: <sip:52017@xxxxxxxxxxxx:5060>
Content-Length: 0