📄 noninviteservertransaction.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 java.io.IOException;import java.util.Timer;import java.util.TimerTask;import net.sourceforge.peers.sip.RFC3261;import net.sourceforge.peers.sip.transport.SipRequest;import net.sourceforge.peers.sip.transport.SipResponse;import net.sourceforge.peers.sip.transport.TransportManager;public class NonInviteServerTransaction extends Transaction implements ServerTransaction/*, SipServerTransportUser*/ { public final NonInviteServerTransactionState TRYING; public final NonInviteServerTransactionState PROCEEDING; public final NonInviteServerTransactionState COMPLETED; public final NonInviteServerTransactionState TERMINATED; protected ServerTransactionUser serverTransactionUser; protected Timer timer; protected String transport; private NonInviteServerTransactionState state; //private int port; NonInviteServerTransaction(String branchId, int port, String transport, String method, ServerTransactionUser serverTransactionUser, SipRequest sipRequest) { super(branchId, method); TRYING = new NonInviteServerTransactionStateTrying(getId(), this); state = TRYING; PROCEEDING = new NonInviteServerTransactionStateProceeding(getId(), this); COMPLETED = new NonInviteServerTransactionStateCompleted(getId(), this); TERMINATED = new NonInviteServerTransactionStateTerminated(getId(), this); //this.port = port; this.transport = transport; timer = TransactionManager.getInstance().timer; this.serverTransactionUser = serverTransactionUser; request = sipRequest;// sipServerTransport = SipTransportFactory.getInstance()// .createServerTransport(this, port, transport); try { TransportManager.getInstance().createServerTransport(transport, port); } catch (IOException e) { e.printStackTrace(); } //TODO pass request to TU } public void setState(NonInviteServerTransactionState state) { this.state = state; } public void receivedRequest(SipRequest sipRequest) { state.receivedRequest(); } public void sendReponse(SipResponse sipResponse) { responses.add(sipResponse); int statusCode = sipResponse.getStatusCode(); if (statusCode < RFC3261.CODE_200_OK) { state.received1xx(); } else if (statusCode <= RFC3261.CODE_MAX) { state.received200To699(); } } void sendLastResponse() { //sipServerTransport.sendResponse(responses.get(responses.size() - 1)); int nbOfResponses = responses.size(); if (nbOfResponses > 0) { try { TransportManager.getInstance().sendResponse( responses.get(nbOfResponses - 1)); } catch (IOException e) { e.printStackTrace(); } } } public void start() { // TODO Auto-generated method stub }// public void messageReceived(SipMessage sipMessage) {// // TODO Auto-generated method stub// // } class TimerJ extends TimerTask { @Override public void run() { state.timerJFires(); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -