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

📄 shpa3api.pas

📁 用Delphi写的呼叫中心
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit Shpa3api;

interface

uses Windows;

const
//enum{
  ANALOG_CH = 0;
  INTER_CH  = 1;
  USER_CH   = 2;
  REC_CH    = 3;
  SS1_CH    = 4;
  FAX_CH    = 5;
//};

//pending reason
//enum{
  ANALOGOUT_NO_DIALTONE=0;
  ANALOGOUT_BUSYTONE=1;
  ANALOGOUT_ECHO_NOVOICE=2;
  ANALOGOUT_NOANSWER=3;
  ANALOGOUT_TALKING_REMOTE_HANGUPED=4;

  SS1IN_WAIT_SET_KB=10;
  SS1IN_BWD_KB5=11;
  SS1IN_TALKING_REMOTE_HANGUPED=12;			// 自动呼入时检测到主叫用户先挂机


  SS1OUT_TALKING_REMOTE_HANGUPED=20;			// 自动呼出进入通话后检测到被叫用户先挂机
  SS1OUT_NOANSWER=21;						// 等待被叫用户摘机超时
  SS1OUT_NOBWDACK=22;						// 等待占用应答信号超时
  SS1OUT_DIALING_BWD_HANGUP=23;				// 收到后向拆线信号
  SS1OUT_BWD_A5=24;							// 收到A=5(空号)信号
  SS1OUT_BWD_KB5=25;							// 收到KB=5(空号)信号
  SS1OUT_BWD_KB2=26;							// 用户“市忙”
  SS1OUT_BWD_KB3=27;							// 用户”长忙“
  SS1OUT_BWD_A4=28;							// 机键拥塞
  SS1OUT_BWD_KB4=29;							// 收到KB=4(机键拥塞)信号
  SS1OUT_TIMEOUT_BWD_A=30;					// 等候接收后向A组信号超时
  SS1OUT_TIMEOUT_BWD_A_STOP=31;				// 等候后向A组信号停发超时
  SS1OUT_TIMEOUT_BWD_KB=32;					// 接收后向KB信号超时
  SS1OUT_TIMEOUT_BWD_KB_STOP=33;				// 等候被叫方停发后向KB信号超时
  SS1OUT_TIMEOUT_CALLERID_BWD_A1=34;			// 收到未定义的后向A组信号
  SS1OUT_TIMEOUT_CALLERID_BWD_A1_STOP=35;	// 发送CALLERID时等候后向A组信号停发超时
  SS1OUT_UNDEFINED_CALLERID_BWD_A=36;		// 发送主叫号码时收到未定义的后向A组信号
  SS1OUT_UNDEFINED_BWD_A=37;					// 收到未定义的后向A组信号
  SS1OUT_UNDEFINED_BWD_KB=38;				// 收到未定义的KB信号
//};


//enum{
  S_CALL_STANDBY=0;
  S_CALL_PICKUPED=1;
  S_CALL_RINGING=2;
  S_CALL_TALKING=3;
  S_CALL_ANALOG_WAITDIALTONE=4;
  S_CALL_ANALOG_TXPHONUM=5;
  S_CALL_ANALOG_WAITDIALRESULT=6;
  S_CALL_PENDING=7;
  S_CALL_OFFLINE=8;

  S_CALL_WAIT_REMOTE_PICKUP=9;
  S_CALL_ANALOG_CLEAR=10;

  S_CALL_SS1_BLOCK=20;
  S_CALL_SS1_SAYIDLE=21;

  S_CALL_SS1IN_WAIT_PHONUM=30;
  S_CALL_SS1IN_WAIT_FWDSTOP=31;
  S_CALL_SS1IN_WAIT_CALLERID=32;
  S_CALL_SS1IN_WAIT_KD=33;
  S_CALL_SS1IN_WAIT_KDSTOP=34;

  S_CALL_SS1OUT_WAITBWDACK=40;
  S_CALL_SS1OUT_TXPHONENUM=41;
  S_CALL_SS1OUT_WAIT_PHONUM=42;
  S_CALL_SS1OUT_TXCALLERID=43;
  S_CALL_SS1OUT_WAIT_KB=44;
//};

//enum{
  DIAL_STANDBY=0;
  DIAL_DIALING=1;
  DIAL_ECHOTONE=2;
  DIAL_NO_DIALTONE=3;
  DIAL_BUSYTONE=4;
  DIAL_ECHO_NOVOICE=5;
  DIAL_NOVOICE=6;
  DIAL_VOICE=7;
  DIAL_VOICEF1=8;
  DIAL_VOICEF2=9;
  DIAL_NOANSWER=10;
  DIAL_FAILURE=11;
  DIAL_INVALID_PHONUM=12;
//};



//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@ INITIALIZATION OPERATION  @@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmStartCti( lpSsmCfgFileName:PChar;
                      lpIndexCfgFileName:PChar):Integer; stdcall;

function SsmCloseCti():Integer; stdcall;
procedure SsmGetLastErrMsg( szErrMsgBuf:PChar); stdcall;

