⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noninviteclienttransactionstatetrying.java

📁 Peers is a very minimalistic SIP User-Agent. It s a softphone, written in java, and it has been test
💻 JAVA
字号:
/*    This file is part of Peers.    This program is free software: you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation, either version 3 of the License, or    any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program.  If not, see <http://www.gnu.org/licenses/>.        Copyright 2007, 2008 Yohann Martineau */package net.sourceforge.peers.sip.transaction;import net.sourceforge.peers.sip.RFC3261;import net.sourceforge.peers.sip.transport.SipResponse;public class NonInviteClientTransactionStateTrying extends        NonInviteClientTransactionState {    public NonInviteClientTransactionStateTrying(String id,            NonInviteClientTransaction nonInviteClientTransaction) {        super(id, nonInviteClientTransaction);    }    @Override    public void timerEFires() {        NonInviteClientTransactionState nextState = nonInviteClientTransaction.TRYING;        nonInviteClientTransaction.setState(nextState);        log(nextState);        long delay = (long)Math.pow(2,                ++nonInviteClientTransaction.nbRetrans) * RFC3261.TIMER_T1;        nonInviteClientTransaction.sendRetrans(Math.min(delay, RFC3261.TIMER_T2));    }    @Override    public void timerFFires() {        timerFFiresOrTransportError();    }        @Override    public void transportError() {        timerFFiresOrTransportError();    }        private void timerFFiresOrTransportError() {        NonInviteClientTransactionState nextState = nonInviteClientTransaction.TERMINATED;        nonInviteClientTransaction.setState(nextState);        log(nextState);        nonInviteClientTransaction.transactionUser.transactionTimeout();    }        @Override    public void received1xx() {        NonInviteClientTransactionState nextState = nonInviteClientTransaction.PROCEEDING;        nonInviteClientTransaction.setState(nextState);        log(nextState);        nonInviteClientTransaction.transactionUser.provResponseReceived(                nonInviteClientTransaction.getLastResponse(), nonInviteClientTransaction);    }        @Override    public void received200To699() {        NonInviteClientTransactionState nextState = nonInviteClientTransaction.COMPLETED;        nonInviteClientTransaction.setState(nextState);        log(nextState);        SipResponse response = nonInviteClientTransaction.getLastResponse();        int code = response.getStatusCode();        if (code < RFC3261.CODE_MIN_REDIR) {            nonInviteClientTransaction.transactionUser.successResponseReceived(                    response, nonInviteClientTransaction);        } else {            nonInviteClientTransaction.transactionUser.errResponseReceived(                    response);        }    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -