[Serusers] Troubles matching 487's to subsequent ACKs
Maxim Sobolev
sobomax at portaone.com
Fri Jul 18 03:23:29 CEST 2003
I checked the RFCs - ATA is clearly violates 3261 in this area*), but
older 2543 doesn't contain any restriction on extra parameters that the
UA places into ACK's Via. I will open a Cisco TAC case on this, but
doubt that Cisco may resort to responding that ATA is only supposed to
be RFC2543-compliant. Actually this brings another broader question - is
SER expected to work only with RFC3261-compliant UAs, or this compliance
is recommended but not strictly required? In the latter case ACK
matching rules need to be relaxed a bit.
-Maxim
17.1.1.3 Construction of the ACK Request
This section specifies the construction of ACK requests sent within
the client transaction. A UAC core that generates an ACK for 2xx
MUST instead follow the rules described in Section 13.
The ACK request constructed by the client transaction MUST contain
values for the Call-ID, From, and Request-URI that are equal to the
values of those header fields in the request passed to the transport
by the client transaction (call this the "original request"). The To
header field in the ACK MUST equal the To header field in the
response being acknowledged, and therefore will usually differ from
the To header field in the original request by the addition of the
tag parameter. The ACK MUST contain a single Via header field, and
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this MUST be equal to the top Via header field of the original
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
request. The CSeq header field in the ACK MUST contain the same
^^^^^^^^
value for the sequence number as was present in the original request,
but the method parameter MUST be equal to "ACK".
Maxim Sobolev wrote:
> Hi,
>
> We have recently switched to 0.8.11 for our production server and
> I have noticed that ser no longer can match 487 Request cancelled
> reply to subsequent ACK, at least in the cases when ATA186 with
> latest firmware 2.16 is used as the originating UA. I wonder
> who is responsible for this: ATA or SER. The only strange thing
> that I see in the log is that ATA includes the following extra
> parameters into the first Via hf: rport=5060;received=195.234.212.178.
>
> ATA->SER
>
> INVITE sip:380445732729 at 64.180.102.72;user=phone SIP/2.0
> Via: SIP/2.0/UDP 192.168.0.253:5060
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 INVITE
> Contact: <sip:380442466396 at 192.168.0.253:5060;user=phone;transport=udp>
> User-Agent: Cisco ATA 186 v2.16 ata18x (030509a)
> Authorization: Digest username="380442466396",realm="64.180.102.72",nonce="3f168
> ef30be264b823354f5b14bef51f8c3636de",uri="sip:380445732729 at 64.180.102.72",respon
> se="d5a544d0eb3103e9f67b4e2af839054d"
> Expires: 300
> Content-Length: 257
> Content-Type: application/sdp
> o=380442466396 40288 40288 IN IP4 192.168.0.253
> s=ATA186 Call
> c=IN IP4 192.168.0.253
> t=0 0
> m=audio 13000 RTP/AVP 4 8 0 101
> a=rtpmap:4 G723/8000/1
> a=rtpmap:8 PCMA/8000/1
> a=rtpmap:0 PCMU/8000/1
> a=rtpmap:101 telephone-event/8000
> a=fmtp:101 0-15
>
> SER->ATA
>
> SIP/2.0 100 trying -- your call is important to us
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 INVITE
> Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
> Content-Length: 0
>
> SER->ATA
>
> SIP/2.0 183 Session Progress
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=d429e01d
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 INVITE
> Record-Route: <sip:380445732729 at 64.180.102.72;lr>
> Content-Type: application/sdp
> Content-Length: 283
> o=CiscoSystemsSIP-GW-UserAgent 503 692 IN IP4 212.119.160.61
> s=SIP Call
> c=IN IP4 212.119.160.61
> t=0 0
> m=audio 17182 RTP/AVP 4 19 101
> c=IN IP4 212.119.160.61
> a=rtpmap:4 G723/8000
> a=rtpmap:19 CN/8000
> a=rtpmap:101 telephone-event/8000
> a=fmtp:4 annexa=no
> a=fmtp:101 0-15
>
> ATA->SER
>
> CANCEL sip:380445732729 at 64.180.102.72;user=phone SIP/2.0
> Via: SIP/2.0/UDP 192.168.0.253:5060
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 CANCEL
> User-Agent: Cisco ATA 186 v2.16 ata18x (030509a)
> Authorization: Digest username="380442466396",realm="64.180.102.72",nonce="3f168
> ef30be264b823354f5b14bef51f8c3636de",uri="sip:380445732729 at 64.180.102.72",respon
> se="2953586e366141c5b8062cdfe7678357"
> Content-Length: 0
>
> SER->ATA
>
> SIP/2.0 200 cancelling
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
> 5d5c-7fd1
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 CANCEL
> Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
> Content-Length: 0
>
>
> SER->ATA
>
> SIP/2.0 487 Request cancelled
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
> 5d5c-7fd1
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 INVITE
> Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
> Content-Length: 0
>
> ATA->SER
>
> ACK sip:380445732729 at 64.180.102.72;user=phone SIP/2.0
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
> 5d5c-7fd1
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 ACK
> User-Agent: Cisco ATA 186 v2.16 ata18x (030509a)
> Content-Length: 0
>
> SER->ATA
>
> SIP/2.0 487 Request cancelled
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
> 5d5c-7fd1
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 INVITE
> Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
> Content-Length: 0
>
> ATA->SER
>
> ACK sip:380445732729 at 64.180.102.72;user=phone SIP/2.0
> Via: SIP/2.0/UDP 192.168.0.253:5060;rport=5060;received=195.234.212.178
> From: <sip:380442466396 at 64.180.102.72;user=phone>;tag=4197094684
> To: <sip:380445732729 at 64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
> 5d5c-7fd1
> Call-ID: 2777157492 at 192.168.0.253
> CSeq: 2 ACK
> User-Agent: Cisco ATA 186 v2.16 ata18x (030509a)
> Content-Length: 0
>
> An so on (487->ACK->487->ACK until timeout hits).
>
> -Maxim
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
> .
>
More information about the sr-users
mailing list