Symptom: Upon using Lync 2013 meetings, I noticed that PSTN callers were being dropped from dial-in meetings. This drop was approximately after 30 seconds or a minute. After finally pulling the plug and calling Microsoft for support on why this was happening, we found that our Session Boarder Controller was not sending responses back to Lync telling Lync that a person was still apart of the call.
Solution: Execute Get-CsTrunkConfiguration and look for the RTCPActiveCalls and RTCPCallsOnHold values. If both of these values are true, try setting them to false via the following command:
Set-CsTrunkConfiguration -RTCPActiveCalls $false -RTCPCallsOnHold $false
This should tell Lync to not drop the user's call even if it doesn't receive any media packets from the SBC. If this does work, then I highly recommend you enable the Session Timer to ensure dropped calls do not continue forever in your Lync meeting. To enable that option, execute the following command:
Set-CsTrunkConfiguration -EnableSessionTimer $true
Just for reference, here are some more in-depth notes on what the RTCPActiveCalls, RTCPCallsOnHold, and EnableSessionTimer variables do.
RTCPActiveCalls -This parameter determines whether RTCP packets are sent from the PSTN gateway, IP-PBX, or SBC at the service provider for active calls. An active call in this context is a call where media is allowed to flow in at least one direction. If RTCPActiveCalls is set to True, the Mediation Server or Lync Server client can terminate a call if it does not receive RTCP packets for a period exceeding 30 seconds. Note that disabling the checks for received RTCP media for active calls in Lync Server elements removes an important safeguard for detecting a dropped peer and should be done only if necessary.
RTCPCallsOnHold - This parameter determines whether RTCP packets continue to be sent across the trunk for calls that have been placed on hold and no media packets are expected to flow in either direction. If Music on Hold is enabled at either the Lync Server client or the trunk, the call will be considered to be active and this property will be ignored. In these circumstances use the RTCPActiveCalls parameter. Note that disabling the checks for received RTCP media for active calls in Lync Server elements removes an important safeguard for detecting a dropped peer and should be done only if necessary.
EnableSessionTimer - This parameter specifies whether the session timer is enabled. Session timers are used to determine whether a particular session is still active. Note that even if this parameter is set to False, session timers can be applicable if the remote connection has session timer enabled. In such a case, the Mediation Server will reply to session timer probes from the remote entity. The default is False.