Jerome Martin wrote:
You can also send a "pending" reply if you're already processing one INVITE and get another in the meantime.
Yes, the pending idea is a way to improve basic delaying. But the thing is that ACK and INVITE are separate transactions, so testing if the first INVITE transaction has ended is not enough, we also need to look for the subsequent ACK transaction.
I wonder how this can be handled with TCP. When using UDP, the reINVITE can be dropped, and will be resent by the client. But what about TCP? Openser must not drop the INVITE as it won't be retransmitted. Delaying the reINVITE also means that this thread is blocked which may cause DoS attacks (it can be exploited by sending INVITE and reINVITEs without ACK).
regards klaus