Mahesh,
There is the problem..
As you pointed out zeus, the SJPhone application is sending
the correct
format in the request line of ACK, but the ALG is not
rewriting the address
and port correctly. It is missing the port part of the
request line. Hence
A proper ALG should do both.
I guess since there is no port in the ACK request
line, the proxy is
sending the ACK to the default port 5060.(please correct me
if i am wrong
with the guess)
It's the case here.
Coming to multiple 200 OK s with different contact
ports,
Since the ACK
sent by host1 is not passing through fw2, the SJPhone
application on host2
is sending 200 OKs repeatedly, which in turn is causing the
ALG to send the
200 OK with a different contact port for each of this 200 OK.
The ALG has to remember the state and reuse the port for repeated messages.
Without that, it broken.
Regards
Mahesh
Zeus