public ISipServerTransaction CreateServerTransaction(SipRequest request) { Check.Require(request, "request"); Check.IsTrue(SipMethods.IsMethod(request.RequestLine.Method), "Request method is not supported"); ISipServerTransaction tx; if (request.RequestLine.Method == SipMethods.Ack) { throw new ArgumentException("Can not create a transaction for the 'ACK' request"); } ISipListener txListener = _sipListener; SipAbstractDialog dialog; if (_dialogTable.TryGetValue(GetDialogId(request, true), out dialog)) { txListener = dialog; } if (request.RequestLine.Method == SipMethods.Invite) { var istx = new SipInviteServerTransaction( ServerTransactionTable, this, txListener, request, _stack.GetTimerFactory()); //istx.Start(); tx = istx; } else { var nistx = new SipNonInviteServerTransaction( ServerTransactionTable, request, txListener, this, _stack.GetTimerFactory()); //nistx.Start(); tx = nistx; } return(tx); }
private void SendRinging() { if (_ringingResponse == null) { _ringingResponse = _inviteRequest.CreateResponse(SipResponseCodes.x180_Ringing); _ringingResponse.To.Tag = SipUtil.CreateTag(); var contactUri = AddressFactory.CreateUri("", MainForm.SipProvider.ListeningPoint.ToString()); _ringingResponse.Contacts.Add(HeaderFactory.CreateContactHeader(contactUri)); _inviteTransaction = (SipInviteServerTransaction)SipProvider.CreateServerTransaction(_inviteRequest); _dialog = SipProvider.CreateServerDialog(_inviteTransaction); _inviteTransaction.SendResponse(_ringingResponse); } else { _inviteTransaction.SendResponse(_ringingResponse); } }
internal override StateResult ProcessRequest(SipInviteServerTransaction transaction, SipRequestEvent request) { return new StateResult(); }
internal override void Initialize(SipInviteServerTransaction transaction) { }
internal override StateResult HandleSendingResponse(SipInviteServerTransaction transaction, SipResponse response) { return new StateResult(); }
internal override StateResult HandleSendingResponse(SipInviteServerTransaction transaction, SipResponse response) { return(new StateResult()); }
internal override StateResult ProcessRequest(SipInviteServerTransaction transaction, SipRequestEvent request) { return(new StateResult()); }
protected override void Given() { _ctx = new SipInviteServerTransaction(TxTable, Sender.Object, Listener.Object, Request, TimerFactory); GivenOverride(); }