protected ITimer CreateInviteCtxTimeOutTimer(Action action)
 {
     TimeOutTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return TimeOutTimer;
 }
 protected ITimer CreateInviteCtxCompletedEndTimer(Action action)
 {
     CompletedEndTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return CompletedEndTimer;
 }
 protected ITimer CreateInviteCtxRetransmitTimer(Action action)
 {
     RetransitTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return RetransitTimer;
 }
 protected virtual ITimer OnWaitForAckTimer(Action action)
 {
     _waitforAckTimer = new TxTimerStub(action, int.MaxValue, false, null);
     return _waitforAckTimer;
 }
 protected virtual ITimer OnCreateWaitForAckTimer(Action action)
 {
     Action afterCallBack = () => _waitForTimeOut.Set();
     _waitforAckTimer = new TxTimerStub(action, 200, false, afterCallBack);
     return _waitforAckTimer;
 }
 protected virtual ITimer OnCreateTimeOutTimer(Action action)
 {
     EndWaitForAckTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return EndWaitForAckTimer;
 }
 protected virtual ITimer OnCreateRingingTimer(Action action)
 {
     _ringingTimer = new TxTimerStub(action, 200, true, null);
     return _ringingTimer;
 }
 protected virtual ITimer OnCreateRetransmitOkTimer(Action action)
 {
     RetransitOkTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return RetransitOkTimer;
 }
 private ITimer OnCreateTimeOutTimerStub(Action a)
 {
     TimeOutTimer = new TxTimerStub(a, 2000, false, AftertimeOut);
     return TimeOutTimer;
 }
 private ITimer CreateDoNothingTimerStub(Action action)
 {
     TimeOutTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return TimeOutTimer;
 }
 protected virtual ITimer OnCreateRingingTimer(Action action, int periodicity)
 {
     _ringingTimer = new TxTimerStub(action, periodicity, true, () => _ringingSendCounter++);
     return _ringingTimer;
 }
 private ITimer CreateDefaultNonInviteStxEndCompletedTimer(Action action)
 {
     EndCompletedTimer = new TxTimerStub(action, int.MaxValue, false, () => { });
     return EndCompletedTimer;
 }