I guess somehow the message gets looped to the proxy again:
Take a look at the topmost Via header of the relayed PUBLISH. At the end you see .1 and .2. This measn the .1 branch and the .2 branch. Where is the .0 branch?
I guess it is lopped back to openser (via loopback interface) and is rejected with 407.
Try "ngrep -d any" or "tcpdump -i any" to see loopback too!
regards klaus
Aymeric Moizard schrieb:
On Wed, 16 Jan 2008, Bogdan-Andrei Iancu wrote:
Hi Aymeric,
could you describe the message flow (requests and replies)? I understand you do parallel forking to 2 clients that return 5xx replies, but where the 407 comes from??
I was about to send the capture:
http://antisip.antisip.com/publish-issue.pcap
Put the filter "sip contains 77622" to view the incoming transaction + the 2 outgoing transactions. 2 501 are received and one 407 is sent back. There is no incoming 407 that comes to openser.
I have to admit that the call flow is strange, because my openser forwards the PUBLISH sent by a user to himself. (I don't have presence server) The second strange thing is that the same softphone is registred twice on the same IP... However, this demonstrates the issue.
In case, there is only ONE binding for the user, the 501 is forwarded correctly...
To reproduce the error: My softphone: http://sip.antisip.com/download/emansip-setup/emansip-setup-v411-rc10.exe Create an account first on: http://sip.antisip.com/
I'm currently modifying my softphone to send 405, hoping that will fix the issue... However, it would still be nice to solve it.
tks for your effort, Aymeric
regards, bogdan
IƱaki Baz Castillo wrote:
On Wednesday 16 January 2008 14:58:22 Aymeric Moizard wrote:
(sorry: just repost to follow correct thread/subjet)
I just found another example from rfc3261 where an endpoint will use 5xx class answer:
12.2.2 UAS Behavior
Page 76:
If the remote sequence number is empty, it MUST be set to the value of the sequence number in the CSeq header field value in the
request. If the remote sequence number was not empty, but the sequence number of the request is lower than the remote sequence number, the request is out of order and MUST be rejected with a 500 (Server Internal Error) response.
Hope I convinced you!
Yes ;)
So the question here is why OpenSer is replying 407. But it's so strange...