⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tapimediaterminalconnection.java

📁 tapi的java封装
💻 JAVA
字号:
/*
*	JTAPI library copyright 1998 by Web4Groups consortium (http://Web4Groups.at)
*/

import java.telephony.*;
import java.telephony.capabilities.*;
import java.telephony.events.*;
import java.telephony.media.*;
import java.net.*;
import java.io.*;


class TAPIMediaTerminalConnection extends TAPITerminalConnection implements MediaTerminalConnection {

	/* defined in TAPITerminalConnection:
	int state = IDLE;
	Call call;
	TAPITerminal terminal;
	TAPIConnection connection;
	int line;	//represents the line device identifier in TAPI
	*****************************************/

	private int mav_state = AVAILABLE;
	private int m_state = 0;

	private native void TAPIDtmfDetection(boolean enable, int line);
	private native void TAPIPlay(int line);
	private native void TAPIRecord(int line);
	private native void TAPIStopPlay(int line);
	private native void TAPIStopRecord(int line);
	private native void TAPIUseURL(String url, int line);


	TAPIMediaTerminalConnection(Call call, TAPITerminal terminal, TAPIConnection connection, int line) {
		this.call = call;
		this.terminal = terminal;
		this.connection = connection;
		this.line = line;
	}



	/* implementation specific */
	void sendFax(String destination, String fileName) {

		HylafaxClient client = new HylafaxClient("harare.kapsch.co.at", 9756, "sendfax", destination, fileName);
		client.send();
	}


	void faxMail(String destination, String fileName) {

		HylafaxClient client = new HylafaxClient("harare.kapsch.co.at", 9756, "faxmail", destination, fileName);
		client.send();
	}

	/* end implementation specific */



	public int getMediaAvailability() {
		return mav_state;
	}


	public int getMediaState() {
		return m_state;
	}


	public  void useDefaultSpeaker() {
	}


	public void useRecordURL(URL url) {
		String str = url.getFile();
		TAPIUseURL(str, line);
	}


	public void usePlayURL(URL url) {

		if (url.getProtocol().equals("file")) {
			String str = url.getFile();
			TAPIUseURL(str, line);
		}
		else {
			try {
				InputStream is = url.openStream();
				String fName = "tmp.wav";
				File file = new File(fName);
				FileOutputStream out = new FileOutputStream(file);
				byte buf[] = new byte[0xffff];
				int i;

				do {
					i = is.read(buf);
					if (i > 0)
						out.write(buf, 0, i);
				
				} while(i != -1);

				is.close();
				out.close();
				TAPIUseURL("/" + fName, line);
			}
			catch (Exception e) {
				e.printStackTrace();
			}
		}
	}


	public void useDefaultMicrophone() {
	}




	public void startPlaying() {
		m_state = PLAYING;
		TAPIPlay(line);
		m_state = 0;
	}


	public void stopPlaying() {
		TAPIStopPlay(line);
		m_state = 0;
	}


	public void startRecording() {
		TAPIRecord(line);
		m_state = RECORDING;
	}


	public void stopRecording() {
		TAPIStopRecord(line);
		m_state = 0;
	}


	public void setDtmfDetection(boolean enable) {
		TAPIDtmfDetection(enable, line);
	}


	public void generateDtmf(String digits) {
	}


	static {
		System.loadLibrary("KapschProvider");
	}

}
			


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -