📄 myobserver.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 + -