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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? .#messageprocessor.java.1.17

?? It is Java for SIP phone
?? 17
?? 第 1 頁 / 共 3 頁
字號:
/* * MessageProcessor.java * * Created on November 17, 2003, 5:52 PM */package gov.nist.applet.phone.ua;import java.text.ParseException;import javax.sip.SipException;import javax.sip.Transaction;import javax.sip.SipFactory;import javax.sip.ServerTransaction;import javax.sip.ClientTransaction;import javax.sip.message.Request;import javax.sip.message.Response;import javax.sip.message.MessageFactory;import javax.sip.address.AddressFactory;import javax.sip.address.Address;import javax.sip.address.SipURI;import javax.sip.header.AcceptHeader;import javax.sip.header.ContentTypeHeader;import javax.sip.header.HeaderFactory;import javax.sip.header.FromHeader;import javax.sip.header.ToHeader;import javax.sip.header.ExpiresHeader;import java.util.ListIterator;import gov.nist.applet.phone.media.MediaManager;import gov.nist.applet.phone.media.messaging.VoicePlayer;import gov.nist.applet.phone.media.messaging.VoiceRecorder;import gov.nist.applet.phone.ua.call.*;import gov.nist.applet.phone.ua.pidf.parser.PresenceTag;import gov.nist.applet.phone.ua.pidf.parser.XMLpidfParser;import gov.nist.applet.phone.ua.presence.*;/** * Handler of a major part of sip messages *  * @author  DERUELLE Jean */public class MessageProcessor {    /**     * The SipFactory instance used to create the SipStack and the Address     * Message and Header Factories.     */    SipFactory sipFactory;    /**     * The AddressFactory used to create URLs ans Address objects.     */    AddressFactory addressFactory;    /**     * The HeaderFactory used to create SIP message headers.     */    HeaderFactory headerFactory;    /**     * The Message Factory used to create SIP messages.     */    MessageFactory messageFactory;        /**     * The MessageListener used to handle incoming messages     */    MessageListener messageListener;    /**     * the configuration     */    private Configuration configuration;	VoicePlayer voicePlayer=null;	/**	 * 	 */    MessengerManager messengerManager;	VoiceMessagingTask voiceMessagingTask;    	class VoiceMessagingTask implements Runnable {		Thread voiceMessagingThread=null;			String contactAddress=null;		protected static final String STARTED="Started";		protected static final String STOPPED="Stopped";		String state=STOPPED;				public VoiceMessagingTask(String contactAddress) {			this.contactAddress=contactAddress;					}		public synchronized void start(){			if(voiceMessagingThread==null){				voiceMessagingThread=new Thread(this);			}			state=STARTED;			voiceMessagingThread.start();					}			public synchronized void stop(){			state=STOPPED;		}		public void run() {			while(state.equals(STARTED)){								try{				   byte[] buffer=VoiceRecorder.getInstance().getRecord();				   if(buffer!=null)					   messengerManager.sendVoiceMessage(					   		contactAddress,buffer);				   voiceMessagingThread.sleep(5000);				} catch (Exception ex) {					ex.printStackTrace();				}			}		}			}        /**     *      */    protected void startVoiceMessagingSchedule(String callee){		//schedule to send the voice messages every 2 sec.		VoiceRecorder.getInstance().initialize();		VoiceRecorder.getInstance().start();		voiceMessagingTask=new VoiceMessagingTask(callee);				voiceMessagingTask.start();		    }        /**     *      */	protected void stopVoiceMessagingSchedule(){		//Stop the voice messages schedule and the voiceRecorder						voiceMessagingTask.stop();							VoiceRecorder.getInstance().stop();					if(!VoiceRecorder.isClosed())			VoiceRecorder.getInstance().close();				}           /** Creates a new instance of MessageProcessor      * @param callListener - the sip Listener used to handle incoming messages     */    public MessageProcessor(MessageListener messageListener) {		voicePlayer=new VoicePlayer();		        this.messageListener=messageListener;        addressFactory=MessageListener.addressFactory;        sipFactory=MessageListener.sipFactory;        headerFactory=MessageListener.headerFactory;        messageFactory=MessageListener.messageFactory;        configuration=messageListener.getConfiguration();		messengerManager = messageListener.sipMeetingManager;    }            /**********************************************************************/    /*                                                                    */    /*                    Handling request messages                       */    /*                                                                    */    /**********************************************************************/        /**     * Process the INVITE received request     * @param serverTransaction - the server transaction associated with the request     * @param invite - the request      */    public void processInvite(ServerTransaction serverTransaction, Request invite)    {		//Strip out the callee	  	SipURI calleeURI=			(SipURI)((FromHeader)invite.getHeader(FromHeader.NAME))				.getAddress().getURI();	  	String callee="sip:"+calleeURI.getUser()+"@"+calleeURI.getHost();               try {        				CallManager callManager=				messageListener.sipMeetingManager.getCallManager();			/*//Getting the content type to know in which type of 			//session the user is invited to						ContentTypeHeader contentTypeHeader=				(ContentTypeHeader)invite.getHeader(ContentTypeHeader.NAME);			String subType = null;			if (contentTypeHeader != null) 				subType=contentTypeHeader.getContentSubType();			System.out.println("the other end invite us to "+subType);						//Accept automatically the instant messaging session			if(subType == null ){				IMCall call=new IMCall(callee); 				call.setDialog(serverTransaction.getDialog());				callManager.addIMCall(call);				System.out.println("IM Call created : "+					call.getDialog().getDialogId());				Response ok = (Response) MessageListener.messageFactory.createResponse(					Response.OK,invite);				//Put a tag on the To Header				((ToHeader)ok.getHeader(ToHeader.NAME)).setTag(					MessengerManager.generateTag());				//Specify the contact Header				SipURI contactURI=MessageListener.addressFactory.createSipURI(							messageListener.sipMeetingManager.getUserURI().getUser(),							configuration.contactIPAddress);				contactURI.setTransportParam(					configuration.signalingTransport);				ContactHeader contactHeader = 					MessageListener.headerFactory.createContactHeader(						MessageListener.addressFactory.createAddress(contactURI)); 				contactURI.setPort(					messageListener.sipProvider.getListeningPoint().getPort());                    				ok.addHeader(contactHeader);				//Content			  				  	ok.addHeader(contentTypeHeader);				//Send the ok				serverTransaction.sendResponse(ok);				// Voice messaging.				AudioCall audioCall=new AudioCall(messageListener);											audioCall.setCallee(callee);				audioCall.setDialog(serverTransaction.getDialog());				audioCall.setStatus(AudioCall.INCOMING_CALL);				System.out.println("Audio Call created : "+					audioCall.getDialog().getDialogId());				callManager.addAudioCall(audioCall);			                      				audioCall.setVoiceMesaging(true);			}			else{*/				//The audio device cannot be shared so if the user is already				//in a call, a busy here is sent back				if(callManager.isAlreadyInAudioCall()){					Response busyHere= 						(Response) MessageListener.messageFactory.createResponse(							Response.BUSY_HERE,invite);					System.out.println("send response : "+						busyHere.toString());					serverTransaction.sendResponse(busyHere);																				} else {							        	Response ringing = 			        	(Response) MessageListener.messageFactory.createResponse(			                Response.RINGING,invite);			       		// System.out.println("send response : "+ringing.toString());			        	serverTransaction.sendResponse(ringing);									AudioCall audioCall=new AudioCall(messageListener);												audioCall.setCallee(callee);					audioCall.setDialog(serverTransaction.getDialog());					audioCall.setStatus(AudioCall.INCOMING_CALL);					System.out.println("Audio Call created : "+						audioCall.getDialog().getDialogId());					callManager.addAudioCall(audioCall);					//Check if someone is inviting us to voice messaging					//or regular RTP media session					boolean voiceMessaging=false;					ContentTypeHeader contentTypeHeader=						(ContentTypeHeader)invite.getHeader(ContentTypeHeader.NAME);																														if (contentTypeHeader == null){																											ListIterator acceptHeaderList=							invite.getHeaders(AcceptHeader.NAME);						while(acceptHeaderList.hasNext() && !voiceMessaging){							AcceptHeader acceptHeader=								(AcceptHeader)acceptHeaderList.next();							if(acceptHeader.getContentSubType().equalsIgnoreCase("gsm") ||							   acceptHeader.getContentSubType().equalsIgnoreCase("x-gsm") )							   	voiceMessaging=true;																															                      						}					}					audioCall.setVoiceMesaging(voiceMessaging);						// The SDP tool will be created when you send OK.			       	messageListener.sipMeetingManager.notifyObserversNewCallStatus(audioCall);				}			//}                    }        catch (SipException se) {                                    se.printStackTrace();                    }        catch (ParseException pe) {                                    pe.printStackTrace();                    }    }    /**     * Process the BYE received request     * @param serverTransaction - the server transaction associated with the request     * @param bye - the bye request      */    public void processBye(ServerTransaction serverTransaction, Request bye)    {		CallManager callManager=messageListener.sipMeetingManager.getCallManager();					//Find the matching call		Call call=			callManager.findCall(serverTransaction.getDialog().getDialogId());        //Send OK        try {            Response ok = (Response) MessageListener.messageFactory.createResponse(                    Response.OK,bye);            serverTransaction.sendResponse(ok);            if(call instanceof AudioCall){            	AudioCall audioCall=(AudioCall)call;				audioCall.setStatus(AudioCall.NOT_IN_A_CALL);				messageListener.sipMeetingManager.notifyObserversNewCallStatus(audioCall);				if(audioCall.getVoiceMessaging()){					stopVoiceMessagingSchedule();				}									else{					audioCall.getMediaManager().stopMediaSession();				}											//Remove the call				System.out.println("Audio Call removed : "+					call.getDialog().getDialogId());				callManager.removeAudioCall(audioCall);            }			else{				IMCall imCall=(IMCall)call;				//Remove the call				System.out.println("IM Call removed : "+				  call.getDialog().getDialogId());				callManager.removeIMCall(imCall);			}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人aa大片| 亚洲图片激情小说| 日本乱人伦aⅴ精品| 日本少妇一区二区| 18欧美亚洲精品| 日韩欧美国产一区二区三区 | 波多野结衣视频一区| 日韩主播视频在线| 成人免费高清视频| 人妖欧美一区二区| 亚洲综合无码一区二区| 中文一区在线播放| 欧美成人国产一区二区| 欧美日韩电影一区| 欧美亚州韩日在线看免费版国语版| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美极品aⅴ影院| 欧美一级欧美一级在线播放| 在线亚洲一区二区| 不卡免费追剧大全电视剧网站| 久久99精品久久久久久国产越南| 五月天亚洲精品| 亚洲自拍偷拍麻豆| 亚洲精品美国一| 亚洲人成亚洲人成在线观看图片| 国产精品久久久久久久久搜平片 | 国产精品一区在线| 久久国内精品视频| 美女视频黄频大全不卡视频在线播放| 亚洲大片免费看| 亚洲午夜三级在线| 亚洲一区二区美女| 亚洲成人你懂的| 午夜精品aaa| 日一区二区三区| 日韩国产精品久久久久久亚洲| 亚洲h在线观看| 丝袜诱惑亚洲看片| 日本美女一区二区三区| 日韩 欧美一区二区三区| 日韩国产欧美三级| 极品少妇xxxx精品少妇| 国产专区综合网| 成人综合在线视频| 91麻豆123| 欧美视频在线一区二区三区| 欧美日韩国产小视频| 555夜色666亚洲国产免| 日韩三级免费观看| 久久久亚洲精华液精华液精华液| 国产午夜精品一区二区三区嫩草| 国产欧美日韩精品一区| 中文字幕日韩精品一区| 亚洲亚洲精品在线观看| 日韩影院免费视频| 国产精品资源网| 97久久精品人人做人人爽| 欧美无人高清视频在线观看| 日韩一区二区影院| 国产色产综合色产在线视频| 国产精品理伦片| 亚洲二区视频在线| 激情综合色播激情啊| 大尺度一区二区| 欧美色精品天天在线观看视频| 91精品欧美久久久久久动漫 | 欧美性生交片4| 日韩精品中文字幕一区二区三区| 久久人人爽人人爽| 亚洲精品成a人| 久久国产综合精品| 91亚洲国产成人精品一区二三| 欧美三级资源在线| 26uuuu精品一区二区| 日韩码欧中文字| 久久国产精品色| 色综合天天综合在线视频| 日韩一区二区在线看片| 国产精品久久久久国产精品日日| 午夜久久久久久久久久一区二区| 激情久久五月天| 91激情在线视频| 精品99一区二区三区| 亚洲一区二区三区视频在线播放| 久久99深爱久久99精品| 色偷偷久久一区二区三区| 日韩欧美亚洲国产另类| 亚洲欧美日本韩国| 国产酒店精品激情| 欧美日本精品一区二区三区| 国产精品欧美经典| 看电影不卡的网站| 欧美日韩精品一区二区三区| 国产欧美一区在线| 蜜乳av一区二区三区| 在线观看欧美日本| 国产精品久久久久久久久快鸭| 日本中文一区二区三区| 91福利区一区二区三区| 国产三级欧美三级| 蜜桃传媒麻豆第一区在线观看| 色偷偷88欧美精品久久久| 国产亚洲欧美激情| 久久精品久久99精品久久| 欧美亚洲一区三区| 亚洲欧美一区二区视频| 国产激情视频一区二区三区欧美| 日韩一二三区不卡| 亚洲一区二区影院| 色综合色狠狠综合色| 国产精品毛片无遮挡高清| 麻豆国产欧美日韩综合精品二区| 欧美视频一区在线观看| 亚洲欧美国产77777| 波多野结衣亚洲一区| 国产亚洲欧洲997久久综合| 美国三级日本三级久久99| 欧美撒尿777hd撒尿| 亚洲精品欧美二区三区中文字幕| 国产成人精品www牛牛影视| 精品国产一区二区三区av性色| 青青青爽久久午夜综合久久午夜| 欧美老人xxxx18| 亚洲午夜在线视频| 欧美日韩一区在线观看| 亚洲女女做受ⅹxx高潮| 色屁屁一区二区| 一区二区三国产精华液| 91久久线看在观草草青青| 亚洲欧洲日韩综合一区二区| av色综合久久天堂av综合| 中文字幕中文乱码欧美一区二区| 国产成人精品免费视频网站| 国产婷婷一区二区| 国产91富婆露脸刺激对白| 国产偷国产偷精品高清尤物| 高清国产午夜精品久久久久久| 国产欧美视频一区二区三区| 处破女av一区二区| 亚洲欧美一区二区视频| 在线视频你懂得一区二区三区| 成人激情文学综合网| 日本一区二区高清| 不卡的av在线播放| 亚洲精品视频在线| 欧美视频在线播放| 麻豆视频观看网址久久| 久久你懂得1024| 懂色av中文一区二区三区| 国产精品久久久久久户外露出| 色偷偷88欧美精品久久久| 亚洲一区二区在线播放相泽 | 精品国产免费人成在线观看| 精品系列免费在线观看| 欧美国产在线观看| 91激情五月电影| 蜜臀av性久久久久av蜜臀妖精 | 最好看的中文字幕久久| 色一情一伦一子一伦一区| 亚洲aaa精品| 精品国产三级a在线观看| 国产成人精品免费| 亚洲亚洲人成综合网络| 日韩一区二区三区视频| 国内外成人在线| 亚洲人123区| 欧美成人官网二区| a级高清视频欧美日韩| 亚洲sss视频在线视频| 久久久久久黄色| 日本韩国精品在线| 韩国欧美国产1区| 亚洲日穴在线视频| 欧美电影免费观看高清完整版在线| 国产成人免费9x9x人网站视频| 亚洲一区二区偷拍精品| 精品久久久久久最新网址| 色综合久久综合| 久久国产福利国产秒拍| 亚洲人成小说网站色在线| 日韩欧美在线1卡| 91免费观看视频在线| 久久精品久久99精品久久| 亚洲色图都市小说| 精品久久免费看| 欧美日韩一区二区三区四区五区| 国产一区二区三区免费看 | 国产精品久久久久久久裸模| 欧美精品久久久久久久多人混战 | 一本在线高清不卡dvd| 极品少妇xxxx偷拍精品少妇| 亚洲综合av网| 国产精品传媒入口麻豆| 日韩写真欧美这视频| 在线观看日韩一区| 成人一级黄色片| 激情五月激情综合网| 人人狠狠综合久久亚洲| 亚洲激情六月丁香| 中文字幕免费不卡|