< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[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