亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? d.cpp

?? 這是個call center的程序,這個行業目前很火,有意想的程序員可以下載
?? CPP
字號:
#include "stdafx.h"
//#include <windows.h>
//#include <commdlg.h>
//#include <commctrl.h>
//#include <windowsx.h>

#include "D.h"
#include "..\\..\\..\\..\\inc\\NewSig.h"
#include "..\\..\\..\\..\\inc\\tc08a32.h"
#include "resource.h"

extern CListCtrl	m_list;
WORD TotalLine;
long DriverOpenFlag;
LINESTRUCT *Lines;
char VoicePath[100];
char sTmp[128];
HINSTANCE hInst;

//#pragma argsused
BOOL WINAPI yzInitSystem()
{
	int i;
	GetVoicePath();
	DriverOpenFlag = LoadDRV ( );
	if ( DriverOpenFlag ) {
		AfxMessageBox ("Load Driver FAIL");
		return FALSE;
	}

	TotalLine = CheckValidCh();
	if ( EnableCard(TotalLine,1024*8) != (long)0) {
		FreeDRV();
		AfxMessageBox ("Enable Board FAIL");
		return FALSE;
	}
	Lines=new LINESTRUCT[TotalLine];

	Sig_Init(0);

	for(i=0;i<TotalLine;i++)
	{
        Lines[i].nType=CheckChTypeNew(i);
		strcpy(Lines[i].CallerID,"");
		strcpy(Lines[i].Dtmf,"");
		Lines[i].State = CH_FREE;
		Lines[i].nDialStatus=S_NORESULT;
	}

	static int ColumnWidth[60] = {66, 80, 200, 100, 72, 200, 100, 50, 150};
	LV_COLUMN lvc;
	char dig[10];
	lvc.mask =  LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

	hInst = AfxGetInstanceHandle();

	lvc.iSubItem = 0;
	LoadString(hInst, IDS_CHANNEL_NO, sTmp, 128);
	lvc.pszText = sTmp; 
	lvc.cx = ColumnWidth[0];
	m_list.InsertColumn(0,&lvc);

	lvc.iSubItem = 1;
	LoadString(hInst, IDS_CHANNEL_TYPE, sTmp, 128);
	lvc.pszText = sTmp; 
	lvc.cx = ColumnWidth[1];
	m_list.InsertColumn(1,&lvc);
	
	lvc.iSubItem = 2;
	LoadString(hInst, IDS_FLOW, sTmp, 128);
	lvc.pszText = sTmp; 
	lvc.cx = ColumnWidth[2];
	m_list.InsertColumn(2,&lvc);

	lvc.iSubItem = 3;
	LoadString(hInst, IDS_DIAL_STATUS, sTmp, 128);
	lvc.pszText = sTmp; 
	lvc.cx = ColumnWidth[3];
	m_list.InsertColumn(3,&lvc);

	lvc.iSubItem = 4;
	lvc.pszText = "Dtmf" ;
	lvc.cx = ColumnWidth[4];
	m_list.InsertColumn(4,&lvc);

	LV_ITEM lvi;
	for(i = 0; i < TotalLine; i++)	
	{
		lvi.mask = LVIF_TEXT;
		lvi.iItem = i;
		lvi.iSubItem = 0;
		itoa( i, dig, 10 ) ; 
		lvi.pszText = dig;
		m_list.InsertItem(&lvi);
	}
	for(i=0;i<TotalLine;i++)
	{
		if(Lines[i].nType==CHTYPE_TRUNK)
		{
			LoadString(hInst, IDS_TRUNK, sTmp, 128);
			lvc.pszText = sTmp; 
			m_list.SetItemText( i, 1, sTmp);
		}
		else if(Lines[i].nType==CHTYPE_USER)
		{
			LoadString(hInst, IDS_USER, sTmp, 128);
			lvc.pszText = sTmp; 
			m_list.SetItemText( i, 1, sTmp);
		}
		else if(Lines[i].nType==CHTYPE_RECORD)
		{
			LoadString(hInst, IDS_RECORD, sTmp, 128);
			lvc.pszText = sTmp; 
			m_list.SetItemText( i, 1, sTmp);
		}
		else  if(Lines[i].nType==CHTYPE_EMPTY)
		{
			LoadString(hInst, IDS_EMPTY, sTmp, 128);
			lvc.pszText = sTmp; 
			m_list.SetItemText( i, 1, sTmp);
		}
	}
	return TRUE;
}
void WINAPI yzExitSystem()
{
	for(int i = 0; i < TotalLine; i++)
	{
		if(Lines[i].nType==CHTYPE_TRUNK)
		{
			StartSigCheck(i);
			HangUp(i);
			Sig_ResetCheck(i);
		}
	}
	DisableCard();
	FreeDRV();
	delete Lines;
}
void WINAPI yzDrawState( int trkno )
{	
	char state[100]; ;
	char tmpstr[100] ;
	switch( Lines[trkno].State ) 
	{
	case CH_FREE:		
		LoadString(hInst, IDS_CH_FREE, state, 100);
		break ;
	case CH_CONNECT:
		LoadString(hInst, IDS_CH_CONNECTED, state, 100);
		break;
	case CH_CALLOUT:
		LoadString(hInst, IDS_CH_CALLOUT, state, 100);
		break;
	case CH_CHECKDIALRESULT:
		LoadString(hInst, IDS_CH_CHECKDIALRESULT, state, 100);
		break;
	case CH_WAIT:
		LoadString(hInst, IDS_CH_WAIT, state, 100);
		break;
	}
	
	m_list.GetItemText( trkno, 2, tmpstr, 100 ) ;
	if ( strcmp(state,tmpstr )!=0) 
		m_list.SetItemText( trkno, 2, state );
	
	switch(Lines[trkno].nDialStatus)
	{
	case S_NORESULT:
		strcpy(state,"No Result");
		break;
	case S_BUSY:
		strcpy(state,"Busy");
		break;
	case S_NOBODY:
		strcpy(state,"No Body");
		break;
	case S_NODIALTONE:
		strcpy(state,"No Dialtone");
		break;
	case S_NOSIGNAL:
		strcpy(state,"No Signal");
		break;
	case S_CONNECT:
		strcpy(state,"Connected");
		break;
	}

	m_list.GetItemText( trkno, 3, tmpstr, 100 ) ;
	if ( strcmp(state,tmpstr )!=0) 
		m_list.SetItemText( trkno, 3, state );

	strcpy(state,Lines[trkno].Dtmf);
	m_list.GetItemText( trkno, 4, tmpstr, 100 ) ;
	if ( strcmp(state,tmpstr )!=0) 
		m_list.SetItemText( trkno, 4, state );
}
void yzResetChannel(int channelID)
{
	if(Lines[channelID].nType==CHTYPE_TRUNK)
	{
		StartSigCheck(channelID);
		HangUp(channelID);
		Sig_ResetCheck(channelID);
	}
	Lines[channelID].Dtmf[0]=0;
	Lines[channelID].CallerID[0]=0;
	Lines[channelID].nDialStatus=S_NORESULT;
	Lines[channelID].State=CH_WAIT;
}
char yzConvertDtmf(int ch)
{
	char c;

	switch(ch)
    {
		case 10:
			c = '0';
			break;
		case 11:
			c = '*';
			break;
		case 12:
			c = '#';
			break;
        case 13:
        case 14:
        case 15:
            c=ch-13+'a';
            break;
        case 0:
            c='d';
            break;
		default:
			c = ch + '0';	//transfer into ASCII code
			break;
	}
	return c;
}

