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...
>>
>>
>
>