示例#1
0
            internal override StateResult ProcessRequest(SipInviteServerTransaction tx, SipRequestEvent requestEvent)
            {
                /* 17.2.1 If an ACK is received while the server transaction is in the
                   "Completed" state, the server transaction MUST transition to the
                   "Confirmed" state. */
                if (requestEvent.Request.RequestLine.Method == SipMethods.Ack)
                {
                    tx.ChangeState(SipInviteServerTransaction.ConfirmedState);
                }
                else
                {
                    tx.SendResponseInternal();
                }

                return new StateResult();
            }
示例#2
0
            internal override StateResult ProcessRequest(SipInviteServerTransaction tx, SipRequestEvent requestEvent)
            {
                /* 17.2.1 If an ACK is received while the server transaction is in the
                 * "Completed" state, the server transaction MUST transition to the
                 * "Confirmed" state. */
                if (requestEvent.Request.RequestLine.Method == SipMethods.Ack)
                {
                    tx.ChangeState(SipInviteServerTransaction.ConfirmedState);
                }
                else
                {
                    tx.SendResponseInternal();
                }

                return(new StateResult());
            }
示例#3
0
            internal override StateResult HandleSendingResponse(SipInviteServerTransaction tx, SipResponse response)
            {
                var stateResult = new StateResult();

                var statusCode = response.StatusLine.StatusCode;

                if (statusCode >= 100 && statusCode < 200)
                {
                    tx.SendResponseInternal(response);
                }
                else if (statusCode >= 200 && statusCode < 300)
                {
                    tx.SendResponseInternal(response);
                    stateResult.Dispose = true;
                }
                else if (statusCode >= 300 && statusCode < 700)
                {
                    tx.SendResponseInternal(response);
                    tx.ChangeState(SipInviteServerTransaction.CompletedState);
                }

                return stateResult;
            }
示例#4
0
            internal override StateResult HandleSendingResponse(SipInviteServerTransaction tx, SipResponse response)
            {
                var stateResult = new StateResult();

                var statusCode = response.StatusLine.StatusCode;

                if (statusCode >= 100 && statusCode < 200)
                {
                    tx.SendResponseInternal(response);
                }
                else if (statusCode >= 200 && statusCode < 300)
                {
                    tx.SendResponseInternal(response);
                    stateResult.Dispose = true;
                }
                else if (statusCode >= 300 && statusCode < 700)
                {
                    tx.SendResponseInternal(response);
                    tx.ChangeState(SipInviteServerTransaction.CompletedState);
                }

                return(stateResult);
            }