void WINAPI yzDoWork()
{
	char FileName[100];
    short int code;
	int len;
	PUSH_PLAY();
	FeedSigFunc();
	static int a=0;
    for(int i=0;i<TotalLine;i++)
    {
        yzDrawState(i);
        switch(Lines[i].State)
        {
		case CH_FREE:
			break;
		case CH_WAIT:
			a++;
			if(a>50) 
			{
				a=0;
				Lines[i].State=CH_CALLOUT;
			}
			break;
		case CH_CALLOUT:
			OffHook(i);
			Sig_StartDial(i,Lines[i].Num,Lines[i].PreNum,Lines[i].Mode);
			Lines[i].State=CH_CHECKDIALRESULT;
			break;
		case CH_CHECKDIALRESULT:
			Lines[i].nDialStatus=Sig_CheckDial(i);
			switch(Lines[i].nDialStatus)
			{
			case S_NORESULT:
				break;
			case S_CONNECT:
				strcpy(FileName,VoicePath);
				strcat(FileName,"bank.001");
				InitDtmfBuf(i);
				StartPlayFile(i,FileName,0L);
				Lines[i].State = CH_CONNECT;
				break;
			case S_NOBODY:
			case S_BUSY:
			case S_NOSIGNAL:
			case S_NODIALTONE:
				yzResetChannel(i);
				break;
			}
			break;
		case CH_CONNECT:
			len=strlen(Lines[i].Dtmf);
			while((code=GetDtmfCode(i))!=-1)
			{
				Lines[i].Dtmf[len++]=yzConvertDtmf(code);
			}
			Lines[i].Dtmf[len]=0;
			break;
		default:
			break;
		}//end switch
		if(Lines[i].nType==CHTYPE_TRUNK && (Lines[i].State==CH_CONNECT))
		{
			//if( Sig_CheckBusy(i) )
			if( Sig_CheckBusy(i) || CheckPlayEnd(i) )
			{
				StopPlayFile(i);
				yzResetChannel(i);
			}
		}
	}//end for
}

