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

📄 djh323.h

📁 东进语音板卡开发
💻 H
字号:
#ifndef __DJH323_H__
#define __DJH323_H__

/////////////////////////////////////////////////////////////////////////////////////////////////
//参数、结构定义

#define  MAX_CALLINFO_LEN  256
#define  MAX_FILENAME      256

//定义编码类型
#define  CT_G711ALAW     0x0001
#define  CT_G7231_53     0x0002
#define  CT_G7231_63     0x0004
#define  CT_G711ULAW     0x0008
#define  CT_G729         0x0010
#define  CT_G729AB       0x0020

// 定义呼叫状态
typedef enum {
	CS_INVALID,               //invalid
	CS_DIALTONE,              //dial tone
    CS_PROCEEDING,            //proceeding
    CS_RINGBACK,              //ring back
    CS_CONNECTED,             //connect
    CS_DISCONNECTED,          //disconnect
    CS_IDLE,                  //idle
    CS_OFFERING,              //offering
	CS_ADMISSIONCONFIRM,      //ACF
	CS_ADMISSIONREJECT,       //ARJ
    CS_WAITADDRESSACK,        //wait addr ack
	CS_TEMP,                  //temp
}DJH323_CALL_STATE;

// 定义呼叫模式
typedef enum {
	CM_INVALID,                   //invalid

	CM_CONTROLCONNECTED,          //connected mode: control connected
    CM_CALLSETUPCONNECTED,        //connected mode: call setup connected
    CM_CALLCONNECTED,             //connected mode: call connected
    CM_CONNECTEDCONFERENCE,       //connected mode: connected conference

    CM_DISCONNECTEDBUSY,          //disconnected mode: busy
    CM_DISCONNECTEDNORMAL,        //disconnected mode: normal
	CM_DISCONNECTEDREJECT,        //disconnected mode: reject
	CM_DISCONNECTEDUNREACHABLE,   //disconnected mode: unreachable
    CM_DISCONNECTEDUNKNOWN,       //disconnected mode: unknown
	CM_DISCONNECTEDLOCAL,         //disconnected mode: local

	CM_OFFERINGCREATE,            //offering mode: create
    CM_OFFERINGINVITE,            //offering mode: invite
	CM_OFFERINGJOIN,              //offering mode: join
}DJH323_CALL_MODE;


// 定义DJH323事件
#define H323_EV_REGISTERED          0x00000001
#define H323_EV_UNREGISTERED        0x00000002
#define	H323_EV_NEWCALL     		0x00000004
#define H323_EV_STATE_CHANGED       0x00000008
#define	H323_EV_DTMFRECV    		0x00000010

#define	H323_EV_ALL					0xFFFFFFFF


// 定义DJIP.INI的结构(基本不会使用)
typedef struct {
	int		iDetailInfo;
	WORD	wVAD_CNG_Enable;
	short	shVAD_Level;
	WORD	wDTMF_TransMode;
	WORD	wDTMF_On_Time;
	WORD	wDTMF_Off_Time;
	WORD	wEC_Enable;
	WORD	wPLR_OptNum;
	WORD	wPLR_MaxNum;
	WORD	wCoder;
	WORD	wFrameSize;
	WORD	wPort_Call;
	WORD	wPort_RTP;
}DJH323_INI_PARAM;

// 定义系统参数的结构
typedef struct {
	int		iTotalNum;
	BOOL    writeLog;
	char    logFileName[MAX_FILENAME+1];
	DWORD	dwEventMask;
	long	( WINAPI *CallEventHandler) (DWORD dwEvent, int iChID);
}DJH323_SYS_PARAM;

///////////////////////////////////////////////////////////////////////////////////////////////
//接口函数定义

