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

📄 myobserver.java

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

import java.telephony.*;
import java.telephony.events.*;
import java.telephony.media.*;
import java.telephony.media.events.*;
import java.net.*;
import java.util.*;

/*
 * The MyObserver class implements the CallObserver and
 * receives all Call-related events.
 */
 
public class MyObserver implements CallObserver {
	
	public void callChangedEvent(CallEv[] evlist)  {

		for (int i = 0; i < evlist.length; i++) {

			if ((evlist[i] instanceof TermConnEv) && (evlist[i].getObserved() != null)) {
				TAPIMediaTerminalConnection termconn = null;
				String name = null;
				Terminal term = null;
				Connection conn = null;
				KapschProvider prov = null;

				try {
					TermConnEv tcev = (TermConnEv)evlist[i];
					termconn = (TAPIMediaTerminalConnection)tcev.getTerminalConnection();
					term = termconn.getTerminal();
					name = term.getName();
				} 
				catch (Exception e) {
					e.printStackTrace();
				}

				if (evlist[i].getID() == MediaTermConnDtmfEv.ID) {
					MediaTermConnDtmfEv ev = (MediaTermConnDtmfEv)evlist[i];
					char c = ev.getDtmfDigit();
					try {

						if (c == '0') {
							URL url = new URL("file:///my.wav");
							termconn.useRecordURL(url);
							termconn.startRecording();
						}
						if (c == '4') {
							URL url = new URL("file:///my1.wav");
							termconn.useRecordURL(url);
							termconn.startRecording();
						}
						if (c == '1') {
							URL url = new URL("file:///my.wav");
							termconn.usePlayURL(url);
							termconn.startPlaying();
						}
						if (c == '5') {
							URL url = new URL("file:///my1.wav");
							termconn.usePlayURL(url);
							termconn.startPlaying();
						}
						if (c == '2') {
							termconn.stopRecording();
						}
						if (c == '3') {
							termconn.stopPlaying();
						}
						if (c == '7') {
							termconn.sendFax("812383", "dead.letter");
						}
						if (c == '8') {
							termconn.faxMail("812383", "testmail");
						}
						if (c == '9') {
							conn = termconn.getConnection();
							conn.disconnect();
						}
					}
					catch (Exception e) { System.out.println("digit " + e.toString()); }
					//System.out.println("from java: a digit: " + c);
				}

				String msg = "\nTerminalConnection to Terminal: " + name + " is ";

				if (evlist[i].getID() == TermConnActiveEv.ID) {
					System.out.println(msg + "ACTIVE");
					try {
						prov = (KapschProvider)term.getProvider();
						Address addr = termconn.getConnection().getAddress();
						TAPIMediaTerminalConnectionCapabilities cap = (TAPIMediaTerminalConnectionCapabilities)prov.getConnectionCapabilities(term, addr);
						if (cap.canDetectDtmf())
							termconn.setDtmfDetection(true);
					 }
					catch (Exception e) { 
						e.printStackTrace(); 
						prov.shutdown();
					}
				}
				else if (evlist[i].getID() == TermConnRingingEv.ID) {
					System.out.println(msg + "RINGING");

					/* Answer the telephone Call */
					try {
						termconn.answer();

					} 
					catch (Exception e) {
						e.printStackTrace();
					}
				}
				else if (evlist[i].getID() == TermConnDroppedEv.ID) {
					System.out.println(msg + "DROPPED");
				}
			}  
		}
	}
}

⌨️ 快捷键说明

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