123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- /*
- *
- Copyright (c) Eicon Networks, 2000.
- *
- This source file is supplied for the use with
- Eicon Networks range of DIVA Server Adapters.
- *
- Eicon File Revision : 1.9
- *
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
- *
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
- *
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
- #ifndef __DIVA_EICON_TRACE_API__
- #define __DIVA_EICON_TRACE_API__
- #define DIVA_TRACE_LINE_TYPE_LEN 64
- #define DIVA_TRACE_IE_LEN 64
- #define DIVA_TRACE_FAX_PRMS_LEN 128
- typedef struct _diva_trace_ie {
- byte length;
- byte data[DIVA_TRACE_IE_LEN];
- } diva_trace_ie_t;
- /*
- Structure used to represent "State\\BX\\Modem" directory
- to user.
- */
- typedef struct _diva_trace_modem_state {
- dword ChannelNumber;
- dword Event;
- dword Norm;
- dword Options; /* Options received from Application */
- dword TxSpeed;
- dword RxSpeed;
- dword RoundtripMsec;
- dword SymbolRate;
- int RxLeveldBm;
- int EchoLeveldBm;
- dword SNRdb;
- dword MAE;
- dword LocalRetrains;
- dword RemoteRetrains;
- dword LocalResyncs;
- dword RemoteResyncs;
- dword DiscReason;
- } diva_trace_modem_state_t;
- /*
- Representation of "State\\BX\\FAX" directory
- */
- typedef struct _diva_trace_fax_state {
- dword ChannelNumber;
- dword Event;
- dword Page_Counter;
- dword Features;
- char Station_ID[DIVA_TRACE_FAX_PRMS_LEN];
- char Subaddress[DIVA_TRACE_FAX_PRMS_LEN];
- char Password[DIVA_TRACE_FAX_PRMS_LEN];
- dword Speed;
- dword Resolution;
- dword Paper_Width;
- dword Paper_Length;
- dword Scanline_Time;
- dword Disc_Reason;
- dword dummy;
- } diva_trace_fax_state_t;
- /*
- Structure used to represent Interface State in the abstract
- and interface/D-channel protocol independent form.
- */
- typedef struct _diva_trace_interface_state {
- char Layer1[DIVA_TRACE_LINE_TYPE_LEN];
- char Layer2[DIVA_TRACE_LINE_TYPE_LEN];
- } diva_trace_interface_state_t;
- typedef struct _diva_incoming_call_statistics {
- dword Calls;
- dword Connected;
- dword User_Busy;
- dword Call_Rejected;
- dword Wrong_Number;
- dword Incompatible_Dst;
- dword Out_of_Order;
- dword Ignored;
- } diva_incoming_call_statistics_t;
- typedef struct _diva_outgoing_call_statistics {
- dword Calls;
- dword Connected;
- dword User_Busy;
- dword No_Answer;
- dword Wrong_Number;
- dword Call_Rejected;
- dword Other_Failures;
- } diva_outgoing_call_statistics_t;
- typedef struct _diva_modem_call_statistics {
- dword Disc_Normal;
- dword Disc_Unspecified;
- dword Disc_Busy_Tone;
- dword Disc_Congestion;
- dword Disc_Carr_Wait;
- dword Disc_Trn_Timeout;
- dword Disc_Incompat;
- dword Disc_Frame_Rej;
- dword Disc_V42bis;
- } diva_modem_call_statistics_t;
- typedef struct _diva_fax_call_statistics {
- dword Disc_Normal;
- dword Disc_Not_Ident;
- dword Disc_No_Response;
- dword Disc_Retries;
- dword Disc_Unexp_Msg;
- dword Disc_No_Polling;
- dword Disc_Training;
- dword Disc_Unexpected;
- dword Disc_Application;
- dword Disc_Incompat;
- dword Disc_No_Command;
- dword Disc_Long_Msg;
- dword Disc_Supervisor;
- dword Disc_SUB_SEP_PWD;
- dword Disc_Invalid_Msg;
- dword Disc_Page_Coding;
- dword Disc_App_Timeout;
- dword Disc_Unspecified;
- } diva_fax_call_statistics_t;
- typedef struct _diva_prot_statistics {
- dword X_Frames;
- dword X_Bytes;
- dword X_Errors;
- dword R_Frames;
- dword R_Bytes;
- dword R_Errors;
- } diva_prot_statistics_t;
- typedef struct _diva_ifc_statistics {
- diva_incoming_call_statistics_t inc;
- diva_outgoing_call_statistics_t outg;
- diva_modem_call_statistics_t mdm;
- diva_fax_call_statistics_t fax;
- diva_prot_statistics_t b1;
- diva_prot_statistics_t b2;
- diva_prot_statistics_t d1;
- diva_prot_statistics_t d2;
- } diva_ifc_statistics_t;
- /*
- Structure used to represent "State\\BX" directory
- to user.
- */
- typedef struct _diva_trace_line_state {
- dword ChannelNumber;
- char Line[DIVA_TRACE_LINE_TYPE_LEN];
- char Framing[DIVA_TRACE_LINE_TYPE_LEN];
- char Layer2[DIVA_TRACE_LINE_TYPE_LEN];
- char Layer3[DIVA_TRACE_LINE_TYPE_LEN];
- char RemoteAddress[DIVA_TRACE_LINE_TYPE_LEN];
- char RemoteSubAddress[DIVA_TRACE_LINE_TYPE_LEN];
- char LocalAddress[DIVA_TRACE_LINE_TYPE_LEN];
- char LocalSubAddress[DIVA_TRACE_LINE_TYPE_LEN];
- diva_trace_ie_t call_BC;
- diva_trace_ie_t call_HLC;
- diva_trace_ie_t call_LLC;
- dword Charges;
- dword CallReference;
- dword LastDisconnecCause;
- char UserID[DIVA_TRACE_LINE_TYPE_LEN];
- diva_trace_modem_state_t modem;
- diva_trace_fax_state_t fax;
- diva_trace_interface_state_t *pInterface;
- diva_ifc_statistics_t *pInterfaceStat;
- } diva_trace_line_state_t;
- #define DIVA_SUPER_TRACE_NOTIFY_LINE_CHANGE ('l')
- #define DIVA_SUPER_TRACE_NOTIFY_MODEM_CHANGE ('m')
- #define DIVA_SUPER_TRACE_NOTIFY_FAX_CHANGE ('f')
- #define DIVA_SUPER_TRACE_INTERFACE_CHANGE ('i')
- #define DIVA_SUPER_TRACE_NOTIFY_STAT_CHANGE ('s')
- #define DIVA_SUPER_TRACE_NOTIFY_MDM_STAT_CHANGE ('M')
- #define DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE ('F')
- struct _diva_strace_library_interface;
- typedef void (*diva_trace_channel_state_change_proc_t)(void *user_context,
- struct _diva_strace_library_interface *hLib,
- int Adapter,
- diva_trace_line_state_t *channel, int notify_subject);
- typedef void (*diva_trace_channel_trace_proc_t)(void *user_context,
- struct _diva_strace_library_interface *hLib,
- int Adapter, void *xlog_buffer, int length);
- typedef void (*diva_trace_error_proc_t)(void *user_context,
- struct _diva_strace_library_interface *hLib,
- int Adapter,
- int error, const char *file, int line);
- /*
- This structure creates interface from user to library
- */
- typedef struct _diva_trace_library_user_interface {
- void *user_context;
- diva_trace_channel_state_change_proc_t notify_proc;
- diva_trace_channel_trace_proc_t trace_proc;
- diva_trace_error_proc_t error_notify_proc;
- } diva_trace_library_user_interface_t;
- /*
- Interface from Library to User
- */
- typedef int (*DivaSTraceLibraryStart_proc_t)(void *hLib);
- typedef int (*DivaSTraceLibraryFinit_proc_t)(void *hLib);
- typedef int (*DivaSTraceMessageInput_proc_t)(void *hLib);
- typedef void* (*DivaSTraceGetHandle_proc_t)(void *hLib);
- /*
- Turn Audio Tap trace on/off
- Channel should be in the range 1 ... Number of Channels
- */
- typedef int (*DivaSTraceSetAudioTap_proc_t)(void *hLib, int Channel, int on);
- /*
- Turn B-channel trace on/off
- Channel should be in the range 1 ... Number of Channels
- */
- typedef int (*DivaSTraceSetBChannel_proc_t)(void *hLib, int Channel, int on);
- /*
- Turn D-channel (Layer1/Layer2/Layer3) trace on/off
- Layer1 - All D-channel frames received/sent over the interface
- inclusive Layer 2 headers, Layer 2 frames and TEI management frames
- Layer2 - Events from LAPD protocol instance with SAPI of signalling protocol
- Layer3 - All D-channel frames addressed to assigned to the card TEI and
- SAPI of signalling protocol, and signalling protocol events.
- */
- typedef int (*DivaSTraceSetDChannel_proc_t)(void *hLib, int on);
- /*
- Get overall card statistics
- */
- typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetModemStatistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetFaxStatistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(void *hLib);
- typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(void *hLib);
- /*
- Call control
- */
- typedef int (*DivaSTraceClearCall_proc_t)(void *hLib, int Channel);
- typedef struct _diva_strace_library_interface {
- void *hLib;
- DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStart;
- DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStop;
- DivaSTraceLibraryFinit_proc_t DivaSTraceLibraryFinit;
- DivaSTraceMessageInput_proc_t DivaSTraceMessageInput;
- DivaSTraceGetHandle_proc_t DivaSTraceGetHandle;
- DivaSTraceSetAudioTap_proc_t DivaSTraceSetAudioTap;
- DivaSTraceSetBChannel_proc_t DivaSTraceSetBChannel;
- DivaSTraceSetDChannel_proc_t DivaSTraceSetDChannel;
- DivaSTraceSetDChannel_proc_t DivaSTraceSetInfo;
- DivaSTraceGetOutgoingCallStatistics_proc_t \
- DivaSTraceGetOutgoingCallStatistics;
- DivaSTraceGetIncomingCallStatistics_proc_t \
- DivaSTraceGetIncomingCallStatistics;
- DivaSTraceGetModemStatistics_proc_t \
- DivaSTraceGetModemStatistics;
- DivaSTraceGetFaxStatistics_proc_t \
- DivaSTraceGetFaxStatistics;
- DivaSTraceGetBLayer1Statistics_proc_t \
- DivaSTraceGetBLayer1Statistics;
- DivaSTraceGetBLayer2Statistics_proc_t \
- DivaSTraceGetBLayer2Statistics;
- DivaSTraceGetDLayer1Statistics_proc_t \
- DivaSTraceGetDLayer1Statistics;
- DivaSTraceGetDLayer2Statistics_proc_t \
- DivaSTraceGetDLayer2Statistics;
- DivaSTraceClearCall_proc_t DivaSTraceClearCall;
- } diva_strace_library_interface_t;
- /*
- Create and return Library interface
- */
- diva_strace_library_interface_t *DivaSTraceLibraryCreateInstance(int Adapter,
- const diva_trace_library_user_interface_t *user_proc,
- byte *pmem);
- dword DivaSTraceGetMemotyRequirement(int channels);
- #define DIVA_MAX_ADAPTERS 64
- #define DIVA_MAX_LINES 32
- #endif
|