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

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

?? .#messageprocessor.java.1.20

?? It is Java for SIP phone
?? 20
?? 第 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.address.URI;import javax.sip.header.AcceptHeader;import javax.sip.header.CallInfoHeader;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() {<<<<<<< MessageProcessor.java			while(state.equals(STARTED)){								try{				   byte[] buffer=VoiceRecorder.getInstance().getRecord();				   if(buffer!=null)					   messengerManager.sendVoiceMessage(					   		contactAddress,buffer);<<<<<<< MessageProcessor.java				   voiceMessagingThread.sleep(5000);=======				   voiceMessagingThread.sleep(Configuration.latency4VoiceMessaging);>>>>>>> 1.18=======			while (state.equals(STARTED)) {				try {					byte[] buffer = VoiceRecorder.getInstance().getRecord();					if (buffer != null)						messengerManager.sendVoiceMessage(							contactAddress,							buffer);					voiceMessagingThread.sleep(						Configuration.latency4VoiceMessaging);>>>>>>> 1.20				} 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);				//If the user has put an URL for the BUSY we add i in the CALL-Info			  	if(messageListener.getConfiguration().httpBusy!=null){					CallInfoHeader callInfoHeader=						MessageListener.headerFactory.createCallInfoHeader(					  	MessageListener.addressFactory.createURI(					  	messageListener.getConfiguration().httpBusy));				  	busyHere.addHeader(callInfoHeader);							  }				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);			}		} catch (SipException se) {			se.printStackTrace();		} catch (ParseException pe) {			pe.printStackTrace();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看日产精品| 精品国产一区二区三区四区四| 高清av一区二区| 国产精品中文字幕欧美| 久草在线在线精品观看| 卡一卡二国产精品| 捆绑调教美女网站视频一区| 伦理电影国产精品| 欧美日韩和欧美的一区二区| 色激情天天射综合网| 91色婷婷久久久久合中文| 91小视频免费观看| 欧美日韩日日夜夜| 7777精品伊人久久久大香线蕉超级流畅| 在线观看av一区二区| 在线观看一区二区视频| 欧美精品丝袜中出| 日韩一区二区在线播放| 欧美成人免费网站| 国产欧美日韩综合| 国产蜜臀97一区二区三区 | 久久嫩草精品久久久精品| 精品国产百合女同互慰| 国产午夜精品一区二区三区视频| 中文字幕av一区二区三区高| 1024国产精品| 午夜伦理一区二区| 久久99国产精品成人| 成人影视亚洲图片在线| 色欧美乱欧美15图片| 欧美电影影音先锋| 久久影院电视剧免费观看| 国产精品久久久久久久裸模| 亚洲嫩草精品久久| 免费在线观看不卡| 成人丝袜18视频在线观看| 欧美伊人久久大香线蕉综合69| 911国产精品| 国产日韩欧美电影| 亚洲一区二区三区视频在线播放| 久久国产综合精品| 99久久久久久| 8x福利精品第一导航| 久久精品亚洲乱码伦伦中文| 一区二区三区精品在线观看| 麻豆国产欧美一区二区三区| aaa亚洲精品| 欧美一级国产精品| 中文字幕一区二区三区在线观看 | 免费久久精品视频| 成人激情黄色小说| 欧美一区二区三区视频免费| 国产拍揄自揄精品视频麻豆| 亚洲国产精品久久人人爱| 久久99日本精品| 色噜噜狠狠一区二区三区果冻| 日韩欧美电影在线| 伊人色综合久久天天| 国内精品久久久久影院色| 色欧美乱欧美15图片| 欧美精品一区二区蜜臀亚洲| 一区二区免费在线播放| 国产一区91精品张津瑜| 欧美视频你懂的| 国产精品天美传媒沈樵| 免费成人性网站| 色婷婷av一区二区三区gif| 亚洲一区二区三区四区五区黄 | 在线免费亚洲电影| 久久综合给合久久狠狠狠97色69| 亚洲欧美韩国综合色| 国产精品一品二品| 91精品国产一区二区三区香蕉| 亚洲四区在线观看| 国产精品一二三| 日韩视频一区二区在线观看| 亚洲综合成人在线| 成人97人人超碰人人99| 久久日韩精品一区二区五区| 水野朝阳av一区二区三区| 一本久久a久久精品亚洲| 国产丝袜欧美中文另类| 麻豆成人91精品二区三区| 欧美在线免费视屏| 亚洲欧美日韩国产手机在线| 国产99一区视频免费| 欧美大片一区二区| 免费三级欧美电影| 欧美精品九九99久久| 一区二区三区国产精华| www.亚洲国产| 国产亚洲成年网址在线观看| 精品一区二区三区免费观看| 日韩午夜激情免费电影| 日韩不卡一区二区三区| 欧美日韩国产一二三| 亚洲一区在线视频| 色爱区综合激月婷婷| 尤物在线观看一区| 91视视频在线观看入口直接观看www| 日本一区二区动态图| 国产精品1区2区| 国产欧美日韩亚州综合 | 成人黄页在线观看| 国产精品污www在线观看| 国产一区二区三区综合 | 韩国午夜理伦三级不卡影院| 欧美一区二区视频观看视频 | 99在线精品一区二区三区| 国产精品嫩草99a| 成人app软件下载大全免费| 中文字幕在线一区免费| 99re这里只有精品6| 亚洲欧洲综合另类在线| 在线精品国精品国产尤物884a| 亚洲国产精品一区二区久久恐怖片 | 韩国成人精品a∨在线观看| 精品国产凹凸成av人导航| 国产福利不卡视频| 亚洲国产高清在线| www.亚洲色图.com| 夜夜精品视频一区二区| 欧美日韩久久久| 美女在线观看视频一区二区| 久久免费视频一区| 99视频精品免费视频| 伊人开心综合网| 91精品国产一区二区| 国产曰批免费观看久久久| 欧美激情一区在线观看| 国产精品久久久久aaaa| 97se亚洲国产综合在线| 亚洲国产精品一区二区久久 | 国产精品美女视频| 色噜噜偷拍精品综合在线| 日韩高清不卡一区二区三区| 精品国产一区久久| proumb性欧美在线观看| 亚洲高清不卡在线观看| 精品噜噜噜噜久久久久久久久试看| 国产精品中文字幕欧美| 一区二区成人在线视频| 日韩欧美亚洲国产另类| 成人免费视频视频| 午夜亚洲福利老司机| ww亚洲ww在线观看国产| 91亚洲精品久久久蜜桃| 美女一区二区久久| 最新国产成人在线观看| 欧美日韩一区二区在线观看| 国产乱码字幕精品高清av| 亚洲精品高清在线观看| 欧美zozo另类异族| 一本大道综合伊人精品热热 | 日韩女优av电影| av电影在线观看完整版一区二区 | 欧美日韩视频在线一区二区| 国产精品综合久久| 亚洲成人自拍一区| 国产日韩欧美一区二区三区乱码| 欧美日韩成人在线一区| 国产成人午夜精品5599 | 色综合一区二区| 精品一区二区三区视频| 亚洲一区二区五区| 欧美韩国一区二区| 欧美一卡2卡3卡4卡| 色哟哟亚洲精品| 国产+成+人+亚洲欧洲自线| 天堂av在线一区| 国产精品成人一区二区艾草| 精品欧美久久久| 欧美日韩免费一区二区三区| 国产凹凸在线观看一区二区| 日韩av成人高清| 亚洲综合一区二区| 国产精品美女久久福利网站| 日韩午夜激情视频| 欧美三级中文字幕| 91伊人久久大香线蕉| 高清不卡一区二区在线| 国精产品一区一区三区mba视频| 亚洲1区2区3区视频| 亚洲少妇30p| 国产精品视频免费看| 精品国产乱码久久久久久蜜臀 | 亚洲欧洲日韩av| 国产午夜一区二区三区| 精品国产123| 欧美大尺度电影在线| 337p亚洲精品色噜噜| 欧美色中文字幕| 日本韩国精品在线| 91色婷婷久久久久合中文| av中文字幕亚洲| 夫妻av一区二区| 国产精品一区二区免费不卡| 久久国产麻豆精品| 蜜臀av一区二区在线免费观看| 丝袜美腿一区二区三区|