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

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

?? messageprocessor.java

?? 是一個用java實現(xiàn)的
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
		SipURI calleeURI =
			(SipURI) ((FromHeader) cancel.getHeader(FromHeader.NAME))
				.getAddress()
				.getURI();
		String callee =
			"sip:" + calleeURI.getUser()
				+ "@"
				+ calleeURI.getHost().trim().toLowerCase();
		//Find the Audio call
		AudioCall call = callManager.findAudioCall(callee);
		//Send OK
		try {
			Response ok =
				(Response) MessageListener.messageFactory.createResponse(
					Response.OK,
					cancel);
			serverTransaction.sendResponse(ok);
			call.setStatus(AudioCall.CANCEL);
			messageListener.sipMeetingManager.notifyObserversNewCallStatus(
				call);
			System.out.println(
				"Audio Call removed : " + call.getDialog().getDialogId());
			callManager.removeAudioCall(call);
		} catch (SipException se) {
			se.printStackTrace();
		} catch (ParseException pe) {
			pe.printStackTrace();
		}

	}

	/**
	 * Process the MESSAGE received request. MESSAGE may be handled statefully or
	 * statelessly.
	 * @param serverTransaction - the server transaction associated with the request
	 * @param message - the request 
	 */
	public void processMessage(
		ServerTransaction serverTrans,
		Request message) {
                    
               ServerTransaction serverTransaction = null;

                try {
		
                    serverTransaction = 
			(serverTrans == null? 
				messageListener.sipProvider.getNewServerTransaction(message): 
				serverTrans);
                } catch (javax.sip.TransactionAlreadyExistsException ex) {
                    ex.printStackTrace();
                    return;
                } catch (javax.sip.TransactionUnavailableException ex1) {
                    ex1.printStackTrace();
                    return;
                }
                           

                       

		//Send OK
		try {
			String sender = null;
			Address address =
				((FromHeader) message.getHeader(FromHeader.NAME)).getAddress();
			if (address.getURI().isSipURI()) {
				SipURI sipURI = ((SipURI) address.getURI());
				String host = sipURI.getHost();
				String user = sipURI.getUser();
				sender = user + "@" + host;
			}
                        
			//Getting the sdp body for creating the response
			//This sdp body will present what codec has been chosen
			//and on which port every media will be received
			ContentTypeHeader contentTypeHeader =
				(ContentTypeHeader) message.getHeader(ContentTypeHeader.NAME);
			if (contentTypeHeader == null
				|| contentTypeHeader.getContentType() == null
				|| contentTypeHeader.getContentSubType() == null)
				return;
			String subType = contentTypeHeader.getContentSubType();
			//If we have a voice messaging plays it
			if (contentTypeHeader.getContentType().equals("audio")) {
				if (contentTypeHeader.getContentSubType().equals("x-gsm")
					|| contentTypeHeader.getContentSubType().equals("gsm")) {
					Response ok =
						(
							Response) MessageListener
								.messageFactory
								.createResponse(
							Response.OK,
							message);
					ToHeader toHeader =
						(ToHeader) message.getHeader(ToHeader.NAME);
					if (toHeader.getTag() == null)
						toHeader.setTag(
							new Integer((int) (Math.random() * 10000))
								.toString());
					serverTransaction.sendResponse(ok);
					byte[] voiceMessage = message.getRawContent();
					//if(!voicePlayer.isInitialized())
					voicePlayer.initialize(voiceMessage);
					/*else					
						voicePlayer.setData(voiceMessage);*/
					voicePlayer.play();
					message.removeContent();
				} else {
					System.out.println(
						"Cannot handle this codec "
							+ contentTypeHeader.getContentSubType());
				}
			} else if (
				contentTypeHeader.getContentType().equals("text")
					&& contentTypeHeader.getContentSubType().equals("plain")) {
				Response ok =
					(Response) MessageListener.messageFactory.createResponse(
						Response.OK,
						message);
				ToHeader toHeader = (ToHeader) message.getHeader(ToHeader.NAME);
				if (toHeader.getTag() == null) {
					toHeader.setTag(
						new Integer((int) (Math.random() * 10000)).toString());
                                        IMCall imcall = this.messengerManager.callManager.findIMCall(sender);
                                        if (imcall == null) {
                                                imcall = new IMCall(sender);
                                                imcall.setDialog(serverTransaction.getDialog());
                                                this.messengerManager.callManager.addIMCall(imcall);
                                        } else imcall.setDialog(serverTransaction.getDialog());
                                }
				serverTransaction.sendResponse(ok);
				String content = new String(message.getRawContent());
				FromHeader fromHeader =
					(FromHeader) message.getHeader(FromHeader.NAME);
				messageListener.sipMeetingManager.notifyObserversIMReceived(
					content,
					sender);
			} else {
				// send a Not Acceptable here message.
				Response notok =
					(Response) MessageListener.messageFactory.createResponse(
						Response.NOT_ACCEPTABLE,
						message);
				ToHeader toHeader = (ToHeader) message.getHeader(ToHeader.NAME);
				serverTransaction.sendResponse(notok);
				System.out.println(
					"Cannot handle this content Type " + contentTypeHeader);
			}
                        
			message.removeContent();
		} catch (SipException se) {
			se.printStackTrace();
		} catch (ParseException pe) {
			pe.printStackTrace();
		}
	}

	/**
	 * Process the SUBSCRIBE received request
	 * @param serverTransaction - the server transaction associated with the request
	 * @param subscribe - the request 
	 */
	public void processSubscribe(
		ServerTransaction serverTransaction,
		Request subscribe) {
		Address address =
			((FromHeader) subscribe.getHeader(FromHeader.NAME)).getAddress();
		String sender = null;
		if (address.getURI().isSipURI()) {
			SipURI sipURI = ((SipURI) address.getURI());
			String host = sipURI.getHost();
			String user = sipURI.getUser();
			sender = user + "@" + host;
		}
		Subscriber subscriber = new Subscriber(sender);
		subscriber.setDialog(serverTransaction.getDialog());
		messageListener.sipMeetingManager.notifySubscribe(subscriber);
	}

	/**
	 * Process the NOTIFY received request
	 * @param serverTransaction - the server transaction associated with the request
	 * @param notify - the request 
	 */
	public void processNotify(
		ServerTransaction serverTransaction,
		Request notify) {
		//Send OK
		try {
			Response ok =
				(Response) MessageListener.messageFactory.createResponse(
					Response.OK,
					notify);
			ToHeader toHeader = (ToHeader) notify.getHeader(ToHeader.NAME);
			if (toHeader.getTag() == null)
				toHeader.setTag(
					new Integer((int) (Math.random() * 10000)).toString());
			serverTransaction.sendResponse(ok);

			Address address =
				((FromHeader) notify.getHeader(FromHeader.NAME)).getAddress();
			String sender = null;
			if (address.getURI().isSipURI()) {
				SipURI sipURI = ((SipURI) address.getURI());
				String host = sipURI.getHost();
				String user = sipURI.getUser();
				sender = user + "@" + host;
			}
			ContentTypeHeader contentTypeHeader =
				(ContentTypeHeader) notify.getHeader(ContentTypeHeader.NAME);
			if (contentTypeHeader != null) {
				String xmlType = contentTypeHeader.getContentSubType();

				if (xmlType.equals("xpidf+xml")) {
					String pidfContent = new String(notify.getRawContent());
					int endDocIndex = pidfContent.indexOf("<presence>");
					pidfContent = pidfContent.substring(endDocIndex);
					XMLpidfParser pidfParser = new XMLpidfParser();
					pidfParser.parsePidfString(pidfContent);
					PresenceTag presenceTag = pidfParser.getPresenceTag();
					presenceTag.setAddress(sender);
					messageListener.sipMeetingManager.notifyPresence(
						presenceTag);
				}
			}
		} catch (SipException se) {
			se.printStackTrace();
		} catch (ParseException pe) {
			pe.printStackTrace();
		}
	}

	/**
	 * After a
	 * @param clientTransaction
	 * @param response
	 */
	public void processRequestTerminated(
		ClientTransaction clientTransaction,
		Response response) {

	}

	/**********************************************************************/
	/*                                                                    */
	/*                    Handling response messages                      */
	/*                                                                    */
	/**********************************************************************/

	/**
	 * Process the Not found received response
	 * @param clientTransaction - the client transaction associated with the response
	 * @param notFound - the not found response
	 */
	public void processNotFound(
		ClientTransaction clientTransaction,
		Response notFound) {

	}

	/**
	 * Process the Not Implemented received response
	 * @param clientTransaction - the client transaction associated with the response
	 * @param notImplemented - the not found response
	 */
	public void processNotImplemented(
		ClientTransaction clientTransaction,
		Response notImplemented) {

	}

	/**
	 * Process the Trying received response
	 * @param clientTransaction - the client transaction associated with the response
	 * @param trying - the trying response
	 */
	public void processTrying(
		ClientTransaction clientTransaction,
		Response trying) {
		CallManager callManager =
			messageListener.sipMeetingManager.getCallManager();
		//Strip out the callee
		SipURI calleeURI =
			(SipURI) ((ToHeader) trying.getHeader(ToHeader.NAME))
				.getAddress()
				.getURI();
		String callee =
			"sip:" + calleeURI.getUser() + "@" + calleeURI.getHost();
		//Find the Audio call
		AudioCall call = callManager.findAudioCall(callee);
		if (call != null) {
			call.setStatus(AudioCall.TRYING);
			messageListener.sipMeetingManager.notifyObserversNewCallStatus(
				call);
		}
	}

	/**
	 * Process the Ringing received response
	 * @param clientTransaction - the client transaction associated with the response
	 * @param ringing - the ringing response
	 */
	public void processRinging(
		ClientTransaction clientTransaction,
		Response ringing) {
		CallManager callManager =
			messageListener.sipMeetingManager.getCallManager();
		//Strip out the callee
		SipURI calleeURI =
			(SipURI) ((ToHeader) ringing.getHeader(ToHeader.NAME))
				.getAddress()
				.getURI();
		String callee =
			"sip:" + calleeURI.getUser() + "@" + calleeURI.getHost();
		//Find the Audio call
		AudioCall call = callManager.findAudioCall(callee);
		call.setStatus(AudioCall.RINGING);
		messageListener.sipMeetingManager.notifyObserversNewCallStatus(call);
	}

	/**
	 * Process the OK received response for a REGISTER 
	 * @param clientTransaction - the client transaction associated with the response
	 * @param registerOK - the OK received response for a REGISTER 
	 */
	public void processRegisterOK(
		ClientTransaction clientTransaction,
		Response registerOK) {
		FromHeader fromHeader =
			((FromHeader) registerOK.getHeader(FromHeader.NAME));
		Address address = fromHeader.getAddress();
		ExpiresHeader expires = registerOK.getExpires();
		if (expires != null && expires.getExpires() == 0) {
			if (messageListener.sipMeetingManager.reRegisterFlag)
				// This is an OK for a cleared registration.
				messageListener.sipMeetingManager.register();
			else
				messageListener.sipMeetingManager.setRegisterStatus(
					RegisterStatus.NOT_REGISTERED);
		} else {
			messageListener.sipMeetingManager.setRegisterStatus(
				RegisterStatus.REGISTERED);
		}
	}

	/**

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区久久久| 欧美成人一区二区三区在线观看| 91国产成人在线| 另类调教123区| 国产一区二区女| 欧美性欧美巨大黑白大战| 最新热久久免费视频| 国产乱人伦偷精品视频免下载| 欧美一区二区观看视频| 不卡视频一二三四| 蜜臂av日日欢夜夜爽一区| 中文字幕在线观看不卡视频| 欧美成人一区二区三区| 色又黄又爽网站www久久| 国产成人免费视频一区| 久久se精品一区二区| 洋洋成人永久网站入口| 亚洲国产精品二十页| 精品久久久久久久久久久久久久久| 欧美性一二三区| 91小视频免费看| 高清不卡在线观看| 国产一区二区三区四区五区美女 | 亚洲综合一区二区三区| 国产欧美视频一区二区| 久久综合色鬼综合色| 欧美一区二区成人| 欧美人妖巨大在线| 欧美日韩国产一级| 在线精品国精品国产尤物884a| 91丨九色porny丨蝌蚪| 成人综合激情网| 国产很黄免费观看久久| 国产一区二区在线免费观看| 蜜臀91精品一区二区三区| 日本中文一区二区三区| 亚洲va欧美va天堂v国产综合| 亚洲码国产岛国毛片在线| 国产精品白丝在线| 亚洲欧洲日韩一区二区三区| 国产精品乱码人人做人人爱 | 91在线观看地址| 成人国产精品免费观看| 成人午夜av在线| 不卡电影免费在线播放一区| 成人国产一区二区三区精品| 成人av网站在线观看| 99久久伊人精品| 91小视频免费看| 在线视频综合导航| 欧美色图天堂网| 91麻豆精品91久久久久同性| 日韩一区二区免费高清| 精品国产一区二区三区忘忧草 | 国产精品午夜在线观看| 国产精品毛片久久久久久| 亚洲免费大片在线观看| 亚洲午夜私人影院| 日韩不卡在线观看日韩不卡视频| 美女任你摸久久| 国产一区二区三区在线观看免费视频| 国产成人在线观看| 99re66热这里只有精品3直播| 日本久久电影网| 9191国产精品| 国产午夜三级一区二区三| 国产精品久久久久久久蜜臀| 国产九色sp调教91| 丁香啪啪综合成人亚洲小说| 色婷婷综合久久久久中文一区二区| 欧美日本国产视频| 国产三级精品视频| 亚洲一区二区四区蜜桃| 日韩成人精品视频| 成人黄色综合网站| 欧美日韩午夜在线视频| 亚洲精品一线二线三线| 国产精品久久久久久福利一牛影视 | 久久丁香综合五月国产三级网站| 国产不卡高清在线观看视频| 色综合一个色综合| 91精品国产全国免费观看| 国产女人aaa级久久久级| 一区二区三区欧美在线观看| 久久精品国产亚洲aⅴ | 日韩欧美久久一区| 中文字幕一区二区三区乱码在线| 亚洲成av人在线观看| 国产高清精品网站| 欧美日本韩国一区| 国产精品久久久久精k8| 日本视频免费一区| 9i在线看片成人免费| 日韩精品在线网站| 一区二区三区四区激情| 国产精品一二三区| 欧美精品三级日韩久久| 最新不卡av在线| 国产自产2019最新不卡| 亚洲精品视频自拍| 国精品**一区二区三区在线蜜桃| 91精品福利在线| 久久精品二区亚洲w码| 日韩美女主播在线视频一区二区三区| 色94色欧美sute亚洲13| 26uuu久久天堂性欧美| 午夜精品免费在线| 91网站最新网址| 精品少妇一区二区三区视频免付费| 国产精品国产三级国产aⅴ入口| 毛片av中文字幕一区二区| 欧美性欧美巨大黑白大战| 国产精品乱码人人做人人爱 | 欧美一区二区私人影院日本| 亚洲素人一区二区| 国产伦精品一区二区三区免费迷| 欧美日韩亚洲综合一区| 亚洲欧美日韩电影| 成人激情图片网| 久久久精品综合| 精品影院一区二区久久久| 欧美日本韩国一区二区三区视频| 亚洲最大色网站| 91视频免费播放| 国产精品传媒入口麻豆| 久久精品99久久久| 精品噜噜噜噜久久久久久久久试看| 亚洲一区在线看| 色偷偷一区二区三区| 国产清纯在线一区二区www| 欧美国产激情一区二区三区蜜月 | 亚洲午夜久久久久久久久久久 | 国产成人在线看| 久久精品夜夜夜夜久久| 国产真实乱对白精彩久久| 日韩欧美电影一二三| 青草国产精品久久久久久| 在线成人高清不卡| 奇米精品一区二区三区在线观看 | 日韩欧美在线影院| 蜜臀久久99精品久久久久久9| 91精品黄色片免费大全| 人人爽香蕉精品| 日韩欧美一区中文| 精品亚洲porn| 久久久久久免费网| 国产成人在线免费观看| 国产精品久久久久毛片软件| 成人av片在线观看| 亚洲视频你懂的| 欧美午夜精品免费| 日韩精品一卡二卡三卡四卡无卡| 91精品国产高清一区二区三区蜜臀 | 精品乱码亚洲一区二区不卡| 久久99精品久久久久久国产越南| 久久色中文字幕| 91在线国内视频| 一区二区三区日韩在线观看| 欧美日韩一区二区三区不卡| 日韩电影在线一区二区三区| 日韩欧美不卡一区| 成人丝袜视频网| 亚洲一区二区欧美| 欧美精品自拍偷拍动漫精品| 久久99精品国产.久久久久| 久久久久久黄色| 91丨国产丨九色丨pron| 日本欧美韩国一区三区| 久久夜色精品国产欧美乱极品| 成人av高清在线| 亚洲va欧美va国产va天堂影院| 欧美成人一区二区| 99久久综合精品| 日韩av电影一区| 国产精品高清亚洲| 91精品在线免费| 国产.精品.日韩.另类.中文.在线.播放| 亚洲欧美日韩国产成人精品影院| 91精品免费在线观看| 成人黄动漫网站免费app| 无码av免费一区二区三区试看| 久久综合九色综合欧美98| 91国偷自产一区二区三区成为亚洲经典 | 欧美精品一区二区三区久久久| 99精品黄色片免费大全| 日本vs亚洲vs韩国一区三区二区| 国产大陆a不卡| 亚洲一区在线免费观看| 国产亚洲成年网址在线观看| 欧美日韩专区在线| 国产精品亚洲а∨天堂免在线| 亚洲免费av观看| 精品噜噜噜噜久久久久久久久试看 | 国产永久精品大片wwwapp| 亚洲另类在线一区| 26uuu欧美| 日韩一区二区三区免费观看| 色哟哟欧美精品| 国产91在线|亚洲| 奇米精品一区二区三区在线观看 |