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

📄 shpa3api.h

📁 三汇语音卡
💻 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 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,	//被叫号码拦截标记
	
	// Added by xxb for 模拟电话线被叫摘机检测新算法,2003.2.27	
	F_RELATIVEENGYHOOKDETECT=4, //是否启用模拟电话线被叫摘机检测新算法
	
	//Added by xxb,for 一号信令R2滤波点数不可调,2003.3.7
	F_RXR2FILTERTIME=5, //R2接收滤波时间
	F_RECTOFILEA_CALLBACKTIME = 6, //Appended by xxb, for SsmRecToFileA回调时间可调, 2003.06.24
	F_CALLERIDSTYLE=7,
	F_InVoiceToBus=8, //Added by xxb,for 来话上总线 DTMF切音,2004.04.19
	F_ClearInVoiceOnRcvDtmf=9, //Added by xxb,for 来话上总线 DTMF切音,2004.04.19
	F_MixerResToBus=10, //added by xxb,for 混音源上总线,2004.06.02
	F_HighAndLowFreqEnScale=11, //appended by cqb for 过滤语音中误判的DTMF , 2004.11.01
	F_DualAndAllFreqEnScale=12, //appended by cqb for 过滤语音中误判的DTMF , 2004.11.01
	F_EchoCancelInFsk=13,	//设置Fsk收发过程中的回波开关
	F_ChToRingingOnRingCnt=14	//added by cxq for 广州同方振铃计数阀值, 2005.10.08
};

//-----------------------------------------------------------------------
// 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	

//-----------------------------------------------------------------------
// 函数调用失败原因的常量定义,用于函数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,		// appended by cxg for SS7,10.22,2001
	C_ERROR_OP_FAILURE		  =14,		//appended by xxb, for 停录放音会出现句柄无效,2003.7.18
	C_ERROR_INVALID_APPSPYCIC =15,

	//+++start+++	fax error code
	C_ERROR_FAX_NOFILE		  =16,
	//+++end+++		fax error code
	
};

//-----------------------------------------------------------------------
// 自动拨号任务失败的常量定义,用于函数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
	ATDL_RcvEUM=23,								// No.7信令:收到EUM
	ATDL_RcvADI=24,								// No.7信令:收到ADI
	ATDL_RcvBLO=25,								// No.7信令:收到BLO
	ATDL_DoubleOccupy=26,						// No.7信令:检出同抢
	ATDL_CircuitReset=27,						// No.7信令:收到电路/群复原信号
	ATDL_BlockedByRemote=28,					// No.7信令:电路被对端交换机闭塞

	ATDL_SS1WaitOccupyAckTimeout=40,			// No.1信令:等待占用应答信号超时
	ATDL_SS1RcvCAS_HANGUP=41,					// No.1信令:收到后向拆线信号
	ATDL_SS1RcvA4=42,							// No.1信令:收到A4信号(机键拥塞)
	ATDL_SS1RcvA5=43,							// No.1信令:收到A5信号(空号)
	ATDL_SS1RcvUndefinedAx=44,					// No.1信令:收到未定义的后向A组信号
	ATDL_SS1RcvUndefinedAxOnTxCallerId=45,		// No.1信令:送主叫时收到未定义的后向A组信号
	ATDL_SS1WaitAxTimeout=46,					// No.1信令:等候接收后向A组信号超时
	ATDL_SS1WaitAxStopTimeout=47,				// No.1信令:等候后向A组信号停发超时
	ATDL_SS1WaitAxTimeoutOnTxCallerId=48,		// No.1信令:送主叫时等候后向A组信号超时
	ATDL_SS1WaitAxStopTimeoutOnTxCallerId=49,	// No.1信令:送主叫时等候后向A组信号停发超时
	ATDL_SS1RcvKB2=50,							// No.1信令:收到KB2信号(用户“市忙”)
	ATDL_SS1RcvKB3=51,							// No.1信令:收到KB3信号(用户“长忙”)
	ATDL_SS1RcvKB4=52,							// No.1信令:收到KB4信号(机键拥塞)
	ATDL_SS1RcvKB5=53,							// No.1信令:收到KB5信号(空号)
	ATDL_SS1RcvUndefinedKB=54,					// No.1信令:收到未定义的KB信号
	ATDL_SS1WaitKBTimeout=55,					// No.1信令:接收后向KB信号超时
	ATDL_SS1WaitKBStopTimeout=56,				// No.1信令:等候被叫方停发后向KB信号超时

	ATDL_ISDNNETISBUS	= 60,					//ISDN:网络忙
	ATDL_ISDNEMPTYNO	= 61,					//ISDN:所拨的是空号.

	ATDL_IllegalMessage = 65,                   //SS7:非法消息
	ATDL_RcvREL         = 66,                   //ISUP:收到释放消息
	ATDL_RcvCBK         = 67,                   //TUP: Rcv CBK Dial Failure
};



//-----------------------------------------------------------------------
// 自动拨号任务执行情况的常量定义,函数SsmChkAutoDial()的返回值
//-----------------------------------------------------------------------
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,	// 被叫用户摘机且收到频率F1的声音(模拟外线通道),自动拨号结束
	DIAL_VOICEF2        = 9,	// 被叫用户摘机且收到频率F2的声音(模拟外线通道),自动拨号结束
	DIAL_NOANSWER       = 10,	// 无人接听,自动拨号失败
	DIAL_FAILURE        = 11,	// 自动拨号失败
	DIAL_INVALID_PHONUM = 12,	// 空号,自动拨号结束
};

//-----------------------------------------------------------------------
// 通道挂起原因常量定义,函数SsmGetPendingReason()的返回值
//-----------------------------------------------------------------------
enum{
	ANALOGOUT_NO_DIALTONE=0,				// 模拟通道:自动拨号时没有检测到拨号音,自动拨号失败。
	ANALOGOUT_BUSYTONE=1,					// 模拟通道:自动拨号结束后检测到拨号音,自动拨号失败。
	ANALOGOUT_ECHO_NOVOICE=2,				// 模拟通道:自动拨号结束后并检测到回铃后出现无。
	ANALOGOUT_NOANSWER=3,					// 模拟通道:自动拨号结束后检测到回铃信号但在指定的时间内没有应答。
	ANALOGOUT_TALKING_REMOTE_HANGUPED=4,	// 模拟通道:在"通话"状态时检测对方挂机
	ANALOGOUT_NOVOICE=5,					// 模拟通道:自动拨号结束后检测到线路上出现无声

	PEND_WaitBckStpMsg=10,					// 数字中继通道:等待应用程序设置被叫用户状态

	SS1IN_BWD_KB5=11,						// No.1信令通道:等待主叫拆线
	PEND_RemoteHangupOnTalking=12,			// 数字中继通道:自动呼入进入通话后检测到主叫用户先挂机

⌨️ 快捷键说明

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