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

📄 iprouterdlg.h

📁 三汇CTI示例程序源码
💻 H
字号:
// IPRouterDlg.h : header file
//

#if !defined(AFX_IPROUTERDLG_H__9BA983BA_69E3_4948_A32F_E60296F9BFD7__INCLUDED_)
#define AFX_IPROUTERDLG_H__9BA983BA_69E3_4948_A32F_E60296F9BFD7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CIPRouterDlg dialog

//最大同类通道数
#define MAX_CHANNEL		64
#define MAX_CHLIST_ITEM		6			//定义列表的的最大列数
#define MAX_CH				400			//最大通道数

#define MAX_USER_DTMFLEN	4			//座席DTMF码的最大长度
#define NUM_LENGTH			20			//号码长度

typedef struct _ADDRBook
{
	char	dtmf;
	char	ipaddr[60];
	int		type;		//H323=0, SIP=1
	
} ADDRBook;


enum APP_STATUS
{
	E_STATE_IP_IDLE,			
	E_STATE_IP_WAIT_CONNECT,					
	E_STATE_IP_PLAY_ADDRBOOK,
	E_STATE_IP_CHECK_PLAY_ADDRBOOK,
	E_STATE_IP_WAIT_LINKDIAL,
	E_STATE_IP_WAIT_LINKPICK,
	E_STATE_IP_WAIT_HANGUP,
	E_STATE_IP_CALLOUT,
	E_STATE_IP_WAIT_CALLEE_PICKUP,
};

struct IPGate
{
	int    ntype; 
	int	   nChId;								//应用程序通道号
	int    nLinkProType;
	int	   nLinkToCh;							//对应的外线通道号
	int	   iDirection;							//呼叫方向
	char   szCallerTelNumber[64];				//主叫号码
	char   szCalleeTelNumber[64];				//被叫号码
	unsigned long ulTimeOutCounter;				//超时计数器
	unsigned long ulCodecType;					//编码代码
	APP_STATUS	Step;							//自定义通道状态
};

enum					//列表索引值
{
	ITEM_Ch,
	ITEM_ChState,
	ITEM_DIRECTION,
	ITEM_LINKCH,
	ITEM_CallerId,
	ITEM_CalleeId,
};

class CIPRouterDlg : public CDialog
{
// Construction
public:
	CIPRouterDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CIPRouterDlg)
	enum { IDD = IDD_IPROUTER_DIALOG };
	CListCtrl	m_ChSIPList;
	CListCtrl	m_ChH323List;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CIPRouterDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
	int nMaxCh;

	void InitAllChannel();
	
	BOOL InitCtiSystem(void);
	
	void UpdateChH323List();
	void UpdateChSIPList();

	void IntiChSIPList(void);
	void IntiChH323List(void);

	void SIPStateEvent();
	void H323StateEvent();

	int  m_nTotalCh;							
	int  m_nTotalSIPCh;							
	int  m_nTotalH323Ch;							
	
	int  m_UserNumber;

	int  m_CurTimer;

	IPGate	 m_SIPCh[MAX_CHANNEL];		
	IPGate	 m_H323Ch[MAX_CHANNEL];	
	
	CString	m_strErrMsg;

	ADDRBook m_AddrBook;

	ADDRBook m_IPAddress[100];

	IPGate* pCh;
	IPGate* pLinkCh;
	
private:
	void AppErrorHandler(int ch);
	int  SearchIdleCh(int proType);
	
	IPGate* __GetLinkObject(int chID, int type);
	void __StateEvent();
	void __ReadIndexINI(const char* lpFile);

	BOOL CheckConfigFile(LPSTR lpstrSrc, LPCSTR lpcstrDefault, LPSTR lpstrActual);

	// Generated message map functions
	//{{AFX_MSG(CIPRouterDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnExit();
	afx_msg void OnAutodial();
	afx_msg void OnDestroy();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_IPROUTERDLG_H__9BA983BA_69E3_4948_A32F_E60296F9BFD7__INCLUDED_)

⌨️ 快捷键说明

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