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