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@64.180.102.72;user=phone SIP/2.0
Via: SIP/2.0/UDP 192.168.0.253:5060
From: <sip:380442466396@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>
Call-ID: 2777157492(a)192.168.0.253
CSeq: 2 INVITE
Contact: <sip:380442466396@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@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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>
Call-ID: 2777157492(a)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@64.180.102.72;user=phone>;tag=d429e01d
From: <sip:380442466396@64.180.102.72;user=phone>;tag=4197094684
Call-ID: 2777157492(a)192.168.0.253
CSeq: 2 INVITE
Record-Route: <sip:380445732729@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@64.180.102.72;user=phone SIP/2.0
Via: SIP/2.0/UDP 192.168.0.253:5060
From: <sip:380442466396@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>
Call-ID: 2777157492(a)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@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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
5d5c-7fd1
Call-ID: 2777157492(a)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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
5d5c-7fd1
Call-ID: 2777157492(a)192.168.0.253
CSeq: 2 INVITE
Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
Content-Length: 0
ATA->SER
ACK sip:380445732729@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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
5d5c-7fd1
Call-ID: 2777157492(a)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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
5d5c-7fd1
Call-ID: 2777157492(a)192.168.0.253
CSeq: 2 INVITE
Server: Sip EXpress router (0.8.11rc1 (i386/freebsd))
Content-Length: 0
ATA->SER
ACK sip:380445732729@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@64.180.102.72;user=phone>;tag=4197094684
To: <sip:380445732729@64.180.102.72;user=phone>;tag=7fe8c93a8cb9c58b2cde45b60b0e
5d5c-7fd1
Call-ID: 2777157492(a)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(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
.