public void ReceiveMessage(SIPChannel sipChannel, SIPEndPoint remoteEndPoint, byte[] buffer)
{
try
{
if (!m_queueIncoming)
{
SIPMessageReceived(sipChannel, remoteEndPoint, buffer);
}
else
{
IncomingMessage incomingMessage = new IncomingMessage(sipChannel, remoteEndPoint, buffer);
// Keep the queue within size limits
if (m_inMessageQueue.Count >= MAX_INMESSAGE_QUEUECOUNT)
{
logger.Warn("SIPTransport queue full new message from " + remoteEndPoint + " being discarded.");
}
else
{
lock (m_inMessageQueue)
{
m_inMessageQueue.Enqueue(incomingMessage);
}
}
m_inMessageArrived.Set();
}
}
catch (Exception excp)
{
logger.Error("Exception SIPTransport ReceiveMessage. " + excp.Message);
throw excp;
}
}