Hi,

I face an issue when using non-Invite transactions.

Our sip client is registered to an Asterisk server. Our client has subscribed 
for receiving MWI messages.
We therefore receive NOTIFY messages and everything looks ok until the 
following happens.

If the number of waiting messages change, Asterisk will send a new NOTIFY with 
Cseq increased by one.
Branch in the topmost Via header field and callid remain the same. Only Cseq 
and Message Body parameters change.
If this new NOTIFY message is received before Timer J expires for the previous 
initial NOTIFY transaction, our client finds this as a retransmission and it 
sends the same 200OK response as was send for the first NOTIFY.
That means that it has wrong Cseq. Asterisk resends the last NOTIFY and this 
transaction continues until Timer J of the first transaction expires. After 
that time out we handle the new NOTIFY as a new transaction and thus we 
generate a new 200OK with correct cseq.

I have read rfc 3261, which according to 17.2.3 the branch parameter in the 
topmost Via header field of the request should be examined to match requests to 
transactions. Cseq should only be checked if the branch parameter in the top 
Via header s not present.
Therefore, by matching only the branch parameter, our client finds the new 
NOTIFY request to be the same as the initial one since the initial one is not 
yet terminated but still in the completed state.

Also, I read the following:
While in the "Completed" state, the
server transaction MUST pass the final response to the transport
layer for retransmission whenever a retransmission of the request is
received.

Is our SIP stack correctly handles the transaction? Do you think it seems like 
a race condition where further considerations should take place?

Best regards,
_____________________________________________________________

Evangelos Filipppatos
Software Engineer

Direct Dial: +30 2610 390952 | Mobile: +30 6948306662 | Fax: +30 2610 390941
evangelos.filippa...@diasemi.com<mailto:evangelos.filippa...@diasemi.com> | 
www.diasemi.com<http://www.diasemi.com/>
Dialog Semiconductor, Kalavriton 54-56, 26 335, Patras, Greece
_______________________________________________________________________


Legal Disclaimer: This e-mail communication (and any attachment/s) is 
confidential and contains proprietary information, some or all of which may be 
legally privileged. It is intended solely for the use of the individual or 
entity to which it is addressed. Access to this email by anyone else is 
unauthorized. If you are not the intended recipient, any disclosure, copying, 
distribution or any action taken or omitted to be taken in reliance on it, is 
prohibited and may be unlawful.

Please consider the environment before printing this e-mail


_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to