📄 ipgatewaydlg.cpp
字号:
SetEngWinLab(this, IDC_STATIC_IP, GATEWAY3);
SetEngWinLab(this, ID_DISCONNECT, GATEWAY4);
SetEngWinLab(this, IDOK, GATEWAY5);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
// update Analog channels's list control
void CIPGatewayDlg::UpDateAnalogChListCtrl()
{
for(int i = 0; i < m_nTotalAnalogCh; i++)
{
CString strState;
switch(m_AnalogCh[i].Step)
{
case E_STATE_ANALOG_UNAVAILABLE: strState.LoadString(IDS_GATEWAY72); break;
case E_STATE_ANALOG_IDLE: strState.LoadString(IDS_GATEWAY38); break;
case E_STATE_ANALOG_WAIT_CALLER_CONNECT: strState.LoadString(IDS_GATEWAY39); break;
case E_STATE_ANALOG_PLAY_SELECT: strState.LoadString(IDS_GATEWAY40); break;
case E_STATE_ANALOG_CHECK_PLAY_SELECT: strState.LoadString(IDS_GATEWAY41); break;
case E_STATE_ANALOG_WAIT_IP_DIAL: strState.LoadString(IDS_GATEWAY42); break;
case E_STATE_ANALOG_WAIT_IP_PICKUP: strState.LoadString(IDS_GATEWAY43); break;
case E_STATE_ANALOG_WAIT_HANGUP: strState.LoadString(IDS_GATEWAY44); break;
case E_STATE_ANALOG_CALLOUT: strState.LoadString(IDS_GATEWAY45); break;
case E_STATE_ANALOG_WAIT_CALLEE_PICKUP: strState.LoadString(IDS_GATEWAY46); break;
case E_STATE_ANALOG_CALLEE_PICKEDUP: strState.LoadString(IDS_GATEWAY47); break;
default: strState.LoadString(IDS_GATEWAY48); break; strState = "未定义"; break ;
}
if(m_AnalogChList.GetItemText(i,2) != strState)
{
m_AnalogChList.SetItemText(i, 2, strState);
}
CString strDirection;
if(m_AnalogCh[i].iDirection == 1)
{
strDirection.LoadString(IDS_GATEWAY49);
}
else
{
if(m_AnalogCh[i].iDirection == 2)
{
strDirection.LoadString(IDS_GATEWAY50);
}
else
{
strDirection = "";
}
}
if(m_AnalogChList.GetItemText(i,3) != strDirection)
{
m_AnalogChList.SetItemText(i, 3, strDirection);
}
char szChId[3];
itoa(m_AnalogCh[i].nIpCh,szChId,10);
if(m_AnalogChList.GetItemText(i, 4) != szChId)
{
m_AnalogChList.SetItemText(i, 4, szChId);
}
if(m_AnalogChList.GetItemText(i, 5) != m_AnalogCh[i].szCallerTelNumber)
{
m_AnalogChList.SetItemText(i, 5, m_AnalogCh[i].szCallerTelNumber);
}
if(m_AnalogChList.GetItemText(i, 6) != m_AnalogCh[i].szCalleeTelNumber)
{
m_AnalogChList.SetItemText(i, 6, m_AnalogCh[i].szCalleeTelNumber);
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
// update SS1 channels's list control
void CIPGatewayDlg::UpDateSS1ChListCtrl()
{
for(int i = 0; i < m_nTotalSS1Ch; i++)
{
CString strState;
switch(m_SS1Ch[i].Step)
{
case E_STATE_SS1_UNAVAILABLE: strState.LoadString(IDS_GATEWAY71); break;
case E_STATE_SS1_IDLE: strState.LoadString(IDS_GATEWAY52); break;
case E_STATE_SS1_WAIT_CALLER_CONNECT: strState.LoadString(IDS_GATEWAY53); break;
case E_STATE_SS1_PLAY_SELECT: strState.LoadString(IDS_GATEWAY54); break;
case E_STATE_SS1_CHECK_PLAY_SELECT: strState.LoadString(IDS_GATEWAY55); break;
case E_STATE_SS1_WAIT_IP_DIAL: strState.LoadString(IDS_GATEWAY56); break;
case E_STATE_SS1_WAIT_IP_PICKUP: strState.LoadString(IDS_GATEWAY57); break;
case E_STATE_SS1_WAIT_HANGUP: strState.LoadString(IDS_GATEWAY58); break;
case E_STATE_SS1_CALLOUT: strState.LoadString(IDS_GATEWAY59); break;
case E_STATE_SS1_WAIT_CALLEE_PICKUP: strState.LoadString(IDS_GATEWAY60); break;
case E_STATE_SS1_CALLEE_PICKEDUP: strState.LoadString(IDS_GATEWAY61); break;
default: strState.LoadString(IDS_GATEWAY62); break; strState = "未定义"; break ;
}
if(m_SS1ChList.GetItemText(i,2) != strState)
{
m_SS1ChList.SetItemText(i, 2, strState);
}
CString strDirection;
if(m_SS1Ch[i].iDirection == 1)
{
strDirection.LoadString(IDS_GATEWAY68);
}
else
{
if(m_SS1Ch[i].iDirection == 2)
{
strDirection.LoadString(IDS_GATEWAY69);
}
else
{
strDirection = "";
}
}
if(m_SS1ChList.GetItemText(i,3) != strDirection)
{
m_SS1ChList.SetItemText(i, 3, strDirection);
}
char szChId[3];
itoa(m_SS1Ch[i].nIpCh,szChId,10);
if(m_SS1ChList.GetItemText(i, 4) != szChId)
{
m_SS1ChList.SetItemText(i, 4, szChId);
}
if(m_SS1ChList.GetItemText(i, 5) != m_SS1Ch[i].szCallerTelNumber)
{
m_SS1ChList.SetItemText(i, 5, m_SS1Ch[i].szCallerTelNumber);
}
if(m_SS1ChList.GetItemText(i, 6) != m_SS1Ch[i].szCalleeTelNumber)
{
m_SS1ChList.SetItemText(i, 6, m_SS1Ch[i].szCalleeTelNumber);
}
}
}
void CIPGatewayDlg::UpDateIpChListCtrl()
{
for(int i = 0; i < m_nTotalIpCh; i++)
{
CString strState;
switch( m_IpCh[i].Step )
{
case E_STATE_IP_UNAVAILABLE: strState.LoadString(IDS_GATEWAY73); break;
case E_STATE_IP_IDLE: strState.LoadString(IDS_GATEWAY25); break ;
case E_STATE_IP_WAIT_CALLER_CONNECT: strState.LoadString(IDS_GATEWAY26); break ;
case E_STATE_IP_PLAY_SELECT1: strState.LoadString(IDS_GATEWAY27); break ;
case E_STATE_IP_CHECK_PLAY_SELECT1: strState.LoadString(IDS_GATEWAY28); break ;
case E_STATE_IP_PLAY_SELECT2: strState.LoadString(IDS_GATEWAY74); break ;
case E_STATE_IP_CHECK_PLAY_SELECT2: strState.LoadString(IDS_GATEWAY75); break ;
case E_STATE_IP_WAIT_LINKCH_DIAL: strState.LoadString(IDS_GATEWAY29); break ;
case E_STATE_IP_WAIT_LINKCH_PICKUP: strState.LoadString(IDS_GATEWAY30); break ;
case E_STATE_IP_WAIT_HANGUP: strState.LoadString(IDS_GATEWAY31); break ;
case E_STATE_IP_CALLOUT: strState.LoadString(IDS_GATEWAY32); break ;
case E_STATE_IP_WAIT_CALLEE_PICKUP: strState.LoadString(IDS_GATEWAY33); break ;
case E_STATE_IP_CALLEE_PICKEDUP: strState.LoadString(IDS_GATEWAY34); break ;
default: strState.LoadString(IDS_GATEWAY35); break ; strState = "未定义"; break ;
}
if(m_IpChList.GetItemText(i,2) != strState)
{
m_IpChList.SetItemText(i, 2, strState);
}
CString strDirection;
if(m_IpCh[i].iDirection == 1)
{
strDirection.LoadString(IDS_GATEWAY36);
}
else
{
if(m_IpCh[i].iDirection == 2)
{
strDirection.LoadString(IDS_GATEWAY37);
}
else
{
strDirection = "";
}
}
if(m_IpChList.GetItemText(i,3) != strDirection)
{
m_IpChList.SetItemText(i, 3, strDirection);
}
char szChId[3];
itoa(m_IpCh[i].nLinkCh,szChId,10);
if(m_IpChList.GetItemText(i, 4) != szChId)
{
m_IpChList.SetItemText(i, 4, szChId);
}
if(m_IpChList.GetItemText(i, 5) != m_IpCh[i].szCallerTelNumber)
{
m_IpChList.SetItemText(i, 5, m_IpCh[i].szCallerTelNumber);
}
if(m_IpChList.GetItemText(i, 6) != m_IpCh[i].szCalleeTelNumber)
{
m_IpChList.SetItemText(i, 6, m_IpCh[i].szCalleeTelNumber);
}
char szCodec[3];
ltoa(m_IpCh[i].ulCodecType,szCodec,10);
if(m_IpChList.GetItemText(i,4) != szCodec)
{
m_IpChList.SetItemText(i, 4, szCodec);
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
// Analog channel operation functions
void CIPGatewayDlg::Session_SetAnalogChState(int nAnalogCh, ANALOGCH_STATE state)
{
for(int i = 0; i < m_nTotalAnalogCh; i++)
{
if(m_AnalogCh[i].nChId == nAnalogCh)
{
m_AnalogCh[i].Step = state;
break;
}
}
}
BOOL CIPGatewayDlg::Session_SetAnalogChDial(int nAnalogCh, int nIpCh, char *szCallerTelNumber, char *szCalleeTelNumber, int iDirection)
{
for(int i = 0; i < m_nTotalAnalogCh; i++)
{
if(m_AnalogCh[i].nChId == nAnalogCh)
{
ASSERT(E_STATE_ANALOG_IDLE == m_AnalogCh[i].Step);
ASSERT('\0' != szCalleeTelNumber[0]);
m_AnalogCh[i].nIpCh = nIpCh;
strcpy(m_AnalogCh[i].szCallerTelNumber, szCallerTelNumber);
strcpy(m_AnalogCh[i].szCalleeTelNumber, szCalleeTelNumber);
m_AnalogCh[i].iDirection = iDirection;
m_AnalogCh[i].Step = E_STATE_ANALOG_CALLOUT;
return TRUE;
}
}
return FALSE;
}
int CIPGatewayDlg::Session_FindIdleAnalogCh()
{
int iSearchMode = 0x1;
int nAnalogCh = SsmSearchIdleCallOutCh(iSearchMode, 0);
if(-1 == nAnalogCh)
{
AppErrorHandler(-1);
return -1;
}
else
{
if(0 == SsmGetChType(nAnalogCh))
{
return nAnalogCh;
}
else
{
return -1;
}
}
}
BOOL CIPGatewayDlg::Session_IsAnalogChPickedUp(int nChId)
{
for(int i = 0; i < m_nTotalAnalogCh; i++)
{
if(m_AnalogCh[i].nChId == nChId)
{
if(E_STATE_ANALOG_CALLEE_PICKEDUP == m_AnalogCh[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
BOOL CIPGatewayDlg::Session_IsAnalogChIdle(int nChId)
{
for(int i = 0; i < m_nTotalAnalogCh; i++)
{
if(m_AnalogCh[i].nChId == nChId)
{
if(E_STATE_ANALOG_IDLE == m_AnalogCh[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
// SS1 channel operation function
void CIPGatewayDlg::Session_SetSS1ChState(int nSS1Ch, SS1CH_STATE state)
{
for(int i = 0; i < m_nTotalSS1Ch; i++)
{
if(m_SS1Ch[i].nChId == nSS1Ch)
{
m_SS1Ch[i].Step = state;
break;
}
}
}
BOOL CIPGatewayDlg::Session_SetSS1ChDial(int nSS1Ch, int nIpCh, char *szCallerTelNumber, char *szCalleeTelNumber, int iDirection)
{
for(int i = 0; i < m_nTotalSS1Ch; i++)
{
if(m_SS1Ch[i].nChId == nSS1Ch)
{
ASSERT(E_STATE_SS1_IDLE == m_SS1Ch[i].Step);
ASSERT('\0' != szCalleeTelNumber[0]);
m_SS1Ch[i].nIpCh = nIpCh;
strcpy(m_SS1Ch[i].szCallerTelNumber, szCallerTelNumber);
strcpy(m_SS1Ch[i].szCalleeTelNumber, szCalleeTelNumber);
m_SS1Ch[i].iDirection = iDirection;
m_SS1Ch[i].Step = E_STATE_SS1_CALLOUT;
return TRUE;
}
}
return FALSE;
}
int CIPGatewayDlg::Session_FindIdleSS1Ch()
{
int iSearchMode = 0x1 << 1;
int nSS1Ch = SsmSearchIdleCallOutCh(iSearchMode, 0);
if(-1 == nSS1Ch)
{
AppErrorHandler(-1);
return -1;
}
else
{
if(4 == SsmGetChType(nSS1Ch))
{
int nDirection;
int iRet;
iRet = SsmGetAutoCallDirection(nSS1Ch, &nDirection);
if((1 == nDirection) || (2 == nDirection))
{
return nSS1Ch;
}
else
{
return -1;
}
}
else
{
return -1;
}
}
}
BOOL CIPGatewayDlg::Session_IsSS1ChPickedUp(int nChId)
{
for(int i = 0; i < m_nTotalSS1Ch; i++)
{
if(m_SS1Ch[i].nChId == nChId)
{
if(E_STATE_SS1_CALLEE_PICKEDUP == m_SS1Ch[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
BOOL CIPGatewayDlg::Session_IsSS1ChIdle(int nChId)
{
for(int i = 0; i < m_nTotalSS1Ch; i++)
{
if(m_SS1Ch[i].nChId == nChId)
{
if(E_STATE_SS1_IDLE == m_SS1Ch[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
// IP channel operation function
void CIPGatewayDlg::Session_SetIpChDial(int nIpCh, int nLinkCh, char *szCallerTelNumber, char *szCalleeTelNumber, int iDirection)
{
for(int i = 0; i < m_nTotalIpCh; i++)
{
if(m_IpCh[i].nChId == nIpCh)
{
ASSERT(E_STATE_IP_IDLE == m_IpCh[i].Step);
ASSERT('\0' != szCalleeTelNumber[0]);
m_IpCh[i].nLinkCh = nLinkCh;
strcpy(m_IpCh[i].szCallerTelNumber, szCallerTelNumber);
strcpy(m_IpCh[i].szCalleeTelNumber, szCalleeTelNumber);
m_IpCh[i].iDirection = iDirection;
m_IpCh[i].Step = E_STATE_IP_CALLOUT;
}
}
}
int CIPGatewayDlg::Session_FindIdleIpCh()
{
int iSearchMode;
if(PROTOCOL_H323 == m_nIPProtocol)
{
iSearchMode = 0x1 << 9;
}
else
{
iSearchMode = 0x1 << 8;
}
int nIpCh = SsmSearchIdleCallOutCh(iSearchMode, 0);
if(-1 == nIpCh)
{
AppErrorHandler(-1);
return -1;
}
else
{
if(m_nIPProtocol == SsmGetChType(nIpCh))
{
return nIpCh;
}
else
{
return -1;
}
}
}
BOOL CIPGatewayDlg::Session_IsIpChPickedUp(int nChId)
{
for(int i = 0; i < m_nTotalIpCh; i++)
{
if(m_IpCh[i].nChId == nChId)
{
if(E_STATE_IP_CALLEE_PICKEDUP == m_IpCh[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
BOOL CIPGatewayDlg::Session_IsIpChIdle(int nChId)
{
for(int i = 0; i < m_nTotalIpCh; i++)
{
if(m_IpCh[i].nChId == nChId)
{
if(E_STATE_IP_IDLE == m_IpCh[i].Step)
{
return TRUE;
}
}
}
return FALSE;
}
BOOL CIPGatewayDlg::Session_IsIPLinkChIdle(int nLinkCh, int nLinkType)
{
switch(nLinkType)
{
case LINK_WITH_ANALOG:
return Session_IsAnalogChIdle(nLinkCh);
case LINK_WITH_SS1:
return Session_IsSS1ChIdle(nLinkCh);
default:
return FALSE;
}
}
BOOL CIPGatewayDlg::Session_SetIPLinkChDial(int nLinkCh, int nLinkType, int nIpCh, char *szCallerTelNumber, char *szCalleeTelNumber, int iDirection)
{
switch(nLinkType)
{
case LINK_WITH_ANALOG:
return Session_SetAnalogChDial(nLinkCh, nIpCh, szCallerTelNumber, szCalleeTelNumber, iDirection);
case LINK_WITH_SS1:
return Session_SetSS1ChDial(nLinkCh, nIpCh, szCallerTelNumber, szCalleeTelNumber, iDirection);
default:
return FALSE;
}
}
int CIPGatewayDlg::Session_FindIdleIPLinkCh(int nLinkType)
{
switch(nLinkType)
{
case LINK_WITH_ANALOG:
return Session_FindIdleAnalogCh();
case LINK_WITH_SS1:
return Session_FindIdleSS1Ch();
default:
return -1;
}
}
BOOL CIPGatewayDlg::Session_IsIPLinkChPickedUp(int nLinkCh, int nLinkType)
{
switch(nLinkType)
{
case LINK_WITH_ANALOG:
return Session_IsAnalogChPickedUp(nLinkCh);
case LINK_WITH_SS1:
return Session_IsSS1ChPickedUp(nLinkType);
default:
return FALSE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -