www.pudn.com > d4j.zip > EVT.java
// EVT: Model Dialogic event
// $Id: EVT.java,v 1.6 2003/11/13 11:43:53 cgm8 Exp $
/*
* Copyright (c) 1999 Carlos G Mendioroz.
*
* This file is part of D4J.
*
* D4J is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* D4J is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Report problems and direct all questions to:
*
* tron@acm.org
*/
package local.dialogic;
public class EVT extends java.lang.Object implements Cloneable
{
// This is what we model:
// struct evt {
// int dev;
// unsigned long type;
// char data[len];
// }
// Also, we handle GC events via gc_GetMetaEvent() and get line.
protected int dev = 0;
public int type = 0;
public int termmsk = 0;
public int cstevt = 0;
public int cstdata = 0;
public int data = 0;
public int line = 0;
public long crn = 0;
public int conf = 0;
// We have a Bitset to track ISDN devices, because events types
// clash with GC events... even though they seem to be equivalent.
private static java.util.BitSet isISDN;
// Event types
public static final int DT_USER = 0x1000; /* USER event */
public static final int TDX_PLAY = 0x81; /* Play Completed */
public static final int TDX_RECORD = 0x82; /* Record Completed */
public static final int TDX_GETDIG = 0x83; /* Get Digits Completed */
public static final int TDX_DIAL = 0x84; /* Dial Completed */
public static final int TDX_CALLP = 0x85; /* Call Progress Completed */
public static final int TDX_CST = 0x86; /* CST Event Received */
public static final int TDX_SETHOOK = 0x87; /* SetHook Completed */
public static final int TDX_WINK = 0x88; /* Wink Completed */
public static final int TDX_PLAYTONE = 0x8A; /* Play Tone Completed */
public static final int TDX_GETR2MF = 0x8B; /* Get R2MF completed */
public static final int TDX_BARGEIN = 0x8C; /* Barge in completed */
public static final int TDX_NOSTOP = 0x8D; /* No Stop needed to be Issued */
public static final int TDX_ERROR = 0x89; /* Error Event */
/*
* Unsolicited DTI event types
*/
public static final int DT_DTI= 0x00002000; /* DTI device class */
public static final int DTEV_RCVPDG =(DT_DTI | 0x48); /* Received a pulse digit */
public static final int DTEV_T1ERRC =(DT_DTI | 0x49); /* T1 error condition event */
public static final int DTEV_E1ERRC = DTEV_T1ERRC ; /* E1 error condition event == T1 error */
public static final int DTEV_COMRSP =(DT_DTI | 0x4A); /* Successful com test */
public static final int DTEV_DATRSP =(DT_DTI | 0x4B); /* Response to data test */
public static final int DTEV_PDDONE =(DT_DTI | 0x4C); /* Pulse dial complete */
public static final int DTEV_SIG =(DT_DTI | 0x4D); /* Signalling event */
public static final int DTEV_RETDIAG =(DT_DTI | 0x4E); /* Diagnostic complete */
public static final int DTEV_WINKCPLT =(DT_DTI | 0x4F); /* Wink complete */
public static final int DTEV_MTFCNCPT =(DT_DTI | 0x50); /* Multi-tasking func complete */
public static final int DTEV_CLKFAIL =(DT_DTI | 0x51); /* Clock FallBack Event */
public static final int DTEV_ERREVT =(DT_DTI | 0xF0); /* Error condition event */
public static final int DTEV_OUTSERVICE=(DT_DTI | 0xF1); /* Device out of Service event */
/*
* Unsolicited DCB event types
*/
public static final int DT_DCB = 0x00008000; /* DCB device class */
public static final int DCBEV_DIGIT = (DT_DCB| 0x96); /* Digit detection event */
public static final int DCBEV_CTU = (DT_DCB| 0x97); /* Resourcee Tbl Update event */
// our related defines
public static final int DCBEV_NEW = (DT_DCB| 0x9a); /* new channel in conf */
public static final int DCBEV_GONE = (DT_DCB| 0x9b); /* channel left conf */
public static final int DCBEV_CLOSED= (DT_DCB| 0x9c); /* conference closed */
/*
* Unsolicited MSI event types
*/
public static final int DT_MSI = 0x00004000; /* MSI device class */
public static final int MSEV_RING = (DT_MSI | 0x4D);/* MSI Ring successful event */
public static final int MSEV_NORING = (DT_MSI | 0x4e);/* MSI ring unsuccessful event */
// Termination masks
public static final int TM_NORMTERM = 0x00000; /* Normal Termination */
public static final int TM_MAXDTMF = 0x00001; /* Max Number of Digits Recd */
public static final int TM_MAXSIL = 0x00002; /* Max Silence */
public static final int TM_MAXNOSIL = 0x00004; /* Max Non-Silence */
public static final int TM_LCOFF = 0x00008; /* Loop Current Off */
public static final int TM_IDDTIME = 0x00010; /* Inter Digit Delay */
public static final int TM_MAXTIME = 0x00020; /* Max Function Time Exceeded */
public static final int TM_DIGIT = 0x00040; /* Digit Mask or Digit Type Term. */
public static final int TM_PATTERN = 0x00080; /* Pattern Match Silence Off */
public static final int TM_USRSTOP = 0x00100; /* Function Stopped by User */
public static final int TM_EOD = 0x00200; /* End of Data Reached on Playback */
public static final int TM_TONE = 0x02000; /* Tone On/Off Termination */
public static final int TM_BARGEIN = 0x80000; /* Play terminated due to Barge-in */
public static final int TM_ERROR = 0x80000; /* I/O Device Error */
// CST events
public static final int DE_RINGS = 1 ; /* Rings received */
public static final int DE_SILON = 2 ; /* Silence on */
public static final int DE_SILOF = 3 ; /* Silenec off */
public static final int DE_LCON = 4 ; /* Loop current on */
public static final int DE_LCOF = 5 ; /* Loop current off */
public static final int DE_WINK = 6 ; /* Wink received */
public static final int DE_RNGOFF = 7 ; /* Ring off event */
public static final int DE_DIGITS = 8 ; /* Digit Received */
public static final int DE_DIGOFF = 9 ; /* Digit tone off event */
public static final int DE_LCREV = 13; /* Loop current reversal */
public static final int DE_TONEON = 17; /* Tone ON Event Received */
public static final int DE_TONEOFF = 18; /* Tone OFF Event Received */
public static final int DE_STOPRINGS= 19; /* Stop ring detect state */
// CallP stati
public static final int CR_BUSY = 7; /* Line busy */
public static final int CR_NOANS = 8; /* No answer */
public static final int CR_NORB = 9; /* No ringback */
public static final int CR_CNCT = 10; /* Call connected */
public static final int CR_CEPT = 11; /* Operator intercept */
public static final int CR_STOPD = 12; /* Call analysis stopped */
public static final int CR_NODIALTONE= 17; /* No dialtone detected */
public static final int CR_FAXTONE = 18; /* Fax tone detected */
public static final int CR_ERROR = 0x100;/* Call analysis error */
// ISDN Call Control events
public static final int DT_CC = 0x800;
public static final int CCEV_TASKFAIL = (DT_CC | 0x01); /* abnormal condition state
unchanged */
public static final int CCEV_ANSWERED = (DT_CC | 0x02); /* call answered and connected */
public static final int CCEV_ACCEPT = (DT_CC | 0x04); /* call is accepted */
public static final int CCEV_DROPCALL = (DT_CC | 0x05); /* cc_DropCall is completed */
public static final int CCEV_RESTART = (DT_CC | 0x06); /* cc_Restart is completed */
public static final int CCEV_CALLINFO = (DT_CC | 0x07); /* Info message received */
public static final int CCEV_REQANI = (DT_CC | 0x08); /* cc_ReqANI() is completed */
public static final int CCEV_SETCHANSTATE = (DT_CC | 0x09); /* cc_SetChanState() is completed */
public static final int CCEV_FACILITY_ACK = (DT_CC | 0x0A); /* cc_facilityreq() is
completed and successfully */
public static final int CCEV_FACILITY_REJ = (DT_CC | 0x0B); /* cc_facilityreq() is completed
but rejected, use cc_CauseValue
to get the reason */
public static final int CCEV_MOREDIGITS = (DT_CC | 0x0C); /* cc_moredigits() is completed*/
public static final int CCEV_SETBILLING = (DT_CC | 0x0E); /* cc_SetBilling() is completed*/
public static final int CCEV_ALERTING = (DT_CC | 0x21); /* The destination telephone
terminal equipment has received
connection request (in ISDN acc-
epted the connection request. This
event is an unsolicited event) */
public static final int CCEV_CONNECTED = (DT_CC | 0x22); /* The destination answered the
request */
public static final int CCEV_ERROR = (DT_CC | 0x23); /* unexpected error event */
public static final int CCEV_OFFERED = (DT_CC | 0x24); /* a connection request has
been made */
public static final int CCEV_DISCONNECTED = (DT_CC | 0x26); /* remote disconnected*/
public static final int CCEV_PROCEEDING = (DT_CC | 0x27); /* the call state has been
changed to the proceeding state */
public static final int CCEV_PROGRESSING = (DT_CC | 0x28); /* a call progress message has
been received */
public static final int CCEV_CALLPROGRESS = (DT_CC | 0x28); /* a call progress message has
been received */
public static final int CCEV_USRINFO = (DT_CC | 0x29); /* a user to user information
event is coming */
public static final int CCEV_FACILITY = (DT_CC | 0x2A); /* a facility request is made
by CO */
public static final int CCEV_CONGESTION = (DT_CC | 0x2B); /* remote end is not ready to
accept incoming user information */
public static final int CCEV_D_CHAN_STATUS= (DT_CC | 0x2E); /* report D-channel status to
the user */
public static final int CCEV_NOUSRINFOBUF = (DT_CC | 0x30); /* User information element
buffer is not ready */
public static final int CCEV_NOFACILITYBUF= (DT_CC | 0x31); /* Facility buffer is not ready*/
public static final int CCEV_BLOCKED = (DT_CC | 0x32);
public static final int CCEV_UNBLOCKED = (DT_CC | 0x33);
public static final int CCEV_ISDNMSG = (DT_CC | 0x34); /* An "information" message or unde-
fined massage has been received */
public static final int CCEV_NOTIFY = (DT_CC | 0x35); /* A Notify message has been
received */
public static final int CCEV_L2FRAME = (DT_CC | 0x36); /* A layer 2 access message has been
received */
public static final int CCEV_L2BFFRFULL = (DT_CC | 0x37); /* reserved for future use */
public static final int CCEV_L2NOBFFR = (DT_CC | 0x38); /* Failed to get a free space for an
incoming layer 2 access message */
public static final int CCEV_SETUP_ACK = (DT_CC | 0x39); /* CALL_SETUP_ACK message has been received */
public static final int CCEV_DIVERTED = (DT_CC | 0x40);
public static final int CCEV_HOLDACK = (DT_CC | 0x41);
public static final int CCEV_HOLDCALL = (DT_CC | 0x42);
public static final int CCEV_HOLDREJ = (DT_CC | 0x43);
public static final int CCEV_RETRIEVEACK = (DT_CC | 0x44);
public static final int CCEV_RETRIEVECALL = (DT_CC | 0x45);
public static final int CCEV_RETRIEVEREJ = (DT_CC | 0x46);
public static final int CCEV_NSI = (DT_CC | 0x47);
public static final int CCEV_TRANSFERACK = (DT_CC | 0x48);
public static final int CCEV_TRANSFERREJ = (DT_CC | 0x49);
public static final int CCEV_TRANSIT = (DT_CC | 0x4A);
public static final int CCEV_RESTARTFAIL = (DT_CC | 0x4B); /* abnormal condition state */
public static final int CCEV_TERM_REGISTER= (DT_CC | 0x4C); /* BRI msg - An action is required for the
North Am. terminal initialization procedure */
public static final int CCEV_RCVTERMREG_ACK= (DT_CC | 0x4E); /* Positive acknowledgement of cc_TermRegisterResponse */
public static final int CCEV_RCVTERMREG_NACK= (DT_CC | 0x4F); /* Negative acknowledgement of cc_TermRegisterResponse */
public static final int CCEV_INFONULL = (DT_CC | 0x50); /* NULL (Dummy) CRN Information IE */
public static final int CCEV_TONEREDEFINEFAIL= (DT_CC | 0x51);
public static final int CCEV_TONEREDEFINE = (DT_CC | 0x52);
public static final int CCEV_PLAYTONEFAIL = (DT_CC | 0x53);
public static final int CCEV_PLAYTONE = (DT_CC | 0x54);
public static final int CCEV_STOPTONEFAIL = (DT_CC | 0x55);
public static final int CCEV_STOPTONE = (DT_CC | 0x56);
public static final int CCEV_NOTIFYNULL = (DT_CC | 0x57); /* NULL (Dummy) CRN Notify IE */
public static final int CCEV_REDIRECT = (DT_CC | 0x58); /* ISDN REDIRECT message */
public static final int CCEV_RELEASECALL = (DT_CC | 0x59); /* Asynchronous cc_ReleaseCall() Completion event */
public static final int CCEV_RELEASECALLFAIL= (DT_CC | 0x5A); /* Asynchronous cc_ReleaseCall() fail event */
public static final int CCEV_FACILITYNULL = (DT_CC | 0x5B); /* NULL (Dummy) CRN Facility IE */
public static final int CCEV_INFOGLOBAL = (DT_CC | 0X5C); /* GLOBAL CRN Information IE */
public static final int CCEV_NOTIFYGLOBAL = (DT_CC | 0X5D); /* GLOBAL CRN Notify IE */
public static final int CCEV_FACILITYGLOBAL = (DT_CC | 0x5E); /* GLOBAL CRN Facility IE */
public static final int CCEV_DROPACK = (DT_CC | 0x5F); /* DROP Request Acknowledgement message */
public static final int CCEV_DROPREJ = (DT_CC | 0x60); /* DROP Request Reject message */
public static final int CCEV_CONFDROP = (DT_CC | 0x61); /* Request to drop the call*/
public String toString() {
StringBuffer buf = new StringBuffer();
boolean evtmask = false; // Also in dialogic.dll!
if ((type & DT_CC) != 0 && isISDN.get(dev))
switch (type) {
// ISDN Call Control
case CCEV_TASKFAIL: buf.append("CC Task failed");
break;
case CCEV_ANSWERED: buf.append("CC call answered");
break;
case CCEV_ACCEPT: buf.append("CC call accepted");
break;
case CCEV_DROPCALL: buf.append("CC call dropped");
break;
case CCEV_RESTART: buf.append("CC Line restart");
break;
case CCEV_CALLINFO: buf.append("CC Info message received");
break;
case CCEV_REQANI: buf.append("CC requested ANI");
break;
case CCEV_SETCHANSTATE: buf.append("CC channel state set");
break;
case CCEV_FACILITY_ACK: buf.append("CC Facility Ack");
break;
case CCEV_FACILITY_REJ: buf.append("CC Facility rejected");
break;
case CCEV_MOREDIGITS: buf.append("CC more digits");
break;
case CCEV_SETBILLING: buf.append("CC Billing set");
break;
case CCEV_ALERTING: buf.append("CC call alerting");
break;
case CCEV_CONNECTED: buf.append("CC call connected");
break;
case CCEV_ERROR: buf.append("CC unexpected error event");
break;
case CCEV_OFFERED: buf.append("CC call offered");
break;
case CCEV_DISCONNECTED: buf.append("CC remote disconnected");
break;
case CCEV_PROCEEDING: buf.append("CC call proceeding");
break;
case CCEV_PROGRESSING: buf.append("CC call progressing");
break;
case CCEV_USRINFO: buf.append("CC UUIE received");
break;
case CCEV_FACILITY: buf.append("CC facility request by CO");
break;
case CCEV_CONGESTION: buf.append("CC congestion");
break;
case CCEV_D_CHAN_STATUS:buf.append("CC D-channel status");
break;
case CCEV_NOUSRINFOBUF: buf.append("CC No user information element buffer");
break;
case CCEV_NOFACILITYBUF:buf.append("CC No facility buffer");
break;
case CCEV_BLOCKED: buf.append("CC Line blocked");
break;
case CCEV_UNBLOCKED: buf.append("CC Line unblocked");
break;
case CCEV_ISDNMSG: buf.append("CC ISDN message received");
break;
case CCEV_NOTIFY: buf.append("CC Notify message received");
break;
case CCEV_L2FRAME: buf.append("CC L2 frame received");
break;
case CCEV_L2BFFRFULL: buf.append("CC L2 buffer full");
break;
case CCEV_L2NOBFFR: buf.append("CC no L2 buffer");
break;
case CCEV_SETUP_ACK: buf.append("CC call setup ok");
break;
case CCEV_DIVERTED: buf.append("CC call diverted");
break;
case CCEV_HOLDACK: buf.append("CC call on hold");
break;
case CCEV_HOLDCALL: buf.append("CC hold call");
break;
case CCEV_HOLDREJ: buf.append("CC hold rejected");
break;
case CCEV_RETRIEVEACK: buf.append("CC call retrieved");
break;
case CCEV_RETRIEVECALL: buf.append("CC retrieve call");
break;
case CCEV_RETRIEVEREJ: buf.append("CC retrieve rejected");
break;
case CCEV_NSI: buf.append("CC NSI IE");
break;
case CCEV_TRANSFERACK: buf.append("CC call transferred");
break;
case CCEV_TRANSFERREJ: buf.append("CC transfer rejected");
break;
case CCEV_TRANSIT: buf.append("CC Transit IE");
break;
case CCEV_RESTARTFAIL: buf.append("CC abnormal condition state");
break;
case CCEV_TERM_REGISTER:buf.append("CC request for registration");
break;
case CCEV_RCVTERMREG_ACK:buf.append("CC Registration ok");
break;
case CCEV_RCVTERMREG_NACK:buf.append("CC Bad registration");
break;
case CCEV_INFONULL: buf.append("CC NULL CRN Information IE");
break;
case CCEV_TONEREDEFINEFAIL: buf.append("CC tone redefine failure");
break;
case CCEV_TONEREDEFINE: buf.append("CC tone redefine");
break;
case CCEV_PLAYTONEFAIL: buf.append("CC tone play failure");
break;
case CCEV_PLAYTONE: buf.append("CC tone play");
break;
case CCEV_STOPTONEFAIL: buf.append("CC tone stop failure");
break;
case CCEV_STOPTONE: buf.append("CC tone stop");
break;
case CCEV_NOTIFYNULL: buf.append("CC NULL CRN Notify IE");
break;
case CCEV_REDIRECT: buf.append("ISDN REDIRECT message");
break;
case CCEV_RELEASECALL: buf.append("CC call released");
break;
case CCEV_RELEASECALLFAIL: buf.append("CC call release failure");
break;
case CCEV_FACILITYNULL: buf.append("CC NULL CRN Facility IE");
break;
case CCEV_INFOGLOBAL: buf.append("CC GLOBAL CRN Information IE");
break;
case CCEV_NOTIFYGLOBAL: buf.append("CC GLOBAL CRN Notify IE");
break;
case CCEV_FACILITYGLOBAL: buf.append("CC GLOBAL CRN Facility IE");
break;
case CCEV_DROPACK: buf.append("CC call drop ok");
break;
case CCEV_DROPREJ: buf.append("CC call drop rejected");
break;
case CCEV_CONFDROP: buf.append("CC call drop requested");
break;
default: buf.append("Unknown ISDN event "+type);
}
else
switch (type) {
case DT_USER: buf.append("User event (" + data + ")");
break;
case TDX_PLAY: buf.append("Play Completed");
evtmask = true;
break;
case TDX_RECORD: buf.append("Record Completed");
evtmask = true;
break;
case TDX_GETDIG: buf.append("Get Digits Completed");
evtmask = true;
break;
case TDX_DIAL: buf.append("Dial Completed");
break;
case TDX_CALLP: buf.append("Call Progress Completed");
switch(data) {
// Set by analog channel service via callpStatus()
case CR_BUSY : buf.append(": Line busy"); break;
case CR_NOANS : buf.append(": No answer"); break;
case CR_NORB : buf.append(": No ringback"); break;
case CR_CNCT : buf.append(": Call connected"); break;
case CR_CEPT : buf.append(": Operator intercept"); break;
case CR_STOPD : buf.append(": Call analysis stopped"); break;
case CR_NODIALTONE: buf.append(": No dialtone detected"); break;
case CR_FAXTONE : buf.append(": Fax tone detected"); break;
case CR_ERROR : buf.append(": Call analysis error"); break;
}
break;
case TDX_CST: buf.append("CST Event Received: ");
switch(cstevt) {
case DE_RINGS: buf.append("Rings"); break;
case DE_SILON: buf.append("Silence on"); break;
case DE_SILOF: buf.append("Silenec off"); break;
case DE_LCON: buf.append("Loop current on"); break;
case DE_LCOF: buf.append("Loop current off"); break;
case DE_WINK: buf.append("Wink"); break;
case DE_RNGOFF: buf.append("Ring off"); break;
case DE_DIGITS: buf.append("Digit " + cstdata); break;
case DE_DIGOFF: buf.append("Digit tone off"); break;
case DE_LCREV: buf.append("Loop current reversal"); break;
case DE_TONEON: buf.append("Tone ON " + cstdata); break;
case DE_TONEOFF: buf.append("Tone OFF " + cstdata); break;
case DE_STOPRINGS: buf.append("Stop ring detect state"); break;
default: buf.append("Unknown CST "+cstevt+"/"+cstdata+"/"+data);
}
break;
case TDX_SETHOOK: buf.append("SetHook Completed");
break;
case TDX_WINK: buf.append("Wink Completed");
break;
case TDX_PLAYTONE: buf.append("Play Tone Completed");
evtmask = true;
break;
case TDX_GETR2MF: buf.append("Get R2MF completed");
break;
case TDX_BARGEIN: buf.append("Barge in completed");
break;
case TDX_NOSTOP: buf.append("No Stop needed to be Issued");
break;
case TDX_ERROR: buf.append("Error Event");
break;
case DTEV_RCVPDG: buf.append("Received a pulse digit");
break;
case DTEV_E1ERRC: buf.append("E1/T1 error condition event: ");
switch(data) {
case Dialogic.DTE1_RLOS:
buf.append("receive loss of sync");
break;
case Dialogic.DTE1_RUA1:
buf.append("receive unframed all ones alarm");
break;
case Dialogic.DTE1_FSERR:
buf.append("frame sync error");
break;
case Dialogic.DTE1_RRA:
buf.append("receive remote alarm");
break;
case Dialogic.DTE1_BPVS:
buf.append("bipolar violation count saturation");
break;
case Dialogic.DTE1_CECS:
buf.append("CRC error count saturation");
break;
case Dialogic.DTE1_ECS:
buf.append("error count saturation");
break;
case Dialogic.DTE1_LOS:
buf.append("loss of E-1 digital signal detected");
break;
case Dialogic.DTE1_DPM:
buf.append("driver performance monitor");
break;
case Dialogic.DTE1_MFSERR:
buf.append("multiframe sync error");
break;
case Dialogic.DTE1_RSA1:
buf.append("receive signaling all ones alarm");
break;
case Dialogic.DTE1_RDMA:
buf.append("receive distant multiframe alarm");
break;
case Dialogic.DTE1_RLOSOK:
buf.append("end of receive loss of sync");
break;
case Dialogic.DTE1_RUA1OK:
buf.append("end of receive unframed all ones alarm");
break;
case Dialogic.DTE1_FSERROK:
buf.append("end of frame sync error");
break;
case Dialogic.DTE1_RRAOK:
buf.append("end of receive remote alarm");
break;
case Dialogic.DTE1_BPVSOK:
buf.append("end of bipolar violation count saturation");
break;
case Dialogic.DTE1_CECSOK:
buf.append("end of CRC error count saturation");
break;
case Dialogic.DTE1_ECSOK:
buf.append("end of error count saturation");
break;
case Dialogic.DTE1_LOSOK:
buf.append("end of loss of E-1 digital signal detected");
break;
case Dialogic.DTE1_DPMOK:
buf.append("end of driver performance monitor");
break;
case Dialogic.DTE1_MFSERROK:
buf.append("end of multiframe sync error");
break;
case Dialogic.DTE1_RSA1OK:
buf.append("end of receive signaling all ones alarm");
break;
case Dialogic.DTE1_RDMAOK:
buf.append("end of receive distant multiframe alarm");
break;
}
break;
case DTEV_COMRSP: buf.append("Successful com test");
break;
case DTEV_DATRSP: buf.append("Response to data test");
break;
case DTEV_PDDONE: buf.append("Pulse dial complete");
break;
case DTEV_SIG: buf.append("Signalling event: ");
if ((data & Dialogic.DTC_ABIT) != 0) {
if ((data & Dialogic.DTB_ABIT)!= 0)
buf.append("AON ");
else
buf.append("AOFF ");
}
if ((data & Dialogic.DTC_BBIT) != 0) {
if ((data & Dialogic.DTB_BBIT)!= 0)
buf.append("BON ");
else
buf.append("BOFF ");
}
if ((data & Dialogic.DTMM_WINK) != 0) {
buf.append("Wink");
}
break;
case DTEV_RETDIAG: buf.append("Diagnostic complete");
break;
case DTEV_WINKCPLT:buf.append("Wink complete");
break;
case DTEV_MTFCNCPT:buf.append("Multi-tasking func complete");
break;
case DTEV_CLKFAIL: buf.append("Clock FallBack Event");
break;
case DTEV_ERREVT: buf.append("Error condition event");
break;
case DTEV_OUTSERVICE:buf.append("Device out of Service event");
break;
case DCBEV_DIGIT: buf.append("DCB Digit detection event ("+data+")");
break;
case DCBEV_CTU: buf.append("DCB Resourcee Tbl Update event");
break;
case DCBEV_NEW: buf.append("DCB new channel in conf");
break;
case DCBEV_GONE: buf.append("DCB channel left conf");
break;
case DCBEV_CLOSED: buf.append("DCB conference closed");
break;
case MSEV_RING: buf.append("MSI Ring successful event");
break;
case MSEV_NORING: buf.append("MSI ring unsuccessful event");
break;
// Global Call
case GCChannel.GCEV_TASKFAIL:
buf.append("Abnormal condition; state unchanged");
break;
case GCChannel.GCEV_ANSWERED:
buf.append("Call answered and connected");
break;
case GCChannel.GCEV_CALLPROGRESS:
buf.append("Call progressing");
break;
case GCChannel.GCEV_ACCEPT:
buf.append("Call is accepted");
break;
case GCChannel.GCEV_DROPCALL:
buf.append("gc_DropCall is completed");
break;
case GCChannel.GCEV_RESETLINEDEV:
buf.append("Restart event");
break;
case GCChannel.GCEV_CALLINFO:
buf.append("Info message received");
break;
case GCChannel.GCEV_REQANI:
buf.append("gc_ReqANI() is completed");
break;
case GCChannel.GCEV_SETCHANSTATE:
buf.append("gc_SetChanState() is completed");
break;
case GCChannel.GCEV_FACILITY_ACK:
buf.append("Facility acknowledged");
break;
case GCChannel.GCEV_FACILITY_REJ:
buf.append("Facility rejected");
break;
case GCChannel.GCEV_MOREDIGITS:
buf.append("cc_moredigits() is completed");
break;
case GCChannel.GCEV_SETBILLING:
buf.append("gc_SetBilling() is completed");
break;
case GCChannel.GCEV_ALERTING:
buf.append("Remote accept (alerting)");
break;
case GCChannel.GCEV_CONNECTED:
buf.append("Destination answered the request");
break;
case GCChannel.GCEV_ERROR:
buf.append("unexpected error event");
break;
case GCChannel.GCEV_OFFERED:
buf.append("A connection request has been made");
break;
case GCChannel.GCEV_DISCONNECTED:
buf.append("Remote end disconnected");
break;
case GCChannel.GCEV_PROCEEDING:
buf.append("Proceeding");
break;
case GCChannel.GCEV_PROGRESSING:
buf.append("Progressing");
break;
case GCChannel.GCEV_USRINFO:
buf.append("A user to user information event");
break;
case GCChannel.GCEV_FACILITYREQ:
buf.append("A facility request is made by CO");
break;
case GCChannel.GCEV_CONGESTION:
buf.append("Remote end is not ready to accept");
break;
case GCChannel.GCEV_FACILITY:
buf.append("Facility info. available");
break;
case GCChannel.GCEV_D_CHAN_STATUS:
buf.append("Report D-channel status to the user");
break;
case GCChannel.GCEV_NOUSRINFOBUF:
buf.append("User information buffer is not ready");
break;
case GCChannel.GCEV_NOFACILITYBUF:
buf.append("Facility buffer is not ready");
break;
case GCChannel.GCEV_BLOCKED:
buf.append("Line device is blocked");
break;
case GCChannel.GCEV_UNBLOCKED:
buf.append("Line device is no longer blocked");
break;
case GCChannel.GCEV_ISDNMSG:
buf.append("ISDN message");
break;
case GCChannel.GCEV_NOTIFY:
buf.append("Notify message received");
break;
case GCChannel.GCEV_L2FRAME:
buf.append("Level2 frame");
break;
case GCChannel.GCEV_L2BFFRFULL:
buf.append("Level2 buffer full");
break;
case GCChannel.GCEV_L2NOBFFR:
buf.append("Level2 no buffer available");
break;
case GCChannel.GCEV_SETUP_ACK:
buf.append("Setup acknowledged");
break;
case GCChannel.GCEV_CALLSTATUS:
buf.append("call status, e.g. busy");
break;
case GCChannel.GCEV_DIVERTED:
buf.append("Diverted");
break;
case GCChannel.GCEV_HOLDACK:
buf.append("Hold acknowledged");
break;
case GCChannel.GCEV_HOLDCALL:
buf.append("Hold call");
break;
case GCChannel.GCEV_HOLDREJ:
buf.append("Hold rejected");
break;
case GCChannel.GCEV_RETRIEVEACK:
buf.append("Retrieve acknowledged");
break;
case GCChannel.GCEV_RETRIEVECALL:
buf.append("Retrieve call");
break;
case GCChannel.GCEV_RETRIEVEREJ:
buf.append("Retrieve rejected");
break;
case GCChannel.GCEV_NSI:
buf.append("NSI event");
break;
case GCChannel.GCEV_TRANSFERACK:
buf.append("Transfer acknowledged");
break;
case GCChannel.GCEV_TRANSFERREJ:
buf.append("Transfer rejected");
break;
case GCChannel.GCEV_TRANSIT:
buf.append("Transit event");
break;
case GCChannel.GCEV_ACKCALL:
buf.append("Termination event for gc_CallACK()");
break;
default: buf.append("Unknown event "+type);
}
if (evtmask) {
// Dxxx event
if ((termmsk & TM_MAXDTMF) != 0) buf.append(",Max Number of Digits Recd");
if ((termmsk & TM_MAXDTMF) != 0) buf.append(",Max Number of Digits Recd");
if ((termmsk & TM_MAXSIL) != 0) buf.append(",Max Silence");
if ((termmsk & TM_MAXNOSIL) != 0) buf.append(",Max Non-Silence");
if ((termmsk & TM_LCOFF) != 0) buf.append(",Loop Current Off");
if ((termmsk & TM_IDDTIME) != 0) buf.append(",Inter Digit Delay");
if ((termmsk & TM_MAXTIME) != 0) buf.append(",Max Function Time Exceeded");
if ((termmsk & TM_DIGIT) != 0) buf.append(",Digit Mask or Digit Type Term.");
if ((termmsk & TM_PATTERN) != 0) buf.append(",Pattern Match Silence Off");
if ((termmsk & TM_USRSTOP) != 0) buf.append(",Function Stopped by User");
if ((termmsk & TM_EOD) != 0) buf.append(",End of Data Reached on Playback");
if ((termmsk & TM_TONE) != 0) buf.append(",Tone On/Off Termination");
if ((termmsk & TM_BARGEIN) != 0) buf.append(",Play terminated due to Barge-in");
if ((termmsk & TM_ERROR) != 0) buf.append(",/O Device Error");
}
return buf.toString();
}
public EVT dup(int device) {
EVT nEvt = null;
try {
nEvt = (EVT)super.clone();
} catch (Exception e) {}
nEvt.dev = device;
return nEvt;
}
/** Let EVT class know kind of device is ISDN */
public static void setISDN(int device) {
isISDN.set(device);
}
public static void resetISDN(int device) {
isISDN.clear(device);
}
static {
isISDN = new java.util.BitSet();
}
}