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

📄 calldlg.cpp

📁 三汇CTI示例程序源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		return FALSE;
	}

	return TRUE;
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::InitAllChannel()
{
	CString cString;
	int	m = 0;
	int	n = 0;
	int	o = 0;
	
	m_nTotalCh = SsmGetMaxCh();
	for(int i=0; i<m_nTotalCh; i++)
	{
		int iType = SsmGetChType(i);
		if( iType >= 0 ) 
		{
			if(iType == 0) 
			{
				int nDirection;
				int iAutoCall;
				if(iAutoCall = SsmGetAutoCallDirection(i, &nDirection))
				{
					if(iAutoCall == 1)
					{
						m_AnalogCh[m].iChId = i;
						m_AnalogCh[m].bEnCalled = TRUE;
						m_AnalogCh[m].Step = E_STATE_ANALOG_IDLE;
						m_AnalogCh[m].nStationCh = -1;
						m_AnalogCh[m].iLineState = SsmGetChState(i);
						memset(m_AnalogCh[m].szCallerTelNumber, 0, 64);
						m_AnalogCh[m].ulTimeOutCounter = 0;
						m++;
					}
					if(nDirection !=2)
					{
						CString strErrMsg;
						cString.LoadString(IDS_CALLDLG1);
						strErrMsg.Format(cString, i);
						AfxMessageBox(strErrMsg, MB_OK);
					}
				}
			}
			
			if(iType == 2) 
			{
				m_StationCh[n].iChId = i;
				m_StationCh[n].iTalkWithChId = -1;
				m_StationCh[n].Step = E_STATE_STATION_IDLE;
				n++;
			}

			if(iType == m_nIPProtocol) 
			{
				m_IpCh[o].iChId = i;
				m_IpCh[o].Step = E_STATE_IP_IDLE;
				m_IpCh[o].nStationCh = -1;
				m_IpCh[o].iLineState = SsmGetChState(i);
				memset(m_IpCh[o].szCallerTelNumber,0,64);
				m_IpCh[o].ulTimeOutCounter = 0;
				m_IpCh[o].ulCodecType = -1;
				o++;
			}

		}//?end if( iType >= 0 )
		else
		{
			char szErrMsg[124];
			SsmGetLastErrMsg(szErrMsg);
			AfxMessageBox(szErrMsg, MB_OK);
		}
	}
	
	m_nTotalAnalogCh = m;
	m_nTotalStationCh = n;
	m_nTotalIpCh = o;
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::InitAnalogChListCtrl()
{
	CString cString;

	m_AnalogChList.SetExtendedStyle(LVS_EX_FULLROWSELECT);  
	
	COLORREF cr = 0x000000;
	m_AnalogChList.SetBkColor(cr);
	m_AnalogChList.SetTextBkColor(cr);

	COLORREF cr1 = 0x00ff00;
	m_AnalogChList.SetTextColor(cr1);

	int ColumnWidth[5] = {80, 100, 200, 100};
	LV_COLUMN lvc;
	lvc.mask =  LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	
	lvc.iSubItem = 0;
	cString.LoadString(IDS_CALLDLG2);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[0];
	m_AnalogChList.InsertColumn(0, &lvc);


	lvc.iSubItem = 1;
	cString.LoadString(IDS_CALLDLG3);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[1];
	m_AnalogChList.InsertColumn(1, &lvc);

	lvc.iSubItem = 2;
	cString.LoadString(IDS_CALLDLG4);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[2];
	m_AnalogChList.InsertColumn(2, &lvc);

	lvc.iSubItem = 3;
	cString.LoadString(IDS_CALLDLG5);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[3];
	m_AnalogChList.InsertColumn(3, &lvc);

	char szChId[3];
	for(int i=0; i<m_nTotalAnalogCh; i++)
	{
		m_AnalogChList.InsertItem(i, _itoa(m_AnalogCh[i].iChId, szChId, 10));
	}			
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::InitIpChListCtrl()
{
	CString cString;

	m_IpChList.SetExtendedStyle(LVS_EX_FULLROWSELECT);  
	
	COLORREF cr = 0x000000;
	m_IpChList.SetBkColor(cr);
	m_IpChList.SetTextBkColor(cr);
	
	COLORREF cr1 = 0x00ff00;
	m_IpChList.SetTextColor(cr1);
	
	int ColumnWidth[6] = {80, 100, 200, 100, 80, 80};
	LV_COLUMN lvc;
	lvc.mask =  LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	
	lvc.iSubItem = 0;
	cString.LoadString(IDS_CALLDLG6);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[0];
	m_IpChList.InsertColumn(0, &lvc);
	
	lvc.iSubItem = 1;
	cString.LoadString(IDS_CALLDLG7);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[1];
	m_IpChList.InsertColumn(1, &lvc);
	
	lvc.iSubItem = 2;
	cString.LoadString(IDS_CALLDLG8);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[2];
	m_IpChList.InsertColumn(2, &lvc);
	
	lvc.iSubItem = 3;
	cString.LoadString(IDS_CALLDLG9);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[3];
	m_IpChList.InsertColumn(3, &lvc);
	
	lvc.iSubItem = 4;
	cString.LoadString(IDS_CALLDLG10);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[4];
	m_IpChList.InsertColumn(4, &lvc);
	
	lvc.iSubItem = 5;
	cString.LoadString(IDS_CALLDLG11);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[5];
	m_IpChList.InsertColumn(5, &lvc);
	
	char szChId[3];
	
	for(int i=0; i<m_nTotalIpCh; i++)
	{
		m_IpChList.InsertItem(i, _itoa(m_IpCh[i].iChId, szChId, 10));
		switch(m_nIPProtocol)
		{
		case PROTOCOL_H323:
			{
				m_IpChList.SetItemText(i, 5, "H323");
				break;
			}
		case PROTOCOL_SIP:
			{
				m_IpChList.SetItemText(i, 5, "SIP");
				break;
			}
		default:
			{
				cString.LoadString(IDS_CALLDLG12);
				m_IpChList.SetItemText(i, 5, cString);
				break;
			}
		}
	}	
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::InitStationChListCtrl()
{
	CString cString;
	m_StationChList.SetExtendedStyle(LVS_EX_FULLROWSELECT);  
	
	COLORREF cr = 0x000000;
	m_StationChList.SetBkColor(cr);
	m_StationChList.SetTextBkColor(cr);
	
	COLORREF cr1 = 0x00ff00;
	m_StationChList.SetTextColor(cr1);
	
	int ColumnWidth[5] = {80, 100, 100};
	LV_COLUMN lvc;
	lvc.mask =  LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	
	lvc.iSubItem = 0;
	cString.LoadString(IDS_CALLDLG13);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[0];
	m_StationChList.InsertColumn(0, &lvc);
	
	lvc.iSubItem = 1;
	cString.LoadString(IDS_CALLDLG14);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[1];
	m_StationChList.InsertColumn(1, &lvc);
	
	lvc.iSubItem = 2;
	cString.LoadString(IDS_CALLDLG15);
	lvc.pszText = (LPTSTR)(LPCTSTR)cString ;
	lvc.cx = ColumnWidth[2];
	m_StationChList.InsertColumn(2, &lvc);
	
	char szChId[3];
	
	for(int i=0; i<m_nTotalStationCh; i++)
	{
		m_StationChList.InsertItem(i, _itoa(m_StationCh[i].iChId, szChId, 10));
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::UpDateAnalogChListCtrl()
{
	for(int i = 0; i < m_nTotalAnalogCh; i++)
	{
		if(m_AnalogCh[i].bEnCalled)
		{
			CString strState;
			switch(m_AnalogCh[i].Step) 
			{
				case E_STATE_ANALOG_IDLE:					strState.LoadString(IDS_CALLDLG16);		break ;
				case E_STATE_ANALOG_WAIT_CONNECT:			strState.LoadString(IDS_CALLDLG17);		break ;
				case E_STATE_ANALOG_PLAY_WELCOM:			strState.LoadString(IDS_CALLDLG18);		break ;
				case E_STATE_ANALOG_CHECK_PLAY_WELCOM:		strState.LoadString(IDS_CALLDLG19);		break ;
				case E_STATE_ANALOG_PLAY_SELECT:			strState.LoadString(IDS_CALLDLG20);		break ;
				case E_STATE_ANALOG_CHECK_PLAY_SELECT:		strState.LoadString(IDS_CALLDLG21);		break ;
				case E_STATE_ANALOG_CHECK_REC_START:		strState.LoadString(IDS_CALLDLG22);		break ;
				case E_STATE_ANALOG_CHECK_REC_END:			strState.LoadString(IDS_CALLDLG23);		break ;
				case E_STATE_ANALOG_CHECK_PLAY_RECORD:		strState.LoadString(IDS_CALLDLG24);		break ;
				case E_STATE_ANALOG_CHECK_PLAY_BYEBYE:		strState.LoadString(IDS_CALLDLG25);		break ;
				case E_STATE_ANALOG_CHECK_PLAY_PASSWORD:	strState.LoadString(IDS_CALLDLG26);		break ;
				case E_STATE_ANALOG_WAIT_STATION_PICKUP:	strState.LoadString(IDS_CALLDLG27);		break ;
				case E_STATE_ANALOG_WAIT_STATION_HANGUP:	strState.LoadString(IDS_CALLDLG28);		break ;
				default:									strState.LoadString(IDS_CALLDLG29);		break ;
			}
			if(m_AnalogChList.GetItemText(i,1) != strState)
			{
				m_AnalogChList.SetItemText(i, 1, strState);
			}
			
			if(m_AnalogChList.GetItemText(i,2) != m_AnalogCh[i].szCallerTelNumber)
			{
				m_AnalogChList.SetItemText(i, 2,  m_AnalogCh[i].szCallerTelNumber);
			}
			
			char szChId[3];
			itoa(m_AnalogCh[i].nStationCh,szChId,10);
			if(m_AnalogChList.GetItemText(i,3) != szChId)
			{
				m_AnalogChList.SetItemText(i, 3,  szChId);
			}				 
		}
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::UpDateIpChListCtrl()
{
	for(int i = 0; i < m_nTotalIpCh; i++)
	{
		CString strState;
		switch( m_IpCh[i].Step ) 
		{
			case E_STATE_IP_IDLE:					strState.LoadString(IDS_CALLDLG30);		break ;
			case E_STATE_IP_WAIT_CONNECT:			strState.LoadString(IDS_CALLDLG31);		break ;
			case E_STATE_IP_PLAY_WELCOME:			strState.LoadString(IDS_CALLDLG32);		break ;
			case E_STATE_IP_CHECK_PLAY_WELCOME:		strState.LoadString(IDS_CALLDLG33);		break ;
			case E_STATE_IP_PLAY_SELECT:			strState.LoadString(IDS_CALLDLG34);		break ;
			case E_STATE_IP_CHECK_PLAY_SELECT:		strState.LoadString(IDS_CALLDLG35);		break ;
			case E_STATE_IP_CHECK_REC_START:		strState.LoadString(IDS_CALLDLG36);		break ;
			case E_STATE_IP_CHECK_REC_END:			strState.LoadString(IDS_CALLDLG37);		break ;
			case E_STATE_IP_WAIT_STATION_PICKUP:	strState.LoadString(IDS_CALLDLG38);		break ;
			case E_STATE_IP_WAIT_STATION_HANGUP:	strState.LoadString(IDS_CALLDLG39);		break ;
			default:								strState.LoadString(IDS_CALLDLG40);		break ;								strState = "未定义";			break ;
		}
		if(m_IpChList.GetItemText(i,1) != strState)
		{
			m_IpChList.SetItemText(i, 1, strState);
		}
		
		if(m_IpChList.GetItemText(i,2) != m_IpCh[i].szCallerTelNumber)
		{
			m_IpChList.SetItemText(i, 2,  m_IpCh[i].szCallerTelNumber);
		}
						 
		char szChId[3];
		itoa(m_IpCh[i].nStationCh,szChId,10);
		if(m_IpChList.GetItemText(i,3) != szChId)
		{
			m_IpChList.SetItemText(i, 3,  szChId);
		}

		char szCodec[3];
		ltoa(m_IpCh[i].ulCodecType,szCodec,10);
		if(m_IpChList.GetItemText(i,4) != szCodec)
		{
			m_IpChList.SetItemText(i, 4,  szCodec);
		}

	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void CCallDlg::UpDateStationChListCtrl()
{
	CString cString;

	for(int i=0; i< m_nTotalStationCh; i++)
	{
		CString strState;
		switch(m_StationCh[i].Step)
		{
		case E_STATE_STATION_IDLE:
			{
				strState.LoadString(IDS_CALLDLG41);
				break;
			}
			
		case E_STATE_STATION_RINGING:
			{
				strState.LoadString(IDS_CALLDLG42);
				break;
			}
			
		case E_STATE_STATION_TALKING:
			{
				strState.LoadString(IDS_CALLDLG43);
				break;
			}
			
		default:
			break;
		}
		
		if(m_StationChList.GetItemText(i,1) != strState)
		{
			m_StationChList.SetItemText(i, 1, strState);
		}
		
		char szChId[3];
		itoa(m_StationCh[i].iTalkWithChId,szChId,10);
		if(m_StationChList.GetItemText(i,2) != szChId)
		{
			m_StationChList.SetItemText(i, 2,  szChId);
		}	
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////

void CCallDlg::ProtocolType()
{
	int nProtocol = GetPrivateProfileInt("Config", "IPProtocol", 0, ".\\call.ini");
	switch (nProtocol)
	{
	case 0:
		{
			m_nIPProtocol = PROTOCOL_H323;
			break;
		}
	case 1:
		{
			m_nIPProtocol = PROTOCOL_SIP;
			break;
		}
	default:
		{
			m_nIPProtocol = -1;
			break;
		}
	}

}

void CCallDlg::InitLab()
{
	if(g_dwLanguageConversion == g_dwCHINESE_TRADITIONAL
		||g_dwLanguageConversion == g_dwCHINESE_HONGKONG)
	{
		SetEngWinLab(this,	IDC_STATIC_ANALOG,	BIG5CALLDLG1);
		SetEngWinLab(this,	IDC_STATIC_IP,		BIG5CALLDLG2);
		SetEngWinLab(this,	IDC_STATIC_STATION,	BIG5CALLDLG3);
		SetEngWinLab(this,	IDOK,				BIG5CALLDLG4);
	}
	else
	{
		SetEngWinLab(this,	IDC_STATIC_ANALOG,	CALLDLG1);
		SetEngWinLab(this,	IDC_STATIC_IP,		CALLDLG2);
		SetEngWinLab(this,	IDC_STATIC_STATION,	CALLDLG3);
		SetEngWinLab(this,	IDOK,				CALLDLG4);
	}
}

⌨️ 快捷键说明

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