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

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

?? sipcallmember.java

?? Java SIP
?? JAVA
字號:
/* * This file was derived from libdissipate, an open source SIP library. The original file  * was modified on 1/23/2001.  Please see * http://www.div8.net/dissipate for more information. * * Copyright (c) 2000 Billy Biggs <bbiggs@div8.net> * * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Library General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at your * option) any later version. *  * This library 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 Library General Public * License for more details. *  * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * *//** * class SipCallMember *  * Object to reference a member of a call.  Contains the remote URI, their * current Contact URI, and their current status in the call.  It also contains * their current session description, and a copy of our local session * description for this call leg. * * This class also provides an API for modifying call state to this member of * the call, such as sending an invitation to join the session, or accepting a * call. */package org.mitre.jsip;import java.awt.Toolkit;import org.mitre.jsip.event.*;public class SipCallMember extends Object{    /**     * Creates a new member for this call with the given URI.  Initially,     * this sets the Contact URI for the call member to be the same.     * @param parent     * @param uri     */    public SipCallMember(SipCall parent, SipUri uri)    {	call = parent;	memberuri = uri;	contacturi = uri;	local = null;	remote = null;	status = Disconnected;	parent.addMember( this );    }    /**     * Returns the current status of the call member.     *     * @return Status     */    public int getStatus()    { return status; }    /**     * Returns the most recent session description provided by the member      * for sending media to them.     *     * @return String     */    public String getSessionDescription()    { return sessiondesc; }    /**     * Returns the MIME Content Type of the session description provided by     * the call member.  If none was provided, this function returns NULL.     * @return MimeContentType     */    public MimeContentType getSessionDescriptionType()    { return sessiontype; }    /**     * Returns the most recently sent local session description.  Provided     * for reference.     * @return String     */    public String getLocalSessionDescription()    { return localsessiondesc; }    /**     * Returns the MIME Content Type of the most recently sent local     * session description.     * @return MimeContentType     */    public MimeContentType getLocalSessionDescriptionType()    { return localsessiontype; }    /**     * Returns a text description of our current status.  Basically, this     * is the text from the response line of the last message we received,     * or a text description of what we're currently doing or waiting for.     * Useful for showing the user what is going on.     * @return String     */    public String getLocalStatusDescription()    { return statusdesc; }    /**     * Returns the most recent message body we received that was not a     * session description.     * @return String     */    public String getMostRecentMessageBody()    { return recentbody; }        /**     * Returns the MIME type of the most recent message body we received     * that was not a session description.     * @return MimeContentType     */    public MimeContentType getMostRecentMessageBodyType()    { return recentbodytype; }    /**     * Sends a SIP INVITE request, asking the member to join in the session     * described in the given body.  The body and MIME type provided will     * become the new local session description for this call member.     */       public void requestInvite( String body, MimeContentType bodytype )   {    if ( local != null ) {	//      local.cancelRequest();	local = null;      //      disconnect( local, 0, this, 0 );    }    if ( body != null ) {      localsessiondesc = body;      localsessiontype = bodytype;    }    if ( status == Connected ) {      status = ReInviteRequested;      statusdesc = "Requesting session update";    } else {      status = InviteRequested;      statusdesc = "Requesting remote end to join session";    }    local = call.newRequest( this, Sip.INVITE, body, bodytype );    // *** LOOK AT ***    //connect( local, statusUpdated(), this, localStatusUpdated() );    //statusUpdated();    //    localStatusUpdated();  }  /**   * Sends a SIP BYE request to disconnect the session.   */    public void requestDisconnect( String body, MimeContentType bodytype )  {    if ( status == Disconnected ) return;    if ( local != null ) {	//      local.cancelRequest();	local = null;      //      disconnect( local, 0, this, 0 );    }    status = Disconnecting;    statusdesc = "Disconnecting";    local = call.newRequest( this, Sip.BYE, body, bodytype );    // *** LOOK AT ***    //connect ( local, statusUpdate(), this, localStatusUpdated() );    //statusUpdated();    localStatusUpdated();  }  /**   * Disconnects the session with a request to transfer to another party.   */  public void requestTransfer( SipUri transferto, String body, MimeContentType bodytype )  {    if ( status == Disconnected ) return;    if ( local != null ) {	//      local.cancelRequest();	local = null;      //      disconnect( local, 0, this, 0 );    }    status = Disconnecting;    statusdesc = "Transfering";    local = call.newRequest( this, Sip.BYE, body, bodytype, transferto );    // **** LOOK AT ****    //connect( local, statusUpdated(), this, localStatusUpdated() );    //statusUpdated();    localStatusUpdated();  }    /**     * Sends a MESSAGE request     */    public void requestMessage( String messageBody )    {	if ( local != null ) {	    //	    local.cancelRequest();	    local = null;	}	statusdesc = "Sending message";	status = MessageRequested;	MimeContentType bodytype = new MimeContentType( "text/plain" );	local = call.newRequest( this, Sip.MESSAGE, messageBody, bodytype );		//	localStatusUpdated();    }  /**   * Sends a SIP OPTIONS request, asking the member what they support.   * The body and MIME type provided serve no known purpose at this time.   * The response to the OPTIONS request will become the new remote   * session description, so this should not be called on an active call.   * It is provided here for consistency.   */  public void requestOptions( String body, MimeContentType bodytype )   {    if ( local != null ) {	//      local.cancelRequest();	local = null;      //      disconnect( local, 0, this, 0 );    }    statusdesc = "Querying options";    local = call.newRequest( this, Sip.OPTIONS, body, bodytype );    // *** LOOK AT ***    //connect( local, statusUpdated(), this, localStatusUpdated() );    //statusUpdated();    localStatusUpdated();  }  /**   * Accepts the invitation to join the session sent by the call member.   * The body and MIME type provided will become the new local session   * description for this call member.   */  public void acceptInvite( String body, MimeContentType bodytype )   {    if ( remote == null ) return;    if ( body != null ) {      localsessiondesc = body;      localsessiontype = bodytype;    }    remote.sendResponse( new SipStatus( 200 ), body, bodytype );    status = Connected;    statusdesc = "Connected";    //statusUpdated();    localStatusUpdated();  }  /**   * Declines the invitation to join the session sent by the call member.   * The body and MIME type provided are for possibly giving a reason as   * to why the call was declined.   */  public void declineInvite( String body, MimeContentType bodytype )   {    if ( remote == null ) return;    remote.sendResponse( new SipStatus( 603 ), body, bodytype );    status = Disconnected;    statusdesc = "Rejecting call invitation";    //statusUpdated();    localStatusUpdated();  }  /**   * Returns the URI for this call member.   *   * @return SipUri &   */  public SipUri getUri()  { return memberuri; }  /**   * Returns the current Contact URI for this call member.   *   * @return SipUri &   */  public SipUri getContactUri()  { return contacturi; }  /**   * Sets the Contact URI for this call member.   *   * @param newcontact   */  public void setContactUri(SipUri newcontact)  {    contacturi = newcontact;  }  /**   * Updates the URI for this call member.   *   * @param newuri   */  public void setUri(SipUri newuri)  {    memberuri = newuri;  }  /**   * Returns the list of URIs where we were redirected.   *   * @return SipUriList &   */  public SipUriList getRedirectList()  { return redirectlist; }  /**   * This signal is sent whenever the status of this call member has changed.   *   */      //private void statusUpdated() {    // SipCall.statusUpdated();    //}  /**   * localStatusUpdated   */  void localStatusUpdated()  {    MimeContentType mtype;        if( local == null ) {      if (SipClient.DEBUG) System.out.println( "SipCallMember: Received what was likely a retransmission, badly ignoring..." );      return;    }    if (SipClient.DEBUG) System.out.println( "SipCallMember: localStatusUpdated: " + local.getStatus().getCode() );    mtype = local.getFinalContentType();    if( mtype.type().equals( "application/sdp" ) ) {      sessiondesc = local.getFinalMessageBody();      localsessiontype = mtype;    } else {      recentbody = local.getFinalMessageBody();      recentbodytype = mtype;    }    if( status == InviteRequested || status == ReInviteRequested ) {      if( local.wasCancelled() ) {	status = Disconnected;	statusdesc = "Request cancelled";	local = null;      } else if( local.getStatus().getCode() < 200 ) {	statusdesc = local.getStatus().getReasonPhrase();      } else if( local.getStatus().getCode() < 300 ) {	status = Connected;	statusdesc = "Connected: " + local.getStatus().getReasonPhrase();	local = null;      } else if( local.getStatus().getCode() < 400 ) {	status = Redirected;	statusdesc = "Redirected: " + local.getStatus().getReasonPhrase();	redirectlist = local.getFinalContactList();	local = null;      } else {	status = Disconnected;	statusdesc = "Call Failed: " + local.getStatus().getReasonPhrase();	local = null;      }    } else if( status == Disconnecting ) {      if( local.getStatus().getCode() >= 200 ) {	status = Disconnected;	statusdesc = "Response: " + local.getStatus().getReasonPhrase();	local = null;      }    } else {      if( local.getStatus().getCode() >= 200 ) {	statusdesc = "Response: " + local.getStatus().getReasonPhrase();	local = null;      }    }    //statusUpdated();  }  /**   * remoteStatusUpdated   */  void remoteStatusUpdated()  {    if( status == RequestingInvite ) {      if( remote.wasCancelled() ) {	status = Disconnected;	statusdesc = "Request cancelled";	//statusUpdated();      }    }  }  /**   * incomingTransaction   * @param newtrans   */  void incomingTransaction(SipTransaction  newtrans)  {      MimeContentType mtype;            remote = newtrans;      if( remote.getRequest().getMethod() == Sip.INVITE ) {	  	  // *** LOOK AT ***	  //connect( remote, statusUpdated(), this, remoteStatusUpdated() );	  	  if( status == Disconnected ) {	      status = RequestingInvite;	      statusdesc = "Invitation received";	      remote.sendResponse( new SipStatus( 180 ) );	  } else {	      status = RequestingReInvite;	      statusdesc = "Session update requested";	  }	  	  mtype = remote.getRequestMessageContentType();	  if( ( mtype != null ) && ( mtype.type().equals( "application/sdp" ) ) ) {	      sessiontype = mtype;	      sessiondesc = remote.getRequestMessageBody();	  } else {	      recentbodytype = mtype;	      recentbody = remote.getRequestMessageBody();	  }		  // send a CallEvent here to notify the user of the request	  if (SipClient.DEBUG) System.out.println("Sending CallEvent request ");	  CallListener callListener = SipClient.getSipClient().getCallListener();	  if ( callListener != null ) {	      //	      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent( new CallEvent( SipClient.getSipClient(), remote.getRequest(), CallEvent.CALLREQUEST_ID ) );	      CallEvent ce = new CallEvent( SipClient.getSipClient(), remote.getRequest(), CallEvent.CALLREQUEST_ID );	      callListener.requestReceived( ce );	  }      } else if( remote.getRequest().getMethod() == Sip.BYE ) {	  	  status = Disconnected;	  statusdesc = "Remote end disconnected";	        }            // statusUpdated();      remoteStatusUpdated(); // I think  }      SipUri memberuri;  SipUri contacturi;  int status;  SipCall   call;  SipTransaction   local;  SipTransaction   remote;  SipUriList redirectlist;  String sessiondesc;  MimeContentType sessiontype;  String localsessiondesc;  MimeContentType localsessiontype;  String statusdesc;  String recentbody;  MimeContentType recentbodytype;  // class variables   static final int Disconnected = 0;  static final int InviteRequested = 1;  static final int ReInviteRequested = 2;  static final int RequestingInvite = 3;  static final int RequestingReInvite = 4;  static final int Redirected = 5;  static final int Connected = 6;  static final int Disconnecting = 7;    static final int MessageRequested = 8;  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一线二线三线| 国产女人18毛片水真多成人如厕| 久久精品久久99精品久久| 国产欧美一区二区三区鸳鸯浴| 欧美色图在线观看| 国产成人亚洲精品青草天美| 男男视频亚洲欧美| 一区二区三区在线播| 久久综合久久99| 欧美一二三四区在线| 在线观看一区日韩| 99久久精品国产观看| 国产盗摄视频一区二区三区| 麻豆91精品91久久久的内涵| 亚洲免费观看在线视频| 中文一区在线播放| 精品成人一区二区三区| 717成人午夜免费福利电影| 色婷婷精品久久二区二区蜜臀av | 一本到一区二区三区| 国产一区二区在线电影| 免费观看久久久4p| 午夜av电影一区| 五月激情综合婷婷| 亚洲va韩国va欧美va| 亚洲五码中文字幕| 亚洲成人精品在线观看| 亚洲国产精品一区二区尤物区| 综合分类小说区另类春色亚洲小说欧美 | 国产女人18毛片水真多成人如厕 | 亚洲妇熟xx妇色黄| 亚洲欧美日韩国产另类专区| 中文字幕精品一区二区精品绿巨人| 2欧美一区二区三区在线观看视频| 欧美一区二区三区系列电影| 欧美乱妇23p| 欧美主播一区二区三区美女| 欧美亚洲综合色| 欧美在线观看视频在线| 欧美96一区二区免费视频| 一区二区三区视频在线看| 91麻豆精品国产91久久久久久久久| 裸体健美xxxx欧美裸体表演| 亚洲综合视频在线| 久久久久久97三级| 97久久精品人人做人人爽50路| 日韩成人免费电影| 一区二区三区四区不卡在线| 国产欧美日韩综合精品一区二区| 538在线一区二区精品国产| 色综合久久综合中文综合网| 国模大尺度一区二区三区| 免费精品视频在线| 天天免费综合色| 亚洲一级二级在线| 亚洲成人av中文| 五月天视频一区| 91久久国产综合久久| 亚洲综合色噜噜狠狠| 亚洲小少妇裸体bbw| 欧美视频在线观看一区| 久久久久国产成人精品亚洲午夜| 久久久噜噜噜久噜久久综合| 国产欧美一区二区在线观看| 亚洲人成精品久久久久久| 亚洲一区二区精品视频| 蜜臀精品久久久久久蜜臀| 国产精品系列在线观看| 色老综合老女人久久久| 91精品国产一区二区三区香蕉| 欧美电影免费观看高清完整版在| 国产在线不卡一区| 国产一本一道久久香蕉| 国产成人精品午夜视频免费| 99久久免费精品| 欧美视频一区二区三区| 精品国产区一区| 国产丝袜美腿一区二区三区| 18成人在线视频| 亚洲va韩国va欧美va| 国产乱对白刺激视频不卡| 91精品国产一区二区三区香蕉| 激情小说欧美图片| 国产精品无人区| 欧美一级二级三级乱码| 欧美日韩在线电影| 亚洲精品成a人| 欧美天天综合网| 麻豆成人久久精品二区三区小说| 日韩欧美成人激情| caoporn国产精品| 久久久久久久久久久久久女国产乱| 国产精品77777竹菊影视小说| 国产欧美一区二区三区网站| 成人ar影院免费观看视频| 亚洲成人一区在线| 久久先锋影音av| 欧美影院一区二区| 国模无码大尺度一区二区三区| 国产精品国产三级国产aⅴ中文| 在线亚洲免费视频| 日本成人在线不卡视频| 色老综合老女人久久久| 亚洲欧洲韩国日本视频| 国产一区二区三区四区五区美女 | 国产高清亚洲一区| 欧美亚洲动漫精品| 亚洲欧美国产毛片在线| 国产剧情一区在线| 色老汉一区二区三区| 中文字幕在线不卡一区| 色偷偷一区二区三区| 国产精品三级在线观看| 成人精品免费网站| 亚洲综合区在线| 亚洲国产另类精品专区| 综合av第一页| 国产女主播视频一区二区| 日本三级亚洲精品| 日本久久一区二区| 国产精品传媒在线| 成人免费毛片片v| 2023国产精华国产精品| 蜜臀精品一区二区三区在线观看| 欧美性色黄大片| 亚洲自拍偷拍综合| 色婷婷一区二区三区四区| 亚洲欧美另类在线| 99久久777色| 亚洲精品少妇30p| 色视频一区二区| 亚洲一区二区三区视频在线播放| av电影天堂一区二区在线观看| 久久成人羞羞网站| 欧美日韩国产一级片| 亚洲日本成人在线观看| 91视频观看视频| 中文字幕一区二区5566日韩| 91在线视频免费91| 亚洲精品中文在线影院| 91伊人久久大香线蕉| 亚洲少妇屁股交4| 91视频com| 亚洲欧美成人一区二区三区| 国产大陆亚洲精品国产| 国产精品入口麻豆九色| 中文字幕一区二区三区不卡 | 亚洲国产aⅴ成人精品无吗| 在线欧美小视频| 99视频国产精品| 国产一区999| 日本亚洲电影天堂| 一区二区三区 在线观看视频| 日韩欧美亚洲一区二区| 99精品视频在线观看免费| 高清av一区二区| 久草中文综合在线| 日韩av电影免费观看高清完整版| 免费成人在线播放| 久久久国产精华| 日本道精品一区二区三区| 午夜视黄欧洲亚洲| 久久综合色综合88| 成人avav在线| 国产免费久久精品| 精品少妇一区二区三区免费观看 | ww亚洲ww在线观看国产| 欧美一区二区三区影视| 欧美性受xxxx| 欧美精品日日鲁夜夜添| 欧美专区亚洲专区| 宅男噜噜噜66一区二区66| 欧美成人综合网站| 欧美一区二区三区在线观看 | 国产精品久久久久久久久久免费看| 日韩欧美在线123| 日韩精品影音先锋| 日本一区二区三区在线不卡| 中文字幕va一区二区三区| 国产精品久久久久久久久免费丝袜 | 欧美久久婷婷综合色| 欧美夫妻性生活| 成人动漫一区二区| 成人丝袜18视频在线观看| 狠狠色丁香婷婷综合久久片| 91视频精品在这里| 日韩中文欧美在线| 久久久精品欧美丰满| 99久久精品国产精品久久| 亚洲欧洲www| 日韩精品一区二区在线| 日本精品一区二区三区四区的功能| 韩国精品一区二区| 亚洲电影在线免费观看| 亚洲欧洲一区二区三区| 精品99一区二区三区| 欧美日韩在线一区二区| 成人福利电影精品一区二区在线观看| 爽爽淫人综合网网站| 亚洲激情校园春色|