Here's the transaction scenario (IP addresses changed to protect the
guilty!) we are having :

Send an INVITE to x.x.x.1 which is a proxy server.
Get a 100 from x.x.x.2
Get a 407 from x.x.x.2
Send an ACK back to x.x.x.1
Send INVITE with auth to x.x.x.1
Get 100 from x.x.x.2
Get 183 from x.x.x.2
Get 200 from x.x.x.2 with Contact field saying go to x.x.x.3

Now to which address is the ACK sent?


My reading of the specification (rfc2543bis-09 to be precise) says in
two places that it goes to x.x.x.3

  4 Overview of Operation

  .... Finally, Alice's softphone sends an acknowledgement message, ACK
  to Bob's SIP phone to confirm the reception of the final response (200
  (OK)). In this example, the ACK is sent directly from Alice's
  softphone to Bob's SIP phone, bypassing the two proxies.
  .....

and

  12.1.1 UAS behavior

  .... The Contact header field contains an address where the UAS 
  would like to be contacted for subsequent requests in the dialog 
  (which includes the ACK for a 2xx response in the case of an INVITE).


However, when I do this (send the ACK to x.x.x.3), I get continual 200
OK's sent to me by x.x.x.2 exactly as though the ACK was not received.

If I send the ACK to x.x.x.1 then the INVITE transaction seems to be
completed correctly. No more 200's being sent. However at the end of the
call when I send the BYE to x.x.x.3, I get no responses at all!

Finally, if I ignore the Contact field completely (which seems to be the
WRONG thing to do) then it USUALLY works OK. Except every no and then
the BYE which we send to x.x.x.1 just gets a string of 100 reponses
until it times out.



Now, I would have thought the ACK should go to the original host
(completing that transaction) and all subsequent transactions sent to
the Contact field. Otherwise how does the proxy know that everything
happened OK? However, that is clearly NOT what the specification says!

That said I had tried all of the possible responses and none of them
quite work correctly. As the machines are Cisco routers that are used
commercially in a lot of places I would think it likely that _I_ am
doing something wrong rather than Cisco, however I have no idea what I
might be doing wrong and there are no guarantees.


Any ideas?



----------
Robert Jongbloed
Architect for OPAL, Open Phone Abstraction Library
and OpenH323, H.323 Open Source Library 
= = = E Q U I V A L E N C E = = =
Voice: +61 2 4365 4666   Fax: +61 2 4367 3140  http://www.equival.com

_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to