function SsmGetLastErrCode():Integer; stdcall;

function SsmGetMaxUsableBoard():Integer; stdcall;

function SsmGetMaxCfgBoard():Integer; stdcall;

function SsmGetRxDtmfBufSize():Integer; stdcall;

function SsmGetAccreditId( nBId:Integer):Integer; stdcall;

function SsmGetMaxCh():Integer; stdcall;

function SsmGetChType(ch:Integer):Integer; stdcall;

function SsmSetMaxIdxSeg( wMaxIdxSeg:WORD):Integer; stdcall;

function SsmLoadIndexData(nSegNo:Integer;
                          pAlias:PChar;
                          nCodec:Integer;
                          pVocFile:PChar;
                          lStartPos:LongInt;
                          lLen:LongInt):Integer; stdcall;

function SsmFreeIndexData( nSegNo:Integer):Integer; stdcall;

function SsmGetTotalIndexSeg():Integer; stdcall;
function SsmPauseCard():Integer; stdcall;
function SsmRestartCard():Integer; stdcall;


//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PLAY OPERATION @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmSetPlayVolume(ch:Integer; nVolume:Integer):Integer; stdcall;
function SsmSetDtmfStopPlay(ch:Integer; bDspf:Boolean):Integer; stdcall;
function SsmGetDtmfStopPlayFlag(ch:Integer):Integer; stdcall;
function SsmSetBargeinStopPlay(ch:Integer;  bBispf:Boolean):Integer; stdcall;
function SsmGetBargeinStopPlayFlag(ch:Integer):Integer; stdcall;
function SsmPlayFile(ch:Integer;
                     pszFileName:PChar;
                     nFormat:Integer;
                     dwStartPos:DWORD;
                     dwLen:DWORD):Integer; stdcall;

function SsmStopPlayFile(ch:Integer):Integer; stdcall;
function SsmPausePlay(ch:Integer):Integer; stdcall;
function SsmRestartPlay(ch:Integer):Integer; stdcall;
function SsmFastFwdPlay(ch:Integer):Integer; stdcall;
function SsmFastBwdPlay(ch:Integer):Integer; stdcall;
function SsmSetPlayTime(ch:Integer;  dwTime:DWORD):Integer; stdcall;
function SsmSetPlayPrct(ch:Integer;  dwPercentage:DWORD):Integer; stdcall;

function SsmGetPlayedTime(ch:Integer):LongInt; stdcall;

function SsmGetPlayedPercentage(ch:Integer):Integer; stdcall;

function SsmGetDataBytesToPlay(ch:Integer):LongInt; stdcall;

function SsmCheckPlay(ch:Integer):Integer; stdcall;
function SsmGetPlayType(ch:Integer):Integer; stdcall;
function SsmPlayIndexString(ch:Integer;  pszIdxStr:PChar):Integer; stdcall;
function SsmPlayIndexList(ch:Integer;
                          wIdxListLen:WORD;
                          pwIdxList:PWORD):Integer; stdcall;

function SsmStopPlayIndex(ch:Integer):Integer; stdcall;
function SsmClearFileList(ch:Integer):Integer; stdcall;
function SsmAddToFileList(ch:Integer;
                          pszFileName:PChar;
                          nFormat:Integer;
                          dwStartPos:DWORD;
                          dwLen:DWORD):Integer; stdcall;

function SsmPlayFileList(ch:Integer):Integer; stdcall;

function SsmStopPlayFileList(ch:Integer):Integer; stdcall;
function SsmPlayMem(ch:Integer;
                    nFormat:Integer;
                    pBuf:PBYTE;
                    dwBufSize:DWORD;
                    dwStartOffset:DWORD;
                    dwStopOffset:DWORD):Integer; stdcall;

function SsmGetPlayOffset(ch:Integer;  pdwPlayOffset:PDWORD):Integer; stdcall;
function SsmSetStopPlayOffset(ch:Integer;  dwStopPlayOffset:DWORD):Integer; stdcall;
function SsmStopPlayMem(ch:Integer):Integer; stdcall;
function SsmClearPlayMemList():Integer; stdcall;
function SsmAddToPlayMemList( pBuf:PBYTE;
                              dwDataLen:DWORD;
                              nFormat:Integer):Integer; stdcall;

function SsmPlayMemList(ch:Integer;  pMemList:PWORD;  wMemListLen:WORD):Integer; stdcall;
function SsmStopPlayMemList(ch:Integer):Integer; stdcall;



//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@    RECORD OPERATION   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmSetRecVolume(ch:Integer; nVolume:Integer):Integer; stdcall;
function SsmGetRecType(ch:Integer):Integer; stdcall;
function SsmRecToFile(ch:Integer;
                      pszFileName:PChar;
                      nFormat:Integer;
                      dwStartPos:DWORD;
                      dwBytes:DWORD;
                      dwTime:DWORD;
                      nMask:Integer):Integer; stdcall;

function SsmPauseRecToFile(ch:Integer):Integer; stdcall;
function SsmRestartRecToFile(ch:Integer):Integer; stdcall;

function SsmGetRecTime(ch:Integer):LongInt; stdcall;
function SsmGetDataBytesToRecord(ch:Integer):LongInt; stdcall;

function SsmStopRecToFile(ch:Integer):Integer; stdcall;
function SsmChkRecToFile(ch:Integer):Integer; stdcall;
function SsmRecToMem(ch:Integer;
                     nFormat:Integer;
                     pBuf:PBYTE;
                     dwBufSize:DWORD;
                     dwStartOffset:DWORD):Integer; stdcall;

function SsmStopRecToMem(ch:Integer):Integer; stdcall;

function SsmGetRecOffset(ch:Integer):LongInt; stdcall;

function SsmGetRecAGCSwitch(ch:Integer):Integer; stdcall;
function SsmSetRecAGC(ch:Integer;  bEnable:Boolean):Integer; stdcall;

function SsmQueryOpRecMixer(ch:Integer):Integer; stdcall;
function SsmSetRecMixer(ch:Integer;  bEnRecMixer:Boolean;  nMixerVolume:Integer):Integer; stdcall;
function SsmGetRecMixerState(ch:Integer;
                             pnEnRecMixer:PInteger;
                             pnMixerVolume:PInteger):Integer; stdcall;

function SsmSetPrerecord(ch:Integer; bEnable:Boolean;  nMode:Integer;  wInsertTime:WORD; nFormat:Integer):Integer;stdcall;	
function SsmSetTruncateTail(ch:Integer; dwTime:DWORD):Integer;stdcall;
function SsmGetTruncateTailTime(ch:Integer):LongInt; stdcall;
function SsmGetPrerecordState(ch:Integer;  pnMode:PInteger;  pwInsertTime:PWORD; pnFormat:PInteger):Integer;stdcall;

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@   RxDTMF OPERATION   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmEnableRxDtmf(ch:Integer;  bRun:Boolean):Integer; stdcall;
function SsmClearRxDtmfBuf(ch:Integer):Integer; stdcall;
function SsmGetDtmfStr(ch:Integer;  pszDtmf:PChar):Integer; stdcall;
function SsmGetRxDtmfLen(ch:Integer):Integer; stdcall;
function SsmGet1stDtmf(ch:Integer;  pcDtmf:PChar):Integer; stdcall;
function SsmGet1stDtmfClr(ch:Integer;  pcDtmf:PChar):Integer; stdcall;
function SsmGetLastDtmf(ch:Integer; pcDtmf:PChar):Integer; stdcall;
function SsmSetWaitDtmf(ch:Integer;  wTimeOut:WORD;  wMaxLen:WORD;  cEndChar:char;  bWithEndChar:Boolean):Integer; stdcall;
function SsmChkWaitDtmf(ch:Integer; pszDtmf:PChar):Integer; stdcall;

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@ TXDTMF OPERATION  @@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmQueryTxDtmf(ch:Integer; pszDtmf:PChar):Integer; stdcall;
function SsmQueryTxFlash(ch:Integer; pszDtmf:PChar):Integer; stdcall;
function SsmSetTxDtmfPara(ch:Integer;  wOnTime:WORD;  wOffTime:WORD):Integer; stdcall;
function SsmGetTxDtmfPara(ch:Integer;  pwOnTime:PWORD;  pwOffTime:PWORD):Integer; stdcall;
function SsmTxDtmf(ch:Integer; pszDtmf:PChar):Integer; stdcall;
function SsmStopTxDtmf(ch:Integer):Integer; stdcall;
function SsmChkTxDtmf(ch:Integer):Integer; stdcall;
function SsmTxFlash(ch:Integer;  time:WORD):Integer; stdcall;
function SsmChkTxFlash(ch:Integer):Integer; stdcall;


//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@ INTER-CH OPERATION  @@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmSetLocalFlashTime( nFlashTime:Integer):Integer; stdcall;
function SsmSetASDT(ch:Integer;  bEnAutoSendDialTone:Boolean):Integer; stdcall;
function SsmGetASDT(ch:Integer):Integer; stdcall;
function SsmGetFlashCount(ch:Integer):Integer; stdcall;
function SsmClearFlashCount(ch:Integer):Integer; stdcall;
function SsmGetHookState(ch:Integer):Integer; stdcall;
function SsmStartRing(ch:Integer):Integer; stdcall;
function SsmStopRing(ch:Integer):Integer; stdcall;


//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@ SEND TONE OPERATION  @@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmQueryOpSendTone(ch:Integer):Integer; stdcall;
function SsmSendTone(ch:Integer; nToneType:Integer):Integer; stdcall;
function SsmStopSendTone(ch:Integer):Integer; stdcall;


//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@ TONE ANALYZE OPERATION  @@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SsmClearToneAnalyzeResult(ch:Integer):Integer; stdcall;
function SsmStartToneAnalyze(ch:Integer):Integer; stdcall;
function SsmCloseToneAnalyze(ch:Integer):Integer; stdcall;

function SsmGetOverallEnergy(ch:Integer):LongInt; stdcall;

⌨️ 快捷键说明

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