internal SipInviteClientTransaction( SipClientTransactionTable table, ISipMessageSender messageSender, ISipListener listener, SipRequest request, ITimerFactory timerFactory, SipHeaderFactory headerFactory, SipMessageFactory messageFactory) : base(table, request, messageSender, listener, timerFactory) { Check.Require(headerFactory, "headerFactory"); Check.Require(messageFactory, "messageFactory"); Check.IsTrue(request.RequestLine.Method == SipMethods.Invite, "Method other then 'INVITE' is not allowed"); _logger = NLog.LogManager.GetCurrentClassLogger(); _headerFactory = headerFactory; _messageFactory = messageFactory; ReTransmitTimer = timerFactory.CreateInviteCtxRetransmitTimer(OnReTransmit); TimeOutTimer = timerFactory.CreateInviteCtxTimeOutTimer(OnTimeOut); EndCompletedTimer = timerFactory.CreateInviteCtxEndCompletedTimer(OnCompletedEnded); }