📄 tce1.cpp
字号:
DJVoc_LoopPlayPromptFile( VocChannel[VOCTONECH], "TONE" ) ;
static int ColumnWidth[60] = {50, 60, 60, 80, 80, 50, 50, 150};
LV_COLUMN lvc;
char *dig =new char[10];
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.pszText = "通道号" ;
lvc.cx = ColumnWidth[0];
ListView_InsertColumn(GetDlgItem(hGWnd,IDC_TRUNKLIST),0,&lvc);
ListView_InsertColumn(GetDlgItem(hPropPage[0],IDC_USERLIST),0,&lvc);
lvc.iSubItem = 1;
lvc.pszText = "DL信令" ;
lvc.cx = ColumnWidth[1];
ListView_InsertColumn(GetDlgItem(hGWnd,IDC_TRUNKLIST),1,&lvc);
lvc.pszText = "状态" ;
ListView_InsertColumn(GetDlgItem(hPropPage[0],IDC_USERLIST),1,&lvc);
lvc.iSubItem = 2;
lvc.pszText = "线路状态" ;
lvc.cx = ColumnWidth[2];
ListView_InsertColumn(GetDlgItem(hGWnd,IDC_TRUNKLIST),2,&lvc);
lvc.pszText = "DTMF 拨号" ;
ListView_InsertColumn(GetDlgItem(hPropPage[0],IDC_USERLIST),2,&lvc);
lvc.iSubItem = 3;
lvc.pszText = "号码" ;
lvc.cx = ColumnWidth[3];
ListView_InsertColumn(GetDlgItem(hGWnd,IDC_TRUNKLIST),3,&lvc);
lvc.iSubItem = 4;
lvc.pszText = "DTMF" ;
lvc.cx = ColumnWidth[4];
ListView_InsertColumn(GetDlgItem(hGWnd,IDC_TRUNKLIST),4,&lvc);
LV_ITEM lvi;
for(i = 0; i < TotalTrunk; i++)
{
lvi.mask = LVIF_TEXT;
lvi.iItem = i;
lvi.iSubItem = 0;
dig = itoa( i, dig, 10 ) ;
lvi.pszText = dig;
ListView_InsertItem(GetDlgItem(hGWnd,IDC_TRUNKLIST),&lvi);
}
for(i = 0; i < TotalUser; i++)
{
lvi.mask = LVIF_TEXT;
lvi.iItem = i;
lvi.iSubItem = 0;
dig = itoa( i, dig, 10 ) ;
lvi.pszText = dig;
ListView_InsertItem(GetDlgItem(hPropPage[0],IDC_USERLIST),&lvi);
}
delete [] dig ;
DialData.DialLen=5;
strcpy(DialData.CallerNum,"99999");
return true;
}
////////////////////////////////////////////////////////////
void yzExitSystem()
{
DJSys_DisableCard() ;
delete [] Trunk ;
delete [] User ;
}
////////////////////////////////////////////////////////////
void yzDrawTrkState( int trkno )
{
char state[120];
char tmpstr[20] ;
int dl ;
dl = DJTrk_GetTrunkForwardDL( trkno ) ;
if(dl>8) strcpy(state,"1");
else strcpy(state,"0");
if((dl%8) > 4 ) strcat(state,"1 ");
else strcat(state,"0 " ) ;
dl = DJTrk_GetTrunkBackwardDL( trkno ) ;
if( dl > 8 ) strcat(state,"1");
else strcat(state, "0" ) ;
if( (dl%8) > 4 ) strcat(state, "1");
else strcat(state, "0" ) ;
ListView_GetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 1, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 1, state );
switch( DJTrk_GetTrunkStatus( trkno) )
{
case Step_Free: strcpy(state,"FREE"); break ;
case Step_Disable: strcpy(state,"DIS!"); break ;
case Step_Used: strcpy(state,"USED"); break ;
case Step_RecvCall: strcpy(state,"RCAL"); break ;
case Step_RecvMfc: strcpy(state,"RMFC"); break ;
case Step_StopMfc: strcpy(state,"RSTP"); break ;
case Step_ReadyDial: strcpy(state,"RDIL"); break ;
case Step_DialCall: strcpy(state,"DCAL"); break ;
case Step_DialMfc: strcpy(state,"DMFC"); break ;
case Step_DialStop: strcpy(state,"DSTP"); break ;
case Step_Delay: strcpy(state,"DLAY"); break ;
case Step_Wait: strcpy(state,"WAIT"); break ;
case Step_Connect: strcpy(state,"CONN"); break ;
case Step_DialFail: strcpy(state,"SFAL"); break ;
case Step_Block: strcpy(state,"BLK!"); break ;
case Step_OverTime: strcpy(state,"OVER"); break ;
case Step_RecvFail: strcpy(state,"RFAL");break;
default: strcpy(state," "); break ;
}
ListView_GetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 2, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 2, state );
if( strcmp(state,"FREE" )==0)
{
ListView_SetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 3, "" );
}
else
{
char * s = tmpstr ;
s = DJTrk_GetMfcCode(trkno) ;
strcpy(state,s) ;
ListView_GetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 3, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 3, state );
s=DJTrk_GetDtmfCode(trkno);
strcpy(state,s);
ListView_GetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 4, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hGWnd,IDC_TRUNKLIST), trkno, 4, state );
}
}
////////////////////////////////////////////////////////////
void yzDrawUserState( int userno )
{
char state[50] ;
char tmpstr[20] ;
switch( User[userno].State )
{
case USR_ONHOOK: strcpy(state, "空闲"); break ;
case USR_OFFHOOK: strcpy(state ,"摘机"); break ;
case USR_WAITDIAL: strcpy(state , "正在拨号"); break ;
case USR_DIAL: strcpy(state , "呼出"); break ;
case USR_RING: strcpy(state , "等待摘机"); break ;
case USR_CONNECT: strcpy(state , "连接"); break ;
case USR_WAITONHOOK: strcpy(state , "等待挂机"); break ;
case USR_EXRING: strcpy(state , "振铃"); break ;
case USR_EXCONNECT: strcpy(state , "连接"); break ;
}
ListView_GetItemText(GetDlgItem(hPropPage[0],IDC_USERLIST), userno, 1, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hPropPage[0],IDC_USERLIST), userno, 1, state );
char * s = tmpstr ;
s = DJUser_GetDialCode(userno) ;
strcpy(state,s) ;
ListView_GetItemText(GetDlgItem(hPropPage[0],IDC_USERLIST), userno, 2, tmpstr, 19 ) ;
if ( strcmp(state,tmpstr )!=0)
ListView_SetItemText(GetDlgItem(hPropPage[0],IDC_USERLIST), userno, 2, state );
}
////////////////////////////////////////////////////////////
void ResetTrunk(int trunkID)
{
if( trunkID == -1 || Trunk[trunkID].State == TRK_FREE ) return ;
int userID = DJTrk_GetConnectUserID( trunkID );
if( userID >= 0 )
DJExg_ClearLinkTrunkAndUserByTrunk( trunkID );
int voiceID = DJTrk_GetTrunkRecordID( trunkID );
if( voiceID >= 0 ){
DJVoc_StopRecordFile( trunkID );
}
else{
voiceID = DJTrk_GetTrunkPlayID( trunkID );
if( voiceID >= 0 ){
int resType = DJVoc_GetVoiceResourceType( voiceID );
if( resType == Res_File ){
DJVoc_StopPlayFile( trunkID );
}
else if( DJVoc_GetVoiceOperateType( voiceID ) == OP_Play ){
DJVoc_VoiceStop( voiceID );
DJExg_ClearLinkPlayVoiceFromTrunk( trunkID );
}
}
}
DJTrk_BackwardHangUp( trunkID );
DJTrk_InitDtmfBuf(trunkID);
Trunk[trunkID].State = TRK_FREE;
Trunk[trunkID].ConnectUser=-1;
}
////////////////////////////////////////////////////////////
void ResetUser(int userID)
{
if( userID != -1 ) {
if( DJUser_RingDetect(userID) ) {
DJUser_StopRing(userID) ;
}
DJExg_ClearLinkPlayVoiceFromUser( userID ) ;
DJUser_InitDialBuf(userID) ;
User[userID].ConnectTrk = -1 ;
User[userID].State = USR_ONHOOK ;
}
}
////////////////////////////////////////////////////////////
char * GetIniString( char * name )
{
static CHAR inBuf[80];
char windir[50] ;
GetWindowsDirectory( windir, 45) ;
strcat( windir, "\\dial.ini" );
GetPrivateProfileString ("config", name,
"0", inBuf, 80,
windir);
return inBuf ;
}
////////////////////////////////////////////////////////////
void SetIniString( char * name, char * value )
{
char windir[50] ;
GetWindowsDirectory( windir, 45) ;
strcat( windir, "\\dial.ini" );
BOOL b = WritePrivateProfileString ("config", name,
value, windir);
}
////////////////////////////////////////////////////////////
void yzResetProcedure()
{
for(int i=0;i<TotalTrunk;i++)
{
ResetTrunk(i);
}
for(i=0;i<TotalUser ;i++)
{
ResetUser(i);
}
}
void yzCallOut(char* code)
{
int tmpval = GetDialTrunkId() ; //get a free trunk for callout
if( tmpval == -1 )
{//cannot find free trunk channel
MessageBox(NULL,"找不到空闲的呼出通道","Note",MB_OK);
return;
}
else
{
DJTrk_StartDial( tmpval, code, DialData.CallerNum ) ;
Trunk[tmpval].State = TRK_CALLOUT ;
if(nDialType==2) Trunk[tmpval+TotalTrunk/2].State=TRK_CALLIN;
}
}
void yzSetChannelType()
{
if((nDialType==0)||(nDialType==1))
{
for(int i=0;i<TotalTrunk;i++)
DJTrk_SetTrunkType(i,Type_Export);
}
else if(nDialType==2)
{
for(int i=0;i<TotalTrunk/2;i++)
DJTrk_SetTrunkType(i,Type_Export);
for(i=TotalTrunk/2;i<TotalTrunk;i++)
DJTrk_SetTrunkType(i,Type_Import);
}
}
BOOL yzPlayPromptFile( int trunkID , char * filename)
{
int vocno ;
// if((vocno = DJVoc_SFVC_ForPlay(trunkID)) == -1) {
if((vocno = DJVoc_SFVC_ForPlay_New(trunkID, true)) == -1) {
return false ;
}
if( ! DJVoc_PlayPromptFile( vocno, filename ) ) {
return false ;
}
if( ! DJExg_SetLinkPlayVoiceToTrunk( trunkID, vocno ) ) {
return false ;
}
return true ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -