private void RemoveExpiredDispatchRecords()
{
try
{
lock (m_transactionEndPoints)
{
(from entry in m_transactionIDAddedAt
where entry.Value < DateTime.Now.AddSeconds(MAX_LIFETIME_SECONDS * -1)
select entry).ToList().ForEach((entry) =>
{
//logger.Debug("SIPProxyDispatcher removing expired transactionid=" + entry.Key + ".");
m_transactionEndPoints.Remove(entry.Key);
m_transactionIDAddedAt.Remove(entry.Key);
});
}
lock (m_userCallbacks)
{
(from userRecord in m_userCallbacks
where userRecord.Value.ExpiresAt < DateTime.Now
select userRecord).ToList().ForEach((entry) =>
{
logger.Debug("SIPProxyDispatcher removing expired callback record for=" + entry.Key + ".");
m_userCallbacks.Remove(entry.Key);
});
}
}
catch (Exception excp)
{
logger.Error("Exception RemoveExpiredTransactionIDs. " + excp.Message);
}
}