📄 gsms.pas
字号:
unit gsms;
interface
uses Windows;
const MAX_CARD_NO= 16;
const MAX_CHANNEL_NO= 8 * MAX_CARD_NO;
const LEN_FILEPATH= 70;
// the value of every card-type
const CARD_TYPE_T5_64= 1;
const CARD_TYPE_T5_128= 2;
const CARD_TYPE_T5_REC= 3;
const CARD_TYPE_T5_128_NT= 10;
const CARD_TYPE_T5_REC_NT= 11;
const CARD_TYPE_T5_ID_NT= 12;
const CHTYPE_USER= 0;
const CHTYPE_TRUNK= 1;
const CHTYPE_EMPTY= 2;
const NODTMF= -1;
const DTMF_CODE_0= 10;
const DTMF_CODE_1= 1;
const DTMF_CODE_2= 2;
const DTMF_CODE_3= 3;
const DTMF_CODE_4= 4;
const DTMF_CODE_5= 5;
const DTMF_CODE_6= 6;
const DTMF_CODE_7= 7;
const DTMF_CODE_8= 8;
const DTMF_CODE_9= 9;
const DTMF_CODE_STAR= 11;
const DTMF_CODE_SHARP= 12;
const DTMF_CODE_A= 13;
const DTMF_CODE_B= 14;
const DTMF_CODE_C= 15;
const DTMF_CODE_D= 16;
const RECORD_CHECK= 01;
const PLAY_CHECK= 02;
const SEND_CHECK= 03;
const SEND_READY_CHECK= 04;
const R_BUSY= $21;
const R_OTHER= $20;
const S_NORESULT = $10;
const S_BUSY = $11;
const S_NOBODY= $13;
const S_CONNECT= $14;
const S_NOSIGNAL= $15;
const S_DIALSIG= $30;
const PACK_64KBPS= 0;
const PACK_32KBPS= 1;
const PACK_16KBPS= 2;
const PACK_8KBPS= 3;
// NEW ADD for Feed and Signal
const SIG_STOP= 0;
const SIG_DIALTONE= 1;
const SIG_BUSY1= 2;
const SIG_BUSY2= 3;
const SIG_RINGBACK= 4;
const HANG_UP_FLAG_FALSE= 0;
const HANG_UP_FLAG_TRUE= 1;
const HANG_UP_FLAG_START= 2;
const HANG_UP_FLAG_PRESS_R= 3;
// caller-ID
const ID_STEP_NONE= 0;
const ID_STEP_HEAD= 1;
const ID_STEP_ID= 2;
const ID_STEP_OK= 3;
const ID_STEP_FAIL= 4;
const ID_STEP_LEN= 5;
// end of caller-ID
type TPD_RPB= record
PlayFlag:WORD ;
RecordFlag:WORD ;
PlayCount:WORD ;
RecordCount:WORD ;
DtmfCount:WORD ;
DialFlag:WORD ;
SigCount:WORD ;
SigStartPoint:WORD ;
SigBuf:PChar;
end;
type TPD_WPB=record
Busy1Count1Low:BYTE;
Busy1Count1High:BYTE ;
Busy1Count0Low:BYTE ;
Busy1Count0High:BYTE ;
BusySigCount:WORD ;
BusySigLen:WORD ;
SendReadyLen:WORD ;
SendBusy1Count1Low:BYTE ;
SendBusy1Count1High:BYTE ;
SendBusy1Count0Low:BYTE ;
SendBusy1Count0High:BYTE ;
SendSigCount1Low:BYTE ;
SendSigCount1High:BYTE ;
SendSigCount0Low:BYTE ;
SendSigCount0High:BYTE ;
SendNoSignalLen:WORD ;
MaxRingTimes:BYTE ;
end;
//use play index file
type TPD_PIF =record
FileName:array[0..99] of char;
gHandle:array[0..99] of HFILE ;
FileCount:DWORD ;
end;
//*******************************************
// define struct & type
//********************************************/
type TC_INI_TYPE =record
// get from "TC08A-V.INI"
wCardNo:WORD ;
wCardType:WORD ;
wConnect:WORD ;
wIRQ:WORD ;
cbDir:array[0..LEN_FILEPATH-1] of char;
wAddress:array[0..MAX_CARD_NO] of WORD;
// get from driver
wMajorVer:WORD ;
wMinorVer:WORD ;
wChType:array[0..MAX_CHANNEL_NO] of WORD ;
end;
function LoadDRV() : LongInt; stdcall; far external 'Tc08a32.dll';
procedure FreeDRV(); stdcall; far external 'Tc08a32.dll';
procedure GetSysInfo(TmpIni:pointer); stdcall; far external 'Tc08a32.dll';
function CheckValidCh() : WORD; stdcall; far external 'Tc08a32.dll';
function CheckChType(wChnlNo : WORD): WORD; stdcall; far external 'Tc08a32.dll';
function IsSupportCallerID():boolean; stdcall; far external 'Tc08a32.dll';
function EnableCard(wUsedCh : WORD; wFileBufLen:WORD) : LONGINT; stdcall; far external 'Tc08a32
.dll';
procedure DisableCard(); stdcall; far external 'Tc08a32.dll';
function SetPackRate( pack:integer) :Integer; stdcall; far external 'Tc08a32.dll';
procedure PUSH_PLAY(); stdcall; far external 'Tc08a32.dll';
function RingDetect(wChnlNo:WORD) : BOOLEAN; stdcall; far external 'Tc08a32.dll';
function CheckPolarity( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function OffHook(chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function HangUp(chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function SetLink( one:integer;another:integer):Integer; stdcall; far external 'Tc08a32.dll';
function ClearLink( one:integer;another:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function LinkOneToAnother (wOne:WORD; wAnother:WORD ):LongInt;stdcall; far external 'Tc08a32.dll';
function ClearOneFromAnother ( wOne:WORD; wAnother:WORD ):LongInt;stdcall; far external 'Tc08a32.dll';
function LinkThree(wOne:WORD;wTwo:WORD;wThree:WORD):LongInt;stdcall; far external 'Tc08a32.dll';
function ClearThree(wOne:WORD;wTwo:WORD;wThree:WORD):LongInt;stdcall; far external 'Tc08a32.dll';
procedure InitDtmfBuf(wChnlNo: WORD); stdcall; far external 'Tc08a32.dll';
function GetDtmfCode(wChnlNo : WORD) :Shortint; stdcall; far external 'Tc08a32.dll';
function DtmfHit(wChnlNo:WORD ):boolean; stdcall; far external 'Tc08a32.dll';
function StartSigCheck( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function StopSigCheck( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function ReadCheckResult( chanelNo:integer;checkMode:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function ReadBusyCount :Integer; stdcall; far external 'Tc08a32.dll';
function SetBusyPara( busylen:integer):Integer; stdcall; far external 'Tc08a32.dll';
function SetDialPara( ringBack1:integer;ringBack0:integer;busyLen:integer;ringTimes:integer):Integer; stdcall; far external 'Tc08a32.dll';
procedure ReadSigBuf (wChnlNo:WORD;pwStartPoint:pointer;pwCount:pointer;SigBuf:array of byte); stdcall; far external 'Tc08a32.dll';
function StopPlay(chanelNo:integer):Integer; stdcall; far external 'Tc08a32.dll';
function CheckPlayEnd (wChnlNo : WORD ) : BOOLEAN; stdcall; far external 'Tc08a32.dll';
procedure ReadStatus (wChnlNo: WORD;TmpRead:pointer); stdcall; far external 'Tc08a32.dll';
function StartPlayFile (wChnlNo : WORD;FileName: PCHAR; StartPos: LONGINT ) : BOOLEAN; stdcall; far external 'Tc08a32.dll';
procedure StopPlayFile (wChnlNo : WORD); stdcall; external 'Tc08a32.dll';
//文件索引放音
procedure RsetIndexPlayFile( chanelNo:integer); stdcall; far external 'Tc08a32.dll';
function AddIndexPlayFile( chanelNo:integer;filename:Pchar) :Integer; stdcall; far external 'Tc08a32.dll';
function StartIndexPlayFile( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function CheckIndexPlayFile( chanelNo:integer) :integer; stdcall; far external 'Tc08a32.dll';
procedure StopIndexPlayFile( chanelNo:integer); stdcall; far external 'Tc08a32.dll';
procedure ResetIndex (); stdcall; far external 'Tc08a32.dll';
function SetIndex (VocBuf:PChar;dwVocLen:WORD):boolean; stdcall; far external 'Tc08a32.dll';
procedure StartPlayIndex(wChnlNo: WORD ;pIndexTable:array of WORD;wIndexLen:WORD ); stdcall; far external 'Tc08a32.dll';
function SendDtmfBuf( chanelNo:integer;dialNum:Pchar) :Integer; stdcall; far external 'Tc08a32.dll';
function CheckSendEnd( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function StopRecord( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function StartRecordFile (wChnlNo:WORD; FileName : PCHAR;dwRecordLen:LONGINT ):BOOLEAN; stdcall; external 'Tc08a32.dll';
function CheckRecordEnd ( wChnlNo:WORD ):BOOLEAN; stdcall; external 'Tc08a32.dll';
procedure StopRecordFile (wChnlNo:WORD); stdcall; external 'Tc08a32.dll';
function FeedSigFunc:Integer; stdcall; far external 'Tc08a32.dll';
procedure StartTimer(wChnlNo:WORD;ClockType:WORD ); stdcall; far external 'Tc08a32.dll';
function ElapseTime (wChnlNo: WORD ;ClockType:WORD ):LongInt; stdcall; far external 'Tc08a32.dll';
function StartPlaySignal( chanelNo:integer;sigtype:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function StartHangUpDetect( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function HangUpDetect( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
procedure FeedRing(wChnlNo:WORD );stdcall; far external 'Tc08a32.dll';
function FeedRealRing( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function FeedPower( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function OffHookDetect( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function ReadGenerateSigBuf( lpfilename:Pchar) :Integer; stdcall; far external 'Tc08a32.dll';
// caller-id
procedure ResetCallerIDBuffer(wChnlNo:WORD);stdcall; far external 'Tc08a32.dll';
function GetCallerIDRawStr (wChnlNo:WORD ;IDRawStr:PChar):WORD; stdcall; far external 'Tc08a32.dll';
function GetCallerIDStr (wChnlNo:WORD;IDStr:PChar):WORD;stdcall; far external 'Tc08a32.dll';
function StartRecordFileNew (wChnlNo: WORD;FileName:PChar;dwRecordLen:DWORD;dwRecordStartPos:DWORD):boolean;stdcall; far external 'Tc08a32.dll';
function NewReadPass (wCardNo: WORD ):LongInt;stdcall; far external 'Tc08a32.dll';
function CheckSilence( chanelNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
function SetSendPara (ToneLen:Integer;SilenceLen:Integer ):Integer;stdcall; far external 'Tc08a32.dll';
procedure NewSendDtmfBuf(ChannelNo:Integer;DialNum:PChar);stdcall; far external 'Tc08a32.dll';
function NewCheckSendEnd(ChannelNo:Integer):Integer;stdcall; far external 'Tc08a32.dll';
function SetSigPara( AlNo:integer;clNo:integer) :Integer; stdcall; far external 'Tc08a32.dll';
procedure StartPlay(wChnlNo:WORD;PlayBuf:PChar;dwStartPos:WORD;dwPlayLen:DWORD);stdcall; far external 'Tc08a32.dll';
const FREQWIDTH_ALL= 0;
const FREQWIDTH_WIDE= 1;
const SENSVAL_1_OF_16= 00;
const SENSVAL_1_OF_8= 01;
const SENSVAL_1_OF_4= 02;
const SENSVAL_1_OF_2= 03;
const SPEAKER_VOL_NONE= 0;
const SPEAKER_VOL_1= 1;
const SPEAKER_VOL_2= 2;
const SPEAKER_VOL_3= 3;
const SPEAKER_VOL_4= 4;
const SPEAKER_VOL_5= 5;
const SPEAKER_VOL_6= 6;
const SPEAKER_VOL_7= 7;
const SPEAKER_VOL_8= 8;
procedure LinkZeroTo ( wChnlNo: WORD ); stdcall; far external 'Tc08a32.dll';
procedure ClearZeroLink (); stdcall; far external 'Tc08a32.dll';
procedure SetSpkVol ( wVol:WORD ); stdcall; far external 'Tc08a32.dll';
//end of add
//----------- add for convert FAX
function DJCvt_ClientStartConvert(wFaxChnl: WORD ;NowTxtName:PChar;NowFaxName:PChar;cbResolution:BYTE; cbPageLineNo:BYTE ):Integer; stdcall; far external 'Tc08a32.dll';
function DJCvt_ClientStopConvert(wFaxChnl:WORD):Integer; stdcall; far external 'Tc08a32.dll';
function DJCvt_ClientCheckCvt(wFaxChnl:WORD):Integer; stdcall; far external 'Tc08a32.dll';
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -