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

📄 shpa3api.h

📁 三汇CTI示例程序源码
💻 H
📖 第 1 页 / 共 5 页
字号:
  //                               软件授权协议
//1、	杭州三汇信息工程有限公司(以下简称本公司)拥有"本软件及所有附属产品、文件和相关文档"(以下简称本产品)的完全版权。任何单位和个人在使用前须获得本公司的授权。
//2、	本公司授权符合以下全部条件的单位和个人免费使用本产品:
//A、	本产品与通过合法销售渠道购买的本公司硬件产品配合使用时;
//B、	不私自向第三方传播本产品和本产品的任何一部分。
//3、	除符合第2条以外的其他单位和个人需要使用本产品时,必须获得本公司的书面授权。
//4、	获得授权的单位和个人不得转让其获得的授权。
//5、	使用本产品,即表明完全理解本协议的所有条款并全部接受。

#ifndef WIN32
	#ifndef OS_LINUX
		#ifndef TYPEDEF_H
			#define TYPEDEF_H

			typedef char         	CHAR;
			typedef float           FLOAT;
			typedef int				BOOL;
			typedef int             INT;
			typedef long			LONG;
//			typedef void            VOID;

			typedef unsigned char	BYTE;
			typedef unsigned char   UCHAR;
			typedef unsigned int    UINT;
			typedef unsigned long   DWORD;
			typedef unsigned long   ULONG;
			typedef unsigned short  USHORT;
			typedef unsigned short	WORD;

			typedef BOOL            *LPBOOL;
			typedef BYTE            *LPBYTE;
			typedef BYTE            *PBYTE;
			typedef CHAR            *LPSTR;
			typedef CHAR            *LPTSTR;
			typedef CHAR            *PCHAR;
			typedef DWORD           *LPDWORD;
			typedef DWORD           *PDWORD;
			typedef WORD            *LPWORD;
			typedef WORD            *PWORD;
			typedef UCHAR           *PUCHAR;
			typedef void            *PVOID;
			typedef long			*LPLONG;
			typedef long			*PLONG;
			typedef void            *LPVOID;

			typedef const CHAR      *LPCSTR;
			typedef const CHAR      *LPCTSTR;
			typedef const void      *LPCVOID;

		#endif // end of #ifndef TYPEDEF_H
	#endif // end of #ifndef OS_LINUX

	#ifndef WINAPI
		#define WINAPI
	#endif

#endif // end of #ifndef WIN32

#ifndef SHCTI_CONST
	#define SHCTI_CONST

//-----------------------------------------------------------------------
// definition of channel type, which can be retrieved by invoking
// function "SsmGetFlag()" and set by invoking "SsmSetFlag()"
//-----------------------------------------------------------------------
enum{
	F_RCVDTMFSENS=1,					//接收DTMF敏感度
	F_TXDTMFAMP=2,						//发送DTMF信号强度
	F_RCVPHONUMHOLDUP=3,				//被叫号码拦截标记
	F_RELATIVEENGYHOOKDETECT=4,			//是否启用模拟电话线被叫摘机检测新算法
	F_RXR2FILTERTIME=5,					//R2接收滤波时间
	F_RECTOFILEA_CALLBACKTIME = 6,
	F_CALLERIDSTYLE=7,
	F_InVoiceToBus=8,
	F_ClearInVoiceOnRcvDtmf=9,
	F_MixerResToBus=10,
	F_HighAndLowFreqEnScale=11,
	F_DualAndAllFreqEnScale=12,
	F_EchoCancelInFsk=13,				//设置Fsk收发过程中的回波开关
	F_ChToRingingOnRingCnt=14,
	F_ISDNNet_WaitRemotePickup=15,
	F_ClearInVoiceOnRcv450Hz=16

};

//-----------------------------------------------------------------------
// definition of channel type, which can be retrieved by invoking
// function "SsmGetChType()"
//-----------------------------------------------------------------------
/*
enum{
	ANALOG_CH=0,
	INTER_CH=1,
	USER_CH=2,
	REC_CH=3,
	SS1_CH=4,
	FAX_CH=5,
	TUP_CH=6,
	ISDN_USER_CH=7,		
	ISDN_NET_CH = 8,
	SOFTFAX_CH = 9,
	MAGNET_CH = 10
};
*/

//-----------------------------------------------------------------------
// definition of blocking reason, which can be retrieved by invoking
// function "SsmGetBlockReason()"
//-----------------------------------------------------------------------
enum{
	BLOCKBY_NULL,
	BLOCKBY_TupRcvMGB,
	BLOCKBY_TupRcvHGB,
	BLOCKBY_TupRcvSGB,
	BLOCKBY_TupWaitRLGTimeout,
	BLOCKBY_TupBlockByApp,
};

//-----------------------------------------------------------------------
// Definition of status on blocking remote circuit or circuit groups,
// which might be used by following functions
//		1. "SsmChkBlockRemoteXXX()"
//		2. "SsmChkBlockRemoteXXX()"
//-----------------------------------------------------------------------
#define BLOCKREMOTE_Unblocked			0	// no block-signal is issued
#define BLOCKREMOTE_Blocked				1	// is in blocked state now
#define BLOCKREMOTE_WaitBlockAck		2	// waiting for acknowledgement signal after sending block-signal
#define BLOCKREMOTE_WaitUnblockAck		3	// waiting for acknowledgement signal after sending unblock-signal

//-----------------------------------------------------------------------
// Definition of local blocking status on circuit or circuit groups,
// which might be used by following functions
//		 "SsmQueryLocalXXXBlockState()"
//-----------------------------------------------------------------------
#define BLOCK_AppBlockCic	0x00000001	// channel is blocked by invoking SsmBlockLocalCh()
#define BLOCK_TupRcvBLO		0x00000002	// channel is blocked by received BLO
#define BLOCK_TupRcvSGB		0x00000004	// channel is blocked by received SGB
#define BLOCK_TupRcvHGB		0x00000008	// channel is blocked by received HGB
#define BLOCK_TupRcvMGB		0x00000010	// channel is blocked by received MGB
#define BLOCK_AppBlockPCM	0x00000020	// channel is blocked by invoking SsmBlockLocalPCM()


//-----------------------------------------------------------------------
// Definition of channel unavailable reason
//-----------------------------------------------------------------------
#define UNAVAILABLE_PcmSyncLos		0x00000001	
#define UNAVAILABLE_Mtp3Unusuable	0x00000002	

//-----------------------------------------------------------------------
// Definition of DST D-Channel Event
//-----------------------------------------------------------------------
#define DST_OFFHOOK								0x8
#define DST_ONHOOK								0xe
#define DST_LT_ON								0x1001
#define DST_LT_OFF								0x1002
#define DST_LT_FLASHING							0x1003
#define DST_DGT_PRS								0x1006
#define DST_MSG_CHG								0x1008
#define DST_LT_FASTFLASHING						0x100b
#define DST_FUNC_BTN_PRS						0x100e
#define DST_FUNC_BTN_RLS						0x100f
#define DST_SOFT_BTN_PRS						0x101e
#define DST_RING_ON                             0x101f
#define DST_RING_OFF                            0x1020
#define DST_LT_QUICKFLASH						0x1025
#define DST_DISPLAY_CLOCK                       0x1028
#define DST_DISPLAY_CLEAR                       0x102a
#define DST_LT_VERY_FASTFLASHING				0x1033
#define DST_AUDIO_CHG							0x104a
#define DST_DGT_RLS								0x1007
#define DST_TRANSFER_BTN_PRS					0x1014
#define DST_REDIAL_BTN_PRS						0x1017
#define DST_CONF_BTN_PRS						0x1018
#define DST_HOLD_BTN_PRS						0x1010
#define DST_RECALL_BTN_PRS						0x1019
#define DST_FEATURE_BTN_PRS						0x101a
#define DST_ANSWER_BTN_PRS				        0x1015
#define DST_SPEAKER_BTN_PRS						0x1016
#define DST_RING_LT_OFF                         0x10B8
#define DST_CONFERENCE_LT_OFF                   0x10E0
#define DST_FEATURE_LT_OFF						0x1068
#define DST_ANSWER_LT_OFF                       0x10C0
#define DST_SPEAKER_LT_OFF						0x1070
#define DST_MIC_LT_OFF							0x1078
#define DST_RING_LT_FLASHING                    0x10BA
#define DST_CONFERENCE_LT_FLASHING              0x10E2
#define DST_FEATURE_LT_FLASHING					0x106A
#define DST_ANSWER_LT_FLASHING                  0x10C2
#define DST_SPEAKER_LT_FLASHING					0x1072
#define DST_MIC_LT_FLASHING						0x107A
#define DST_RING_LT_FASTFLASHING                0x10BB
#define DST_CONFERENCE_LT_FASTFLASHING          0x10E3
#define DST_FEATURE_LT_FASTFLASHING				0x106B
#define DST_ANSWER_LT_FASTFLASHING              0x10C3
#define DST_SPEAKER_LT_FASTFLASHING				0x1073
#define DST_MIC_LT_FASTFLASHING					0x107B
#define DST_RING_LT_VERY_FASTFLASHING           0x10BC
#define DST_CONFERENCE_LT_VERY_FASTFLASHING     0x10E4
#define DST_FEATURE_LT_VERY_FASTFLASHING		0x106C
#define DST_ANSWER_LT_VERY_FASTFLASHING         0x10C4
#define DST_SPEAKER_LT_VERY_FASTFLASHING		0x1074
#define DST_MIC_LT_VERY_FASTFLASHING			0x107C
#define DST_RING_LT_ON                          0x10B9
#define DST_CONFERENCE_LT_ON                    0x10E1
#define DST_FEATURE_LT_ON						0x1069
#define DST_ANSWER_LT_ON                        0x10C1
#define DST_SPEAKER_LT_ON						0x1071
#define DST_MIC_LT_ON							0x1079
#define DST_SHIFT_BTN_PRS						0x1055
#define DST_CTRL_BTN_PRS						0x110e
#define DST_RELEASE_BTN_PRS						0x1012
#define DST_EXIT_BTN_PRS						0x101c
#define DST_MENU_BTN_PRS						0x1022
#define DST_PREVIOUS_BTN_PRS					0x1023
#define DST_NEXT_BTN_PRS						0x1024
#define DST_ABANDONED                           0x103a
#define DST_FUNC_LT_ON							DST_LT_ON
#define DST_FUNC_LT_OFF							DST_LT_OFF
#define DST_FUNC_LT_FASTFLASHING				DST_LT_FASTFLASHING
#define DST_FUNC_LT_FLASHING					DST_LT_FLASHING
#define DST_FUNC_LT_VERY_FASTFLASHING			DST_LT_VERY_FASTFLASHING
#define DST_FUNC_LT_QUICKFLASH					DST_LT_QUICKFLASH
#define DST_DGT_RLS								0x1007
#define DST_HOLD_BTN_PRS						0x1010
#define DST_HOLD_BTN_RLS						0x1011
#define DST_RELEASE_BTN_PRS						0x1012
#define DST_RELEASE_BTN_RLS						0x1013
#define DST_SPEAKER_BTN_PRS						0x1016
#define DST_DISPLAY_TIMER                       0x1029
#define DST_CFWD                                0x102b
#define DST_CFWD_CANCELED                       0x102c
#define DST_AUTO_ANSWER_CANCELED                0x102e
#define DST_AUTO_ANSWER                         0x102d
#define DST_SET_BUSY                            0x102f
#define DST_SET_BUSY_CANCELED                   0x1030
#define DST_SPEAKER_BTN_RLS						0x1034
#define DST_DISPLAY_MSG							0x104b