void GetVoicePath()
{
	char FileName[100];
	GetWindowsDirectory(FileName,100);
	strcat(FileName,"\\tc08a-v.ini");
	GetPrivateProfileString("SYSTEM","InstallDir",NULL,VoicePath,100,FileName);
	strcat(VoicePath,"voc\\");
}

void yzCallOut(int chan,char* PreNum,char* DialNum,int mode)
{
	strcpy(Lines[chan].PreNum,PreNum);
	strcpy(Lines[chan].Num,DialNum);
	Lines[chan].Mode=mode;
	Lines[chan].State=CH_CALLOUT;
}

void yzHangup(int channelID)
{
	StartSigCheck(channelID);
	HangUp(channelID);
	Sig_ResetCheck(channelID);

	Lines[channelID].Dtmf[0]=0;
	Lines[channelID].CallerID[0]=0;
	Lines[channelID].nDialStatus=S_NORESULT;
	Lines[channelID].State=CH_FREE;
}

bool yzIsTrkChnl(int channelID)
{
	if (CHTYPE_TRUNK == Lines[channelID].nType)
		return true;
	else
		return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区五区入口| 男女男精品视频网| 国产欧美日韩一区二区三区在线观看| 欧美日韩精品高清| 色综合天天性综合| 99久久婷婷国产精品综合| 成人一区二区三区视频| 成人福利视频在线看| 成人网在线播放| 99视频超级精品| 色婷婷亚洲精品| 欧美网站一区二区| 欧美高清hd18日本| 日韩一区二区三区视频在线| 日韩欧美综合一区| 久久综合色播五月| 亚洲综合一区二区| 91麻豆精品国产91久久久资源速度 | 亚洲综合av网| 亚洲chinese男男1069| 日韩vs国产vs欧美| 精品一区二区综合| 高清shemale亚洲人妖| 色综合夜色一区| 欧美三级韩国三级日本三斤| 欧美一二三四区在线| 久久夜色精品国产噜噜av | 亚洲一区二区三区精品在线| 日韩经典一区二区| 久久精品国产秦先生| 国产剧情一区二区| 91麻豆福利精品推荐| 欧美精品v国产精品v日韩精品| 精品精品欲导航| 中文欧美字幕免费| 亚洲国产日韩av| 国产在线一区二区综合免费视频| 国产.欧美.日韩| 欧美色倩网站大全免费| 日韩精品一区在线| 国产精品久久久久久久久久久免费看| 亚洲综合免费观看高清完整版 | 日韩欧美一级二级三级久久久| 精品国产一区二区三区久久久蜜月 | 亚洲精品一线二线三线无人区| 国产精品入口麻豆原神| 亚洲影院理伦片| 国产一区二区精品久久99| 91蝌蚪porny成人天涯| 日韩一区二区电影| 亚洲视频一区在线| 麻豆国产欧美日韩综合精品二区 | 国产亚洲精品资源在线26u| 亚洲女同一区二区| 加勒比av一区二区| 欧美综合亚洲图片综合区| 日韩写真欧美这视频| 亚洲女性喷水在线观看一区| 激情小说亚洲一区| 欧美亚洲国产一区二区三区va | 久久精品国产精品亚洲精品 | 欧美成人艳星乳罩| 亚洲色欲色欲www| 国产在线一区二区| 91精品国产91热久久久做人人 | 美美哒免费高清在线观看视频一区二区| 盗摄精品av一区二区三区| 久久在线观看免费| 日韩精品影音先锋| 亚洲va欧美va天堂v国产综合| 成人在线视频一区| 精品国产乱码久久久久久牛牛| 亚洲精品免费在线播放| 成人视屏免费看| 精品国产精品一区二区夜夜嗨| 亚洲一区二区三区三| 91一区在线观看| 国产婷婷精品av在线| 另类小说综合欧美亚洲| 欧美性大战久久| 成人欧美一区二区三区1314 | 欧美日韩高清在线播放| 一色屋精品亚洲香蕉网站| 国产呦萝稀缺另类资源| 91麻豆精品国产91久久久| 亚洲一区二区不卡免费| 99精品热视频| 中文字幕一区二区不卡 | 日韩午夜三级在线| 亚洲成人一区二区| 欧美在线观看视频在线| 一区二区三区在线观看动漫| 波多野结衣中文一区| 日本一区二区综合亚洲| 国产一区二区网址| 精品日韩一区二区| 看国产成人h片视频| 欧美大胆一级视频| 六月婷婷色综合| 欧美一区二区视频网站| 色94色欧美sute亚洲线路一ni| 国产不卡高清在线观看视频| 久久一夜天堂av一区二区三区| 麻豆精品视频在线观看免费| 日韩欧美一区在线观看| 日韩va欧美va亚洲va久久| 91精品国产综合久久蜜臀| 香蕉乱码成人久久天堂爱免费| 欧美日韩三级在线| 日韩综合小视频| 日韩一二在线观看| 捆绑调教一区二区三区| 久久久久久久网| 成人激情校园春色| 国产精品乱码妇女bbbb| av在线不卡网| 亚洲一二三四久久| 欧美区在线观看| 美女精品一区二区| 久久久亚洲欧洲日产国码αv| 国产精一区二区三区| 中文字幕高清一区| 91免费版在线看| 午夜精品久久久久久久蜜桃app| 7777精品伊人久久久大香线蕉超级流畅| 日韩成人精品视频| 久久久综合九色合综国产精品| 丁香另类激情小说| 一区二区三区在线不卡| 日韩一卡二卡三卡| 国产精一品亚洲二区在线视频| 久久久精品免费网站| 暴力调教一区二区三区| 精品88久久久久88久久久| 成人免费看视频| 亚洲人吸女人奶水| 欧美少妇一区二区| 韩国av一区二区三区四区| 亚洲视频资源在线| 欧美精品v国产精品v日韩精品| 国产久卡久卡久卡久卡视频精品| 亚洲欧洲精品一区二区精品久久久 | 91国偷自产一区二区使用方法| 国产欧美日韩在线看| 欧美性大战久久久久久久 | 成人av电影免费在线播放| 亚洲综合999| 精品国产精品一区二区夜夜嗨| jizz一区二区| 免费观看在线色综合| 国产精品久久久久久久第一福利| 欧美日韩小视频| 国产99一区视频免费| 亚洲一区二区四区蜜桃| 久久蜜桃av一区精品变态类天堂| 91老师国产黑色丝袜在线| 亚洲综合色网站| 国产精品色哟哟网站| 91精品国产综合久久福利软件| 春色校园综合激情亚洲| 日本欧美加勒比视频| 国产精品高清亚洲| 日韩亚洲电影在线| 欧美在线999| 国产99久久久国产精品| 日韩av中文字幕一区二区三区| 亚洲欧洲日韩av| 精品国产3级a| 欧美日韩亚洲综合在线| 成人精品鲁一区一区二区| 蜜臀a∨国产成人精品| 亚洲乱码国产乱码精品精可以看| 亚洲精品一区二区三区香蕉| 欧美亚洲国产一区二区三区| 懂色一区二区三区免费观看| 日本不卡的三区四区五区| 一区二区三区中文字幕电影| 久久品道一品道久久精品| 欧美性一级生活| 91碰在线视频| 成人性生交大片免费看中文网站| 蜜桃一区二区三区四区| 一区二区三区精品| 最新久久zyz资源站| 国产日韩欧美高清| 日韩欧美国产高清| 欧美日韩国产一二三| 91香蕉国产在线观看软件| 国产91高潮流白浆在线麻豆| 精品一二三四区| 免费视频一区二区| 日本在线不卡视频一二三区| 亚洲国产综合色| 亚洲欧美乱综合| 中文字幕综合网| 日本一区二区成人在线| 欧美精品tushy高清| 精东粉嫩av免费一区二区三区| 日韩中文字幕亚洲一区二区va在线| 一区二区三区欧美亚洲|