// -----------------------------------------------------------------------------
// CInviteServerTa_Completed::SendCompleteL
// Only one timer G exists at once. It can already exist if:
// 1. Timer G is started
// 2. INVITE is received and response sent
// 3. SendCompleteL event comes while timer G is running
// -----------------------------------------------------------------------------
//
void CInviteServerTa_Completed::SendCompleteL(CTransaction& aTransaction) const
	{
	if (aTransaction.IsUnreliableTransportUsed())
		{
		CInviteServerTransaction::Ptr(aTransaction).StartTimerGUnlessExistsL();
		}
	}
// -----------------------------------------------------------------------------
// CInviteClientTa_Calling::SendCompleteL
// -----------------------------------------------------------------------------
//
void CInviteClientTa_Calling::SendCompleteL(CTransaction& aTransaction) const
	{
	CInviteClientTransaction& ta = CInviteClientTransaction::Ptr(aTransaction);
	ta.CheckForTransportChange();
	ta.StartTimerBUnlessExistsL();

	if (aTransaction.IsUnreliableTransportUsed())
		{
		ta.StartTimerAL();
		}
	}