//-----------------------------------------------------------------------
// 函数调用失败原因的常量定义,用于函数SsmGetLastErrCode()返回值
//-----------------------------------------------------------------------
enum{
	C_ERROR_INIT_FAILURE      =0,
	C_ERROR_SSMAPI_UNOPENED   =1,
	C_ERROR_INVALID_APPCH     =2,
	C_ERROR_UNSUPPORTED_OP    =3,
	C_ERROR_INDEX_UNOPENED    =4,
	C_ERROR_INVALID_BUSCH     =5,
	C_ERROR_OP_UNOPENED       =6,
	C_ERROR_INVALID_FORMAT    =7,
	C_ERROR_INVALID_PARAMETER =8,
	C_ERROR_FILEOP_FAILURE    =9,
	C_ERROR_MEMORY_FAILURE    =10,
	C_ERROR_RESOURCE_USEUP    =11,
	C_ERROR_SYSTEM            =12,
	C_ERROR_IdleChNotFound    =13,
	C_ERROR_OP_FAILURE		  =14,
	C_ERROR_INVALID_APPSPYCIC =15,
	C_ERROR_FAX_NOFILE		  =16,
};

//-----------------------------------------------------------------------
// 自动拨号任务失败的常量定义,用于函数SsmGetAutoDialFailureReason()返回值
//-----------------------------------------------------------------------
enum{
	ATDL_NULL=0,								// 没有呼出任务
	ATDL_Cancel=1,								// 应用程序主动取消
	ATDL_WaitDialAnsTimeout=2,					// 等待被叫应答超时
	ATDL_WaitRemotePickupTimeout=3,				// 等待被叫摘机超时
	ATDL_PcmSyncLos=4,							// PCM链路基本祯失步超过100ms

	ATDL_Mtp3Unusable=10,						// No.7信令:信令不可用
	ATDL_RcvSSB=11,								// No.7信令:收到SSB
	ATDL_RcvSLB=12,								// No.7信令:收到SLB
	ATDL_RcvSTB=13,								// No.7信令:收到STB
	ATDL_RcvUNN=14,								// No.7信令:收到UNN
	ATDL_RcvSEC=15,								// No.7信令:收到SEC
	ATDL_RcvCGC=16,								// No.7信令:收到CGC
	ATDL_RcvNNC=17,								// No.7信令:收到NNC
	ATDL_RcvCFL=18,								// No.7信令:收到CFL
	ATDL_RcvLOS=19,								// No.7信令:收到LOS
	ATDL_RcvSST=20,								// No.7信令:收到SST
	ATDL_RcvACB=21,								// No.7信令:收到ACB
	ATDL_RcvDPN=22,								// No.7信令:收到DPN

⌨️ 快捷键说明

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