I think Lync Server is not correctly handling the SIP CANCEL message with cause=200.
Scenario: calls are dual forked by the PBX, one goes to the SIP phone, the other one goes through the SIP trunk to Lync Server.
If the call is answered by the phone, the PBX sends a CANCEL message to Lync with:
Reason: SIP; cause=200; text="Call completed elsewhere".
Lync Server also generates a SIP message 487, request terminated, with "unexpected reason header or cause code format".
In spite of this, the user receives a "missed call notification" in Lync Client. I think this notification should not be sent.