📄 shpa3api.cs
字号:
using System;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Text;
namespace shpa3api
{
/// <summary>
/// SsmApi的摘要说明。
/// </summary>
//-----------------------------------------------------------------------
// definition of channel type, which can be retrieved by invoking
// function "SsmGetFlag()" and set by invoking "SsmSetFlag()"
//-----------------------------------------------------------------------
public enum ChFlag
{
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()"
//-----------------------------------------------------------------------
public enum BlockReason
{
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()"
//-----------------------------------------------------------------------
public enum RemoteBlockStatus
{
BLOCKREMOTE_Unblocked = 0, // no block-signal is issued
BLOCKREMOTE_Blocked = 1, // is in blocked state now
BLOCKREMOTE_WaitBlockAck = 2, // waiting for acknowledgement signal after sending block-signal
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()"
//-----------------------------------------------------------------------
public enum LocalBlockStatus
{
BLOCK_AppBlockCic = 1, // channel is blocked by invoking SsmBlockLocalCh()
BLOCK_TupRcvBLO = 2, // channel is blocked by received BLO
BLOCK_TupRcvSGB = 4, // channel is blocked by received SGB
BLOCK_TupRcvHGB = 8, // channel is blocked by received HGB
BLOCK_TupRcvMGB = 16, // channel is blocked by received MGB
BLOCK_AppBlockPCM = 32, // channel is blocked by invoking SsmBlockLocalPCM()
}
//-----------------------------------------------------------------------
// Definition of channel unavailable reason
//-----------------------------------------------------------------------
public enum ReasonUnavailable
{
UNAVAILABLE_PcmSyncLos = 1,
UNAVAILABLE_Mtp3Unusuable = 2,
}
//-----------------------------------------------------------------------
// 函数调用失败原因的常量定义,用于函数SsmGetLastErrCode()返回值
//-----------------------------------------------------------------------
public enum ErrorReason
{
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()返回值
//-----------------------------------------------------------------------
public enum AutoDialFailureReason
{
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()的返回值
//-----------------------------------------------------------------------
public enum CheckAutoDial
{
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, // 空号,自动拨号结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -