[reSIProcate] RouteSet not being Re-Calculated
Brian D'Souza
dsouza at aksysnetworks.com
Fri Jul 9 12:50:21 CDT 2004
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 at fwd.pulver.com SIP/2.0
Method: INVITE
Message Header
To: <sip:613 at fwd.pulver.com>
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 192.168.0.30:5060>
Max-Forwards: 70
Content-Type: application/sdp
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at fwd.pulver.com>
f: 52017 <sip:52017 at fwd.pulver.com>;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 at 65.39.205.114: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 at fwd.pulver.com>;tag=e2619a3b
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
Call-ID: dbfcfc4e8754bd72
CSeq: 2 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Contact: <sip:613 at 69.90.168.13:5028>
Record-Route: <sip:PPC735748 at 65.39.205.114: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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 65.39.205.114:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 69.90.168.13:5028>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 69.90.168.13:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 65.39.205.114:5082>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 65.39.205.114:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 69.90.168.13:5028>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 69.90.168.13:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 65.39.205.114:5082>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 65.39.205.114:5082 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 69.90.168.13:5028>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.246.69.223;ftag=e2619a3b;lr=on>,<sip:PPC735748 at 65.39.205.114:5082>
f: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
t: <sip:613 at fwd.pulver.com>;tag=as26e859d4
i: dbfcfc4e8754bd72
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
m: <sip:613 at 69.90.168.13: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 at 69.90.168.13:5028 SIP/2.0
Method: ACK
Message Header
To: <sip:613 at fwd.pulver.com>;tag=as26e859d4
From: 52017 <sip:52017 at fwd.pulver.com>;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 at 65.39.205.114:5082>
Contact: <sip:52017 at 192.168.0.30:5060>
Max-Forwards: 70
Proxy-Authorization: Digest
username=52017,realm="fwd.pulver.com",nonce="40eed7fc8146ff5b3361103310d241de421d78c1",uri="sip:613 at fwd.pulver.com",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 at 192.168.0.30:5060 SIP/2.0
Method: BYE
Message Header
Max-Forwards: 10
Record-Route:
<sip:PPC735748 at 65.39.205.114:5082>,<sip:PPC735748 at 192.246.69.223;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 at fwd.pulver.com>;tag=as26e859d4
To: 52017 <sip:52017 at fwd.pulver.com>;tag=e2619a3b
Contact: <sip:613 at 69.90.168.13: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 at fwd.pulver.com>;tag=e2619a3b
From: <sip:613 at fwd.pulver.com>;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 at 65.39.205.114:5082>
Record-Route:
<sip:PPC735748 at 192.246.69.223;ftag=as26e859d4;lr=on>
Contact: <sip:52017 at 192.168.0.30:5060>
Content-Length: 0
More information about the resiprocate-devel
mailing list