亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? transactionmanager.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 java.net.InetAddress;import java.util.Hashtable;import java.util.Timer;import net.sourceforge.peers.sip.RFC3261;import net.sourceforge.peers.sip.Utils;import net.sourceforge.peers.sip.syntaxencoding.SipHeaderFieldName;import net.sourceforge.peers.sip.syntaxencoding.SipHeaderFieldValue;import net.sourceforge.peers.sip.syntaxencoding.SipHeaderParamName;import net.sourceforge.peers.sip.transport.SipMessage;import net.sourceforge.peers.sip.transport.SipRequest;import net.sourceforge.peers.sip.transport.SipResponse;public class TransactionManager {    private static TransactionManager INSTANCE;    public static TransactionManager getInstance() {        if (INSTANCE == null) {            INSTANCE = new TransactionManager();        }        return INSTANCE;    }    protected Timer timer;        private Hashtable<String, ClientTransaction> clientTransactions;    private Hashtable<String, ServerTransaction> serverTransactions;    private TransactionManager() {        clientTransactions = new Hashtable<String, ClientTransaction>();        serverTransactions = new Hashtable<String, ServerTransaction>();        timer = new Timer("Transaction timer");    }        public ClientTransaction createClientTransaction(SipRequest sipRequest,            InetAddress inetAddress, int port, String transport, String pBranchId,            ClientTransactionUser clientTransactionUser) {        String branchId;        if (pBranchId == null || "".equals(pBranchId.trim())                || !pBranchId.startsWith(RFC3261.BRANCHID_MAGIC_COOKIE)) {            branchId = Utils.getInstance().generateBranchId();        } else {            branchId = pBranchId;        }        String method = sipRequest.getMethod();        ClientTransaction clientTransaction;        if (RFC3261.METHOD_INVITE.equals(method)) {            clientTransaction = new InviteClientTransaction(branchId,                    inetAddress, port, transport, sipRequest, clientTransactionUser);        } else {            clientTransaction = new NonInviteClientTransaction(branchId,                    inetAddress, port, transport, sipRequest, clientTransactionUser);        }        clientTransactions.put(getTransactionId(branchId, method),                clientTransaction);        return clientTransaction;    }    public ServerTransaction createServerTransaction(SipResponse sipResponse,            int port, String transport,            ServerTransactionUser serverTransactionUser,            SipRequest sipRequest) {        SipHeaderFieldValue via = Utils.getInstance().getTopVia(sipResponse);        String branchId = via.getParam(new SipHeaderParamName(                RFC3261.PARAM_BRANCH));        String cseq = sipResponse.getSipHeaders().get(                new SipHeaderFieldName(RFC3261.HDR_CSEQ)).toString();        String method = cseq.substring(cseq.lastIndexOf(' ') + 1);        ServerTransaction serverTransaction;        // TODO create server transport user and pass it to server transaction        if (RFC3261.METHOD_INVITE.equals(method)) {            serverTransaction = new InviteServerTransaction(branchId, port,                    transport, sipResponse, serverTransactionUser, sipRequest);            // serverTransaction = new InviteServerTransaction(branchId);        } else {            serverTransaction = new NonInviteServerTransaction(branchId, port,                    transport, method, serverTransactionUser, sipRequest);        }        serverTransactions.put(getTransactionId(branchId, method),                serverTransaction);        return serverTransaction;    }    public ClientTransaction getClientTransaction(SipMessage sipMessage) {        SipHeaderFieldValue via = Utils.getInstance().getTopVia(sipMessage);        String branchId = via.getParam(new SipHeaderParamName(                RFC3261.PARAM_BRANCH));        String cseq = sipMessage.getSipHeaders().get(                new SipHeaderFieldName(RFC3261.HDR_CSEQ)).toString();        String method = cseq.substring(cseq.lastIndexOf(' ') + 1);        return clientTransactions.get(getTransactionId(branchId, method));    }    public ServerTransaction getServerTransaction(SipMessage sipMessage) {        SipHeaderFieldValue via = Utils.getInstance().getTopVia(sipMessage);        String branchId = via.getParam(new SipHeaderParamName(                RFC3261.PARAM_BRANCH));        String method;        if (sipMessage instanceof SipRequest) {            method = ((SipRequest)sipMessage).getMethod();        } else {            String cseq = sipMessage.getSipHeaders().get(                    new SipHeaderFieldName(RFC3261.HDR_CSEQ)).toString();            method = cseq.substring(cseq.lastIndexOf(' ') + 1);        }        if (RFC3261.METHOD_ACK.equals(method)) {            method = RFC3261.METHOD_INVITE;            // TODO if positive response, ACK does not belong to transaction            // retrieve transaction and take responses from transaction            // and check if a positive response has been received            // if it is the case, a new standalone transaction must be created            // for the ACK        }        return serverTransactions.get(getTransactionId(branchId, method));    }    public ServerTransaction getServerTransaction(String branchId, String method) {        return serverTransactions.get(getTransactionId(branchId, method));    }        void removeServerTransaction(String branchId, String method) {        serverTransactions.remove(getTransactionId(branchId, method));    }        private String getTransactionId(String branchId, String method) {        StringBuffer buf = new StringBuffer();        buf.append(branchId);        buf.append(Transaction.ID_SEPARATOR);        buf.append(method);        return buf.toString();    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费视频一区| 久久久不卡网国产精品二区| 国产成人精品午夜视频免费| 黄网站免费久久| 国产一区 二区 三区一级| 免费高清视频精品| 久99久精品视频免费观看| 久久成人18免费观看| 国产美女视频91| 成人av资源在线| 色偷偷一区二区三区| 欧美性色综合网| 欧美精品v国产精品v日韩精品| 欧美高清视频www夜色资源网| 欧美一区二区三区性视频| 精品国产123| 综合色天天鬼久久鬼色| 亚洲一二三四在线| 日本一道高清亚洲日美韩| 韩国女主播成人在线| 成人小视频在线| 欧洲精品一区二区| 日韩免费性生活视频播放| 日本一区二区在线不卡| 一区二区三区av电影| 美女爽到高潮91| 成人性色生活片免费看爆迷你毛片| www.久久久久久久久| 欧美日本在线观看| 国产蜜臀97一区二区三区| 亚洲已满18点击进入久久| 蜜桃久久久久久| 不卡影院免费观看| 欧美疯狂做受xxxx富婆| 中文字幕免费观看一区| 五月天一区二区| 成人av网站免费| 日韩欧美一区二区久久婷婷| 亚洲欧美中日韩| 美女在线观看视频一区二区| 成人不卡免费av| 日韩一区二区精品| 亚洲久草在线视频| 国产麻豆精品在线| 制服丝袜中文字幕亚洲| 国产精品久久久久7777按摩| 日本女人一区二区三区| 一本大道久久a久久综合婷婷| 欧美www视频| 亚洲国产成人精品视频| a亚洲天堂av| 久久久亚洲国产美女国产盗摄| 一区二区三区在线视频观看| 国产激情一区二区三区| 日韩丝袜美女视频| 午夜激情综合网| 91麻豆国产自产在线观看| 26uuu精品一区二区三区四区在线| 亚州成人在线电影| 在线观看视频一区二区欧美日韩| 国产蜜臀97一区二区三区| 韩国一区二区三区| 精品欧美乱码久久久久久| 日韩高清在线电影| 欧美日韩一区二区电影| 一区二区高清视频在线观看| av亚洲精华国产精华精| 国产精品久久一级| 成人激情免费视频| 中文字幕久久午夜不卡| 成人午夜精品在线| 国产日韩精品一区二区三区| 国产一区美女在线| 久久美女艺术照精彩视频福利播放| 免费观看久久久4p| 日韩欧美www| 狠狠久久亚洲欧美| 久久久久久久久伊人| 国产另类ts人妖一区二区| 久久九九全国免费| 成人免费毛片app| 国产精品久久久久aaaa樱花 | 欧美一级日韩一级| 视频在线观看91| 日韩午夜三级在线| 极品美女销魂一区二区三区免费| 精品福利一二区| 国产精品99久久久久| 国产精品国产自产拍高清av| 99国产精品久久久久| 亚洲综合免费观看高清完整版在线| 色域天天综合网| 午夜精品一区在线观看| 日韩欧美亚洲国产另类| 国产精品白丝jk黑袜喷水| 国产精品高潮呻吟| 欧美亚洲另类激情小说| 麻豆久久久久久久| 欧美国产乱子伦| 欧美在线999| 精品一区二区三区日韩| 国产精品毛片久久久久久| 欧美影院一区二区三区| 久久成人久久鬼色| 自拍偷拍亚洲综合| 日韩三级视频在线看| www.久久久久久久久| 亚洲福中文字幕伊人影院| 亚洲精品一区二区三区精华液| 不卡的av在线| 美女被吸乳得到大胸91| 国产精品女同互慰在线看| 欧美色欧美亚洲另类二区| 国内精品免费**视频| 亚洲精品国产无套在线观| 精品日韩欧美在线| 91久久国产最好的精华液| 国产真实乱子伦精品视频| 一区二区理论电影在线观看| 久久精品免费在线观看| 欧美三片在线视频观看| 成人在线视频一区二区| 爽好多水快深点欧美视频| 国产精品伦一区二区三级视频| 91精品蜜臀在线一区尤物| 成人黄色片在线观看| 久久精品久久久精品美女| 一区二区三区小说| 国产精品视频一区二区三区不卡| 欧美日韩和欧美的一区二区| 不卡的av电影| 国产一区二区精品久久99| 性欧美疯狂xxxxbbbb| 亚洲视频电影在线| 久久久不卡网国产精品二区| 欧美一区二区久久| 欧美日韩中文字幕一区| 91女人视频在线观看| 岛国av在线一区| 国产夫妻精品视频| 国产精品一二三四| 国产在线视频不卡二| 久久疯狂做爰流白浆xx| 日本视频中文字幕一区二区三区| 一区二区三区中文字幕精品精品 | 奇米在线7777在线精品| 亚洲午夜一二三区视频| 亚洲精品一二三| 国产精品亲子伦对白| 久久丝袜美腿综合| 久久精品男人天堂av| 欧美精品一区二区三区很污很色的| 6080国产精品一区二区| 欧美精品高清视频| 日韩午夜精品电影| 精品欧美一区二区三区精品久久| 欧美成人免费网站| 久久女同性恋中文字幕| 国产日本一区二区| 国产精品第五页| 亚洲男人的天堂在线观看| 亚洲精品亚洲人成人网| 亚洲sss视频在线视频| 天堂一区二区在线| 美女www一区二区| 国产真实精品久久二三区| 成人精品视频网站| 91黄色免费网站| 欧美理论在线播放| 精品对白一区国产伦| 国产欧美日韩一区二区三区在线观看 | 国产精品入口麻豆原神| 日韩一区欧美一区| 亚洲成av人片一区二区梦乃| 美女视频网站久久| 东方欧美亚洲色图在线| 91搞黄在线观看| 日韩精品一区二区三区四区 | 国产精品国产精品国产专区不蜜| 亚洲欧美日韩人成在线播放| 五月婷婷色综合| 国产在线视频精品一区| 91精品91久久久中77777| 在线播放国产精品二区一二区四区 | 亚洲欧美日韩国产中文在线| 亚洲五月六月丁香激情| 经典三级视频一区| 成人18精品视频| 日韩一区二区视频在线观看| 国产精品免费视频观看| 日韩电影免费一区| av网站免费线看精品| 91精品国产综合久久精品性色| 久久九九久久九九| 亚洲chinese男男1069| 丁香天五香天堂综合| 欧美日韩另类一区| 国产精品大尺度| 久久国产精品色婷婷| 欧美日韩精品欧美日韩精品一 |