#ifdef __cplusplus
extern "C" {
#endif
//=============================================================================================
//系统函数
int WINAPI DJH323_SetRtpKind( unsigned short ucRtpFlag );
int  WINAPI DJH323_InitSystem( void );
void WINAPI DJH323_ExitSystem( void );
void WINAPI	DJH323_GetIniInfo ( DJH323_INI_PARAM *pIniInfo );
void WINAPI	DJH323_GetSysInfo( DJH323_SYS_PARAM *pSysInfo );
int  WINAPI DJH323_GetIPChanNum(void);
int  WINAPI	DJH323_SetCallEventHandler( DWORD dwEventMask, long (WINAPI * hdlr)(DWORD dwEvent, int iChID));

//呼叫控制
int  WINAPI DJH323_CallMake(int iChID, char* strDial, char* Caller, char* Display, char* userUser, int userUserSize);
int  WINAPI DJH323_CallDrop(int iChID);
int  WINAPI DJH323_CallAnswerExt(int iChID, char* Display, char* userUser, int userUserSize);//发送Connect
int  WINAPI DJH323_CallAccept(int iChID); //接收端发送Alert

//呼叫信息
DJH323_CALL_STATE WINAPI DJH323_GetCallState( int iChID );
DJH323_CALL_MODE  WINAPI DJH323_GetCallMode( int iChID );

char* WINAPI DJH323_NewCallGetCallerId( char* CallerId, int size );
char* WINAPI DJH323_NewCallGetCalleeId( char* CalleeId, int size );
char* WINAPI DJH323_NewCallGetDisplayInfo(char* DisplayInfo, int size );
char* WINAPI DJH323_NewCallGetUserUserInfo(char* UserUserInfo, int size );

char* WINAPI DJH323_GetCallerId( int iChID, char* CallerId, int size );
char* WINAPI DJH323_GetCalleeId( int iChID, char* CalleeId, int size );
char* WINAPI DJH323_GetDisplayInfo( int iChID, char* DisplayInfo, int size );
char* WINAPI DJH323_GetUserUserInfo( int iChID, char* UserUserInfo, int size );

char* WINAPI DJH323_CallGetDTMF( int iChID , char* buf, int buflen);
int   WINAPI DJH323_CallSendDTMF(int iChID, char* dtmf);

int  WINAPI DJH323_SetCodeType(int iChID, WORD codetype);
WORD WINAPI DJH323_GetCodeType(int iChID);                     
WORD WINAPI DJH323_GetTransCodeType(int iChID, BOOL direction);    
DWORD WINAPI DJH323_GetTransPackets(int iChID, BOOL direction);  

//时隙管理
int  WINAPI DJH323_GetTimeSlot( int iChID );
int	 WINAPI DJH323_ConnectFromTS( int iChID, int iTS );
int	 WINAPI DJH323_DisconnectTS( int iChID );

//H.323配置管理
int  WINAPI DJH323_GetCallId( int nIndex, char* CallId, int size );
int  WINAPI DJH323_SetCallId(int nIndex, char* CallId);
int  WINAPI DJH323_ResetCallId(void);
int  WINAPI DJH323_DeleteCallId(int nIndex);
int  WINAPI DJH323_GetCallIdCount(void);
int  WINAPI DJH323_AddCallId(char* CallId);

int  WINAPI DJH323_SetManualRASFlag(BOOL flag);

int  WINAPI DJH323_GetGKAddress(char* GKAddr, int size);
int  WINAPI DJH323_SetGKAddress(char* GKAddr);
int  WINAPI DJH323_SetSysMaxCalls(int maxCalls);
long WINAPI DJH323_GetSysMaxCalls(void);
BOOL WINAPI DJH323_GetAllowCallsWhenNonRegFlag(void);
BOOL WINAPI DJH323_SetAllowCallsWhenNonRegFlag(BOOL flag);
int  WINAPI DJH323_Register(void);
int  WINAPI DJH323_UnRegister(void);

//语音(媒体流)处理
int   WINAPI DJH323_SetJitterSize(int iChID, BYTE size);
int   WINAPI DJH323_GetJitterSize(int iChID);
int   WINAPI DJH323_SetVADCtrl(int iChID, BOOL flag);
int   WINAPI DJH323_GetVADCtrl(int iChID);
int   WINAPI DJH323_SetVADThreshold(int iChID, short threshold);
short WINAPI DJH323_GetVADThreshold(int iChID);
int   WINAPI DJH323_SetECCtrl(int iChID, BOOL flag);
int   WINAPI DJH323_GetECCtrl(int iChID);
int   WINAPI DJH323_SetSendVolumeSize(int iChID,short VolumeSize);
int   WINAPI DJH323_SetRecvVolumeSize(int iChID,short VolumeSize);
int   WINAPI DJH323_GetSendVolumeSize(int iChID );
int   WINAPI DJH323_GetRecvVolumeSize(int iChID );
//日志管理
int  WINAPI DJH323_SetLogCtrl(char* filename, BOOL write);
//=============================================================================================
#ifdef __cplusplus
}
#endif
///////////////////////////////////////////////////////////////////////////////////////////////
#endif //#ifndef __DJH323_H__

⌨️ 快捷键说明

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