/*
当前系统规定并且有用的拒绝原因如下：
*/

#define EPN_REJ_PROTOCOLVER_ERR		0x01	//协议版本不兼容
#define EPN_REJ_CLIENTID_ERR		0x02	//无效的端点标识，或者呼叫请求端点没有注册
#define EPN_REJ_DUPLICATEUSER		0x03	//重复等录
#define EPN_REJ_CLIENTTYPE_ERR		0x04	//无效的终端类型
#define EPN_REJ_UNSUPPORTEDREQ		0x05	//请求的功能不支持
#define EPN_REJ_ACCOUNTPIN_ERR		0x06	//无效的用户名/密码
#define EPN_REJ_CHECKSUM_ERR		0x07	//数据包校验失败。在登录时，等同于0x06；其他时候表示该数据包数字签名校验失败。
#define EPN_REJ_CREDITNOTENOUGH		0x08	//信用额度不足，或者没有执行请求动作的权限

#define EPN_REJ_CALLEEOFFLINE		0x11	//被叫没有在线
#define EPN_REJ_CALLTERMINATED		0x12	//本地或者对方终止呼叫
#define EPN_REJ_CALLFAILED			0x13	//Transport connection failed to establish call
#define EPN_REJ_REMOTEOFFLINE		0x14	//The remote party host off line
#define EPN_REJ_TEMPORARYFAILED		0x15	//The remote failed temporarily app may retry
#define EPN_REJ_SERVERRESOURCE		0x16	//服务端内部资源不足，导致该请求失败
#define EPN_REJ_CALLEEBUSY			0x17	//被叫忙
#define EPN_REJ_CALLEENOANSWER		0x18	//被叫无应答
#define EPN_REJ_CALLEEREJECT		0x19	//被叫拒接
#define EPN_REJ_TRANSPORTERR		0x1A	//传输错误
#define EPN_REJ_TRANSPORTTIMEOUT	0x1B	//传输超时
#define EPN_REJ_INCOMPATIBLECODEC	0x1C	//CODEC不兼容
#define EPN_REJ_LOCKED				0x1D	//内部资源被锁定，不能被访问
#define EPN_REJ_REGCANCELLED		0x1E	//取消登录
#define EPN_REJ_SELFUNREGISTER		0x1F	//主动注销
#define EPN_REJ_DESTUNREACHABLE		0x20	//目标不可到达
#define EPN_REG_LOGINREPLACED		0x21	//被其他地方的登录替代
#define EPN_REJ_LINEBUSY			0x22	//线路忙
#define EPN_REJ_BLOCKED				0x23	//由于频繁无效登陆，暂时被禁止登陆
	
#define EPN_REJ_CALLADDRERR			0xFD	//无效的呼叫信令地址，可能没有意义
#define EPN_REJ_SERVERADDRERR		0xFE	//指定的服务端地址无效，或者域名解析失败
#define EPN_REJ_UNDEFINED			0xFF	//没有定义的错误


#ifdef __cplusplus
extern "C" {
#endif


	void	EpnStartup();
	void	EpnInitialize();
	void	EpnLogon();
	void	EpnLogoff();
	BOOLEAN	EpnCall();
	void	EpnAnswerCall(BOOLEAN bAnswer);
	void	EpnHangup();
	void	EpnConnect();
	void	EpnHandleTimer();
	void	EpnSendDtmfKeys(PXCHAR pKeyBuf, UCHAR iLen);

//	BOOLEAN EpnRunUdp();		
	BOOLEAN	EpnRunTcp();

#ifdef __cplusplus
}
#endif
