📄 iprouterdlg.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 + -